@searchcraft/javascript-sdk 0.13.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/components/defineCustomElements.js +23 -23
- package/dist/components/html.js +1 -1
- package/dist/components/index.d.ts +191 -0
- package/dist/components/index.js +28 -30
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +12 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/searchcraft-ad.js +1 -1
- package/dist/components/searchcraft-ad2.js +4 -4
- package/dist/components/searchcraft-button.js +1 -1
- package/dist/components/searchcraft-button2.js +2 -2
- package/dist/components/searchcraft-error-message.js +1 -1
- package/dist/components/searchcraft-error-message2.js +1 -1
- package/dist/components/searchcraft-facet-list.js +1 -1
- package/dist/components/searchcraft-facet-list2.js +59 -4
- package/dist/components/searchcraft-facet-list2.js.map +1 -1
- package/dist/components/searchcraft-filter-panel.js +47 -6
- package/dist/components/searchcraft-filter-panel.js.map +1 -1
- package/dist/components/searchcraft-input-form.js +1 -1
- package/dist/components/searchcraft-input-form2.js +6 -6
- package/dist/components/searchcraft-input-label.js +1 -1
- package/dist/components/searchcraft-input-label2.js +2 -2
- package/dist/components/searchcraft-loading.js +1 -1
- package/dist/components/searchcraft-loading2.js +5 -2
- package/dist/components/searchcraft-loading2.js.map +1 -1
- package/dist/components/searchcraft-pagination.js +137 -4
- package/dist/components/searchcraft-pagination.js.map +1 -1
- package/dist/components/searchcraft-popover-button.js +4 -4
- package/dist/components/searchcraft-popover-footer.js +1 -1
- package/dist/components/searchcraft-popover-footer2.js +52 -6
- package/dist/components/searchcraft-popover-footer2.js.map +1 -1
- package/dist/components/searchcraft-popover-form.js +96 -22
- package/dist/components/searchcraft-popover-form.js.map +1 -1
- package/dist/components/searchcraft-popover-list-item.js +1 -1
- package/dist/components/searchcraft-popover-list-item2.js +4 -4
- package/dist/components/searchcraft-popover-list-view.js +1 -1
- package/dist/components/searchcraft-popover-list-view2.js +4 -4
- package/dist/components/searchcraft-results-info.js +4 -4
- package/dist/components/searchcraft-search-result.js +1 -1
- package/dist/components/searchcraft-search-result2.js +3 -3
- package/dist/components/searchcraft-search-results-per-page.js +3 -3
- package/dist/components/searchcraft-search-results.js +5 -5
- package/dist/components/searchcraft-select.js +1 -1
- package/dist/components/searchcraft-select2.js +1 -1
- package/dist/components/searchcraft-slider.js +1 -1
- package/dist/components/searchcraft-slider2.js +5 -5
- package/dist/components/searchcraft-summary-box.js +1 -2256
- package/dist/components/searchcraft-summary-box.js.map +1 -1
- package/dist/components/searchcraft-summary-box2.js +2261 -0
- package/dist/components/searchcraft-summary-box2.js.map +1 -0
- package/dist/components/searchcraft-theme.js +3 -3
- package/dist/components/searchcraft-theme.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -1
- package/dist/components/searchcraft-toggle-button2.js +5 -5
- package/dist/hydrate/index.js +389 -19
- package/dist/hydrate/index.mjs +389 -19
- package/dist/themes/hologram.css +1 -1
- package/dist/themes/hologram.css.map +1 -1
- package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +47 -0
- package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +37 -0
- package/dist/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts +15 -0
- package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +24 -0
- package/dist/types/components.d.ts +168 -0
- package/dist/types/types/sdk-types/searchcraft-filter-panel.types.d.ts +13 -0
- package/package.json +19 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.js","mappings":"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AAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,C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","names":["getFingerprint","packageName","packageVersion"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/esm/vanilla.mjs","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i)}catch(e){u=[6,e],t=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};function t(e,r){if(![\"exclude\",\"permissions_to_check\",\"retries\",\"timeout\"].includes(e))throw new Error(\"Unknown option \"+e);if([\"exclude\",\"permissions_to_check\"].includes(e)&&(!Array.isArray(r)||!r.every((function(e){return\"string\"==typeof e}))))throw new Error(\"The value of the exclude and permissions_to_check must be an array of strings\");if([\"retries\",\"timeout\"].includes(e)&&\"number\"!=typeof r)throw new Error(\"The value of retries must be a number\");n[e]=r}var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r)},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return!(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return[e[0],(0,e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0]}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e)}))}function h(e,r,n){return Promise.all(e.map((function(e){var t=performance.now();return Promise.race([e.then((function(e){return{value:e,elapsed:performance.now()-t}})),d(r,n).then((function(e){return{value:e,elapsed:performance.now()-t}}))])})))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return[2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else{var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a))}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return{name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return{name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return[2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode})},n.startRendering()}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e)}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()})}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font,e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c)}}return a}catch(e){}return\"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return[3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"))}return new Promise((function(r){r({plugins:e})}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2)}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,!1,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0))}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return[2,{webgl:\"unsupported\"}]}return[2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o)}return a*o};function N(){return\"0.16.1\"}i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return[2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));export{g as getFingerprint,v as getFingerprintData,w as getFingerprintPerformance,N as getVersion,t as setOption};\n//# sourceMappingURL=thumbmark.esm.js.map\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nexport class AdClient {\n config: SearchcraftConfig;\n\n constructor(config: SearchcraftConfig) {\n this.config = config;\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import type {\n ADMClientResponseItem,\n ADMResponse,\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { nanoid } from 'nanoid';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise<void> {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\nimport { nanoid } from 'nanoid';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n private userType: 'authenticated' | 'anonymous';\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n userType: 'authenticated' | 'anonymous',\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial<MeasureRequestProperties> = {},\n user: Partial<MeasureRequestUser> = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import type { SearchcraftCore } from '@classes';\nimport { nanoid } from 'nanoid';\n\nimport type {\n SearchClientQuery,\n SearchClientRequest,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n private get baseSearchUrl(): string {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn(\n 'Please contact Searchcraft to enable AI summaries with your account',\n );\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { type StoreApi, createStore } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record<string, StoreApi<SearchcraftState>> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial<SearchcraftStateValues> = {},\n): StoreApi<SearchcraftState> => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore<SearchcraftState>((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options?: { skipSummary?: boolean }) => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n // Check if there are any active filters or pagination changes\n const hasActiveFilters =\n Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (\n isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)\n ) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(\n state.cachedSearchClientRequestProperties as string,\n );\n\n set({ isSearchInProgress: true });\n\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q: any) => !q.occur)\n : [initialQueryObj.query];\n\n const queries = [...baseQuery];\n\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach(\n (fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach(\n (fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) =>\n set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchClientResponseItem,\n SearchIndexHit,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchcraftSDKInfo,\n SubscriptionEventCallback,\n SubscriptionEventMap,\n SubscriptionEventName,\n UnsubscribeFunction,\n} from '@types';\n\nimport { type SearchcraftStore, createSearchcraftStore } from '@store';\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n userType: 'authenticated' | 'anonymous';\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array<SubscriptionEventCallback<K>>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName && !config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Either indexName or federationName must be specified.',\n );\n }\n\n if (config.indexName && config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.',\n );\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n this.userType = 'anonymous';\n } else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n\n this.measureClient = new MeasureClient(\n config,\n sdkInfo,\n userId,\n this.userType,\n );\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent<T extends SubscriptionEventName>(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback<T>)(event);\n });\n }\n\n subscribe<T extends SubscriptionEventName>(\n eventName: T,\n callback: SubscriptionEventCallback<T>,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n } else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter(\n (q: { occur?: string }) => q.occur !== 'must',\n );\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n JSON.stringify(supplementalRequest),\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3}
|
|
1
|
+
{"file":"index.js","mappings":"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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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","names":["getFingerprint","packageName","packageVersion"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/esm/vanilla.mjs","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i)}catch(e){u=[6,e],t=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};function t(e,r){if(![\"exclude\",\"permissions_to_check\",\"retries\",\"timeout\"].includes(e))throw new Error(\"Unknown option \"+e);if([\"exclude\",\"permissions_to_check\"].includes(e)&&(!Array.isArray(r)||!r.every((function(e){return\"string\"==typeof e}))))throw new Error(\"The value of the exclude and permissions_to_check must be an array of strings\");if([\"retries\",\"timeout\"].includes(e)&&\"number\"!=typeof r)throw new Error(\"The value of retries must be a number\");n[e]=r}var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r)},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return!(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return[e[0],(0,e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0]}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e)}))}function h(e,r,n){return Promise.all(e.map((function(e){var t=performance.now();return Promise.race([e.then((function(e){return{value:e,elapsed:performance.now()-t}})),d(r,n).then((function(e){return{value:e,elapsed:performance.now()-t}}))])})))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return[2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else{var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a))}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return{name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return{name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return[2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode})},n.startRendering()}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e)}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()})}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font,e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c)}}return a}catch(e){}return\"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return[3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"))}return new Promise((function(r){r({plugins:e})}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2)}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,!1,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0))}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return[2,{webgl:\"unsupported\"}]}return[2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o)}return a*o};function N(){return\"0.16.1\"}i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return[2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));export{g as getFingerprint,v as getFingerprintData,w as getFingerprintPerformance,N as getVersion,t as setOption};\n//# sourceMappingURL=thumbmark.esm.js.map\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nexport class AdClient {\n config: SearchcraftConfig;\n\n constructor(config: SearchcraftConfig) {\n this.config = config;\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import type {\n ADMClientResponseItem,\n ADMResponse,\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { nanoid } from 'nanoid';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise<void> {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\nimport { nanoid } from 'nanoid';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n private userType: 'authenticated' | 'anonymous';\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n userType: 'authenticated' | 'anonymous',\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial<MeasureRequestProperties> = {},\n user: Partial<MeasureRequestUser> = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import type { SearchcraftCore } from '@classes';\nimport { nanoid } from 'nanoid';\n\nimport type {\n SearchClientQuery,\n SearchClientRequest,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n private get baseSearchUrl(): string {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn(\n 'Please contact Searchcraft to enable AI summaries with your account',\n );\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { type StoreApi, createStore } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientQuery,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record<string, StoreApi<SearchcraftState>> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial<SearchcraftStateValues> = {},\n): StoreApi<SearchcraftState> => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore<SearchcraftState>((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options?: { skipSummary?: boolean }) => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n // Check if there are any active filters or pagination changes\n const hasActiveFilters =\n Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (\n isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)\n ) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(\n state.cachedSearchClientRequestProperties as string,\n );\n\n set({ isSearchInProgress: true });\n\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q: SearchClientQuery) => !q.occur)\n : [initialQueryObj.query];\n\n const queries = [...baseQuery];\n\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach(\n (fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach(\n (fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) =>\n set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchClientResponseItem,\n SearchIndexHit,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchcraftSDKInfo,\n SubscriptionEventCallback,\n SubscriptionEventMap,\n SubscriptionEventName,\n UnsubscribeFunction,\n} from '@types';\n\nimport { type SearchcraftStore, createSearchcraftStore } from '@store';\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n userType: 'authenticated' | 'anonymous';\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array<SubscriptionEventCallback<K>>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName && !config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Either indexName or federationName must be specified.',\n );\n }\n\n if (config.indexName && config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.',\n );\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n this.userType = 'anonymous';\n } else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n\n this.measureClient = new MeasureClient(\n config,\n sdkInfo,\n userId,\n this.userType,\n );\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent<T extends SubscriptionEventName>(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback<T>)(event);\n });\n }\n\n subscribe<T extends SubscriptionEventName>(\n eventName: T,\n callback: SubscriptionEventCallback<T>,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n } else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter(\n (q: { occur?: string }) => q.occur !== 'must',\n );\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n JSON.stringify(supplementalRequest),\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3}
|