{"version":3,"file":"chunks/6740.6740.js","mappings":"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","sources":["webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/constants.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/models/pricing-strategy.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/ccp-product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/bxp-product-pricing/src/models/pricing-period.ts","webpack:///./node_modules/@atlassiansox/bxp-product-pricing/src/utils/sanitize-pricing-plans.ts","webpack:///./node_modules/@atlassiansox/bxp-product-pricing/src/utils/ccp-to-hams-pricing-plan-converter.ts","webpack:///./node_modules/@atlassiansox/bxp-product-pricing/src/product-pricing-store.ts","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/contentful-resolve-response/dist/esm/index.js","webpack:///./node_modules/contentful-sdk-core/dist/index.es-modules.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/formats.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/index.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/parse.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/stringify.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/utils.js","webpack:///./node_modules/contentful/dist/es-modules/contentful.js","webpack:///./node_modules/contentful/dist/es-modules/create-contentful-api.js","webpack:///./node_modules/contentful/dist/es-modules/create-global-options.js","webpack:///./node_modules/contentful/dist/es-modules/entities/asset-key.js","webpack:///./node_modules/contentful/dist/es-modules/entities/asset.js","webpack:///./node_modules/contentful/dist/es-modules/entities/content-type.js","webpack:///./node_modules/contentful/dist/es-modules/entities/entry.js","webpack:///./node_modules/contentful/dist/es-modules/entities/index.js","webpack:///./node_modules/contentful/dist/es-modules/entities/locale.js","webpack:///./node_modules/contentful/dist/es-modules/entities/space.js","webpack:///./node_modules/contentful/dist/es-modules/entities/tag.js","webpack:///./node_modules/contentful/dist/es-modules/mixins/stringify-safe.js","webpack:///./node_modules/contentful/dist/es-modules/paged-sync.js","webpack:///./node_modules/contentful/dist/es-modules/utils/normalize-select.js","webpack:///./node_modules/contentful/dist/es-modules/utils/validate-timestamp.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/fast-copy/dist/fast-copy.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/json-stringify-safe/stringify.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/lodash.isstring/index.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/p-throttle/index.js","webpack:///./node_modules/side-channel/index.js"],"sourcesContent":["export const DEFAULT_HOST = 'cdn-mr.contentful.com';\n","export enum PricingStrategy {\n FIXED_COST = 'FIXED_COST',\n MARGINAL_PER_UNIT = 'MARGINAL_PER_UNIT',\n PER_UNIT = 'PER_UNIT'\n}\n\nexport function isPricingStrategy(value: string): value is PricingStrategy {\n switch (value) {\n case PricingStrategy.FIXED_COST:\n case PricingStrategy.MARGINAL_PER_UNIT:\n case PricingStrategy.PER_UNIT:\n return true;\n default:\n return false;\n }\n}\n\nexport function parsePricingStrategy(value: string): PricingStrategy {\n if (isPricingStrategy(value)) {\n return value;\n } else {\n throw new SyntaxError(`${value} is not a valid PricingStrategy`);\n }\n}\n","import { Entry } from 'contentful';\n\nimport {\n parsePricingStrategy,\n PricingPlan,\n PricingTier,\n PricingTierPrice\n} from './models';\n\nexport type ProductContent = {\n readonly name?: string;\n readonly platform?: Entry;\n readonly catalogItemId?: string;\n readonly description: string;\n readonly productFamily?: string;\n readonly productType?: string;\n readonly unitLabel?: string;\n readonly billingType?: string;\n readonly vendor?: Entry;\n readonly parentProducts?: ReadonlyArray>;\n readonly defaultPricingPlanMonthly: Entry | null;\n readonly defaultPricingPlanYearly: Entry | null;\n readonly defaultStdPricingPlanMonthly: Entry | null;\n readonly defaultStdPricingPlanYearly: Entry | null;\n readonly defaultFreePricingPlanMonthly: Entry | null;\n readonly defaultFreePricingPlanYearly: Entry | null;\n readonly defaultPremiumPricingPlanMonthly: Entry | null;\n readonly defaultPremiumPricingPlanYearly: Entry | null;\n readonly defaultEnterprisePricingPlanMonthly: Entry | null;\n readonly defaultEnterprisePricingPlanYearly: Entry | null;\n readonly key?: string;\n readonly sourceSequence?: number;\n};\n\nexport type PlatformContent = {\n readonly name?: string;\n};\n\nexport type VendorContent = {\n readonly name?: string;\n};\n\nexport type PricingPlanContent = {\n readonly product?: Entry;\n readonly periodUnit?: string;\n readonly periodCount?: number;\n readonly status?: string;\n readonly edition?: string;\n readonly configuration: PricingPlanContentConfiguration;\n readonly pricingPlanId?: string;\n readonly sourceSequence?: number;\n};\n\nexport type PricingPlanContentConfiguration = ReadonlyArray;\n\nexport type PricingPlanContentConfigurationItem = {\n readonly starter: boolean;\n readonly pricing_strategy: string;\n readonly unit_description: string;\n readonly unit_limit_lower: number | null;\n readonly unit_limit_upper: number | null;\n readonly prices: ReadonlyArray;\n};\n\nexport type PricingPlanContentConfigurationItemPrice = {\n readonly currency: string;\n readonly unit_price: number;\n};\n\nexport function mapPricingPlanContentEntryToPricingPlan(\n entry: Entry | null\n): PricingPlan | undefined {\n if (entry) {\n return mapPricingPlanContentToPricingPlan(entry.fields);\n } else {\n return undefined;\n }\n}\n\nfunction mapPricingPlanContentToPricingPlan(\n content: PricingPlanContent\n): PricingPlan {\n return content.configuration.map(\n mapPricingPlanContentConfigurationItemToPricingTier\n );\n}\n\nfunction mapPricingPlanContentConfigurationItemToPricingTier({\n starter,\n pricing_strategy,\n unit_description,\n unit_limit_lower,\n unit_limit_upper,\n prices\n}: PricingPlanContentConfigurationItem): PricingTier {\n return {\n starter,\n pricingStrategy: parsePricingStrategy(pricing_strategy),\n unitDescription: unit_description,\n unitLimitLower: unit_limit_lower,\n unitLimitUpper: unit_limit_upper,\n prices: prices.map(\n mapPricingPlanContentConfigurationItemPriceToPricingTierPrice\n )\n };\n}\n\nfunction mapPricingPlanContentConfigurationItemPriceToPricingTierPrice({\n currency,\n unit_price\n}: PricingPlanContentConfigurationItemPrice): PricingTierPrice {\n return {\n currency,\n unitPrice: unit_price\n };\n}\n","import { ContentfulClientApi, createClient, Entry } from 'contentful';\nimport { DEFAULT_HOST } from './constants';\nimport { PricingPlans, ProductKey, ProductKeyMap } from './models';\nimport { AddonProduct } from './models/addon-product';\nimport {\n mapPricingPlanContentEntryToPricingPlan,\n PricingPlanContent,\n ProductContent\n} from './product-catalog-client.types';\n\nexport type ProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\nexport const SELECT_QUERY = [\n 'fields.key',\n 'fields.defaultStdPricingPlanMonthly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultPremiumPricingPlanMonthly',\n 'fields.defaultPremiumPricingPlanYearly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanYearly'\n].join(',');\n\nexport const SEARCH_ADDONS_QUERY = [SELECT_QUERY]\n .concat('fields.description')\n .join(',');\n\nexport interface IProductCatalogClient {\n getPricing({\n productKeys\n }: GetPricingOptions): Promise>;\n searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise;\n}\n\nenum EDITION_SUFFIXES {\n FREE = '.free',\n STANDARD = '',\n PREMIUM = '.premium',\n ENTERPRISE = '.enterprise'\n}\n\ntype EditionSuffix = { [P in keyof EDITION_SUFFIXES]: EDITION_SUFFIXES[P] };\n\nconst NON_STANDARD_EDITION_SUFFIXES = [\n EDITION_SUFFIXES.FREE,\n EDITION_SUFFIXES.PREMIUM,\n EDITION_SUFFIXES.ENTERPRISE\n];\n\nexport const removeEditionSuffix = (productKey: string) =>\n productKey.replace(\n new RegExp(\n NON_STANDARD_EDITION_SUFFIXES.map((suffix) => `\\\\${suffix}`).join('|') +\n '$'\n ),\n ''\n );\n\nconst getPricingPlansForEditionSuffixedKey = (\n productContent: ProductContent,\n editionSuffixedProductKey: string\n): PricingPlans => {\n const matchedEditionSuffix: EditionSuffix = NON_STANDARD_EDITION_SUFFIXES.reduce(\n (matchingEditionSuffix, editionSuffix) =>\n editionSuffixedProductKey.endsWith(editionSuffix)\n ? editionSuffix\n : matchingEditionSuffix,\n EDITION_SUFFIXES.STANDARD\n );\n\n let monthly: Entry | null = null;\n let annual: Entry | null = null;\n\n switch (matchedEditionSuffix) {\n case EDITION_SUFFIXES.FREE:\n const {\n defaultFreePricingPlanMonthly,\n defaultFreePricingPlanYearly\n } = productContent;\n monthly = defaultFreePricingPlanMonthly;\n annual = defaultFreePricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.STANDARD:\n const {\n defaultStdPricingPlanMonthly,\n defaultStdPricingPlanYearly\n } = productContent;\n monthly = defaultStdPricingPlanMonthly;\n annual = defaultStdPricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.PREMIUM:\n const {\n defaultPremiumPricingPlanMonthly,\n defaultPremiumPricingPlanYearly\n } = productContent;\n monthly = defaultPremiumPricingPlanMonthly;\n annual = defaultPremiumPricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.ENTERPRISE:\n const {\n defaultEnterprisePricingPlanMonthly,\n defaultEnterprisePricingPlanYearly\n } = productContent;\n monthly = defaultEnterprisePricingPlanMonthly;\n annual = defaultEnterprisePricingPlanYearly;\n break;\n }\n\n return {\n monthly: mapPricingPlanContentEntryToPricingPlan(monthly),\n annual: mapPricingPlanContentEntryToPricingPlan(annual)\n };\n};\n\nexport class ProductCatalogClient implements IProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: ProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getPricing({\n productKeys\n }: GetPricingOptions): Promise> {\n const { items } = await this.contentfulClient.getEntries({\n 'content_type': 'product',\n 'select': SELECT_QUERY,\n 'fields.key[in]': [\n ...new Set(productKeys.map(removeEditionSuffix)).values()\n ].join(',')\n });\n\n let ret: ProductKeyMap = {};\n for (const productKey of productKeys) {\n const editionlessKey = removeEditionSuffix(productKey);\n const entry = items.find(({ fields: { key } }) => key === editionlessKey);\n if (entry) {\n ret = {\n ...ret,\n [productKey]: getPricingPlansForEditionSuffixedKey(\n entry.fields,\n productKey\n )\n };\n }\n }\n\n return ret;\n }\n\n public async searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise {\n const { items } = await this.contentfulClient.getEntries({\n 'content_type': 'product',\n 'select': SEARCH_ADDONS_QUERY,\n 'fields.productType[match]': 'ADDON',\n 'fields.parentProductName[match]': parentProductKey,\n 'fields.description[match]': query,\n limit\n });\n\n const ret = items.map(\n ({\n fields: {\n description,\n defaultStdPricingPlanMonthly,\n defaultStdPricingPlanYearly\n }\n }) => ({\n name: description,\n pricing: {\n monthly: mapPricingPlanContentEntryToPricingPlan(\n defaultStdPricingPlanMonthly\n ),\n annual: mapPricingPlanContentEntryToPricingPlan(\n defaultStdPricingPlanYearly\n )\n }\n })\n );\n\n return ret;\n }\n}\n\nexport type GetPricingOptions = {\n readonly productKeys: ReadonlyArray;\n};\n\nexport type SearchAddonsOptions = {\n readonly parentProductKey: ProductKey;\n readonly query: string;\n readonly limit?: number;\n};\n","import { ContentfulClientApi, createClient, Entry } from 'contentful';\nimport {\n CCPOfferingContent,\n CCPPricingPlanContent,\n CCPPricingPlanItem,\n CCPPricingPlanTier\n} from './ccp-product-catalog-client.types';\nimport { DEFAULT_HOST } from './constants';\nimport { OfferingSKU, OfferingSKUMap } from './models';\n\nexport type CCPProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\n// the Contentful SDK does not actually include these methods in the Entry object\nexport type ContentfulOffering = Omit<\n Entry,\n 'toPlainObject' | 'update'\n>;\n\nexport interface ICCPProductCatalogClient {\n getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise>;\n}\n\nexport class CCPProductCatalogClient implements ICCPProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: CCPProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise> {\n const {\n items\n } = await this.contentfulClient.getEntries({\n 'content_type': '31uDFGQ9rMyZpBgP4oexja',\n 'fields.sku[in]': [...new Set(offeringSKUs).values()].join(',')\n });\n\n let ret: OfferingSKUMap = {};\n for (const offeringSKU of offeringSKUs) {\n const entry = items.find(({ fields: { sku } }) => sku === offeringSKU);\n const contentfulOffering = entry as ContentfulOffering;\n\n ret = {\n ...ret,\n [offeringSKU]: contentfulOffering || undefined\n };\n }\n\n return ret;\n }\n}\n\nexport type GetCCPPricingOptions = {\n readonly offeringSKUs: ReadonlyArray;\n};\n\nexport { CCPPricingPlanContent, CCPPricingPlanItem, CCPPricingPlanTier };\n","export enum PricingPeriod {\n MONTHLY = 'MONTHLY',\n ANNUAL = 'ANNUAL'\n}\n","import {\n PricingPlan as RawPricingPlan,\n PricingPlans as RawPricingPlans,\n PricingStrategy,\n PricingTierPrice\n} from '@atlassiansox/asc-product-catalog';\nimport { PricingPeriod } from '../models';\n\nexport type PricingTier = {\n readonly starter: boolean;\n readonly pricingStrategy: PricingStrategy;\n readonly unitDescription: string;\n readonly unitLimitLower: number;\n readonly unitLimitUpper: number | null;\n readonly prices: ReadonlyArray;\n};\n\nexport type PricingPlan = ReadonlyArray;\n\nexport type PricingPlans = {\n readonly [key in PricingPeriod]?: PricingPlan;\n};\n\nexport function sanitizePricingPlans({\n monthly,\n annual\n}: RawPricingPlans): PricingPlans {\n return {\n [PricingPeriod.MONTHLY]: sanitizePricingPlan(monthly),\n [PricingPeriod.ANNUAL]: sanitizePricingPlan(annual)\n };\n}\n\nconst MIN_UNIT_LIMIT = 1;\n\n// the first tier starts with a lower unit limit of 0, which for WAC needs to be 1\nconst correctFirstTierUnitLimitLower = (\n priceTiers: RawPricingPlan\n): PricingPlan => {\n const { unitLimitLower } = priceTiers[0] as PricingTier;\n\n const correctedUnitLimitLower = Math.max(\n unitLimitLower || MIN_UNIT_LIMIT,\n MIN_UNIT_LIMIT\n );\n\n return [\n {\n ...priceTiers[0],\n unitLimitLower: correctedUnitLimitLower\n } as PricingTier\n ].concat(priceTiers.slice(1) as PricingTier[]);\n};\n\nexport function sanitizePricingPlan(\n pricingPlan?: RawPricingPlan\n): PricingPlan | undefined {\n if (pricingPlan) {\n return correctFirstTierUnitLimitLower(pricingPlan);\n } else {\n return undefined;\n }\n}\n\n// import { PriceTier } from '@atlassian/bxp-price-calculation';\n\n// const MAX_UNIT_LIMIT = 5000;\n\n// // pricing tiers out of HAMS have data that is invalid\n// // in various ways for displaying pricing on WAC\n\n// // these functions each make a transformation that makes valid\n// // the price tier data for our use case\n\n// // it doesn't make sense to have a unit limit below one on any tier\n// // for display on WAC, also the max tier limit shown should be 5000\n// const clampUnitLimits = (priceTiers: PriceTier[]): PriceTier[] =>\n// priceTiers.map(priceTier => {\n// const { unitLimitLower, unitLimitUpper } = priceTier;\n\n// const [clampedUnitLimitLower, clampedUnitLimitUpper] = [\n// unitLimitLower,\n// unitLimitUpper\n// ].map(unitLimit =>\n// Math.max(Math.min(unitLimit, MAX_UNIT_LIMIT), MIN_UNIT_LIMIT)\n// );\n\n// priceTier.unitLimitLower = clampedUnitLimitLower;\n// priceTier.unitLimitUpper = clampedUnitLimitUpper;\n\n// return priceTier;\n// });\n\n// // sometimes the first tier has a lower and upper unit limit of -987654321\n// // so drop this tier entirely\n// const dropInvalidFirstTier = (priceTiers: PriceTier[]): PriceTier[] => {\n// const { unitLimitLower, unitLimitUpper } = priceTiers[0];\n\n// return unitLimitLower === -987654321 &&\n// unitLimitLower === unitLimitUpper &&\n// priceTiers.length > 1\n// ? priceTiers.slice(1)\n// : priceTiers;\n// };\n\n// export default function(priceTiers: PriceTier[]): PriceTier[] {\n// return [\n// dropInvalidFirstTier,\n// clampUnitLimits,\n// correctFirstTierUnitLimitLower\n// ].reduce((tiers, tiersTransformFn) => tiersTransformFn(tiers), priceTiers);\n// }\n","import {\n CCPPricingPlanContent,\n CCPPricingPlanItem,\n CCPPricingPlanTier,\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\nimport { PricingPlan, PricingPlans } from '.';\nimport { PricingPeriod } from '../models';\n\nconst HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY = {\n ['VOLUME']: PricingStrategy.FIXED_COST,\n ['GRADUATED']: PricingStrategy.MARGINAL_PER_UNIT\n};\n\nconst convertCCPPricingStrategyToHAMS = (\n ccpPricingPolicy: string\n): PricingStrategy => {\n const hamsPricingStrategy =\n HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY[\n ccpPricingPolicy as 'GRADUATED' | 'VOLUME'\n ];\n\n if (!hamsPricingStrategy) {\n throw new Error(\n `Could not find HAMS pricing strategy to match CCP pricing policy: \"${ccpPricingPolicy}\"`\n );\n }\n\n return hamsPricingStrategy;\n};\n\nconst convertCCPTiersToHAMS = (\n ccpTiers: CCPPricingPlanTier[],\n tiersMode: string,\n chargeElement: string,\n currency: string\n): PricingTier[] =>\n ccpTiers.map((ccpTier) => ({\n starter: false,\n pricingStrategy: convertCCPPricingStrategyToHAMS(tiersMode),\n unitDescription: chargeElement,\n unitLimitLower: ccpTier.floor,\n unitLimitUpper: ccpTier.ceiling,\n prices: [\n {\n currency,\n unitPrice:\n tiersMode === 'GRADUATED' ? ccpTier.unitAmount : ccpTier.flatAmount\n }\n ]\n }));\n\nconst convertCCPPricingPlansToHAMS = (\n pricingPlans: CCPPricingPlanContent[]\n): PricingPlans => {\n const [monthlyCCP, annualCCP] = ['MONTH', 'YEAR'].map((primaryCycle) =>\n pricingPlans.find(\n (pricingPlan) => pricingPlan.primaryCycle_interval === primaryCycle\n )\n );\n\n const [monthly, annual] = [monthlyCCP, annualCCP].map((ccpPPContent) => {\n if (!ccpPPContent) {\n return undefined;\n }\n\n const ccpTiers = ccpPPContent.items[0] as CCPPricingPlanItem;\n const { tiers, tiersMode, chargeElement } = ccpTiers;\n\n return convertCCPTiersToHAMS(\n tiers,\n tiersMode,\n chargeElement,\n ccpPPContent.currency\n );\n });\n\n return {\n [PricingPeriod.MONTHLY]: monthly as PricingPlan,\n [PricingPeriod.ANNUAL]: annual as PricingPlan\n };\n};\n\nexport { convertCCPPricingPlansToHAMS };\n","import {\n ICCPProductCatalogClient,\n IProductCatalogClient,\n OfferingSKU,\n OfferingSKUMap,\n ProductKey,\n ProductKeyMap\n} from '@atlassiansox/asc-product-catalog';\nimport { AddonProduct } from './models';\nimport {\n convertCCPPricingPlansToHAMS,\n PricingPlans,\n sanitizePricingPlans\n} from './utils';\n\nexport type ProductPricingStoreOptions = {\n readonly productCatalogClient: IProductCatalogClient;\n readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n};\n\nexport interface IProductPricingStore {\n getPricingPlans(productKey: ProductKey): Promise;\n getProducts(\n productKeys: ReadonlyArray\n ): Promise>;\n searchAddons(\n parentProductKey: string,\n query: string,\n limit: number\n ): Promise;\n getOfferings(\n offeringSKUs: ReadonlyArray\n ): Promise>;\n}\n\nexport class ProductPricingStore implements IProductPricingStore {\n private readonly productCatalogClient: IProductCatalogClient;\n private readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n private readonly cache: Map>;\n\n public constructor({\n productCatalogClient,\n ccpProductCatalogClient\n }: ProductPricingStoreOptions) {\n this.productCatalogClient = productCatalogClient;\n this.ccpProductCatalogClient = ccpProductCatalogClient;\n this.cache = new Map();\n }\n\n public async getPricingPlans(productKey: ProductKey): Promise {\n const pricingPlans = (await this.getProducts([productKey]))[productKey];\n if (pricingPlans) {\n return pricingPlans;\n } else {\n throw new Error(\n `Could not find pricing plans for product key: ${productKey}`\n );\n }\n }\n\n public async getProducts(\n productKeys: ReadonlyArray\n ): Promise> {\n const uncachedProductKeys = productKeys.filter(this.isProductKeyUncached);\n\n if (uncachedProductKeys.length > 0) {\n this.fetchProducts(uncachedProductKeys);\n return this.getProducts(productKeys);\n } else {\n return this.getCachedProducts(productKeys);\n }\n }\n\n public async getOfferings(\n offeringSKUs: ReadonlyArray\n ): Promise> {\n const uncachedOfferingSKUs = offeringSKUs.filter(\n this.isOfferingSKUUncached\n );\n\n if (uncachedOfferingSKUs.length > 0) {\n this.fetchOfferings(uncachedOfferingSKUs);\n return this.getOfferings(offeringSKUs);\n } else {\n return this.getCachedOfferings(offeringSKUs);\n }\n }\n\n public async searchAddons(\n parentProductKey: string,\n query: string,\n limit = 100\n ): Promise {\n const addons = await this.productCatalogClient.searchAddons({\n parentProductKey,\n query,\n limit\n });\n\n return addons.map((addon) => ({\n ...addon,\n pricing: sanitizePricingPlans(addon.pricing)\n }));\n }\n\n private fetchProducts(productKeys: ReadonlyArray): void {\n const pricingPromise = this.productCatalogClient.getPricing({\n productKeys\n });\n productKeys.forEach((productKey) => {\n this.cache.set(\n productKey,\n new Promise(async (resolve) => {\n const pricing = await pricingPromise;\n const pricingPlans = pricing[productKey];\n if (pricingPlans) {\n resolve(sanitizePricingPlans(pricingPlans));\n } else {\n resolve(null);\n }\n })\n );\n });\n }\n\n private fetchOfferings(offeringSKUs: ReadonlyArray): void {\n const pricingPromise = this.ccpProductCatalogClient.getOfferingsBySKU({\n offeringSKUs\n });\n\n offeringSKUs.forEach((offeringSKU) => {\n this.cache.set(\n offeringSKU,\n new Promise(\n async (resolve: (value: PricingPlans | null) => void, reject) => {\n const pricing = await pricingPromise;\n const offering = pricing[offeringSKU];\n\n let ccpPricingPlans;\n if (offering && offering.fields.defaultPricingPlans) {\n ccpPricingPlans = offering.fields.defaultPricingPlans.map(\n (ccpPPContent) => ccpPPContent.fields\n );\n }\n\n if (ccpPricingPlans && ccpPricingPlans.length > 0) {\n try {\n resolve(convertCCPPricingPlansToHAMS(ccpPricingPlans));\n } catch (e) {\n reject(e);\n }\n } else {\n resolve(null);\n }\n }\n )\n );\n });\n }\n\n private readonly isProductKeyUncached = (productKey: ProductKey): boolean =>\n !this.cache.has(productKey);\n\n private readonly isOfferingSKUUncached = (\n offeringSKU: OfferingSKU\n ): boolean => !this.cache.has(offeringSKU);\n\n private readonly getCachedProducts = async (\n productKeys: ReadonlyArray\n ): Promise> => {\n const products = await Promise.all(\n productKeys.map(async (productKey) => {\n const pricingPlans = await this.cache.get(productKey);\n return { productKey, pricingPlans };\n })\n );\n\n return products\n .filter(({ pricingPlans }) => !!pricingPlans)\n .reduce((result, { productKey, pricingPlans }) => {\n return { ...result, [productKey]: pricingPlans };\n }, {});\n };\n\n private readonly getCachedOfferings = async (\n offeringSKUs: ReadonlyArray\n ): Promise> => {\n const offerings = await Promise.all(\n offeringSKUs.map(async (offeringSKU) => {\n const pricingPlans = await this.cache.get(offeringSKU);\n return { offeringSKU, pricingPlans };\n })\n );\n\n return offerings\n .filter(({ pricingPlans }) => !!pricingPlans)\n .reduce((result, { offeringSKU, pricingPlans }) => {\n return { ...result, [offeringSKU]: pricingPlans };\n }, {});\n };\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport copy from 'fast-copy';\n\nvar UNRESOLVED_LINK = {}; // unique object to avoid polyfill bloat using Symbol()\n\n/**\n * isLink Function\n * Checks if the object has sys.type \"Link\"\n * @param object\n */\nvar isLink = function isLink(object) {\n return object && object.sys && object.sys.type === 'Link';\n};\n\n/**\n * Creates a string key for lookup in entityMap\n *\n * @param {*} sys\n * @param {String} sys.type\n * @param {String} sys.id\n * @return {String}\n */\nvar makeLookupKey = function makeLookupKey(sys) {\n return sys.type + '!' + sys.id;\n};\n\n/**\n * getLink Function\n *\n * @param response\n * @param link\n * @return {undefined}\n */\nvar getLink = function getLink(entityMap, link) {\n var _link$sys = link.sys,\n type = _link$sys.linkType,\n id = _link$sys.id;\n\n var lookupKey = makeLookupKey({ type: type, id: id });\n\n return entityMap.get(lookupKey) || UNRESOLVED_LINK;\n};\n\n/**\n * cleanUpLinks Function\n * - Removes unresolvable links from Arrays and Objects\n *\n * @param {Object[]|Object} input\n */\nvar cleanUpLinks = function cleanUpLinks(input) {\n if (Array.isArray(input)) {\n return input.filter(function (val) {\n return val !== UNRESOLVED_LINK;\n });\n }\n for (var key in input) {\n if (input[key] === UNRESOLVED_LINK) {\n delete input[key];\n }\n }\n return input;\n};\n\n/**\n * walkMutate Function\n * @param input\n * @param predicate\n * @param mutator\n * @return {*}\n */\nvar walkMutate = function walkMutate(input, predicate, mutator, removeUnresolved) {\n if (predicate(input)) {\n return mutator(input);\n }\n\n if (input && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {\n for (var key in input) {\n // eslint-disable-next-line no-prototype-builtins\n if (input.hasOwnProperty(key)) {\n input[key] = walkMutate(input[key], predicate, mutator, removeUnresolved);\n }\n }\n if (removeUnresolved) {\n input = cleanUpLinks(input);\n }\n }\n return input;\n};\n\nvar normalizeLink = function normalizeLink(entityMap, link, removeUnresolved) {\n var resolvedLink = getLink(entityMap, link);\n if (resolvedLink === UNRESOLVED_LINK) {\n return removeUnresolved ? resolvedLink : link;\n }\n return resolvedLink;\n};\n\nvar makeEntryObject = function makeEntryObject(item, itemEntryPoints) {\n if (!Array.isArray(itemEntryPoints)) {\n return item;\n }\n\n var entryPoints = Object.keys(item).filter(function (ownKey) {\n return itemEntryPoints.indexOf(ownKey) !== -1;\n });\n\n return entryPoints.reduce(function (entryObj, entryPoint) {\n entryObj[entryPoint] = item[entryPoint];\n return entryObj;\n }, {});\n};\n\n/**\n * resolveResponse Function\n * Resolves contentful response to normalized form.\n * @param {Object} response Contentful response\n * @param {{removeUnresolved: Boolean, itemEntryPoints: Array}|{}} options\n * @param {Boolean} options.removeUnresolved - Remove unresolved links default:false\n * @param {Array} options.itemEntryPoints - Resolve links only in those item properties\n * @return {Object}\n */\nvar resolveResponse = function resolveResponse(response, options) {\n options = options || {};\n if (!response.items) {\n return [];\n }\n var responseClone = copy(response);\n var allIncludes = Object.keys(responseClone.includes || {}).reduce(function (all, type) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(response.includes[type]));\n }, []);\n\n var allEntries = [].concat(_toConsumableArray(responseClone.items), _toConsumableArray(allIncludes));\n\n var entityMap = new Map(allEntries.map(function (entity) {\n return [makeLookupKey(entity.sys), entity];\n }));\n\n allEntries.forEach(function (item) {\n var entryObject = makeEntryObject(item, options.itemEntryPoints);\n\n Object.assign(item, walkMutate(entryObject, isLink, function (link) {\n return normalizeLink(entityMap, link, options.removeUnresolved);\n }, options.removeUnresolved));\n });\n\n return responseClone.items;\n};\n\nexport default resolveResponse;","import copy from 'fast-copy';\nimport qs from 'qs';\nimport isString from 'lodash.isstring';\nimport pThrottle from 'p-throttle';\nimport isPlainObject from 'lodash.isplainobject';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction isNode() {\n /**\n * Polyfills of 'process' might set process.browser === true\n *\n * See:\n * https://github.com/webpack/node-libs-browser/blob/master/mock/process.js#L8\n * https://github.com/defunctzombie/node-process/blob/master/browser.js#L156\n **/\n return typeof process !== 'undefined' && !process.browser;\n}\nfunction isReactNative() {\n return typeof window !== 'undefined' && 'navigator' in window && 'product' in window.navigator && window.navigator.product === 'ReactNative';\n}\nfunction getNodeVersion() {\n return process.versions && process.versions.node ? \"v\".concat(process.versions.node) : process.version;\n}\nfunction getWindow() {\n return window;\n}\nfunction noop() {\n return undefined;\n}\n\nvar PERCENTAGE_REGEX = /*#__PURE__*/_wrapRegExp(/([0-9]+)(%)/, {\n value: 1\n});\n\nfunction calculateLimit(type) {\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 7;\n var limit = max;\n\n if (PERCENTAGE_REGEX.test(type)) {\n var _type$match;\n\n var groups = (_type$match = type.match(PERCENTAGE_REGEX)) === null || _type$match === void 0 ? void 0 : _type$match.groups;\n\n if (groups && groups.value) {\n var percentage = parseInt(groups.value) / 100;\n limit = Math.round(max * percentage);\n }\n }\n\n return Math.min(30, Math.max(1, limit));\n}\n\nfunction createThrottle(limit, logger) {\n logger('info', \"Throttle request to \".concat(limit, \"/s\"));\n return pThrottle({\n limit: limit,\n interval: 1000,\n strict: false\n });\n}\n\nvar rateLimitThrottle = (function (axiosInstance) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n var _axiosInstance$defaul = axiosInstance.defaults.logHandler,\n logHandler = _axiosInstance$defaul === void 0 ? noop : _axiosInstance$defaul;\n var limit = isString(type) ? calculateLimit(type) : calculateLimit('auto', type);\n var throttle = createThrottle(limit, logHandler);\n var isCalculated = false;\n var requestInterceptorId = axiosInstance.interceptors.request.use(function (config) {\n return throttle(function () {\n return config;\n })();\n }, function (error) {\n return Promise.reject(error);\n });\n var responseInterceptorId = axiosInstance.interceptors.response.use(function (response) {\n if (!isCalculated && isString(type) && (type === 'auto' || PERCENTAGE_REGEX.test(type)) && response.headers && response.headers['x-contentful-ratelimit-second-limit']) {\n var rawLimit = parseInt(response.headers['x-contentful-ratelimit-second-limit']);\n var nextLimit = calculateLimit(type, rawLimit);\n\n if (nextLimit !== limit) {\n if (requestInterceptorId) {\n axiosInstance.interceptors.request.eject(requestInterceptorId);\n }\n\n limit = nextLimit;\n throttle = createThrottle(nextLimit, logHandler);\n requestInterceptorId = axiosInstance.interceptors.request.use(function (config) {\n return throttle(function () {\n return config;\n })();\n }, function (error) {\n return Promise.reject(error);\n });\n }\n\n isCalculated = true;\n }\n\n return response;\n }, function (error) {\n return Promise.reject(error);\n });\n return function () {\n axiosInstance.interceptors.request.eject(requestInterceptorId);\n axiosInstance.interceptors.response.eject(responseInterceptorId);\n };\n});\n\nvar delay = function delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n};\n\nvar defaultWait = function defaultWait(attempts) {\n return Math.pow(Math.SQRT2, attempts);\n};\n\nfunction rateLimit(instance) {\n var maxRetry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var _instance$defaults = instance.defaults,\n _instance$defaults$re = _instance$defaults.responseLogger,\n responseLogger = _instance$defaults$re === void 0 ? noop : _instance$defaults$re,\n _instance$defaults$re2 = _instance$defaults.requestLogger,\n requestLogger = _instance$defaults$re2 === void 0 ? noop : _instance$defaults$re2;\n instance.interceptors.request.use(function (config) {\n requestLogger(config);\n return config;\n }, function (error) {\n requestLogger(error);\n return Promise.reject(error);\n });\n instance.interceptors.response.use(function (response) {\n // we don't need to do anything here\n responseLogger(response);\n return response;\n }, function (error) {\n var response = error.response;\n var config = error.config;\n responseLogger(error); // Do not retry if it is disabled or no request config exists (not an axios error)\n\n if (!config || !instance.defaults.retryOnError) {\n return Promise.reject(error);\n } // Retried already for max attempts\n\n\n var doneAttempts = config.attempts || 1;\n\n if (doneAttempts > maxRetry) {\n error.attempts = config.attempts;\n return Promise.reject(error);\n }\n\n var retryErrorType = null;\n var wait = defaultWait(doneAttempts); // Errors without response did not receive anything from the server\n\n if (!response) {\n retryErrorType = 'Connection';\n } else if (response.status >= 500 && response.status < 600) {\n // 5** errors are server related\n retryErrorType = \"Server \".concat(response.status);\n } else if (response.status === 429) {\n // 429 errors are exceeded rate limit exceptions\n retryErrorType = 'Rate limit'; // all headers are lowercased by axios https://github.com/mzabriskie/axios/issues/413\n\n if (response.headers && error.response.headers['x-contentful-ratelimit-reset']) {\n wait = response.headers['x-contentful-ratelimit-reset'];\n }\n }\n\n if (retryErrorType) {\n // convert to ms and add jitter\n wait = Math.floor(wait * 1000 + Math.random() * 200 + 500);\n instance.defaults.logHandler('warning', \"\".concat(retryErrorType, \" error occurred. Waiting for \").concat(wait, \" ms before retrying...\")); // increase attempts counter\n\n config.attempts = doneAttempts + 1;\n /* Somehow between the interceptor and retrying the request the httpAgent/httpsAgent gets transformed from an Agent-like object\n to a regular object, causing failures on retries after rate limits. Removing these properties here fixes the error, but retry\n requests still use the original http/httpsAgent property */\n\n delete config.httpAgent;\n delete config.httpsAgent;\n return delay(wait).then(function () {\n return instance(config);\n });\n }\n\n return Promise.reject(error);\n });\n}\n\nfunction asyncToken(instance, getToken) {\n instance.interceptors.request.use(function (config) {\n return getToken().then(function (accessToken) {\n config.headers = _objectSpread2(_objectSpread2({}, config.headers), {}, {\n Authorization: \"Bearer \".concat(accessToken)\n });\n return config;\n });\n });\n}\n\n// Also enforces toplevel domain specified, no spaces and no protocol\n\nvar HOST_REGEX = /^(?!\\w+:\\/\\/)([^\\s:]+\\.?[^\\s:]+)(?::(\\d+))?(?!:)$/;\n/**\n * Create pre configured axios instance\n * @private\n * @param {AxiosStatic} axios - Axios library\n * @param {CreateHttpClientParams} options - Initialization parameters for the HTTP client\n * @return {ContentfulAxiosInstance} Initialized axios instance\n */\n\nfunction createHttpClient(axios, options) {\n var defaultConfig = {\n insecure: false,\n retryOnError: true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logHandler: function logHandler(level, data) {\n if (level === 'error' && data) {\n var title = [data.name, data.message].filter(function (a) {\n return a;\n }).join(' - ');\n console.error(\"[error] \".concat(title));\n console.error(data);\n return;\n }\n\n console.log(\"[\".concat(level, \"] \").concat(data));\n },\n // Passed to axios\n headers: {},\n httpAgent: false,\n httpsAgent: false,\n timeout: 30000,\n throttle: 0,\n proxy: false,\n basePath: '',\n adapter: undefined,\n maxContentLength: 1073741824,\n // 1GB\n maxBodyLength: 1073741824 // 1GB\n\n };\n\n var config = _objectSpread2(_objectSpread2({}, defaultConfig), options);\n\n if (!config.accessToken) {\n var missingAccessTokenError = new TypeError('Expected parameter accessToken');\n config.logHandler('error', missingAccessTokenError);\n throw missingAccessTokenError;\n } // Construct axios baseURL option\n\n\n var protocol = config.insecure ? 'http' : 'https';\n var space = config.space ? \"\".concat(config.space, \"/\") : '';\n var hostname = config.defaultHostname;\n var port = config.insecure ? 80 : 443;\n\n if (config.host && HOST_REGEX.test(config.host)) {\n var parsed = config.host.split(':');\n\n if (parsed.length === 2) {\n\n var _parsed = _slicedToArray(parsed, 2);\n\n hostname = _parsed[0];\n port = _parsed[1];\n } else {\n hostname = parsed[0];\n }\n } // Ensure that basePath does start but not end with a slash\n\n\n if (config.basePath) {\n config.basePath = \"/\".concat(config.basePath.split('/').filter(Boolean).join('/'));\n }\n\n var baseURL = options.baseURL || \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(config.basePath, \"/spaces/\").concat(space);\n\n if (!config.headers.Authorization && typeof config.accessToken !== 'function') {\n config.headers.Authorization = 'Bearer ' + config.accessToken;\n } // Set these headers only for node because browsers don't like it when you\n // override user-agent or accept-encoding.\n // The SDKs should set their own X-Contentful-User-Agent.\n\n\n if (isNode()) {\n config.headers['user-agent'] = 'node.js/' + getNodeVersion();\n config.headers['Accept-Encoding'] = 'gzip';\n }\n\n var axiosOptions = {\n // Axios\n baseURL: baseURL,\n headers: config.headers,\n httpAgent: config.httpAgent,\n httpsAgent: config.httpsAgent,\n paramsSerializer: qs.stringify,\n proxy: config.proxy,\n timeout: config.timeout,\n adapter: config.adapter,\n maxContentLength: config.maxContentLength,\n maxBodyLength: config.maxBodyLength,\n // Contentful\n logHandler: config.logHandler,\n responseLogger: config.responseLogger,\n requestLogger: config.requestLogger,\n retryOnError: config.retryOnError\n };\n var instance = axios.create(axiosOptions);\n instance.httpClientParams = options;\n /**\n * Creates a new axios instance with the same default base parameters as the\n * current one, and with any overrides passed to the newParams object\n * This is useful as the SDKs use dependency injection to get the axios library\n * and the version of the library comes from different places depending\n * on whether it's a browser build or a node.js build.\n * @private\n * @param {CreateHttpClientParams} httpClientParams - Initialization parameters for the HTTP client\n * @return {ContentfulAxiosInstance} Initialized axios instance\n */\n\n instance.cloneWithNewParams = function (newParams) {\n return createHttpClient(axios, _objectSpread2(_objectSpread2({}, copy(options)), newParams));\n };\n /**\n * Apply interceptors.\n * Please note that the order of interceptors is important\n */\n\n\n if (config.onBeforeRequest) {\n instance.interceptors.request.use(config.onBeforeRequest);\n }\n\n if (typeof config.accessToken === 'function') {\n asyncToken(instance, config.accessToken);\n }\n\n if (config.throttle) {\n rateLimitThrottle(instance, config.throttle);\n }\n\n rateLimit(instance, config.retryLimit);\n\n if (config.onError) {\n instance.interceptors.response.use(function (response) {\n return response;\n }, config.onError);\n }\n\n return instance;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Creates request parameters configuration by parsing an existing query object\n * @private\n * @param {Object} query\n * @return {Object} Config object with `params` property, ready to be used in axios\n */\nfunction createRequestConfig(_ref) {\n var query = _ref.query;\n var config = {};\n delete query.resolveLinks;\n config.params = copy(query);\n return config;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction enforceObjPath(obj, path) {\n if (!(path in obj)) {\n var err = new Error();\n err.name = 'PropertyMissing';\n err.message = \"Required property \".concat(path, \" missing from:\\n\\n\").concat(JSON.stringify(obj), \"\\n\\n\");\n throw err;\n }\n\n return true;\n}\n\n// copied from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\nfunction deepFreeze(object) {\n var propNames = Object.getOwnPropertyNames(object);\n\n var _iterator = _createForOfIteratorHelper(propNames),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var name = _step.value;\n var value = object[name];\n\n if (value && _typeof(value) === 'object') {\n deepFreeze(value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return Object.freeze(object);\n}\n\nfunction freezeSys(obj) {\n deepFreeze(obj.sys || {});\n return obj;\n}\n\nfunction getBrowserOS() {\n var win = getWindow();\n\n if (!win) {\n return null;\n }\n\n var userAgent = win.navigator.userAgent; // TODO: platform is deprecated.\n\n var platform = win.navigator.platform;\n var macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];\n var windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];\n var iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n return 'macOS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n return 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n return 'Windows';\n } else if (/Android/.test(userAgent)) {\n return 'Android';\n } else if (/Linux/.test(platform)) {\n return 'Linux';\n }\n\n return null;\n}\n\nfunction getNodeOS() {\n var platform = process.platform || 'linux';\n var version = process.version || '0.0.0';\n var platformMap = {\n android: 'Android',\n aix: 'Linux',\n darwin: 'macOS',\n freebsd: 'Linux',\n linux: 'Linux',\n openbsd: 'Linux',\n sunos: 'Linux',\n win32: 'Windows'\n };\n\n if (platform in platformMap) {\n return \"\".concat(platformMap[platform] || 'Linux', \"/\").concat(version);\n }\n\n return null;\n}\n\nfunction getUserAgentHeader(sdk, application, integration, feature) {\n var headerParts = [];\n\n if (application) {\n headerParts.push(\"app \".concat(application));\n }\n\n if (integration) {\n headerParts.push(\"integration \".concat(integration));\n }\n\n if (feature) {\n headerParts.push('feature ' + feature);\n }\n\n headerParts.push(\"sdk \".concat(sdk));\n var platform = null;\n\n try {\n if (isReactNative()) {\n platform = getBrowserOS();\n headerParts.push('platform ReactNative');\n } else if (isNode()) {\n platform = getNodeOS();\n headerParts.push(\"platform node.js/\".concat(getNodeVersion()));\n } else {\n platform = getBrowserOS();\n headerParts.push('platform browser');\n }\n } catch (e) {\n platform = null;\n }\n\n if (platform) {\n headerParts.push(\"os \".concat(platform));\n }\n\n return \"\".concat(headerParts.filter(function (item) {\n return item !== '';\n }).join('; '), \";\");\n}\n\n/**\n * Mixes in a method to return just a plain object with no additional methods\n * @private\n * @param data - Any plain JSON response returned from the API\n * @return Enhanced object with toPlainObject method\n */\n\nfunction toPlainObject(data) {\n return Object.defineProperty(data, 'toPlainObject', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function value() {\n return copy(this);\n }\n });\n}\n\n/**\n * Handles errors received from the server. Parses the error into a more useful\n * format, places it in an exception and throws it.\n * See https://www.contentful.com/developers/docs/references/errors/\n * for more details on the data received on the errorResponse.data property\n * and the expected error codes.\n * @private\n */\nfunction errorHandler(errorResponse) {\n var config = errorResponse.config,\n response = errorResponse.response;\n var errorName; // Obscure the Management token\n\n if (config && config.headers && config.headers['Authorization']) {\n var token = \"...\".concat(config.headers['Authorization'].substr(-5));\n config.headers['Authorization'] = \"Bearer \".concat(token);\n }\n\n if (!isPlainObject(response) || !isPlainObject(config)) {\n throw errorResponse;\n }\n\n var data = response === null || response === void 0 ? void 0 : response.data;\n var errorData = {\n status: response === null || response === void 0 ? void 0 : response.status,\n statusText: response === null || response === void 0 ? void 0 : response.statusText,\n message: '',\n details: {}\n };\n\n if (isPlainObject(config)) {\n errorData.request = {\n url: config.url,\n headers: config.headers,\n method: config.method,\n payloadData: config.data\n };\n }\n\n if (data && isPlainObject(data)) {\n if ('requestId' in data) {\n errorData.requestId = data.requestId || 'UNKNOWN';\n }\n\n if ('message' in data) {\n errorData.message = data.message || '';\n }\n\n if ('details' in data) {\n errorData.details = data.details || {};\n }\n\n if ('sys' in data) {\n if ('id' in data.sys) {\n errorName = data.sys.id;\n }\n }\n }\n\n var error = new Error();\n error.name = errorName && errorName !== 'Unknown' ? errorName : \"\".concat(response === null || response === void 0 ? void 0 : response.status, \" \").concat(response === null || response === void 0 ? void 0 : response.statusText);\n\n try {\n error.message = JSON.stringify(errorData, null, ' ');\n } catch (_unused) {\n var _errorData$message;\n\n error.message = (_errorData$message = errorData === null || errorData === void 0 ? void 0 : errorData.message) !== null && _errorData$message !== void 0 ? _errorData$message : '';\n }\n\n throw error;\n}\n\nexport { createHttpClient, createRequestConfig, enforceObjPath, errorHandler, freezeSys, getUserAgentHeader, toPlainObject };\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createClient = createClient;\n\nvar _axios = _interopRequireDefault(require(\"axios\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _createContentfulApi = _interopRequireDefault(require(\"./create-contentful-api\"));\n\nvar _createGlobalOptions = _interopRequireDefault(require(\"./create-global-options\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Create a client instance\n * @func\n * @name createClient\n * @memberof contentful\n * @param {Object} params - Client initialization parameters\n * @prop {string} params.space - Space ID\n * @prop {string} params.accessToken - Contentful CDA Access Token\n * @prop {string} [params.environment=\"master\"] - Contentful Environment ID\n * @prop {boolean=} params.insecure - Requests will be made over http instead of the default https (default: true)\n * @prop {string=} params.host - API host (default: cdn.contentful.com). Also usable with preview.contentful.com.\n * @prop {string=} params.basePath - Path appended to the host to support gateways/proxies with custom urls.\n * @prop {Object=} params.httpAgent - Optional Node.js HTTP agent for proxying (see Node.js docs and https-proxy-agent)\n * @prop {Object=} params.httpsAgent - Optional Node.js HTTP agent for proxying (see Node.js docs and https-proxy-agent)\n * @prop {Object=} params.proxy - Optional Axios proxy (see axios docs )\n * @prop {Object=} params.headers - Optional additional headers\n * @prop {function=} params.adapter - Optional axios request adapter (see axios docs )\n * @prop {boolean=?} params.resolveLinks - If we should resolve links between entries (default: true)\n * @prop {boolean=?} params.removeUnresolved - If we should remove links to entries which could not be resolved (default: false)\n * @prop {boolean=?} params.retryOnError - If we should retry on errors and 429 rate limit exceptions (default: true)\n * @prop {function=} params.logHandler - A log handler function to process given log messages & errors. Receives the log level (error, warning & info) and the actual log data (Error object or string). (The default can be found at: https://github.com/contentful/contentful-sdk-core/blob/master/src/create-http-client.ts)\n * @prop {string=?} params.application - Application name and version e.g myApp/version\n * @prop {string=?} params.integration - Integration name and version e.g react/version\n * @prop {number=} params.timeout in milliseconds - connection timeout (default:30000)\n * @prop {number=} params.retryLimit - Optional number of retries before failure. Default is 5\n * @returns {ContentfulClientAPI.ClientAPI}\n * @example\n * const contentful = require('contentful')\n * const client = contentful.createClient({\n * accessToken: 'myAccessToken',\n * space: 'mySpaceId'\n * })\n */\nfunction createClient(params) {\n if (!params.accessToken) {\n throw new TypeError('Expected parameter accessToken');\n }\n\n if (!params.space) {\n throw new TypeError('Expected parameter space');\n }\n\n const defaultConfig = {\n resolveLinks: true,\n removeUnresolved: false,\n defaultHostname: 'cdn.contentful.com',\n environment: 'master'\n };\n\n const config = _objectSpread(_objectSpread({}, defaultConfig), params);\n\n const userAgentHeader = (0, _contentfulSdkCore.getUserAgentHeader)(`contentful.js/${\"8.5.8\"}`, config.application, config.integration);\n config.headers = _objectSpread(_objectSpread({}, config.headers), {}, {\n 'Content-Type': 'application/vnd.contentful.delivery.v1+json',\n 'X-Contentful-User-Agent': userAgentHeader\n });\n const http = (0, _contentfulSdkCore.createHttpClient)(_axios.default, config);\n const getGlobalOptions = (0, _createGlobalOptions.default)({\n resolveLinks: config.resolveLinks,\n environment: config.environment,\n removeUnresolved: config.removeUnresolved,\n spaceBaseUrl: http.defaults.baseURL,\n environmentBaseUrl: `${http.defaults.baseURL}environments/${config.environment}`\n }); // Append environment to baseURL\n\n http.defaults.baseURL = getGlobalOptions().environmentBaseUrl; // Intercepts response and obscure the token\n\n obscureAuthTokenInResponse(http);\n return (0, _createContentfulApi.default)({\n http,\n getGlobalOptions\n });\n}\n\nfunction obscureAuthTokenInResponse(http) {\n http.interceptors.response.use(response => {\n return response;\n }, error => {\n if (error.response && error.response.config.headers.Authorization) {\n const token = error.response.config.headers.Authorization;\n error.response.config.headers.Authorization = error.response.config.headers.Authorization.replace(token, `Bearer...${token.substr(-5)}`);\n\n if (error.response.request._header) {\n error.response.request._header = error.response.request._header.replace(token, `Bearer...${token.substr(-5)}`);\n }\n }\n\n return Promise.reject(error);\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createContentfulApi;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _entities = _interopRequireDefault(require(\"./entities\"));\n\nvar _pagedSync = _interopRequireDefault(require(\"./paged-sync\"));\n\nvar _normalizeSelect = _interopRequireDefault(require(\"./utils/normalize-select\"));\n\nvar _validateTimestamp = _interopRequireDefault(require(\"./utils/validate-timestamp\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst ASSET_KEY_MAX_LIFETIME = 48 * 60 * 60;\n/**\n * Creates API object with methods to access functionality from Contentful's\n * Delivery API\n * @private\n * @param {Object} params - API initialization params\n * @prop {Object} http - HTTP client instance\n * @prop {Object} entities - Object with wrapper methods for each kind of entity\n * @prop {Function} getGlobalOptions - Link resolver preconfigured with global setting\n * @return {ClientAPI}\n */\n\nfunction createContentfulApi({\n http,\n getGlobalOptions\n}) {\n const {\n wrapSpace\n } = _entities.default.space;\n const {\n wrapContentType,\n wrapContentTypeCollection\n } = _entities.default.contentType;\n const {\n wrapEntry,\n wrapEntryCollection\n } = _entities.default.entry;\n const {\n wrapAsset,\n wrapAssetCollection\n } = _entities.default.asset;\n const {\n wrapTag,\n wrapTagCollection\n } = _entities.default.tag;\n const {\n wrapAssetKey\n } = _entities.default.assetKey;\n const {\n wrapLocaleCollection\n } = _entities.default.locale;\n\n const notFoundError = id => {\n const error = new Error('The resource could not be found.');\n error.sys = {\n type: 'Error',\n id: 'NotFound'\n };\n error.details = {\n type: 'Entry',\n id: id,\n environment: getGlobalOptions().environment,\n space: getGlobalOptions().space\n };\n return error;\n };\n\n function errorHandler(error) {\n if (error.data) {\n throw error.data;\n }\n\n if (error.response && error.response.data) {\n throw error.response.data;\n }\n\n throw error;\n }\n /**\n * Gets the Space which the client is currently configured to use\n * @memberof ContentfulClientAPI\n * @return {Promise} Promise for a Space\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n * // returns the space object with the above \n * const space = await client.getSpace()\n * console.log(space)\n */\n\n\n async function getSpace() {\n switchToSpace(http);\n\n try {\n const response = await http.get('');\n return wrapSpace(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a Content Type\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @return {Promise} Promise for a Content Type\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const contentType = await client.getContentType('')\n * console.log(contentType)\n */\n\n\n async function getContentType(id) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get(`content_types/${id}`);\n return wrapContentType(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Content Types\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Content Types\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getContentTypes()\n * console.log(response.items)\n */\n\n\n async function getContentTypes(query = {}) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get('content_types', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapContentTypeCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets an Entry\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @param {Object=} query - Object with search parameters. In this method it's only useful for `locale`.\n * @return {Promise} Promise for an Entry\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const entry = await client.getEntry('')\n * console.log(entry)\n */\n\n\n async function getEntry(id, query = {}) {\n if (!id) {\n throw notFoundError(id);\n }\n\n try {\n const response = await this.getEntries(_objectSpread({\n 'sys.id': id\n }, query));\n\n if (response.items.length > 0) {\n return wrapEntry(response.items[0]);\n } else {\n throw notFoundError(id);\n }\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Entries\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Entries\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getEntries()\n * .console.log(response.items)\n */\n\n\n async function getEntries(query = {}) {\n switchToEnvironment(http);\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions(query);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('entries', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapEntryCollection(response.data, {\n resolveLinks,\n removeUnresolved\n });\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets an Asset\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @param {Object=} query - Object with search parameters. In this method it's only useful for `locale`.\n * @return {Promise} Promise for an Asset\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const asset = await client.getAsset('')\n * console.log(asset)\n */\n\n\n async function getAsset(id, query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get(`assets/${id}`, (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapAsset(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Assets\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Assets\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getAssets()\n * console.log(response.items)\n */\n\n\n async function getAssets(query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('assets', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapAssetCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a Tag\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @return {Promise} Promise for a Tag\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const tag = await client.getTag('')\n * console.log(tag)\n */\n\n\n async function getTag(id) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get(`tags/${id}`);\n return wrapTag(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Tags\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters.\n * @return {Promise} Promise for a collection of Tags\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getTags()\n * console.log(response.items)\n */\n\n\n async function getTags(query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('tags', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapTagCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Creates an asset key for signing asset URLs (Embargoed Assets)\n * @memberof ContentfulClientAPI\n * @param {number} expiresAt - UNIX timestamp in the future, maximum of 48h from now\n * @return {Promise} Promise for an AssetKey\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const assetKey = await client.getAssetKey()\n * console.log(assetKey)\n */\n\n\n async function createAssetKey(expiresAt) {\n switchToEnvironment(http);\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const currentMaxLifetime = now + ASSET_KEY_MAX_LIFETIME;\n (0, _validateTimestamp.default)('expiresAt', expiresAt, {\n maximum: currentMaxLifetime,\n now\n });\n const params = {\n expiresAt\n };\n const response = await http.post('asset_keys', params);\n return wrapAssetKey(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Locale\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Locale\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getLocales()\n * console.log(response.items)\n */\n\n\n async function getLocales(query = {}) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get('locales', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapLocaleCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Synchronizes either all the content or only new content since last sync\n * See Synchronization for more information.\n * Important note: The the sync api endpoint does not support include or link resolution.\n * However contentful.js is doing link resolution client side if you only make an initial sync.\n * For the delta sync (using nextSyncToken) it is not possible since the sdk wont have access to all the data to make such an operation.\n * @memberof ContentfulClientAPI\n * @param {Object} query - Query object for the sync call. One of initial or nextSyncToken always needs to be specified, but not both.\n * @param {boolean?} query.initial - Indicates if this is the first sync. Use it if you don't have a sync token.\n * @param {string?} query.nextSyncToken - The token you got the last time you used this method. Ensures you only get changed content.\n * @param {string=} query.type - Filter by this type (all (default), Entry, Asset, Deletion, DeletedAsset or DeletedEntry)\n * @param {string=} query.content_type - Filter by this content type id\n * @param {boolean=} query.resolveLinks - When true, links to other Entries or Assets are resolved. Default: true.\n * @param {Object} options\n * @param {boolean=} [options.paginate = true] - Set to false to disable pagination\n * @return {Promise} Promise for the collection resulting of a sync operation\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.sync({\n * initial: true\n * })\n * console.log({\n * entries: response.entries,\n * assets: response.assets,\n * nextSyncToken: response.nextSyncToken\n * })\n */\n\n\n async function sync(query = {}, options = {\n paginate: true\n }) {\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions(query);\n switchToEnvironment(http);\n return (0, _pagedSync.default)(http, query, _objectSpread({\n resolveLinks,\n removeUnresolved\n }, options));\n }\n /**\n * Parse raw json data into collection of entry objects.Links will be resolved also\n * @memberof ContentfulClientAPI\n * @param {Object} raw json data\n * @example\n * let data = {items: [\n * {\n * sys: {type: 'Entry', locale: 'en-US'},\n * fields: {\n * animal: {sys: {type: 'Link', linkType: 'Animal', id: 'oink'}},\n * anotheranimal: {sys: {type: 'Link', linkType: 'Animal', id: 'middle-parrot'}}\n * }\n * }\n * ],\n * includes: {\n * Animal: [\n * {\n * sys: {type: 'Animal', id: 'oink', locale: 'en-US'},\n * fields: {\n * name: 'Pig',\n * friend: {sys: {type: 'Link', linkType: 'Animal', id: 'groundhog'}}\n * }\n * }\n * ]\n * }\n * }\n * console.log( data.items[0].fields.foo ); // undefined\n * let parsedData = client.parseEntries(data);\n * console.log( parsedData.items[0].fields.foo ); // foo\n */\n\n\n function parseEntries(data) {\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions({});\n return wrapEntryCollection(data, {\n resolveLinks,\n removeUnresolved\n });\n }\n /*\n * Switches BaseURL to use /environments path\n * */\n\n\n function switchToEnvironment(http) {\n http.defaults.baseURL = getGlobalOptions().environmentBaseUrl;\n }\n /*\n * Switches BaseURL to use /spaces path\n * */\n\n\n function switchToSpace(http) {\n http.defaults.baseURL = getGlobalOptions().spaceBaseUrl;\n }\n\n return {\n getSpace,\n getContentType,\n getContentTypes,\n getEntry,\n getEntries,\n getAsset,\n getAssets,\n getTag,\n getTags,\n createAssetKey,\n getLocales,\n parseEntries,\n sync\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createGlobalOptions;\n\n/**\n * Link resolution can be set globally, or it can be turned off for the methods\n * which make use of it. The local setting always overrides the global setting.\n * @private\n * @param {boolean} globalSetting - Global library setting for link resolution\n * @returns {function} Link resolver method preconfigured with global setting\n */\nfunction createGlobalOptions(globalSettings) {\n /**\n * Link resolver method\n * @param {Object} query - regular query object used for collection endpoints\n */\n return function getGlobalOptions(query) {\n return Object.assign({}, globalSettings, query);\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapAssetKey = wrapAssetKey;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef AssetKey\n * @prop {string} policy - The asset key's policy\n * @prop {string} secret - The secret for creating a signing token\n * @prop {function(): Object} toPlainObject() - Returns this AssetKey as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset key data\n * @return {Asset} Wrapped asset key data\n */\nfunction wrapAssetKey(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapAsset = wrapAsset;\nexports.wrapAssetCollection = wrapAssetCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Asset\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string=} sys.locale - If present, indicates the locale which this asset uses\n * @prop {Object} fields - Object with content for each field\n * @prop {string} fields.title - Title for this asset\n * @prop {string} fields.description - Description for this asset\n * @prop {Object} fields.file - File object for this asset\n * @prop {string} fields.file.fileName - Name for the file\n * @prop {string} fields.file.contentType - Mime type for the file\n * @prop {string} fields.file.url - Url where the file is available at.\n * @prop {Object} fields.file.details - Details for the file, depending on file type (example: image size in bytes, etc)\n * @prop {function(): Object} toPlainObject() - Returns this Asset as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset data\n * @return {Asset} Wrapped asset data\n */\nfunction wrapAsset(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef AssetCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Asset collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset collection data\n * @return {AssetCollection} Wrapped asset collection data\n */\n\n\nfunction wrapAssetCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapContentType = wrapContentType;\nexports.wrapContentTypeCollection = wrapContentTypeCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef ContentType\n * @prop {Entities.Sys} sys - System metadata\n * @prop {string} name\n * @prop {string} description\n * @prop {string} displayField - Field used as the main display field for Entries\n * @prop {string} Array - All the fields contained in this Content Type\n * @prop {function(): Object} toPlainObject() - Returns this Content Type as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw content type data\n * @return {ContentType} Wrapped content type data\n */\nfunction wrapContentType(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef ContentTypeCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Content Type collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw content type collection data\n * @return {ContentTypeCollection} Wrapped content type collection data\n */\n\n\nfunction wrapContentTypeCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapEntry = wrapEntry;\nexports.wrapEntryCollection = wrapEntryCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _stringifySafe = _interopRequireDefault(require(\"../mixins/stringify-safe\"));\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Types of fields found in an Entry\n * @namespace EntryFields\n */\n\n/**\n * @memberof EntryFields\n * @typedef Symbol\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Text\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Integer\n * @type number\n */\n\n/**\n * @memberof EntryFields\n * @typedef Number\n * @type number\n */\n\n/**\n * @memberof EntryFields\n * @typedef Date\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Boolean\n * @type boolean\n */\n\n/**\n * @memberof EntryFields\n * @typedef Location\n * @prop {string} lat - latitude\n * @prop {string} lon - longitude\n */\n\n/**\n * A Field in an Entry can have one of the following types that can be defined in Contentful. See Field Types for more details.\n * @memberof Entities\n * @typedef Field\n * @type EntryFields.Symbol | EntryFields.Text | EntryFields.Integer | EntryFields.Number | EntryFields.Date | EntryFields.Boolean | EntryFields.Location | Entities.Link | Array | Object\n */\n\n/**\n * @memberof Entities\n * @typedef Entry\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {Entities.Link} sys.contentType - Content Type used by this Entry\n * @prop {string=} sys.locale - If present, indicates the locale which this entry uses\n * @prop {Object} fields - Object with content for each field\n * @prop {function(): Object} toPlainObject() - Returns this Entry as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw entry data\n * @return {Entry} Wrapped entry data\n */\nfunction wrapEntry(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef EntryCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {Array=} errors - Array of errors that might occur when retrieving entries.\n * @prop {Object=} includes - Object with arrays of includes for Entries and Assets. This will be present if resolveLinks is on, and any linked entries or assets exist. Those links will be resolved in the Entries present in the items array, but they are also present here in raw form.\n * @prop {function(): Object} toPlainObject() - Returns this Entry collection as a plain JS object\n * @prop {function(?function=, space=): Object} stringifySafe(replacer,space) - Stringifies the entry collection, accounting for circular references. Circular references will be replaced with just a Link object, with a circular property set to true. See MDN and json-stringify-safe for more details on the arguments this method can take.\n */\n\n/**\n * Data is also mixed in with link getters if links exist and includes were requested\n * @private\n * @param {Object} data - Raw entry collection data\n * @param {Object} options - wrapper options\n * @return {EntryCollection} Wrapped entry collection data\n */\n\n\nfunction wrapEntryCollection(data, {\n resolveLinks,\n removeUnresolved\n}) {\n const wrappedData = (0, _stringifySafe.default)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n\n if (resolveLinks) {\n wrappedData.items = (0, _contentfulResolveResponse.default)(wrappedData, {\n removeUnresolved,\n itemEntryPoints: ['fields']\n });\n }\n\n return (0, _contentfulSdkCore.freezeSys)(wrappedData);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar space = _interopRequireWildcard(require(\"./space\"));\n\nvar entry = _interopRequireWildcard(require(\"./entry\"));\n\nvar asset = _interopRequireWildcard(require(\"./asset\"));\n\nvar assetKey = _interopRequireWildcard(require(\"./asset-key\"));\n\nvar contentType = _interopRequireWildcard(require(\"./content-type\"));\n\nvar locale = _interopRequireWildcard(require(\"./locale\"));\n\nvar tag = _interopRequireWildcard(require(\"./tag\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = {\n space,\n entry,\n asset,\n assetKey,\n contentType,\n locale,\n tag\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapLocale = wrapLocale;\nexports.wrapLocaleCollection = wrapLocaleCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Locale\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string} name - locale name (example: English)\n * @prop {string} code - locale code (example: en-US)\n * @prop {string} fallbackCode - the locale code to fallback to when there is not content for the current locale\n * @prop {boolean} default - If this is the default locale\n * @prop {boolean} optional - If the locale needs to be filled in on entries or not\n * @prop {function(): Object} toPlainObject() - Returns this Locale as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw locale data\n * @return {Locale} Wrapped locale data\n */\nfunction wrapLocale(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef LocaleCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Locale collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw locale collection data\n * @return {LocaleCollection} Wrapped locale collection data\n */\n\n\nfunction wrapLocaleCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapSpace = wrapSpace;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\n/**\n * @memberof Entities\n * @typedef Space\n * @prop {Object} sys - System metadata\n * @prop {string} sys.id - Space id\n * @prop {string} sys.type - Entity type\n * @prop {string} name - Space name\n * @prop {Array} locales - Array with locale codes\n * @prop {function(): Object} toPlainObject() - Returns this Space as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - API response for a Space\n * @return {Space}\n */\nfunction wrapSpace(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)(data));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapTag = wrapTag;\nexports.wrapTagCollection = wrapTagCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Tag\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string} name - Tag name\n * @prop {function(): Object} toPlainObject() - Returns this tag as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw tag data\n * @return {Tag} Wrapped tag data\n */\nfunction wrapTag(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef TagCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Tag collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw tag collection data\n * @return {TagCollection} Wrapped tag collection data\n */\n\n\nfunction wrapTagCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mixinStringifySafe;\n\nvar _jsonStringifySafe = _interopRequireDefault(require(\"json-stringify-safe\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction mixinStringifySafe(data) {\n return Object.defineProperty(data, 'stringifySafe', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function (serializer = null, indent = '') {\n return (0, _jsonStringifySafe.default)(this, serializer, indent, (key, value) => {\n return {\n sys: {\n type: 'Link',\n linkType: 'Entry',\n id: value.sys.id,\n circular: true\n }\n };\n });\n }\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = pagedSync;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\nvar _stringifySafe = _interopRequireDefault(require(\"./mixins/stringify-safe\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @memberof Sync\n * @typedef SyncCollection\n * @prop {Array} entries - All existing entries on first sync. New and updated entries on subsequent syncs.\n * @prop {Array} assets - All existing assets on first sync. New and updated assets on subsequent syncs.\n * @prop {Array} deletedEntries - List of deleted Entries since last sync\n * @prop {Array} deletedAssets - List of deleted Assets since last sync\n * @prop {string} nextSyncToken - Token to be sent to the next sync call\n * @prop {function(): Object} toPlainObject() - Returns this Sync collection as a plain JS object\n * @prop {function(?function=, space=): Object} stringifySafe(replacer,space) - Stringifies the Sync collection, accounting for circular references. Circular references will be replaced with just a Link object, with a circular property set to true. See MDN and json-stringify-safe for more details on the arguments this method can take.\n */\n\n/**\n * Deleted Entries are the same as Entries, but only appear on the sync API.\n * @memberof Sync\n * @typedef DeletedEntry\n * @type Entities.Entry\n */\n\n/**\n * Deleted Assets are the same as Assets, but only appear on the sync API.\n * @memberof Sync\n * @typedef DeletedAsset\n * @type Entities.Asset\n */\n\n/**\n * This module retrieves all the available pages for a sync operation\n * @private\n * @param {Object} http - HTTP client\n * @param {Object} query - Query object\n * @param {Object} options - Sync options object\n * @param {boolean} [options.resolveLinks = true] - If links should be resolved\n * @param {boolean} [options.removeUnresolved = false] - If unresolvable links should get removed\n * @param {boolean} [options.paginate = true] - If further sync pages should automatically be crawled\n * @return {Promise}\n */\nasync function pagedSync(http, query, options = {}) {\n if (!query || !query.initial && !query.nextSyncToken && !query.nextPageToken) {\n throw new Error('Please provide one of `initial`, `nextSyncToken` or `nextPageToken` parameters for syncing');\n }\n\n if (query && query.content_type && !query.type) {\n query.type = 'Entry';\n } else if (query && query.content_type && query.type && query.type !== 'Entry') {\n throw new Error('When using the `content_type` filter your `type` parameter cannot be different from `Entry`.');\n }\n\n const defaultOptions = {\n resolveLinks: true,\n removeUnresolved: false,\n paginate: true\n };\n\n const {\n resolveLinks,\n removeUnresolved,\n paginate\n } = _objectSpread(_objectSpread({}, defaultOptions), options);\n\n const syncOptions = {\n paginate\n };\n const response = await getSyncPage(http, [], query, syncOptions); // clones response.items used in includes because we don't want these to be mutated\n\n if (resolveLinks) {\n response.items = (0, _contentfulResolveResponse.default)(response, {\n removeUnresolved,\n itemEntryPoints: ['fields']\n });\n } // maps response items again after getters are attached\n\n\n const mappedResponseItems = mapResponseItems(response.items);\n\n if (response.nextSyncToken) {\n mappedResponseItems.nextSyncToken = response.nextSyncToken;\n }\n\n if (response.nextPageToken) {\n mappedResponseItems.nextPageToken = response.nextPageToken;\n }\n\n return (0, _contentfulSdkCore.freezeSys)((0, _stringifySafe.default)((0, _contentfulSdkCore.toPlainObject)(mappedResponseItems)));\n}\n/**\n * @private\n * @param {Array} items\n * @return {Object} Entities mapped to an object for each entity type\n */\n\n\nfunction mapResponseItems(items) {\n const reducer = type => {\n return (accumulated, item) => {\n if (item.sys.type === type) {\n accumulated.push((0, _contentfulSdkCore.toPlainObject)(item));\n }\n\n return accumulated;\n };\n };\n\n return {\n entries: items.reduce(reducer('Entry'), []),\n assets: items.reduce(reducer('Asset'), []),\n deletedEntries: items.reduce(reducer('DeletedEntry'), []),\n deletedAssets: items.reduce(reducer('DeletedAsset'), [])\n };\n}\n/**\n * If the response contains a nextPageUrl, extracts the sync token to get the\n * next page and calls itself again with that token.\n * Otherwise, if the response contains a nextSyncUrl, extracts the sync token\n * and returns it.\n * On each call of this function, any retrieved items are collected in the\n * supplied items array, which gets returned in the end\n * @private\n * @param {Object} http\n * @param {Array} items\n * @param {Object} query\n * @param {Object} options - Sync page options object\n * @param {boolean} [options.paginate = true] - If further sync pages should automatically be crawled\n * @return {Promise<{items: Array, nextSyncToken: string}>}\n */\n\n\nasync function getSyncPage(http, items, query, {\n paginate\n}) {\n if (query.nextSyncToken) {\n query.sync_token = query.nextSyncToken;\n delete query.nextSyncToken;\n }\n\n if (query.nextPageToken) {\n query.sync_token = query.nextPageToken;\n delete query.nextPageToken;\n }\n\n if (query.sync_token) {\n delete query.initial;\n delete query.type;\n delete query.content_type;\n delete query.limit;\n }\n\n const response = await http.get('sync', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n const data = response.data || {};\n items = items.concat(data.items || []);\n\n if (data.nextPageUrl) {\n if (paginate) {\n delete query.initial;\n query.sync_token = getToken(data.nextPageUrl);\n return getSyncPage(http, items, query, {\n paginate\n });\n }\n\n return {\n items: items,\n nextPageToken: getToken(data.nextPageUrl)\n };\n } else if (data.nextSyncUrl) {\n return {\n items: items,\n nextSyncToken: getToken(data.nextSyncUrl)\n };\n } else {\n return {\n items: []\n };\n }\n}\n/**\n * Extracts token out of an url\n * @private\n */\n\n\nfunction getToken(url) {\n const urlParts = url.split('?');\n return urlParts.length > 0 ? urlParts[1].replace('sync_token=', '') : '';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeSelect;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n* sdk relies heavily on sys metadata\n* so we cannot omit the sys property on sdk level entirely\n* and we have to ensure that at least `id` and `type` are present\n* */\nfunction normalizeSelect(query) {\n if (!query.select) {\n return query;\n } // The selection of fields for the query is limited\n // Get the different parts that are listed for selection\n\n\n const allSelects = Array.isArray(query.select) ? query.select : query.select.split(','); // Move the parts into a set for easy access and deduplication\n\n const selectedSet = new Set(allSelects); // If we already select all of `sys` we can just return\n // since we're anyway fetching everything that is needed\n\n if (selectedSet.has('sys')) {\n return query;\n } // We don't select `sys` so we need to ensure the minimum set\n\n\n selectedSet.add('sys.id');\n selectedSet.add('sys.type'); // Reassign the normalized sys properties\n\n return _objectSpread(_objectSpread({}, query), {}, {\n select: [...selectedSet].join(',')\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = validateTimestamp;\nexports.ValidationError = void 0;\n\nclass ValidationError extends Error {\n constructor(name, message) {\n super(`Invalid \"${name}\" provided, ` + message);\n this.name = 'ValidationError';\n }\n\n}\n\nexports.ValidationError = ValidationError;\n\nfunction validateTimestamp(name, timestamp, options) {\n options = options || {};\n\n if (typeof timestamp !== 'number') {\n throw new ValidationError(name, `only numeric values are allowed for timestamps, provided type was \"${typeof timestamp}\"`);\n }\n\n if (options.maximum && timestamp > options.maximum) {\n throw new ValidationError(name, `value (${timestamp}) cannot be further in the future than expected maximum (${options.maximum})`);\n }\n\n if (options.now && timestamp < options.now) {\n throw new ValidationError(name, `value (${timestamp}) cannot be in the past, current time was ${options.now}`);\n }\n}","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es-x/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global[\"fast-copy\"] = factory());\n})(this, (function () { 'use strict';\n\n var toStringFunction = Function.prototype.toString;\n var create = Object.create, defineProperty = Object.defineProperty, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols, getPrototypeOf$1 = Object.getPrototypeOf;\n var _a = Object.prototype, hasOwnProperty = _a.hasOwnProperty, propertyIsEnumerable = _a.propertyIsEnumerable;\n var SYMBOL_PROPERTIES = typeof getOwnPropertySymbols === 'function';\n var WEAK_MAP = typeof WeakMap === 'function';\n /**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\n var createCache = (function () {\n if (WEAK_MAP) {\n return function () { return new WeakMap(); };\n }\n var Cache = /** @class */ (function () {\n function Cache() {\n this._keys = [];\n this._values = [];\n }\n Cache.prototype.has = function (key) {\n return !!~this._keys.indexOf(key);\n };\n Cache.prototype.get = function (key) {\n return this._values[this._keys.indexOf(key)];\n };\n Cache.prototype.set = function (key, value) {\n this._keys.push(key);\n this._values.push(value);\n };\n return Cache;\n }());\n return function () { return new Cache(); };\n })();\n /**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\n var getCleanClone = function (object, realm) {\n var prototype = object.__proto__ || getPrototypeOf$1(object);\n if (!prototype) {\n return create(null);\n }\n var Constructor = prototype.constructor;\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n }\n catch (_a) { }\n }\n return create(prototype);\n };\n /**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneLoose = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n if (SYMBOL_PROPERTIES) {\n var symbols = getOwnPropertySymbols(object);\n for (var index = 0, length_1 = symbols.length, symbol = void 0; index < length_1; ++index) {\n symbol = symbols[index];\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneStrict = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n var properties = SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat(getOwnPropertySymbols(object))\n : getOwnPropertyNames(object);\n for (var index = 0, length_2 = properties.length, property = void 0, descriptor = void 0; index < length_2; ++index) {\n property = properties[index];\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n try {\n defineProperty(clone, property, descriptor);\n }\n catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n }\n else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\n var getRegExpFlags = function (regExp) {\n var flags = '';\n if (regExp.global) {\n flags += 'g';\n }\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n if (regExp.multiline) {\n flags += 'm';\n }\n if (regExp.unicode) {\n flags += 'u';\n }\n if (regExp.sticky) {\n flags += 'y';\n }\n return flags;\n };\n\n // utils\n var isArray = Array.isArray;\n var getPrototypeOf = Object.getPrototypeOf;\n var GLOBAL_THIS = (function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n return this;\n })();\n /**\n * @function copy\n *\n * @description\n * copy an value deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The value is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n function copy(value, options) {\n // manually coalesced instead of default parameters for performance\n var isStrict = !!(options && options.isStrict);\n var realm = (options && options.realm) || GLOBAL_THIS;\n var getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose;\n /**\n * @function handleCopy\n *\n * @description\n * copy the value recursively based on its type\n *\n * @param value the value to copy\n * @returns the copied value\n */\n var handleCopy = function (value, cache) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (cache.has(value)) {\n return cache.get(value);\n }\n var prototype = value.__proto__ || getPrototypeOf(value);\n var Constructor = prototype && prototype.constructor;\n // plain objects\n if (!Constructor || Constructor === realm.Object) {\n return getObjectClone(value, realm, handleCopy, cache);\n }\n var clone;\n // arrays\n if (isArray(value)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(value, realm, handleCopy, cache);\n }\n clone = new Constructor();\n cache.set(value, clone);\n for (var index = 0, length_1 = value.length; index < length_1; ++index) {\n clone[index] = handleCopy(value[index], cache);\n }\n return clone;\n }\n // dates\n if (value instanceof realm.Date) {\n return new Constructor(value.getTime());\n }\n // regexps\n if (value instanceof realm.RegExp) {\n clone = new Constructor(value.source, value.flags || getRegExpFlags(value));\n clone.lastIndex = value.lastIndex;\n return clone;\n }\n // maps\n if (realm.Map && value instanceof realm.Map) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value, key) {\n clone.set(key, handleCopy(value, cache));\n });\n return clone;\n }\n // sets\n if (realm.Set && value instanceof realm.Set) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value) {\n clone.add(handleCopy(value, cache));\n });\n return clone;\n }\n // blobs\n if (realm.Blob && value instanceof realm.Blob) {\n return value.slice(0, value.size, value.type);\n }\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(value)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(value.length)\n : new Constructor(value.length);\n cache.set(value, clone);\n value.copy(clone);\n return clone;\n }\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(value)) {\n clone = new Constructor(value.buffer.slice(0));\n cache.set(value, clone);\n return clone;\n }\n // arraybuffers\n if (value instanceof realm.ArrayBuffer) {\n clone = value.slice(0);\n cache.set(value, clone);\n return clone;\n }\n }\n // if the value cannot / should not be cloned, don't\n if (\n // promise-like\n typeof value.then === 'function' ||\n // errors\n value instanceof Error ||\n // weakmaps\n (realm.WeakMap && value instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && value instanceof realm.WeakSet)) {\n return value;\n }\n // assume anything left is a custom constructor\n return getObjectClone(value, realm, handleCopy, cache);\n };\n return handleCopy(value, createCache());\n }\n // Adding reference to allow usage in CommonJS libraries compiled using TSC, which\n // expects there to be a default property on the exported value. See\n // [#37](https://github.com/planttheidea/fast-copy/issues/37) for details.\n copy.default = copy;\n /**\n * @function strictCopy\n *\n * @description\n * copy the value with `strict` option pre-applied\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n copy.strict = function strictCopy(value, options) {\n return copy(value, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n };\n\n return copy;\n\n}));\n//# sourceMappingURL=fast-copy.js.map\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/g, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","exports = module.exports = stringify\nexports.getSerialize = serializer\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n","/**\n * lodash 4.0.1 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nclass AbortError extends Error {\n\tconstructor() {\n\t\tsuper('Throttled function aborted');\n\t\tthis.name = 'AbortError';\n\t}\n}\n\nconst pThrottle = ({limit, interval, strict}) => {\n\tif (!Number.isFinite(limit)) {\n\t\tthrow new TypeError('Expected `limit` to be a finite number');\n\t}\n\n\tif (!Number.isFinite(interval)) {\n\t\tthrow new TypeError('Expected `interval` to be a finite number');\n\t}\n\n\tconst queue = new Map();\n\n\tlet currentTick = 0;\n\tlet activeCount = 0;\n\n\tfunction windowedDelay() {\n\t\tconst now = Date.now();\n\n\t\tif ((now - currentTick) > interval) {\n\t\t\tactiveCount = 1;\n\t\t\tcurrentTick = now;\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (activeCount < limit) {\n\t\t\tactiveCount++;\n\t\t} else {\n\t\t\tcurrentTick += interval;\n\t\t\tactiveCount = 1;\n\t\t}\n\n\t\treturn currentTick - now;\n\t}\n\n\tconst strictTicks = [];\n\n\tfunction strictDelay() {\n\t\tconst now = Date.now();\n\n\t\tif (strictTicks.length < limit) {\n\t\t\tstrictTicks.push(now);\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst earliestTime = strictTicks.shift() + interval;\n\n\t\tif (now >= earliestTime) {\n\t\t\tstrictTicks.push(now);\n\t\t\treturn 0;\n\t\t}\n\n\t\tstrictTicks.push(earliestTime);\n\t\treturn earliestTime - now;\n\t}\n\n\tconst getDelay = strict ? strictDelay : windowedDelay;\n\n\treturn function_ => {\n\t\tconst throttled = function (...args) {\n\t\t\tif (!throttled.isEnabled) {\n\t\t\t\treturn (async () => function_.apply(this, args))();\n\t\t\t}\n\n\t\t\tlet timeout;\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst execute = () => {\n\t\t\t\t\tresolve(function_.apply(this, args));\n\t\t\t\t\tqueue.delete(timeout);\n\t\t\t\t};\n\n\t\t\t\ttimeout = setTimeout(execute, getDelay());\n\n\t\t\t\tqueue.set(timeout, reject);\n\t\t\t});\n\t\t};\n\n\t\tthrottled.abort = () => {\n\t\t\tfor (const timeout of queue.keys()) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tqueue.get(timeout)(new AbortError());\n\t\t\t}\n\n\t\t\tqueue.clear();\n\t\t\tstrictTicks.splice(0, strictTicks.length);\n\t\t};\n\n\t\tthrottled.isEnabled = true;\n\n\t\treturn throttled;\n\t};\n};\n\nmodule.exports = pThrottle;\nmodule.exports.AbortError = AbortError;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n"],"names":["DEFAULT_HOST","PricingStrategy","parsePricingStrategy","value","FIXED_COST","MARGINAL_PER_UNIT","PER_UNIT","isPricingStrategy","SyntaxError","mapPricingPlanContentEntryToPricingPlan","entry","fields","configuration","map","mapPricingPlanContentConfigurationItemToPricingTier","starter","pricing_strategy","unit_description","unit_limit_lower","unit_limit_upper","prices","pricingStrategy","unitDescription","unitLimitLower","unitLimitUpper","mapPricingPlanContentConfigurationItemPriceToPricingTierPrice","currency","unit_price","unitPrice","SELECT_QUERY","join","SEARCH_ADDONS_QUERY","concat","EDITION_SUFFIXES","NON_STANDARD_EDITION_SUFFIXES","FREE","PREMIUM","ENTERPRISE","removeEditionSuffix","productKey","replace","RegExp","suffix","getPricingPlansForEditionSuffixedKey","productContent","editionSuffixedProductKey","monthly","annual","reduce","matchingEditionSuffix","editionSuffix","endsWith","STANDARD","defaultFreePricingPlanMonthly","defaultFreePricingPlanYearly","defaultStdPricingPlanMonthly","defaultStdPricingPlanYearly","defaultPremiumPricingPlanMonthly","defaultPremiumPricingPlanYearly","defaultEnterprisePricingPlanMonthly","defaultEnterprisePricingPlanYearly","ProductCatalogClient","constructor","options","this","contentfulClient","createClient","host","getPricing","productKeys","items","getEntries","Set","values","ret","editionlessKey","find","key","searchAddons","parentProductKey","query","limit","description","name","pricing","CCPProductCatalogClient","getOfferingsBySKU","offeringSKUs","offeringSKU","contentfulOffering","sku","undefined","PricingPeriod","sanitizePricingPlans","sanitizePricingPlan","pricingPlan","priceTiers","correctedUnitLimitLower","Math","max","Object","slice","correctFirstTierUnitLimitLower","HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY","convertCCPPricingStrategyToHAMS","ccpPricingPolicy","hamsPricingStrategy","Error","ProductPricingStore","productCatalogClient","ccpProductCatalogClient","isProductKeyUncached","cache","has","isOfferingSKUUncached","getCachedProducts","async","Promise","all","pricingPlans","get","filter","result","getCachedOfferings","Map","getProducts","uncachedProductKeys","length","fetchProducts","uncachedOfferingSKUs","fetchOfferings","getOfferings","addon","pricingPromise","forEach","set","resolve","reject","offering","ccpPricingPlans","defaultPricingPlans","ccpPPContent","monthlyCCP","annualCCP","primaryCycle","primaryCycle_interval","ccpTiers","tiers","tiersMode","chargeElement","ccpTier","floor","ceiling","unitAmount","flatAmount","convertCCPTiersToHAMS","convertCCPPricingPlansToHAMS","e","GetIntrinsic","callBind","$indexOf","module","exports","allowMissing","intrinsic","bind","$apply","$call","$reflectApply","call","$gOPD","$defineProperty","$max","originalFunction","func","arguments","desc","configurable","applyBind","apply","_typeof","Symbol","iterator","obj","prototype","_toConsumableArray","arr","Array","isArray","i","arr2","from","UNRESOLVED_LINK","isLink","object","sys","type","makeLookupKey","id","walkMutate","input","predicate","mutator","removeUnresolved","hasOwnProperty","val","cleanUpLinks","response","responseClone","allIncludes","keys","includes","allEntries","entityMap","entity","item","entryObject","itemEntryPoints","ownKey","indexOf","entryObj","entryPoint","makeEntryObject","assign","link","resolvedLink","_link$sys","linkType","lookupKey","getLink","normalizeLink","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread2","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_wrapRegExp","re","groups","BabelRegExp","_super","_groups","WeakMap","flags","_this","_setPrototypeOf","buildGroups","g","create","_inherits","exec","str","substitution","_","args","writable","subClass","superClass","TypeError","o","p","setPrototypeOf","__proto__","_unsupportedIterableToArray","minLen","_arrayLikeToArray","n","toString","test","len","noop","PERCENTAGE_REGEX","calculateLimit","_type$match","match","percentage","parseInt","round","min","createThrottle","logger","interval","strict","delay","ms","setTimeout","defaultWait","attempts","pow","SQRT2","HOST_REGEX","createHttpClient","axios","config","insecure","retryOnError","logHandler","level","data","title","message","a","console","error","log","headers","httpAgent","httpsAgent","timeout","throttle","proxy","basePath","adapter","maxContentLength","maxBodyLength","accessToken","missingAccessTokenError","protocol","space","hostname","defaultHostname","port","parsed","split","_parsed","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","_nonIterableRest","Boolean","baseURL","Authorization","axiosOptions","paramsSerializer","responseLogger","requestLogger","instance","httpClientParams","cloneWithNewParams","newParams","onBeforeRequest","interceptors","request","use","getToken","then","asyncToken","axiosInstance","_axiosInstance$defaul","defaults","isCalculated","requestInterceptorId","rawLimit","nextLimit","eject","rateLimitThrottle","maxRetry","_instance$defaults","_instance$defaults$re","_instance$defaults$re2","doneAttempts","retryErrorType","wait","status","random","rateLimit","retryLimit","onError","createRequestConfig","_ref","resolveLinks","params","enforceObjPath","path","JSON","stringify","deepFreeze","_step","_iterator","allowArrayLike","it","F","s","f","normalCompletion","didErr","step","return","_createForOfIteratorHelper","getOwnPropertyNames","freeze","freezeSys","getBrowserOS","win","window","userAgent","navigator","platform","getUserAgentHeader","sdk","application","integration","feature","headerParts","product","toPlainObject","errorHandler","errorResponse","errorName","token","substr","errorData","statusText","details","url","method","payloadData","requestId","_unused","_errorData$message","String","percentTwenties","Format","formatters","RFC1738","RFC3986","parse","formats","utils","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","delimiter","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","fromCharCode","parseArrayValue","parseKeys","givenKey","valuesParsed","child","segment","parent","index","chain","leaf","root","cleanRoot","charAt","isNaN","parseObject","opts","isRegExp","normalizeParseOptions","tempObj","cleanStr","Infinity","parts","skipIndex","part","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","Date","toISOString","defaultFormat","addQueryPrefix","encode","encoder","encodeValuesOnly","format","formatter","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","commaRoundTrip","sort","sideChannel","v","tmpSc","findFlag","RangeError","isBuffer","keyValue","valuesArray","valuesJoined","objKeys","adjustedPrefix","j","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","array","toUpperCase","arrayToObject","acc","b","queue","prop","refs","pop","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","kind","string","escape","out","c","charCodeAt","fn","mapped","mergeTarget","targetItem","_objectSpread","environment","userAgentHeader","_contentfulSdkCore","http","_axios","default","getGlobalOptions","_createGlobalOptions","spaceBaseUrl","environmentBaseUrl","_header","obscureAuthTokenInResponse","_createContentfulApi","_interopRequireDefault","__esModule","wrapSpace","_entities","wrapContentType","wrapContentTypeCollection","contentType","wrapEntry","wrapEntryCollection","wrapAsset","wrapAssetCollection","asset","wrapTag","wrapTagCollection","tag","wrapAssetKey","assetKey","wrapLocaleCollection","locale","notFoundError","switchToEnvironment","getSpace","switchToSpace","getContentType","getContentTypes","getEntry","_normalizeSelect","getAsset","getAssets","getTag","getTags","createAssetKey","expiresAt","now","currentMaxLifetime","_validateTimestamp","maximum","post","getLocales","parseEntries","sync","paginate","_pagedSync","globalSettings","_fastCopy","wrappedData","_stringifySafe","_contentfulResolveResponse","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","hasPropertyDescriptor","_default","wrapLocale","serializer","indent","_jsonStringifySafe","circular","initial","nextSyncToken","nextPageToken","content_type","syncOptions","getSyncPage","mappedResponseItems","reducer","accumulated","entries","assets","deletedEntries","deletedAssets","mapResponseItems","sync_token","nextPageUrl","nextSyncUrl","urlParts","select","allSelects","selectedSet","add","timestamp","ValidationError","super","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","anObject","iteratorClose","ENTRIES","$","$find","addToUnscopables","FIND","SKIPS_HOLES","proto","forced","callbackfn","stat","checkCorrectnessOfIteration","iterable","descriptor","uncurryThis","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","un$StartsWith","startsWith","stringSlice","CORRECT_IS_REGEXP_LOGIC","searchString","that","search","toStringFunction","Function","getPrototypeOf$1","getPrototypeOf","_a","propertyIsEnumerable","SYMBOL_PROPERTIES","WEAK_MAP","createCache","Cache","_keys","_values","getCleanClone","realm","Constructor","getObjectCloneLoose","handleCopy","clone","length_1","symbol","getObjectCloneStrict","properties","length_2","property","GLOBAL_THIS","globalThis","self","copy","isStrict","getObjectClone","regExp","getTime","global","ignoreCase","multiline","unicode","sticky","lastIndex","Blob","size","Buffer","allocUnsafe","ArrayBuffer","isView","buffer","WeakSet","factory","ERROR_MESSAGE","toStr","funcType","bound","binder","boundLength","boundArgs","Empty","implementation","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","x","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Atomics","BigInt","DataView","decodeURI","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","Number","parseFloat","Proxy","ReferenceError","Reflect","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakRef","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","splice","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","first","last","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","replacer","cycleReplacer","stack","thisPos","spaces","getSerialize","transform","funcProto","objectProto","funcToString","objectCtorString","objectToString","getPrototype","arg","isObjectLike","isHostObject","Ctor","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","valueOf","functionToString","$match","$slice","$toUpperCase","$toLowerCase","toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","addNumericSeparator","num","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","seen","maxStringLength","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","noIndent","newOpts","m","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","nodeName","getAttribute","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","isPlainObject","protoTag","stringTag","l","remaining","trailer","lowbyte","lineJoiner","isArr","symMap","k","AbortError","currentTick","activeCount","strictTicks","getDelay","earliestTime","shift","function_","throttled","isEnabled","delete","abort","clearTimeout","clear","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","list","curr","$wm","$m","$o","channel","assert","objects","node","listGet","listHas","listSet"],"sourceRoot":""}