gitextract_z0wy0_zz/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── LICENSE.md │ └── MIT-LICENSE.md ├── .gitignore ├── .nvmrc ├── CHANGELOG.md ├── README.txt ├── algolia.php ├── classmap.php ├── composer.json ├── css/ │ ├── algolia-autocomplete.css │ ├── algolia-instantsearch.css │ └── index.php ├── includes/ │ ├── admin/ │ │ ├── class-algolia-admin-page-autocomplete.php │ │ ├── class-algolia-admin-page-native-search.php │ │ ├── class-algolia-admin-page-premium-support.php │ │ ├── class-algolia-admin-page-seo.php │ │ ├── class-algolia-admin-page-settings.php │ │ ├── class-algolia-admin-page-woocommerce.php │ │ ├── class-algolia-admin-template-notices.php │ │ ├── class-algolia-admin.php │ │ ├── css/ │ │ │ ├── algolia-admin.css │ │ │ └── index.php │ │ ├── fonts/ │ │ │ └── index.php │ │ ├── img/ │ │ │ └── index.php │ │ ├── index.php │ │ ├── js/ │ │ │ ├── algolia-admin.js │ │ │ ├── index.php │ │ │ ├── push-settings-button.js │ │ │ └── reindex-button.js │ │ └── partials/ │ │ ├── form-options-premium-support.php │ │ ├── form-options-seo.php │ │ ├── form-options-woocommerce.php │ │ ├── form-options.php │ │ ├── form-override-search-option.php │ │ ├── form-override-search-version-option.php │ │ ├── index.php │ │ ├── page-autocomplete-config.php │ │ ├── page-autocomplete.php │ │ └── page-search.php │ ├── class-algolia-api.php │ ├── class-algolia-autocomplete-config.php │ ├── class-algolia-cli.php │ ├── class-algolia-compatibility.php │ ├── class-algolia-plugin.php │ ├── class-algolia-scripts.php │ ├── class-algolia-search.php │ ├── class-algolia-settings.php │ ├── class-algolia-styles.php │ ├── class-algolia-template-loader.php │ ├── class-algolia-utils.php │ ├── factories/ │ │ ├── class-algolia-http-client-interface-factory.php │ │ ├── class-algolia-plugin-factory.php │ │ └── class-algolia-search-client-factory.php │ ├── index.php │ ├── indices/ │ │ ├── class-algolia-index-replica.php │ │ ├── class-algolia-index.php │ │ ├── class-algolia-posts-index.php │ │ ├── class-algolia-searchable-posts-index.php │ │ ├── class-algolia-terms-index.php │ │ ├── class-algolia-users-index.php │ │ └── index.php │ ├── utilities/ │ │ ├── class-algolia-health-panel.php │ │ ├── class-algolia-template-utils.php │ │ ├── class-algolia-update-messages.php │ │ └── class-algolia-version-utils.php │ └── watchers/ │ ├── class-algolia-changes-watcher.php │ ├── class-algolia-post-changes-watcher.php │ ├── class-algolia-term-changes-watcher.php │ ├── class-algolia-user-changes-watcher.php │ └── index.php ├── index.php ├── js/ │ ├── algoliasearch/ │ │ ├── README.md │ │ ├── dist/ │ │ │ ├── algoliasearch-lite.d.ts │ │ │ ├── algoliasearch-lite.esm.browser.js │ │ │ ├── algoliasearch-lite.umd.js │ │ │ ├── algoliasearch.cjs.js │ │ │ ├── algoliasearch.d.ts │ │ │ ├── algoliasearch.esm.browser.js │ │ │ └── algoliasearch.umd.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── lite.d.ts │ │ ├── lite.js │ │ └── package.json │ ├── autocomplete-noconflict.js │ ├── autocomplete.js/ │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist/ │ │ │ ├── autocomplete.angular.js │ │ │ ├── autocomplete.jquery.js │ │ │ └── autocomplete.js │ │ ├── examples/ │ │ │ ├── basic.html │ │ │ ├── basic_angular.html │ │ │ ├── basic_jquery.html │ │ │ └── index.html │ │ ├── index.js │ │ ├── index_angular.js │ │ ├── index_jquery.js │ │ ├── karma.conf.js │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── netlify-deploy.js │ │ │ └── release.sh │ │ ├── src/ │ │ │ ├── angular/ │ │ │ │ └── directive.js │ │ │ ├── autocomplete/ │ │ │ │ ├── css.js │ │ │ │ ├── dataset.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── event_bus.js │ │ │ │ ├── event_emitter.js │ │ │ │ ├── html.js │ │ │ │ ├── input.js │ │ │ │ └── typeahead.js │ │ │ ├── common/ │ │ │ │ ├── dom.js │ │ │ │ ├── parseAlgoliaClientVersion.js │ │ │ │ └── utils.js │ │ │ ├── jquery/ │ │ │ │ └── plugin.js │ │ │ ├── sources/ │ │ │ │ ├── hits.js │ │ │ │ ├── index.js │ │ │ │ └── popularIn.js │ │ │ └── standalone/ │ │ │ └── index.js │ │ ├── test/ │ │ │ ├── ci.sh │ │ │ ├── fixtures.js │ │ │ ├── helpers/ │ │ │ │ ├── mocks.js │ │ │ │ └── waits_for.js │ │ │ ├── integration/ │ │ │ │ ├── test.html │ │ │ │ └── test.js │ │ │ ├── playground.css │ │ │ ├── playground.html │ │ │ ├── playground_angular.html │ │ │ ├── playground_jquery.html │ │ │ ├── test.bundle.js │ │ │ └── unit/ │ │ │ ├── angular_spec.js │ │ │ ├── dataset_spec.js │ │ │ ├── dropdown_spec.js │ │ │ ├── event_emitter_spec.js │ │ │ ├── hits_spec.js │ │ │ ├── input_spec.js │ │ │ ├── jquery_spec.js │ │ │ ├── parseAlgoliaClientVersion_spec.js │ │ │ ├── popularIn_spec.js │ │ │ ├── standalone_spec.js │ │ │ ├── typeahead_spec.js │ │ │ └── utils_spec.js │ │ ├── version.js │ │ └── zepto.js │ └── instantsearch.js/ │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── cjs/ │ │ ├── components/ │ │ │ ├── Answers/ │ │ │ │ └── Answers.js │ │ │ ├── Breadcrumb/ │ │ │ │ └── Breadcrumb.js │ │ │ ├── ClearRefinements/ │ │ │ │ └── ClearRefinements.js │ │ │ ├── CurrentRefinements/ │ │ │ │ └── CurrentRefinements.js │ │ │ ├── GeoSearchControls/ │ │ │ │ ├── GeoSearchButton.js │ │ │ │ ├── GeoSearchControls.js │ │ │ │ └── GeoSearchToggle.js │ │ │ ├── Highlight/ │ │ │ │ └── Highlight.js │ │ │ ├── Hits/ │ │ │ │ └── Hits.js │ │ │ ├── InfiniteHits/ │ │ │ │ └── InfiniteHits.js │ │ │ ├── InternalHighlight/ │ │ │ │ └── InternalHighlight.js │ │ │ ├── MenuSelect/ │ │ │ │ └── MenuSelect.js │ │ │ ├── Pagination/ │ │ │ │ ├── Pagination.js │ │ │ │ └── PaginationLink.js │ │ │ ├── Panel/ │ │ │ │ └── Panel.js │ │ │ ├── PoweredBy/ │ │ │ │ └── PoweredBy.js │ │ │ ├── QueryRuleCustomData/ │ │ │ │ └── QueryRuleCustomData.js │ │ │ ├── RangeInput/ │ │ │ │ └── RangeInput.js │ │ │ ├── RefinementList/ │ │ │ │ ├── RefinementList.js │ │ │ │ └── RefinementListItem.js │ │ │ ├── RelevantSort/ │ │ │ │ └── RelevantSort.js │ │ │ ├── ReverseHighlight/ │ │ │ │ └── ReverseHighlight.js │ │ │ ├── ReverseSnippet/ │ │ │ │ └── ReverseSnippet.js │ │ │ ├── SearchBox/ │ │ │ │ └── SearchBox.js │ │ │ ├── Selector/ │ │ │ │ └── Selector.js │ │ │ ├── Slider/ │ │ │ │ ├── Pit.js │ │ │ │ ├── Rheostat.js │ │ │ │ └── Slider.js │ │ │ ├── Snippet/ │ │ │ │ └── Snippet.js │ │ │ ├── Stats/ │ │ │ │ └── Stats.js │ │ │ ├── Template/ │ │ │ │ └── Template.js │ │ │ ├── ToggleRefinement/ │ │ │ │ └── ToggleRefinement.js │ │ │ └── VoiceSearch/ │ │ │ └── VoiceSearch.js │ │ ├── connectors/ │ │ │ ├── answers/ │ │ │ │ └── connectAnswers.js │ │ │ ├── autocomplete/ │ │ │ │ └── connectAutocomplete.js │ │ │ ├── breadcrumb/ │ │ │ │ └── connectBreadcrumb.js │ │ │ ├── clear-refinements/ │ │ │ │ └── connectClearRefinements.js │ │ │ ├── configure/ │ │ │ │ └── connectConfigure.js │ │ │ ├── configure-related-items/ │ │ │ │ └── connectConfigureRelatedItems.js │ │ │ ├── current-refinements/ │ │ │ │ └── connectCurrentRefinements.js │ │ │ ├── dynamic-widgets/ │ │ │ │ └── connectDynamicWidgets.js │ │ │ ├── frequently-bought-together/ │ │ │ │ └── connectFrequentlyBoughtTogether.js │ │ │ ├── geo-search/ │ │ │ │ └── connectGeoSearch.js │ │ │ ├── hierarchical-menu/ │ │ │ │ └── connectHierarchicalMenu.js │ │ │ ├── hits/ │ │ │ │ ├── connectHits.js │ │ │ │ └── connectHitsWithInsights.js │ │ │ ├── hits-per-page/ │ │ │ │ └── connectHitsPerPage.js │ │ │ ├── index.js │ │ │ ├── infinite-hits/ │ │ │ │ ├── connectInfiniteHits.js │ │ │ │ └── connectInfiniteHitsWithInsights.js │ │ │ ├── looking-similar/ │ │ │ │ └── connectLookingSimilar.js │ │ │ ├── menu/ │ │ │ │ └── connectMenu.js │ │ │ ├── numeric-menu/ │ │ │ │ └── connectNumericMenu.js │ │ │ ├── pagination/ │ │ │ │ ├── Paginator.js │ │ │ │ └── connectPagination.js │ │ │ ├── powered-by/ │ │ │ │ └── connectPoweredBy.js │ │ │ ├── query-rules/ │ │ │ │ └── connectQueryRules.js │ │ │ ├── range/ │ │ │ │ └── connectRange.js │ │ │ ├── rating-menu/ │ │ │ │ └── connectRatingMenu.js │ │ │ ├── refinement-list/ │ │ │ │ └── connectRefinementList.js │ │ │ ├── related-products/ │ │ │ │ └── connectRelatedProducts.js │ │ │ ├── relevant-sort/ │ │ │ │ └── connectRelevantSort.js │ │ │ ├── search-box/ │ │ │ │ └── connectSearchBox.js │ │ │ ├── sort-by/ │ │ │ │ └── connectSortBy.js │ │ │ ├── stats/ │ │ │ │ └── connectStats.js │ │ │ ├── toggle-refinement/ │ │ │ │ ├── connectToggleRefinement.js │ │ │ │ └── types.js │ │ │ ├── trending-items/ │ │ │ │ └── connectTrendingItems.js │ │ │ └── voice-search/ │ │ │ └── connectVoiceSearch.js │ │ ├── helpers/ │ │ │ ├── components/ │ │ │ │ ├── Highlight.js │ │ │ │ ├── ReverseHighlight.js │ │ │ │ ├── ReverseSnippet.js │ │ │ │ ├── Snippet.js │ │ │ │ └── index.js │ │ │ ├── get-insights-anonymous-user-token.js │ │ │ ├── highlight.js │ │ │ ├── index.js │ │ │ ├── insights.js │ │ │ ├── reverseHighlight.js │ │ │ ├── reverseSnippet.js │ │ │ └── snippet.js │ │ ├── index.js │ │ ├── lib/ │ │ │ ├── InstantSearch.js │ │ │ ├── createHelpers.js │ │ │ ├── formatNumber.js │ │ │ ├── infiniteHitsCache/ │ │ │ │ ├── index.js │ │ │ │ └── sessionStorage.js │ │ │ ├── insights/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── listener.js │ │ │ ├── main.js │ │ │ ├── routers/ │ │ │ │ ├── history.js │ │ │ │ └── index.js │ │ │ ├── server.js │ │ │ ├── stateMappings/ │ │ │ │ ├── index.js │ │ │ │ ├── simple.js │ │ │ │ └── singleIndex.js │ │ │ ├── suit.js │ │ │ ├── templating/ │ │ │ │ ├── index.js │ │ │ │ ├── prepareTemplateProps.js │ │ │ │ └── renderTemplate.js │ │ │ ├── utils/ │ │ │ │ ├── addWidgetId.js │ │ │ │ ├── capitalize.js │ │ │ │ ├── checkIndexUiState.js │ │ │ │ ├── checkRendering.js │ │ │ │ ├── clearRefinements.js │ │ │ │ ├── concatHighlightedParts.js │ │ │ │ ├── convertNumericRefinementsToFilters.js │ │ │ │ ├── createConcurrentSafePromise.js │ │ │ │ ├── createSendEventForFacet.js │ │ │ │ ├── createSendEventForHits.js │ │ │ │ ├── cx.js │ │ │ │ ├── debounce.js │ │ │ │ ├── defer.js │ │ │ │ ├── detect-insights-client.js │ │ │ │ ├── documentation.js │ │ │ │ ├── escape-highlight.js │ │ │ │ ├── escape-html.js │ │ │ │ ├── escape.js │ │ │ │ ├── escapeFacetValue.js │ │ │ │ ├── escapeRefinement.js │ │ │ │ ├── find.js │ │ │ │ ├── findIndex.js │ │ │ │ ├── geo-search.js │ │ │ │ ├── getAppIdAndApiKey.js │ │ │ │ ├── getContainerNode.js │ │ │ │ ├── getHighlightFromSiblings.js │ │ │ │ ├── getHighlightedParts.js │ │ │ │ ├── getObjectType.js │ │ │ │ ├── getPropertyByPath.js │ │ │ │ ├── getRefinements.js │ │ │ │ ├── getWidgetAttribute.js │ │ │ │ ├── hits-absolute-position.js │ │ │ │ ├── hits-query-id.js │ │ │ │ ├── hydrateRecommendCache.js │ │ │ │ ├── hydrateSearchClient.js │ │ │ │ ├── index.js │ │ │ │ ├── isDomElement.js │ │ │ │ ├── isEqual.js │ │ │ │ ├── isFacetRefined.js │ │ │ │ ├── isFiniteNumber.js │ │ │ │ ├── isIndexWidget.js │ │ │ │ ├── isPlainObject.js │ │ │ │ ├── isSpecialClick.js │ │ │ │ ├── logger.js │ │ │ │ ├── mergeSearchParameters.js │ │ │ │ ├── noop.js │ │ │ │ ├── omit.js │ │ │ │ ├── prepareTemplateProps.js │ │ │ │ ├── range.js │ │ │ │ ├── render-args.js │ │ │ │ ├── renderTemplate.js │ │ │ │ ├── resolveSearchParameters.js │ │ │ │ ├── reverseHighlightedParts.js │ │ │ │ ├── safelyRunOnBrowser.js │ │ │ │ ├── serializer.js │ │ │ │ ├── setIndexHelperState.js │ │ │ │ ├── toArray.js │ │ │ │ ├── typedObject.js │ │ │ │ ├── unescape.js │ │ │ │ ├── unescapeRefinement.js │ │ │ │ ├── uniq.js │ │ │ │ ├── uuid.js │ │ │ │ └── walkIndex.js │ │ │ ├── version.js │ │ │ └── voiceSearchHelper/ │ │ │ ├── index.js │ │ │ └── types.js │ │ ├── middlewares/ │ │ │ ├── createInsightsMiddleware.js │ │ │ ├── createMetadataMiddleware.js │ │ │ ├── createRouterMiddleware.js │ │ │ └── index.js │ │ ├── templates/ │ │ │ ├── carousel/ │ │ │ │ └── carousel.js │ │ │ └── index.js │ │ ├── types/ │ │ │ ├── algoliasearch.js │ │ │ ├── component.js │ │ │ ├── connector.js │ │ │ ├── index.js │ │ │ ├── insights.js │ │ │ ├── instantsearch.js │ │ │ ├── middleware.js │ │ │ ├── render-state.js │ │ │ ├── results.js │ │ │ ├── router.js │ │ │ ├── templates.js │ │ │ ├── ui-state.js │ │ │ ├── utils.js │ │ │ ├── widget-factory.js │ │ │ └── widget.js │ │ └── widgets/ │ │ ├── analytics/ │ │ │ └── analytics.js │ │ ├── answers/ │ │ │ ├── answers.js │ │ │ └── defaultTemplates.js │ │ ├── breadcrumb/ │ │ │ ├── breadcrumb.js │ │ │ └── defaultTemplates.js │ │ ├── clear-refinements/ │ │ │ ├── clear-refinements.js │ │ │ └── defaultTemplates.js │ │ ├── configure/ │ │ │ └── configure.js │ │ ├── configure-related-items/ │ │ │ └── configure-related-items.js │ │ ├── current-refinements/ │ │ │ └── current-refinements.js │ │ ├── dynamic-widgets/ │ │ │ └── dynamic-widgets.js │ │ ├── frequently-bought-together/ │ │ │ └── frequently-bought-together.js │ │ ├── geo-search/ │ │ │ ├── GeoSearchRenderer.d.js │ │ │ ├── GeoSearchRenderer.js │ │ │ ├── createHTMLMarker.js │ │ │ ├── defaultTemplates.js │ │ │ └── geo-search.js │ │ ├── hierarchical-menu/ │ │ │ ├── defaultTemplates.js │ │ │ └── hierarchical-menu.js │ │ ├── hits/ │ │ │ ├── defaultTemplates.js │ │ │ └── hits.js │ │ ├── hits-per-page/ │ │ │ └── hits-per-page.js │ │ ├── index/ │ │ │ └── index.js │ │ ├── index.js │ │ ├── infinite-hits/ │ │ │ ├── defaultTemplates.js │ │ │ └── infinite-hits.js │ │ ├── looking-similar/ │ │ │ └── looking-similar.js │ │ ├── menu/ │ │ │ ├── defaultTemplates.js │ │ │ └── menu.js │ │ ├── menu-select/ │ │ │ ├── defaultTemplates.js │ │ │ └── menu-select.js │ │ ├── numeric-menu/ │ │ │ ├── defaultTemplates.js │ │ │ └── numeric-menu.js │ │ ├── pagination/ │ │ │ └── pagination.js │ │ ├── panel/ │ │ │ └── panel.js │ │ ├── places/ │ │ │ └── places.js │ │ ├── powered-by/ │ │ │ └── powered-by.js │ │ ├── query-rule-context/ │ │ │ └── query-rule-context.js │ │ ├── query-rule-custom-data/ │ │ │ └── query-rule-custom-data.js │ │ ├── range-input/ │ │ │ └── range-input.js │ │ ├── range-slider/ │ │ │ └── range-slider.js │ │ ├── rating-menu/ │ │ │ ├── defaultTemplates.js │ │ │ └── rating-menu.js │ │ ├── refinement-list/ │ │ │ ├── defaultTemplates.js │ │ │ └── refinement-list.js │ │ ├── related-products/ │ │ │ └── related-products.js │ │ ├── relevant-sort/ │ │ │ ├── defaultTemplates.js │ │ │ └── relevant-sort.js │ │ ├── search-box/ │ │ │ ├── defaultTemplates.js │ │ │ └── search-box.js │ │ ├── sort-by/ │ │ │ └── sort-by.js │ │ ├── stats/ │ │ │ ├── defaultTemplates.js │ │ │ └── stats.js │ │ ├── toggle-refinement/ │ │ │ ├── defaultTemplates.js │ │ │ └── toggle-refinement.js │ │ ├── trending-items/ │ │ │ └── trending-items.js │ │ └── voice-search/ │ │ ├── defaultTemplates.js │ │ └── voice-search.js │ ├── dist/ │ │ ├── instantsearch.development.d.ts │ │ ├── instantsearch.development.js │ │ ├── instantsearch.production.d.ts │ │ └── instantsearch.production.min.d.ts │ ├── es/ │ │ ├── components/ │ │ │ ├── Answers/ │ │ │ │ ├── Answers.d.ts │ │ │ │ └── Answers.js │ │ │ ├── Breadcrumb/ │ │ │ │ ├── Breadcrumb.d.ts │ │ │ │ └── Breadcrumb.js │ │ │ ├── ClearRefinements/ │ │ │ │ ├── ClearRefinements.d.ts │ │ │ │ └── ClearRefinements.js │ │ │ ├── CurrentRefinements/ │ │ │ │ ├── CurrentRefinements.d.ts │ │ │ │ └── CurrentRefinements.js │ │ │ ├── GeoSearchControls/ │ │ │ │ ├── GeoSearchButton.d.ts │ │ │ │ ├── GeoSearchButton.js │ │ │ │ ├── GeoSearchControls.d.ts │ │ │ │ ├── GeoSearchControls.js │ │ │ │ ├── GeoSearchToggle.d.ts │ │ │ │ └── GeoSearchToggle.js │ │ │ ├── Highlight/ │ │ │ │ ├── Highlight.d.ts │ │ │ │ └── Highlight.js │ │ │ ├── Hits/ │ │ │ │ ├── Hits.d.ts │ │ │ │ └── Hits.js │ │ │ ├── InfiniteHits/ │ │ │ │ ├── InfiniteHits.d.ts │ │ │ │ └── InfiniteHits.js │ │ │ ├── InternalHighlight/ │ │ │ │ ├── InternalHighlight.d.ts │ │ │ │ └── InternalHighlight.js │ │ │ ├── MenuSelect/ │ │ │ │ ├── MenuSelect.d.ts │ │ │ │ └── MenuSelect.js │ │ │ ├── Pagination/ │ │ │ │ ├── Pagination.d.ts │ │ │ │ ├── Pagination.js │ │ │ │ └── PaginationLink.js │ │ │ ├── Panel/ │ │ │ │ ├── Panel.d.ts │ │ │ │ └── Panel.js │ │ │ ├── PoweredBy/ │ │ │ │ ├── PoweredBy.d.ts │ │ │ │ └── PoweredBy.js │ │ │ ├── QueryRuleCustomData/ │ │ │ │ ├── QueryRuleCustomData.d.ts │ │ │ │ └── QueryRuleCustomData.js │ │ │ ├── RangeInput/ │ │ │ │ ├── RangeInput.d.ts │ │ │ │ └── RangeInput.js │ │ │ ├── RefinementList/ │ │ │ │ ├── RefinementList.d.ts │ │ │ │ ├── RefinementList.js │ │ │ │ ├── RefinementListItem.d.ts │ │ │ │ └── RefinementListItem.js │ │ │ ├── RelevantSort/ │ │ │ │ ├── RelevantSort.d.ts │ │ │ │ └── RelevantSort.js │ │ │ ├── ReverseHighlight/ │ │ │ │ ├── ReverseHighlight.d.ts │ │ │ │ └── ReverseHighlight.js │ │ │ ├── ReverseSnippet/ │ │ │ │ ├── ReverseSnippet.d.ts │ │ │ │ └── ReverseSnippet.js │ │ │ ├── SearchBox/ │ │ │ │ ├── SearchBox.d.ts │ │ │ │ └── SearchBox.js │ │ │ ├── Selector/ │ │ │ │ ├── Selector.d.ts │ │ │ │ └── Selector.js │ │ │ ├── Slider/ │ │ │ │ ├── Pit.d.ts │ │ │ │ ├── Pit.js │ │ │ │ ├── Rheostat.d.ts │ │ │ │ ├── Rheostat.js │ │ │ │ ├── Slider.d.ts │ │ │ │ └── Slider.js │ │ │ ├── Snippet/ │ │ │ │ ├── Snippet.d.ts │ │ │ │ └── Snippet.js │ │ │ ├── Stats/ │ │ │ │ ├── Stats.d.ts │ │ │ │ └── Stats.js │ │ │ ├── Template/ │ │ │ │ ├── Template.d.ts │ │ │ │ └── Template.js │ │ │ ├── ToggleRefinement/ │ │ │ │ ├── ToggleRefinement.d.ts │ │ │ │ └── ToggleRefinement.js │ │ │ └── VoiceSearch/ │ │ │ ├── VoiceSearch.d.ts │ │ │ └── VoiceSearch.js │ │ ├── connectors/ │ │ │ ├── answers/ │ │ │ │ ├── connectAnswers.d.ts │ │ │ │ └── connectAnswers.js │ │ │ ├── autocomplete/ │ │ │ │ ├── connectAutocomplete.d.ts │ │ │ │ └── connectAutocomplete.js │ │ │ ├── breadcrumb/ │ │ │ │ ├── connectBreadcrumb.d.ts │ │ │ │ └── connectBreadcrumb.js │ │ │ ├── clear-refinements/ │ │ │ │ ├── connectClearRefinements.d.ts │ │ │ │ └── connectClearRefinements.js │ │ │ ├── configure/ │ │ │ │ ├── connectConfigure.d.ts │ │ │ │ └── connectConfigure.js │ │ │ ├── configure-related-items/ │ │ │ │ ├── connectConfigureRelatedItems.d.ts │ │ │ │ └── connectConfigureRelatedItems.js │ │ │ ├── current-refinements/ │ │ │ │ ├── connectCurrentRefinements.d.ts │ │ │ │ └── connectCurrentRefinements.js │ │ │ ├── dynamic-widgets/ │ │ │ │ ├── connectDynamicWidgets.d.ts │ │ │ │ └── connectDynamicWidgets.js │ │ │ ├── frequently-bought-together/ │ │ │ │ ├── connectFrequentlyBoughtTogether.d.ts │ │ │ │ └── connectFrequentlyBoughtTogether.js │ │ │ ├── geo-search/ │ │ │ │ ├── connectGeoSearch.d.ts │ │ │ │ └── connectGeoSearch.js │ │ │ ├── hierarchical-menu/ │ │ │ │ ├── connectHierarchicalMenu.d.ts │ │ │ │ └── connectHierarchicalMenu.js │ │ │ ├── hits/ │ │ │ │ ├── connectHits.d.ts │ │ │ │ ├── connectHits.js │ │ │ │ ├── connectHitsWithInsights.d.ts │ │ │ │ └── connectHitsWithInsights.js │ │ │ ├── hits-per-page/ │ │ │ │ ├── connectHitsPerPage.d.ts │ │ │ │ └── connectHitsPerPage.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── infinite-hits/ │ │ │ │ ├── connectInfiniteHits.d.ts │ │ │ │ ├── connectInfiniteHits.js │ │ │ │ ├── connectInfiniteHitsWithInsights.d.ts │ │ │ │ └── connectInfiniteHitsWithInsights.js │ │ │ ├── looking-similar/ │ │ │ │ ├── connectLookingSimilar.d.ts │ │ │ │ └── connectLookingSimilar.js │ │ │ ├── menu/ │ │ │ │ ├── connectMenu.d.ts │ │ │ │ └── connectMenu.js │ │ │ ├── numeric-menu/ │ │ │ │ ├── connectNumericMenu.d.ts │ │ │ │ └── connectNumericMenu.js │ │ │ ├── pagination/ │ │ │ │ ├── Paginator.d.ts │ │ │ │ ├── Paginator.js │ │ │ │ ├── connectPagination.d.ts │ │ │ │ └── connectPagination.js │ │ │ ├── powered-by/ │ │ │ │ ├── connectPoweredBy.d.ts │ │ │ │ └── connectPoweredBy.js │ │ │ ├── query-rules/ │ │ │ │ ├── connectQueryRules.d.ts │ │ │ │ └── connectQueryRules.js │ │ │ ├── range/ │ │ │ │ ├── connectRange.d.ts │ │ │ │ └── connectRange.js │ │ │ ├── rating-menu/ │ │ │ │ ├── connectRatingMenu.d.ts │ │ │ │ └── connectRatingMenu.js │ │ │ ├── refinement-list/ │ │ │ │ ├── connectRefinementList.d.ts │ │ │ │ └── connectRefinementList.js │ │ │ ├── related-products/ │ │ │ │ ├── connectRelatedProducts.d.ts │ │ │ │ └── connectRelatedProducts.js │ │ │ ├── relevant-sort/ │ │ │ │ ├── connectRelevantSort.d.ts │ │ │ │ └── connectRelevantSort.js │ │ │ ├── search-box/ │ │ │ │ ├── connectSearchBox.d.ts │ │ │ │ └── connectSearchBox.js │ │ │ ├── sort-by/ │ │ │ │ ├── connectSortBy.d.ts │ │ │ │ └── connectSortBy.js │ │ │ ├── stats/ │ │ │ │ ├── connectStats.d.ts │ │ │ │ └── connectStats.js │ │ │ ├── toggle-refinement/ │ │ │ │ ├── connectToggleRefinement.d.ts │ │ │ │ ├── connectToggleRefinement.js │ │ │ │ ├── types.d.ts │ │ │ │ └── types.js │ │ │ ├── trending-items/ │ │ │ │ ├── connectTrendingItems.d.ts │ │ │ │ └── connectTrendingItems.js │ │ │ └── voice-search/ │ │ │ ├── connectVoiceSearch.d.ts │ │ │ └── connectVoiceSearch.js │ │ ├── helpers/ │ │ │ ├── components/ │ │ │ │ ├── Highlight.d.ts │ │ │ │ ├── Highlight.js │ │ │ │ ├── ReverseHighlight.d.ts │ │ │ │ ├── ReverseHighlight.js │ │ │ │ ├── ReverseSnippet.d.ts │ │ │ │ ├── ReverseSnippet.js │ │ │ │ ├── Snippet.d.ts │ │ │ │ ├── Snippet.js │ │ │ │ ├── index.d.ts │ │ │ │ └── index.js │ │ │ ├── get-insights-anonymous-user-token.d.ts │ │ │ ├── get-insights-anonymous-user-token.js │ │ │ ├── highlight.d.ts │ │ │ ├── highlight.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── insights.d.ts │ │ │ ├── insights.js │ │ │ ├── reverseHighlight.d.ts │ │ │ ├── reverseHighlight.js │ │ │ ├── reverseSnippet.d.ts │ │ │ ├── reverseSnippet.js │ │ │ ├── snippet.d.ts │ │ │ └── snippet.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── lib/ │ │ │ ├── InstantSearch.d.ts │ │ │ ├── InstantSearch.js │ │ │ ├── createHelpers.d.ts │ │ │ ├── createHelpers.js │ │ │ ├── formatNumber.d.ts │ │ │ ├── formatNumber.js │ │ │ ├── infiniteHitsCache/ │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── sessionStorage.d.ts │ │ │ │ └── sessionStorage.js │ │ │ ├── insights/ │ │ │ │ ├── client.d.ts │ │ │ │ ├── client.js │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── listener.d.ts │ │ │ │ └── listener.js │ │ │ ├── main.js │ │ │ ├── routers/ │ │ │ │ ├── history.d.ts │ │ │ │ ├── history.js │ │ │ │ ├── index.d.ts │ │ │ │ └── index.js │ │ │ ├── server.d.ts │ │ │ ├── server.js │ │ │ ├── stateMappings/ │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── simple.d.ts │ │ │ │ ├── simple.js │ │ │ │ ├── singleIndex.d.ts │ │ │ │ └── singleIndex.js │ │ │ ├── suit.d.ts │ │ │ ├── suit.js │ │ │ ├── templating/ │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── prepareTemplateProps.d.ts │ │ │ │ ├── prepareTemplateProps.js │ │ │ │ ├── renderTemplate.d.ts │ │ │ │ └── renderTemplate.js │ │ │ ├── utils/ │ │ │ │ ├── addWidgetId.d.ts │ │ │ │ ├── addWidgetId.js │ │ │ │ ├── capitalize.d.ts │ │ │ │ ├── capitalize.js │ │ │ │ ├── checkIndexUiState.d.ts │ │ │ │ ├── checkIndexUiState.js │ │ │ │ ├── checkRendering.d.ts │ │ │ │ ├── checkRendering.js │ │ │ │ ├── clearRefinements.d.ts │ │ │ │ ├── clearRefinements.js │ │ │ │ ├── concatHighlightedParts.d.ts │ │ │ │ ├── concatHighlightedParts.js │ │ │ │ ├── convertNumericRefinementsToFilters.d.ts │ │ │ │ ├── convertNumericRefinementsToFilters.js │ │ │ │ ├── createConcurrentSafePromise.d.ts │ │ │ │ ├── createConcurrentSafePromise.js │ │ │ │ ├── createSendEventForFacet.d.ts │ │ │ │ ├── createSendEventForFacet.js │ │ │ │ ├── createSendEventForHits.d.ts │ │ │ │ ├── createSendEventForHits.js │ │ │ │ ├── cx.d.ts │ │ │ │ ├── cx.js │ │ │ │ ├── debounce.d.ts │ │ │ │ ├── debounce.js │ │ │ │ ├── defer.d.ts │ │ │ │ ├── defer.js │ │ │ │ ├── detect-insights-client.d.ts │ │ │ │ ├── detect-insights-client.js │ │ │ │ ├── documentation.d.ts │ │ │ │ ├── documentation.js │ │ │ │ ├── escape-highlight.d.ts │ │ │ │ ├── escape-highlight.js │ │ │ │ ├── escape-html.d.ts │ │ │ │ ├── escape-html.js │ │ │ │ ├── escape.d.ts │ │ │ │ ├── escape.js │ │ │ │ ├── escapeFacetValue.d.ts │ │ │ │ ├── escapeFacetValue.js │ │ │ │ ├── escapeRefinement.js │ │ │ │ ├── find.d.ts │ │ │ │ ├── find.js │ │ │ │ ├── findIndex.d.ts │ │ │ │ ├── findIndex.js │ │ │ │ ├── geo-search.d.ts │ │ │ │ ├── geo-search.js │ │ │ │ ├── getAppIdAndApiKey.d.ts │ │ │ │ ├── getAppIdAndApiKey.js │ │ │ │ ├── getContainerNode.d.ts │ │ │ │ ├── getContainerNode.js │ │ │ │ ├── getHighlightFromSiblings.d.ts │ │ │ │ ├── getHighlightFromSiblings.js │ │ │ │ ├── getHighlightedParts.d.ts │ │ │ │ ├── getHighlightedParts.js │ │ │ │ ├── getObjectType.d.ts │ │ │ │ ├── getObjectType.js │ │ │ │ ├── getPropertyByPath.d.ts │ │ │ │ ├── getPropertyByPath.js │ │ │ │ ├── getRefinements.d.ts │ │ │ │ ├── getRefinements.js │ │ │ │ ├── getWidgetAttribute.d.ts │ │ │ │ ├── getWidgetAttribute.js │ │ │ │ ├── hits-absolute-position.d.ts │ │ │ │ ├── hits-absolute-position.js │ │ │ │ ├── hits-query-id.d.ts │ │ │ │ ├── hits-query-id.js │ │ │ │ ├── hydrateRecommendCache.d.ts │ │ │ │ ├── hydrateRecommendCache.js │ │ │ │ ├── hydrateSearchClient.d.ts │ │ │ │ ├── hydrateSearchClient.js │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── isDomElement.d.ts │ │ │ │ ├── isDomElement.js │ │ │ │ ├── isEqual.d.ts │ │ │ │ ├── isEqual.js │ │ │ │ ├── isFacetRefined.d.ts │ │ │ │ ├── isFacetRefined.js │ │ │ │ ├── isFiniteNumber.d.ts │ │ │ │ ├── isFiniteNumber.js │ │ │ │ ├── isIndexWidget.d.ts │ │ │ │ ├── isIndexWidget.js │ │ │ │ ├── isPlainObject.d.ts │ │ │ │ ├── isPlainObject.js │ │ │ │ ├── isSpecialClick.d.ts │ │ │ │ ├── isSpecialClick.js │ │ │ │ ├── logger.d.ts │ │ │ │ ├── logger.js │ │ │ │ ├── mergeSearchParameters.d.ts │ │ │ │ ├── mergeSearchParameters.js │ │ │ │ ├── noop.d.ts │ │ │ │ ├── noop.js │ │ │ │ ├── omit.d.ts │ │ │ │ ├── omit.js │ │ │ │ ├── prepareTemplateProps.d.ts │ │ │ │ ├── prepareTemplateProps.js │ │ │ │ ├── range.d.ts │ │ │ │ ├── range.js │ │ │ │ ├── render-args.d.ts │ │ │ │ ├── render-args.js │ │ │ │ ├── renderTemplate.d.ts │ │ │ │ ├── renderTemplate.js │ │ │ │ ├── resolveSearchParameters.d.ts │ │ │ │ ├── resolveSearchParameters.js │ │ │ │ ├── reverseHighlightedParts.d.ts │ │ │ │ ├── reverseHighlightedParts.js │ │ │ │ ├── safelyRunOnBrowser.d.ts │ │ │ │ ├── safelyRunOnBrowser.js │ │ │ │ ├── serializer.d.ts │ │ │ │ ├── serializer.js │ │ │ │ ├── setIndexHelperState.d.ts │ │ │ │ ├── setIndexHelperState.js │ │ │ │ ├── toArray.d.ts │ │ │ │ ├── toArray.js │ │ │ │ ├── typedObject.d.ts │ │ │ │ ├── typedObject.js │ │ │ │ ├── unescape.d.ts │ │ │ │ ├── unescape.js │ │ │ │ ├── unescapeRefinement.js │ │ │ │ ├── uniq.d.ts │ │ │ │ ├── uniq.js │ │ │ │ ├── uuid.d.ts │ │ │ │ ├── uuid.js │ │ │ │ ├── walkIndex.d.ts │ │ │ │ └── walkIndex.js │ │ │ ├── version.d.ts │ │ │ ├── version.js │ │ │ └── voiceSearchHelper/ │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── types.d.ts │ │ │ └── types.js │ │ ├── middlewares/ │ │ │ ├── createInsightsMiddleware.d.ts │ │ │ ├── createInsightsMiddleware.js │ │ │ ├── createMetadataMiddleware.d.ts │ │ │ ├── createMetadataMiddleware.js │ │ │ ├── createRouterMiddleware.d.ts │ │ │ ├── createRouterMiddleware.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── package.json │ │ ├── templates/ │ │ │ ├── carousel/ │ │ │ │ ├── carousel.d.ts │ │ │ │ └── carousel.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── types/ │ │ │ ├── algoliasearch.d.ts │ │ │ ├── algoliasearch.js │ │ │ ├── component.d.ts │ │ │ ├── component.js │ │ │ ├── connector.d.ts │ │ │ ├── connector.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── insights.d.ts │ │ │ ├── insights.js │ │ │ ├── instantsearch.d.ts │ │ │ ├── instantsearch.js │ │ │ ├── middleware.d.ts │ │ │ ├── middleware.js │ │ │ ├── render-state.d.ts │ │ │ ├── render-state.js │ │ │ ├── results.d.ts │ │ │ ├── results.js │ │ │ ├── router.d.ts │ │ │ ├── router.js │ │ │ ├── templates.d.ts │ │ │ ├── templates.js │ │ │ ├── ui-state.d.ts │ │ │ ├── ui-state.js │ │ │ ├── utils.d.ts │ │ │ ├── utils.js │ │ │ ├── widget-factory.d.ts │ │ │ ├── widget-factory.js │ │ │ ├── widget.d.ts │ │ │ └── widget.js │ │ └── widgets/ │ │ ├── analytics/ │ │ │ ├── analytics.d.ts │ │ │ └── analytics.js │ │ ├── answers/ │ │ │ ├── answers.d.ts │ │ │ ├── answers.js │ │ │ ├── defaultTemplates.d.ts │ │ │ └── defaultTemplates.js │ │ ├── breadcrumb/ │ │ │ ├── breadcrumb.d.ts │ │ │ ├── breadcrumb.js │ │ │ ├── defaultTemplates.d.ts │ │ │ └── defaultTemplates.js │ │ ├── clear-refinements/ │ │ │ ├── clear-refinements.d.ts │ │ │ ├── clear-refinements.js │ │ │ ├── defaultTemplates.d.ts │ │ │ └── defaultTemplates.js │ │ ├── configure/ │ │ │ ├── configure.d.ts │ │ │ └── configure.js │ │ ├── configure-related-items/ │ │ │ ├── configure-related-items.d.ts │ │ │ └── configure-related-items.js │ │ ├── current-refinements/ │ │ │ ├── current-refinements.d.ts │ │ │ └── current-refinements.js │ │ ├── dynamic-widgets/ │ │ │ ├── dynamic-widgets.d.ts │ │ │ └── dynamic-widgets.js │ │ ├── frequently-bought-together/ │ │ │ ├── frequently-bought-together.d.ts │ │ │ └── frequently-bought-together.js │ │ ├── geo-search/ │ │ │ ├── GeoSearchRenderer.d.js │ │ │ ├── GeoSearchRenderer.d.ts │ │ │ ├── GeoSearchRenderer.js │ │ │ ├── createHTMLMarker.d.ts │ │ │ ├── createHTMLMarker.js │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── geo-search.d.ts │ │ │ └── geo-search.js │ │ ├── hierarchical-menu/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── hierarchical-menu.d.ts │ │ │ └── hierarchical-menu.js │ │ ├── hits/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── hits.d.ts │ │ │ └── hits.js │ │ ├── hits-per-page/ │ │ │ ├── hits-per-page.d.ts │ │ │ └── hits-per-page.js │ │ ├── index/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── infinite-hits/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── infinite-hits.d.ts │ │ │ └── infinite-hits.js │ │ ├── looking-similar/ │ │ │ ├── looking-similar.d.ts │ │ │ └── looking-similar.js │ │ ├── menu/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── menu.d.ts │ │ │ └── menu.js │ │ ├── menu-select/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── menu-select.d.ts │ │ │ └── menu-select.js │ │ ├── numeric-menu/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── numeric-menu.d.ts │ │ │ └── numeric-menu.js │ │ ├── pagination/ │ │ │ ├── pagination.d.ts │ │ │ └── pagination.js │ │ ├── panel/ │ │ │ ├── panel.d.ts │ │ │ └── panel.js │ │ ├── places/ │ │ │ ├── places.d.ts │ │ │ └── places.js │ │ ├── powered-by/ │ │ │ ├── powered-by.d.ts │ │ │ └── powered-by.js │ │ ├── query-rule-context/ │ │ │ ├── query-rule-context.d.ts │ │ │ └── query-rule-context.js │ │ ├── query-rule-custom-data/ │ │ │ ├── query-rule-custom-data.d.ts │ │ │ └── query-rule-custom-data.js │ │ ├── range-input/ │ │ │ ├── range-input.d.ts │ │ │ └── range-input.js │ │ ├── range-slider/ │ │ │ ├── range-slider.d.ts │ │ │ └── range-slider.js │ │ ├── rating-menu/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── rating-menu.d.ts │ │ │ └── rating-menu.js │ │ ├── refinement-list/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── refinement-list.d.ts │ │ │ └── refinement-list.js │ │ ├── related-products/ │ │ │ ├── related-products.d.ts │ │ │ └── related-products.js │ │ ├── relevant-sort/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── relevant-sort.d.ts │ │ │ └── relevant-sort.js │ │ ├── search-box/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── search-box.d.ts │ │ │ └── search-box.js │ │ ├── sort-by/ │ │ │ ├── sort-by.d.ts │ │ │ └── sort-by.js │ │ ├── stats/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── stats.d.ts │ │ │ └── stats.js │ │ ├── toggle-refinement/ │ │ │ ├── defaultTemplates.d.ts │ │ │ ├── defaultTemplates.js │ │ │ ├── toggle-refinement.d.ts │ │ │ └── toggle-refinement.js │ │ ├── trending-items/ │ │ │ ├── trending-items.d.ts │ │ │ └── trending-items.js │ │ └── voice-search/ │ │ ├── defaultTemplates.d.ts │ │ ├── defaultTemplates.js │ │ ├── voice-search.d.ts │ │ └── voice-search.js │ ├── package.json │ └── scripts/ │ └── transforms/ │ ├── README.md │ ├── __testfixtures__/ │ │ └── addWidget-to-addWidgets/ │ │ ├── global.input.js │ │ ├── global.output.js │ │ ├── imported.input.js │ │ ├── imported.output.js │ │ ├── mixed.input.js │ │ ├── mixed.output.js │ │ ├── remove.input.js │ │ └── remove.output.js │ ├── __tests__/ │ │ └── addWidget-to-addWidgets.test.js │ └── addWidget-to-addWidgets.js ├── languages/ │ ├── index.php │ ├── wp-search-with-algolia-it_IT.mo │ ├── wp-search-with-algolia-it_IT.po │ └── wp-search-with-algolia.pot ├── package.json ├── phpcs.xml ├── templates/ │ ├── autocomplete.php │ ├── instantsearch-modern.php │ └── instantsearch.php ├── uninstall.php ├── vendor_prefixed/ │ ├── .gitignore │ ├── algolia/ │ │ └── algoliasearch-client-php/ │ │ ├── LICENSE │ │ └── src/ │ │ ├── AccountClient.php │ │ ├── Algolia.php │ │ ├── AnalyticsClient.php │ │ ├── Cache/ │ │ │ ├── FileCacheDriver.php │ │ │ └── NullCacheDriver.php │ │ ├── Config/ │ │ │ ├── AbstractConfig.php │ │ │ ├── AnalyticsConfig.php │ │ │ ├── InsightsConfig.php │ │ │ ├── PersonalizationConfig.php │ │ │ ├── PlacesConfig.php │ │ │ ├── RecommendConfig.php │ │ │ ├── RecommendationConfig.php │ │ │ └── SearchConfig.php │ │ ├── Exceptions/ │ │ │ ├── AlgoliaException.php │ │ │ ├── BadRequestException.php │ │ │ ├── CannotWaitException.php │ │ │ ├── MissingObjectId.php │ │ │ ├── NotFoundException.php │ │ │ ├── ObjectNotFoundException.php │ │ │ ├── RequestException.php │ │ │ ├── RetriableException.php │ │ │ ├── UnreachableException.php │ │ │ └── ValidUntilNotFoundException.php │ │ ├── Http/ │ │ │ ├── CurlHttpClient.php │ │ │ ├── GuzzleHttpClient.php │ │ │ ├── HttpClientInterface.php │ │ │ └── Psr7/ │ │ │ ├── BufferStream.php │ │ │ ├── PumpStream.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── Stream.php │ │ │ ├── Uri.php │ │ │ ├── UriResolver.php │ │ │ └── functions.php │ │ ├── Insights/ │ │ │ └── UserInsightsClient.php │ │ ├── InsightsClient.php │ │ ├── Iterators/ │ │ │ ├── AbstractAlgoliaIterator.php │ │ │ ├── ObjectIterator.php │ │ │ ├── RuleIterator.php │ │ │ └── SynonymIterator.php │ │ ├── Log/ │ │ │ └── DebugLogger.php │ │ ├── PersonalizationClient.php │ │ ├── PlacesClient.php │ │ ├── RecommendClient.php │ │ ├── RecommendationClient.php │ │ ├── RequestOptions/ │ │ │ ├── RequestOptions.php │ │ │ └── RequestOptionsFactory.php │ │ ├── Response/ │ │ │ ├── AbstractResponse.php │ │ │ ├── AddApiKeyResponse.php │ │ │ ├── BatchIndexingResponse.php │ │ │ ├── DeleteApiKeyResponse.php │ │ │ ├── DictionaryResponse.php │ │ │ ├── IndexingResponse.php │ │ │ ├── MultiResponse.php │ │ │ ├── MultipleIndexBatchIndexingResponse.php │ │ │ ├── NullResponse.php │ │ │ ├── RestoreApiKeyResponse.php │ │ │ └── UpdateApiKeyResponse.php │ │ ├── RetryStrategy/ │ │ │ ├── ApiWrapper.php │ │ │ ├── ApiWrapperInterface.php │ │ │ ├── ClusterHosts.php │ │ │ ├── Host.php │ │ │ └── HostCollection.php │ │ ├── SearchClient.php │ │ ├── SearchIndex.php │ │ ├── Support/ │ │ │ ├── Helpers.php │ │ │ └── UserAgent.php │ │ └── functions.php │ ├── autoload-classmap.php │ ├── autoload-files.php │ ├── autoload.php │ └── psr/ │ ├── http-message/ │ │ ├── LICENSE │ │ └── src/ │ │ ├── MessageInterface.php │ │ ├── RequestInterface.php │ │ ├── ResponseInterface.php │ │ ├── ServerRequestInterface.php │ │ ├── StreamInterface.php │ │ ├── UploadedFileInterface.php │ │ └── UriInterface.php │ ├── log/ │ │ ├── LICENSE │ │ └── Psr/ │ │ └── Log/ │ │ ├── AbstractLogger.php │ │ ├── InvalidArgumentException.php │ │ ├── LogLevel.php │ │ ├── LoggerAwareInterface.php │ │ ├── LoggerAwareTrait.php │ │ ├── LoggerInterface.php │ │ ├── LoggerTrait.php │ │ ├── NullLogger.php │ │ └── Test/ │ │ ├── DummyTest.php │ │ ├── LoggerInterfaceTest.php │ │ └── TestLogger.php │ └── simple-cache/ │ ├── LICENSE.md │ └── src/ │ ├── CacheException.php │ ├── CacheInterface.php │ └── InvalidArgumentException.php └── wordfence-vendor.txt