@envive-ai/react-hooks 0.1.3 → 0.1.4
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/dist/adapters/amplitude/index.cjs +13 -13
- package/dist/adapters/amplitude/index.d.cts +5 -3
- package/dist/adapters/amplitude/index.d.ts +5 -3
- package/dist/adapters/amplitude/index.js +10 -10
- package/dist/api-B2euFL-5.cjs +269 -0
- package/dist/api-XRr_lAG6.js +190 -0
- package/dist/application/config/index.cjs +14 -5
- package/dist/application/config/index.d.cts +2 -1
- package/dist/application/config/index.d.ts +2 -1
- package/dist/application/config/index.js +14 -5
- package/dist/application/models/graphql/index.cjs +12 -12
- package/dist/application/models/graphql/index.d.cts +1 -1
- package/dist/application/models/graphql/index.d.ts +1 -1
- package/dist/application/models/graphql/index.js +10 -10
- package/dist/application/models/guards/api/index.cjs +2 -2
- package/dist/application/models/guards/api/index.d.cts +2 -2
- package/dist/application/models/guards/api/index.d.ts +2 -2
- package/dist/application/models/guards/api/index.js +2 -2
- package/dist/application/models/index.cjs +54 -54
- package/dist/application/models/index.d.cts +8 -9
- package/dist/application/models/index.d.ts +8 -9
- package/dist/application/models/index.js +10 -10
- package/dist/application/models/utilityTypes/index.cjs +1 -1
- package/dist/application/models/utilityTypes/index.d.cts +1 -1
- package/dist/application/models/utilityTypes/index.d.ts +1 -1
- package/dist/application/models/utilityTypes/index.js +1 -1
- package/dist/application/models/variantInfo/index.cjs +1 -1
- package/dist/application/models/variantInfo/index.d.cts +1 -1
- package/dist/application/models/variantInfo/index.d.ts +1 -1
- package/dist/application/models/variantInfo/index.js +1 -1
- package/dist/application/service/customerService/index.cjs +2 -2
- package/dist/application/service/customerService/index.d.cts +2 -2
- package/dist/application/service/customerService/index.d.ts +2 -2
- package/dist/application/service/customerService/index.js +2 -2
- package/dist/application/service/index.cjs +37 -757
- package/dist/application/service/index.d.cts +14 -22
- package/dist/application/service/index.d.ts +14 -22
- package/dist/application/service/index.js +12 -727
- package/dist/application/utils/index.cjs +37 -37
- package/dist/application/utils/index.d.cts +13 -13
- package/dist/application/utils/index.d.ts +12 -12
- package/dist/application/utils/index.js +10 -10
- package/dist/atomStore-B1cgmbP0.js +32 -0
- package/dist/atomStore-JwGb7pcy.cjs +58 -0
- package/dist/atoms/app/index.cjs +16 -16
- package/dist/atoms/app/index.d.cts +11 -11
- package/dist/atoms/app/index.d.ts +12 -12
- package/dist/atoms/app/index.js +10 -10
- package/dist/atoms/atomStore/index.cjs +1 -2
- package/dist/atoms/atomStore/index.d.cts +2 -1
- package/dist/atoms/atomStore/index.d.ts +2 -1
- package/dist/atoms/atomStore/index.js +1 -2
- package/dist/atoms/chat/index.cjs +40 -40
- package/dist/atoms/chat/index.d.cts +37 -37
- package/dist/atoms/chat/index.d.ts +38 -38
- package/dist/atoms/chat/index.js +10 -10
- package/dist/atoms/globalSearch/index.cjs +1 -1
- package/dist/atoms/globalSearch/index.d.cts +7 -6
- package/dist/atoms/globalSearch/index.d.ts +7 -6
- package/dist/atoms/globalSearch/index.js +1 -1
- package/dist/atoms/org/index.cjs +37 -40
- package/dist/atoms/org/index.d.cts +32 -53
- package/dist/atoms/org/index.d.ts +31 -52
- package/dist/atoms/org/index.js +11 -12
- package/dist/atoms/search/index.cjs +41 -43
- package/dist/atoms/search/index.d.cts +9 -10
- package/dist/atoms/search/index.d.ts +9 -10
- package/dist/atoms/search/index.js +10 -12
- package/dist/bandolier-B76-OE75.cjs +1230 -0
- package/dist/bandolier-DRn_x1g1.js +1230 -0
- package/dist/carpe-kHi4RLB5.cjs +608 -0
- package/dist/carpe-qrSU99gq.js +606 -0
- package/dist/{chat-CCgyDehy.cjs → chat-BgONoYU7.cjs} +2 -1
- package/dist/chat-CLJ4NWcN.js +26 -0
- package/dist/{components-CScS7Ii-.cjs → components-BKZbet67.cjs} +2 -1
- package/dist/components-CV1fhAkj.js +11 -0
- package/dist/config/locators/components/chat/index.cjs +1 -1
- package/dist/config/locators/components/chat/index.d.cts +1 -1
- package/dist/config/locators/components/chat/index.d.ts +1 -1
- package/dist/config/locators/components/chat/index.js +1 -1
- package/dist/config/locators/components/chat/variants/index.cjs +2 -1
- package/dist/config/locators/components/chat/variants/index.d.cts +2 -1
- package/dist/config/locators/components/chat/variants/index.d.ts +2 -1
- package/dist/config/locators/components/chat/variants/index.js +2 -1
- package/dist/config/locators/components/index.cjs +1 -1
- package/dist/config/locators/components/index.d.cts +1 -1
- package/dist/config/locators/components/index.d.ts +1 -1
- package/dist/config/locators/components/index.js +1 -1
- package/dist/config/locators/components/search/index.cjs +2 -1
- package/dist/config/locators/components/search/index.d.cts +2 -1
- package/dist/config/locators/components/search/index.d.ts +2 -1
- package/dist/config/locators/components/search/index.js +2 -1
- package/dist/config/locators/index.cjs +4 -4
- package/dist/config/locators/index.d.cts +4 -3
- package/dist/config/locators/index.d.ts +4 -3
- package/dist/config/locators/index.js +4 -4
- package/dist/contexts/index.cjs +20 -23
- package/dist/contexts/index.d.cts +38 -19
- package/dist/contexts/index.d.ts +41 -22
- package/dist/contexts/index.js +11 -17
- package/dist/contexts-CQDwe3rK.cjs +14333 -0
- package/dist/contexts-e2sM-B9g.js +12919 -0
- package/dist/coterie-mMirPcHP.js +240 -0
- package/dist/coterie-yQ-_JXSw.cjs +240 -0
- package/dist/customerService-BG1uNZZ1.cjs +36 -0
- package/dist/customerService-BHQRnLhC.js +23 -0
- package/dist/custservice-types-C83itZmy.cjs +35 -0
- package/dist/custservice-types-DPQ-4TI6.js +23 -0
- package/dist/default-8Jfv8ehQ.cjs +199 -0
- package/dist/default-C8PQf-38.js +176 -0
- package/dist/default-LukSiCz1.js +4 -0
- package/dist/default-rJSJ887P.cjs +4 -0
- package/dist/divIds-CWkntTsx.js +23 -0
- package/dist/{divIds-CFyAjjp3.cjs → divIds-DEL_-qU0.cjs} +2 -1
- package/dist/dreamlandBaby-DHltv12Z.cjs +347 -0
- package/dist/dreamlandBaby-cG0HM9bt.js +347 -0
- package/dist/{embedded-BlXJUbik.cjs → embedded--2L0F4b5.cjs} +2 -1
- package/dist/embedded-C5uJqmuD.js +23 -0
- package/dist/entrypoints-CNUvSgnk.js +7 -0
- package/dist/entrypoints-DM9Sm18O.cjs +19 -0
- package/dist/events/index.cjs +1 -1
- package/dist/events/index.d.cts +2 -1
- package/dist/events/index.d.ts +2 -1
- package/dist/events/index.js +1 -1
- package/dist/events-ClCDFK7t.js +78 -0
- package/dist/events-Da7gpmGv.cjs +90 -0
- package/dist/featureFlagService-5wdmW02z.d.ts +18 -0
- package/dist/featureFlagService-DaelrXEk.d.cts +18 -0
- package/dist/fiveCbd-Cvnwh03g.cjs +614 -0
- package/dist/fiveCbd-DhYMlsf9.js +614 -0
- package/dist/forLoveAndLemons-C8DuUexW.js +666 -0
- package/dist/forLoveAndLemons-DR6a1zjJ.cjs +668 -0
- package/dist/{globalSearch-hxbXekus.cjs → globalSearch-BTeZxvk1.cjs} +2 -1
- package/dist/globalSearch-b0wC7ZEO.js +14 -0
- package/dist/greenpan-B4Pu65kV.js +398 -0
- package/dist/greenpan-BL5p6j7f.cjs +398 -0
- package/dist/grooveLife-DjKWHoN3.cjs +343 -0
- package/dist/grooveLife-JK0TyaPz.js +343 -0
- package/dist/homegrownCannabis-DxqSDkmS.js +411 -0
- package/dist/homegrownCannabis-ZnfCqW-m.cjs +411 -0
- package/dist/hooks/index.cjs +38 -38
- package/dist/hooks/index.d.cts +25 -16
- package/dist/hooks/index.d.ts +30 -21
- package/dist/hooks/index.js +11 -17
- package/dist/index-BTK5uzs6.d.cts +98 -0
- package/dist/index-BfuO9b0Q.d.ts +749 -0
- package/dist/index-BzgkfbNO.d.cts +228 -0
- package/dist/index-C62lPpy4.d.cts +25 -0
- package/dist/index-CExtydIH.d.ts +9 -0
- package/dist/index-CKKkTsms.d.ts +39 -0
- package/dist/index-CNsGWfS6.d.cts +749 -0
- package/dist/index-CYtsPztZ.d.cts +203 -0
- package/dist/index-C_C0tLeD.d.ts +203 -0
- package/dist/index-ClJ0nMsR.d.cts +184 -0
- package/dist/index-Cx9e-fRi.d.ts +184 -0
- package/dist/index-D2VaMPA3.d.ts +98 -0
- package/dist/index-D46Rd0io.d.cts +39 -0
- package/dist/index-DFL1dIT_.d.ts +7 -0
- package/dist/index-DPx8s5YH.d.ts +25 -0
- package/dist/index-Dxpscrvz.d.ts +228 -0
- package/dist/index-MFbPQ8Ji.d.ts +95 -0
- package/dist/index-VSFakgAI.d.cts +95 -0
- package/dist/index-jBATkcc_.d.cts +9 -0
- package/dist/index-zZjcds15.d.cts +7 -0
- package/dist/interceptors/index.cjs +12 -13
- package/dist/interceptors/index.d.cts +10 -10
- package/dist/interceptors/index.d.ts +10 -10
- package/dist/interceptors/index.js +10 -11
- package/dist/jackArcher-CXf_IAmC.js +728 -0
- package/dist/jackArcher-mGkojXek.cjs +728 -0
- package/dist/jordanCraig-BvCvPRoR.js +1787 -0
- package/dist/jordanCraig-Dv8pVCiS.cjs +1787 -0
- package/dist/kindredBravely-UQP7wiNu.cjs +491 -0
- package/dist/kindredBravely-X8F_LNph.js +491 -0
- package/dist/kutFromTheKloth-BhYKk3CN.cjs +370 -0
- package/dist/kutFromTheKloth-D1xsTSJr.js +370 -0
- package/dist/larryAndSerges-1411NuZa.cjs +262 -0
- package/dist/larryAndSerges-DVIRLItu.js +262 -0
- package/dist/leapsAndRebounds-BJ8mwr33.js +361 -0
- package/dist/leapsAndRebounds-UcP9EJVO.cjs +361 -0
- package/dist/logger-Dln20ans.cjs +26 -0
- package/dist/logger-pdEEY8T2.js +20 -0
- package/dist/longevityrx-BFSv9GF5.cjs +321 -0
- package/dist/longevityrx-Cp6wleWr.js +321 -0
- package/dist/lookOptic-BGhU4910.js +283 -0
- package/dist/lookOptic-KieSqskd.cjs +283 -0
- package/dist/mantraBrand-CHQw-0nw.cjs +751 -0
- package/dist/mantraBrand-DrqG9uqO.js +751 -0
- package/dist/medterra-CLG6Co1C.cjs +584 -0
- package/dist/medterra-D8ZX9NZC.js +584 -0
- package/dist/modells-BzyPwN2m.cjs +485 -0
- package/dist/modells-CAfqOCW4.js +485 -0
- package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
- package/dist/nodeSelector-BiCDowlK.d.ts +31 -0
- package/dist/orgConfigResults--dAwtw3W.d.ts +881 -0
- package/dist/orgConfigResults-BL0XBA6x.d.cts +881 -0
- package/dist/pressedFloral-DULBuQwR.cjs +662 -0
- package/dist/pressedFloral-Dp-7Fk3S.js +662 -0
- package/dist/search-filter-types-BNTLVXqQ.d.cts +102 -0
- package/dist/search-filter-types-DkmH1TxJ.d.ts +102 -0
- package/dist/skinPerfection-BxuYCeJX.js +335 -0
- package/dist/skinPerfection-Cd3XZ6By.cjs +335 -0
- package/dist/snapSupplements-Bf6htPM0.js +286 -0
- package/dist/snapSupplements-ZFnXyMuZ.cjs +286 -0
- package/dist/socialProofClasses-DdzG1tZy.js +10 -0
- package/dist/socialProofClasses-ky69yppk.cjs +40 -0
- package/dist/spanx-CwDPQaGj.js +662 -0
- package/dist/spanx-Cyd4qDlK.cjs +664 -0
- package/dist/spanxStaging-D43nyAGy.js +846 -0
- package/dist/spanxStaging-ijbYnHzr.cjs +849 -0
- package/dist/suggestionBarV2-types-CwOXzIKq.js +10 -0
- package/dist/{suggestionBarV2-types-DG3Ekk44.cjs → suggestionBarV2-types-Dc4-zJlV.cjs} +2 -1
- package/dist/supergoop-BnbFG7hm.cjs +338 -0
- package/dist/supergoop-CY043wIg.js +336 -0
- package/dist/test-types-CXVJxTeu.d.ts +40 -0
- package/dist/test-types-CuOq25VT.d.cts +40 -0
- package/dist/types/index.cjs +2 -2
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/types-BF_CJeck.js +177 -0
- package/dist/types-CD4LFta-.d.cts +33 -0
- package/dist/types-CNH4sfF-.cjs +231 -0
- package/dist/types-DBdI0j89.d.ts +33 -0
- package/dist/uniqueVintage-Cui74mlJ.js +1212 -0
- package/dist/uniqueVintage-R2Jcu1y1.cjs +1214 -0
- package/dist/variant-CKVRF2-W.d.ts +13 -0
- package/dist/variant-raYuOP4L.d.cts +13 -0
- package/dist/venaCbd-o5_vOp4e.js +366 -0
- package/dist/venaCbd-r-IxEVc1.cjs +366 -0
- package/dist/westonJonBoucher-C95EuCl-.js +423 -0
- package/dist/westonJonBoucher-DjGEW3ZB.cjs +423 -0
- package/dist/wineEnthusiast-DeTFY8Gm.js +941 -0
- package/dist/wineEnthusiast-DvfcV5B3.cjs +941 -0
- package/dist/wolfMattress-6xPfOJt3.js +373 -0
- package/dist/wolfMattress-BjGnGKjP.cjs +373 -0
- package/dist/wolfTactical-Bi3WZu0m.cjs +350 -0
- package/dist/wolfTactical-C_F9-oPX.js +350 -0
- package/package.json +1 -1
- package/src/adapters/amplitude/amplitudeAdapter.ts +32 -9
- package/src/adapters/spiffy/commerce/api.ts +17 -8
- package/src/adapters/spiffy/commerce/graphql.ts +16 -5
- package/src/application/config/generalStaticConfig.ts +5 -2
- package/src/application/models/api/orgConfigResults.ts +6 -2
- package/src/application/models/validators/validateGraphQLColorsConfig.ts +23 -21
- package/src/application/service/cdnService.ts +4 -2
- package/src/application/service/index.ts +0 -1
- package/src/application/service/pageVariantService.ts +5 -5
- package/src/application/service/searchService.ts +9 -2
- package/src/application/service/windowChatToggleService.ts +28 -19
- package/src/application/service/windowFrontendConfigService.ts +7 -4
- package/src/atoms/app/index.ts +26 -17
- package/src/atoms/app/variant.ts +1 -0
- package/src/atoms/chat/messageQueue.ts +1 -1
- package/src/atoms/envive/enviveConfig.ts +81 -0
- package/src/atoms/org/graphqlConfig.ts +29 -11
- package/src/atoms/org/merchantCss.ts +114 -0
- package/src/atoms/org/org.ts +101 -64
- package/src/atoms/org/orgPageConfig.ts +9 -6
- package/src/atoms/org/orgUIConfig.ts +22 -9
- package/src/atoms/search/chatSearch.ts +85 -67
- package/src/contexts/chatContext.tsx +4 -1
- package/src/contexts/enviveConfigContext.tsx +37 -26
- package/src/contexts/enviveCssContext.tsx +20 -0
- package/src/contexts/index.ts +2 -0
- package/src/contexts/orgConfigContext.tsx +106 -0
- package/src/contexts/systemSettingsContext.tsx +2 -2
- package/src/contexts/types.ts +12 -9
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useSearch.tsx +10 -6
- package/src/hooks/utils.ts +1 -1
- package/src/interceptors/useFormEscalation.ts +26 -9
- package/src/types.ts +0 -2
- package/dist/api-BtzLHcfU.cjs +0 -268
- package/dist/api-kpPTZhV9.js +0 -189
- package/dist/atomStore-BNQyGmU_.cjs +0 -57
- package/dist/atomStore-TnLPtYns.js +0 -31
- package/dist/bandolier-CQrxBHsk.cjs +0 -1230
- package/dist/bandolier-Di9DpZ8e.js +0 -1230
- package/dist/carpe-3NJOR-Rj.cjs +0 -608
- package/dist/carpe-DmWKaIQq.js +0 -606
- package/dist/cdnService-BNreZjqy.js +0 -18
- package/dist/cdnService-vLxePdrU.cjs +0 -23
- package/dist/chat-CCQMmhc1.cjs +0 -5057
- package/dist/chat-Dk6KPb1K.js +0 -25
- package/dist/chat-H6YcCS4I.js +0 -4113
- package/dist/components-DAQxVIn9.js +0 -10
- package/dist/coterie-D0UFsFC5.cjs +0 -240
- package/dist/coterie-JblRmIZL.js +0 -240
- package/dist/customerService-C4wc0glQ.js +0 -22
- package/dist/customerService-zsDlp7g2.cjs +0 -35
- package/dist/custservice-types-D8Npo-5Z.js +0 -22
- package/dist/custservice-types-E9_OSaZ7.cjs +0 -34
- package/dist/default-C5ZTV8HA.cjs +0 -4
- package/dist/default-DPv8m-eQ.js +0 -175
- package/dist/default-DRKBosow.cjs +0 -198
- package/dist/default-ao0vRl0W.js +0 -4
- package/dist/divIds-BWvq-i6I.js +0 -22
- package/dist/dreamlandBaby-CyS8oW8X.js +0 -347
- package/dist/dreamlandBaby-y7kSvwH2.cjs +0 -347
- package/dist/embedded-C1jvFj3v.js +0 -22
- package/dist/entrypoints-CmmOszXO.js +0 -6
- package/dist/entrypoints-fowCLUT2.cjs +0 -18
- package/dist/enviveConfigContext-Bs8kepnO.cjs +0 -48
- package/dist/enviveConfigContext-CWVdVWKW.js +0 -34
- package/dist/events-DgFzlVJR.js +0 -77
- package/dist/events-bH-24eRW.cjs +0 -89
- package/dist/featureFlagService-CroFRxvD.d.cts +0 -17
- package/dist/featureFlagService-NkJ2fuEj.d.ts +0 -17
- package/dist/featureGates-BMWXU0dS.d.ts +0 -90
- package/dist/featureGates-N_gyHCTn.d.cts +0 -90
- package/dist/fiveCbd-CXVuIBiZ.cjs +0 -614
- package/dist/fiveCbd-Cyc3-Ab9.js +0 -614
- package/dist/forLoveAndLemons-CxQS0USq.cjs +0 -668
- package/dist/forLoveAndLemons-D8mcgmdk.js +0 -666
- package/dist/frontendConfig-KeNqU1wa.d.cts +0 -790
- package/dist/frontendConfig-cPvCTWm6.d.ts +0 -790
- package/dist/globalSearch-BC0rOX3E.js +0 -13
- package/dist/greenpan-JM6SHcqO.js +0 -398
- package/dist/greenpan-eIzyxVsn.cjs +0 -398
- package/dist/grooveLife-BmsUc2cD.js +0 -343
- package/dist/grooveLife-KdTizVUn.cjs +0 -343
- package/dist/homegrownCannabis-C0GDai4r.cjs +0 -411
- package/dist/homegrownCannabis-a9udocBT.js +0 -411
- package/dist/hooks-DjOa7ihH.cjs +0 -7331
- package/dist/hooks-fneW8SWw.js +0 -7152
- package/dist/index-BQErGgfM.d.cts +0 -202
- package/dist/index-BdNKc2ix.d.cts +0 -8
- package/dist/index-BrXuc_Ck.d.cts +0 -24
- package/dist/index-C4zjAR1c.d.cts +0 -227
- package/dist/index-CGB6CAmr.d.ts +0 -6
- package/dist/index-CIco0cCQ.d.ts +0 -183
- package/dist/index-COG1kOZG.d.ts +0 -749
- package/dist/index-CVxe7FpL.d.cts +0 -6
- package/dist/index-Cn1SeI5y.d.cts +0 -183
- package/dist/index-CnqHN_jz.d.ts +0 -202
- package/dist/index-Cqg6ltII.d.ts +0 -38
- package/dist/index-DE_7Q8qK.d.ts +0 -94
- package/dist/index-Da0UzyI9.d.ts +0 -24
- package/dist/index-DbWWcYax.d.cts +0 -749
- package/dist/index-DtoVXd6O.d.cts +0 -97
- package/dist/index-JClBRnSX.d.cts +0 -94
- package/dist/index-ghzD_356.d.ts +0 -8
- package/dist/index-hdbCEjYy.d.cts +0 -38
- package/dist/index-luJrHgPN.d.ts +0 -97
- package/dist/index-tfRj22E1.d.ts +0 -227
- package/dist/jackArcher-B6OJ0N3a.cjs +0 -728
- package/dist/jackArcher-B9fe4Hv8.js +0 -728
- package/dist/jordanCraig-0CB_m_ts.cjs +0 -1787
- package/dist/jordanCraig-DNm1iw1L.js +0 -1787
- package/dist/kindredBravely-CZgt7DJA.js +0 -491
- package/dist/kindredBravely-KvYPbckZ.cjs +0 -491
- package/dist/kutFromTheKloth-BxgtWZs9.cjs +0 -370
- package/dist/kutFromTheKloth-SmteSZjk.js +0 -370
- package/dist/larryAndSerges-6O_u3L90.cjs +0 -261
- package/dist/larryAndSerges-DO-zG8ES.js +0 -261
- package/dist/leapsAndRebounds-BK62AmXw.js +0 -361
- package/dist/leapsAndRebounds-gPsWVUmQ.cjs +0 -361
- package/dist/logger-Be0NyKaY.cjs +0 -25
- package/dist/logger-BexDfK3W.js +0 -19
- package/dist/longevityrx-DjKbwJo3.cjs +0 -321
- package/dist/longevityrx-eq5TeUcy.js +0 -321
- package/dist/lookOptic-BPPqms_j.cjs +0 -283
- package/dist/lookOptic-jRpBXQCN.js +0 -283
- package/dist/mantraBrand-BZOZfkUK.js +0 -751
- package/dist/mantraBrand-Cp8zptkj.cjs +0 -751
- package/dist/medterra-BHYCBgvQ.cjs +0 -584
- package/dist/medterra-CShe6CLY.js +0 -584
- package/dist/modells-DE7-gmjK.cjs +0 -485
- package/dist/modells-DFyJxNwT.js +0 -485
- package/dist/nodeSelector-DpKXszfU.d.ts +0 -30
- package/dist/nodeSelector-vKB44CDB.d.cts +0 -30
- package/dist/org-Bkn6fl6I.cjs +0 -106
- package/dist/org-CX8HFbc9.js +0 -63
- package/dist/pressedFloral-BMkCVs8c.cjs +0 -662
- package/dist/pressedFloral-aK9br-LF.js +0 -662
- package/dist/search-DtIFZeMA.cjs +0 -743
- package/dist/search-eWwg8pNn.js +0 -542
- package/dist/search-filter-types-ByJnFPc4.d.cts +0 -101
- package/dist/search-filter-types-DPgeG8FS.d.ts +0 -101
- package/dist/skinPerfection-B9G6yLM2.js +0 -335
- package/dist/skinPerfection-BBC1q65Z.cjs +0 -335
- package/dist/snapSupplements-D7hx6Kgj.cjs +0 -286
- package/dist/snapSupplements-DKvJl__T.js +0 -286
- package/dist/socialProofClasses-BYLiEXpU.cjs +0 -39
- package/dist/socialProofClasses-CkJufEGb.js +0 -9
- package/dist/spanx-D-ZKkxjM.cjs +0 -664
- package/dist/spanx-yl7YfVrf.js +0 -662
- package/dist/spanxStaging-CXeIg6zI.cjs +0 -849
- package/dist/spanxStaging-DzGXL9wD.js +0 -846
- package/dist/suggestionBarV2-types-B0RbMStE.js +0 -9
- package/dist/supergoop-CSpDPOpl.cjs +0 -337
- package/dist/supergoop-D0UkuRiA.js +0 -335
- package/dist/test-types-C9b_OdfO.d.ts +0 -39
- package/dist/test-types-CpKCxk8U.d.cts +0 -39
- package/dist/types-BE4faOO_.d.cts +0 -32
- package/dist/types-C3S1H4hl.js +0 -176
- package/dist/types-TD8g7LnH.d.ts +0 -32
- package/dist/types-lcjuhDBt.cjs +0 -230
- package/dist/uniqueVintage-DygVpCqU.cjs +0 -1214
- package/dist/uniqueVintage-_n0FZFVj.js +0 -1212
- package/dist/useMessageInterceptor-BP6gzo8a.js +0 -57
- package/dist/useMessageInterceptor-BnUG2Pzt.cjs +0 -72
- package/dist/variant-DH4zusMi.d.cts +0 -12
- package/dist/variant-DTEqSBHd.d.ts +0 -12
- package/dist/variantInfo-BTvC6CQh.js +0 -1
- package/dist/variantInfo-Cz2YXraO.cjs +0 -0
- package/dist/venaCbd-BS0dvdBm.js +0 -366
- package/dist/venaCbd-Pqg0bj-P.cjs +0 -366
- package/dist/westonJonBoucher-CLw8Hy6u.js +0 -423
- package/dist/westonJonBoucher-CeA0jwxe.cjs +0 -423
- package/dist/wineEnthusiast-M9P18d1w.js +0 -941
- package/dist/wineEnthusiast-gHBaQMbe.cjs +0 -941
- package/dist/wolfMattress-BQHjoQYu.js +0 -373
- package/dist/wolfMattress-CdmN-Evm.cjs +0 -373
- package/dist/wolfTactical-Cc2ZLBRh.js +0 -350
- package/dist/wolfTactical-dObnPgAG.cjs +0 -350
- package/src/application/service/environmentService.ts +0 -51
- package/src/extension.ts +0 -63
- package/src/initialize.ts +0 -163
- package/src/main.tsx +0 -108
- package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +0 -147
- /package/dist/{atomStore-FSZd_20F.js → locators-Dc5ZT0aF.js} +0 -0
- /package/dist/{atomStore-B3tsg6mF.cjs → locators-lQMJj830.cjs} +0 -0
- /package/dist/{locators-C2DX_nX6.js → utilityTypes-BVikejDo.js} +0 -0
- /package/dist/{locators-CUpyd9Wt.cjs → utilityTypes-C4h2wgAK.cjs} +0 -0
- /package/dist/{utilityTypes-DMdsI0DG.cjs → variantInfo-CNRTY0gH.cjs} +0 -0
- /package/dist/{utilityTypes-UWdNHElu.js → variantInfo-CzhR5W6h.js} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
require('../../
|
|
2
|
-
require('../../
|
|
3
|
-
const
|
|
4
|
-
require('../../types-
|
|
5
|
-
require('../../
|
|
6
|
-
require('../../
|
|
7
|
-
require('../../
|
|
8
|
-
require('../../
|
|
9
|
-
require('../../
|
|
10
|
-
require('../../
|
|
1
|
+
require('../../logger-Dln20ans.cjs');
|
|
2
|
+
require('../../api-B2euFL-5.cjs');
|
|
3
|
+
const require_contexts = require('../../contexts-CQDwe3rK.cjs');
|
|
4
|
+
require('../../types-CNH4sfF-.cjs');
|
|
5
|
+
require('../../atomStore-JwGb7pcy.cjs');
|
|
6
|
+
require('../../customerService-BG1uNZZ1.cjs');
|
|
7
|
+
require('../../globalSearch-BTeZxvk1.cjs');
|
|
8
|
+
require('../../utilityTypes-C4h2wgAK.cjs');
|
|
9
|
+
require('../../variantInfo-CNRTY0gH.cjs');
|
|
10
|
+
require('../../events-Da7gpmGv.cjs');
|
|
11
11
|
|
|
12
|
-
exports.AmplitudeAdapter =
|
|
13
|
-
exports.SpiffyMetricsEventName =
|
|
14
|
-
exports.StubAmplitudeAdapter =
|
|
12
|
+
exports.AmplitudeAdapter = require_contexts.AmplitudeAdapter;
|
|
13
|
+
exports.SpiffyMetricsEventName = require_contexts.SpiffyMetricsEventName;
|
|
14
|
+
exports.StubAmplitudeAdapter = require_contexts.StubAmplitudeAdapter;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import "../../
|
|
2
|
-
import "../../
|
|
3
|
-
import
|
|
1
|
+
import "../../orgConfigResults-BL0XBA6x.cjs";
|
|
2
|
+
import "../../types-CD4LFta-.cjs";
|
|
3
|
+
import "../../test-types-CuOq25VT.cjs";
|
|
4
|
+
import "../../featureFlagService-DaelrXEk.cjs";
|
|
5
|
+
import { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter } from "../../index-VSFakgAI.cjs";
|
|
4
6
|
export { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter };
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import "../../
|
|
2
|
-
import "../../
|
|
3
|
-
import
|
|
1
|
+
import "../../orgConfigResults--dAwtw3W.js";
|
|
2
|
+
import "../../types-DBdI0j89.js";
|
|
3
|
+
import "../../test-types-CXVJxTeu.js";
|
|
4
|
+
import "../../featureFlagService-5wdmW02z.js";
|
|
5
|
+
import { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter } from "../../index-MFbPQ8Ji.js";
|
|
4
6
|
export { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import "../../
|
|
2
|
-
import "../../
|
|
3
|
-
import { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter } from "../../
|
|
4
|
-
import "../../types-
|
|
5
|
-
import "../../
|
|
6
|
-
import "../../
|
|
7
|
-
import "../../
|
|
8
|
-
import "../../
|
|
9
|
-
import "../../
|
|
10
|
-
import "../../
|
|
1
|
+
import "../../logger-pdEEY8T2.js";
|
|
2
|
+
import "../../api-XRr_lAG6.js";
|
|
3
|
+
import { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter } from "../../contexts-e2sM-B9g.js";
|
|
4
|
+
import "../../types-BF_CJeck.js";
|
|
5
|
+
import "../../atomStore-B1cgmbP0.js";
|
|
6
|
+
import "../../customerService-BHQRnLhC.js";
|
|
7
|
+
import "../../globalSearch-b0wC7ZEO.js";
|
|
8
|
+
import "../../utilityTypes-BVikejDo.js";
|
|
9
|
+
import "../../variantInfo-CzhR5W6h.js";
|
|
10
|
+
import "../../events-ClCDFK7t.js";
|
|
11
11
|
|
|
12
12
|
export { AmplitudeAdapter, SpiffyMetricsEventName, StubAmplitudeAdapter };
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const require_logger = require('./logger-Dln20ans.cjs');
|
|
3
|
+
let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
|
|
4
|
+
__spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
|
|
5
|
+
|
|
6
|
+
//#region src/application/models/guards/api/isApiSuggestion.ts
|
|
7
|
+
const isSuggestion = (data) => {
|
|
8
|
+
if (data == null || typeof data !== "object") return false;
|
|
9
|
+
if (!("id" in data) || typeof data.id !== "string") return false;
|
|
10
|
+
if (!("category" in data) || typeof data.category !== "string" || !Object.values(__spiffy_ai_commerce_api_client.SuggestionCategory).includes(data.category)) return false;
|
|
11
|
+
if (!("created_at" in data) || typeof data.created_at !== "string") return false;
|
|
12
|
+
if (!("content" in data) || typeof data.content !== "string") return false;
|
|
13
|
+
if ("is_answer" in data && data.is_answer != null && typeof data.is_answer !== "boolean") return false;
|
|
14
|
+
return true;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/application/models/guards/api/isApiUserEvent.ts
|
|
19
|
+
const isApiUserEvent = (data) => {
|
|
20
|
+
if (data == null || typeof data !== "object") return false;
|
|
21
|
+
if (!("event_id" in data) || typeof data.event_id !== "string") return false;
|
|
22
|
+
if (!("created_at" in data) || typeof data.created_at !== "string") return false;
|
|
23
|
+
if (!("category" in data) || typeof data.category !== "string" || !Object.values(__spiffy_ai_commerce_api_client.UserEventCategory).includes(data.category)) return false;
|
|
24
|
+
return true;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/application/models/guards/api/isApiPDPEventAttributes.ts
|
|
29
|
+
const isApiPDPAttributes = (data) => {
|
|
30
|
+
if (data == null || typeof data !== "object") return false;
|
|
31
|
+
if (!("product_id" in data) || typeof data.product_id !== "string") return false;
|
|
32
|
+
if ("parent_product_id" in data && typeof data.parent_product_id !== "string") return false;
|
|
33
|
+
if ("url" in data && data.url != null && typeof data.url !== "string") return false;
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/application/models/guards/api/isApiQueryTypedEventAttributes.ts
|
|
39
|
+
const isApiQueryTypedAttributes = (data) => data != null && typeof data === "object" && "query" in data && typeof data.query === "string";
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/application/models/guards/api/isApiSearchEventAttributes.ts
|
|
43
|
+
const isApiSearchAttributes = (data) => {
|
|
44
|
+
if (data == null || typeof data !== "object") return false;
|
|
45
|
+
if (!("search_term" in data) || typeof data.search_term !== "string") return false;
|
|
46
|
+
if ("selected_filters" in data && !Array.isArray(data.selected_filters)) return false;
|
|
47
|
+
if (!!data.search_term) return true;
|
|
48
|
+
if (!("search_results" in data) || !Array.isArray(data.search_results) || !data.search_results.every((v) => typeof v === "string")) return false;
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts
|
|
54
|
+
const isApiSuggestionClickedAttributes = (data) => data != null && typeof data === "object" && "suggestion_id" in data && typeof data.suggestion_id === "string";
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/application/models/guards/utils.ts
|
|
58
|
+
/**
|
|
59
|
+
* Checks if an object has a property of a specific type
|
|
60
|
+
*
|
|
61
|
+
* @param obj - The object to check
|
|
62
|
+
* @param prop - The property name to check
|
|
63
|
+
* @param type - The expected type of the property
|
|
64
|
+
* @param isOptional - Whether the property is optional (defaults to false)
|
|
65
|
+
*
|
|
66
|
+
* @returns boolean indicating if the object has the property of the specified type
|
|
67
|
+
*/
|
|
68
|
+
const hasPropertyOfType = (obj, prop, type, isOptional = false) => {
|
|
69
|
+
try {
|
|
70
|
+
if (obj == null || typeof obj !== "object") return false;
|
|
71
|
+
if (!(prop in obj)) return isOptional;
|
|
72
|
+
const value = obj[prop];
|
|
73
|
+
if (isOptional && value == null) return true;
|
|
74
|
+
if (type === "array") return Array.isArray(value);
|
|
75
|
+
return typeof value === type;
|
|
76
|
+
} catch (err) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/application/models/guards/api/isApiResponse.ts
|
|
83
|
+
const isApiResponse = (data) => {
|
|
84
|
+
if (data == null || typeof data !== "object") {
|
|
85
|
+
require_logger.logger_default.logError("isApiResponse: data is null or not an object", void 0, { data });
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (!hasPropertyOfType(data, "id", "string")) {
|
|
89
|
+
require_logger.logger_default.logError("isApiResponse: id is not a string", void 0, { data });
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (!hasPropertyOfType(data, "category", "string") || !Object.values(__spiffy_ai_commerce_api_client.ResponseCategory).includes(data.category)) {
|
|
93
|
+
require_logger.logger_default.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (!hasPropertyOfType(data, "created_at", "string")) {
|
|
97
|
+
require_logger.logger_default.logError("isApiResponse: created_at is not a string", void 0, { data });
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (!hasPropertyOfType(data, "attributes", "object", true)) {
|
|
101
|
+
require_logger.logger_default.logError("isApiResponse: attributes is not an object", void 0, { data });
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/application/models/guards/api/isApiProductResponseAttributes.ts
|
|
109
|
+
const isApiProductResponseAttributes = (attributes) => {
|
|
110
|
+
if (attributes == null || typeof attributes !== "object") {
|
|
111
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
if (!hasPropertyOfType(attributes, "description", "string", true)) {
|
|
115
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
if (!hasPropertyOfType(attributes, "image_url", "string", true)) {
|
|
119
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
if (!hasPropertyOfType(attributes, "title", "string")) {
|
|
123
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
if (!hasPropertyOfType(attributes, "url", "string")) {
|
|
127
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (!hasPropertyOfType(attributes, "original_price", "number", true)) {
|
|
131
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
if (!hasPropertyOfType(attributes, "sale_price", "number", true)) {
|
|
135
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
if (!hasPropertyOfType(attributes, "average_rating", "number", true)) {
|
|
139
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
if (!hasPropertyOfType(attributes, "number_reviews", "number", true)) {
|
|
143
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
if (!hasPropertyOfType(attributes, "metadata", "array", true)) {
|
|
147
|
+
require_logger.logger_default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region src/application/models/guards/api/isApiReviewRichInformation.ts
|
|
155
|
+
const isApiReviewRichInformation = (richInfo) => {
|
|
156
|
+
if (richInfo == null || typeof richInfo !== "object") return false;
|
|
157
|
+
if ("cons" in richInfo && (!Array.isArray(richInfo.cons) || richInfo.cons.some((con) => typeof con !== "string"))) return false;
|
|
158
|
+
if ("pros" in richInfo && (!Array.isArray(richInfo.pros) || richInfo.pros.some((pro) => typeof pro !== "string"))) return false;
|
|
159
|
+
if ("review_date" in richInfo && typeof richInfo.review_date !== "string") return false;
|
|
160
|
+
if ("reviewer_title" in richInfo && typeof richInfo.reviewer_title !== "string") return false;
|
|
161
|
+
if ("product_familiarity" in richInfo && typeof richInfo.product_familiarity !== "string") return false;
|
|
162
|
+
return true;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/application/models/guards/api/isApiReviewResponseAttributes.ts
|
|
167
|
+
const isApiReviewResponseAttributes = (obj) => {
|
|
168
|
+
if (obj == null || typeof obj !== "object") return false;
|
|
169
|
+
if ("title" in obj && obj.title != null && typeof obj.title !== "string") return false;
|
|
170
|
+
if ("review" in obj && typeof obj.review !== "string") return false;
|
|
171
|
+
if ("reviewer" in obj && typeof obj.reviewer !== "string") return false;
|
|
172
|
+
if ("stars" in obj && typeof obj.stars !== "number") return false;
|
|
173
|
+
if ("rich_information" in obj && !isApiReviewRichInformation(obj.rich_information)) return false;
|
|
174
|
+
return true;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region src/application/models/guards/api/isApiTextResponseAttributes.ts
|
|
179
|
+
const isApiTextResponseAttributes = (attributes) => typeof attributes === "object" && attributes != null && "content" in attributes && typeof attributes.content === "string";
|
|
180
|
+
|
|
181
|
+
//#endregion
|
|
182
|
+
//#region src/application/models/guards/api/isApiProductSearchAttributes.ts
|
|
183
|
+
const isApiProductSearchResponseAttributes = (attributes) => {
|
|
184
|
+
if (attributes == null || typeof attributes !== "object") return false;
|
|
185
|
+
if ("generated_query" in attributes && typeof attributes.generated_query !== "string") return false;
|
|
186
|
+
if ("product_count" in attributes && attributes.product_count != null && typeof attributes.product_count !== "number") return false;
|
|
187
|
+
return true;
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
//#endregion
|
|
191
|
+
Object.defineProperty(exports, 'hasPropertyOfType', {
|
|
192
|
+
enumerable: true,
|
|
193
|
+
get: function () {
|
|
194
|
+
return hasPropertyOfType;
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
Object.defineProperty(exports, 'isApiPDPAttributes', {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
get: function () {
|
|
200
|
+
return isApiPDPAttributes;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
Object.defineProperty(exports, 'isApiProductResponseAttributes', {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
get: function () {
|
|
206
|
+
return isApiProductResponseAttributes;
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
Object.defineProperty(exports, 'isApiProductSearchResponseAttributes', {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
get: function () {
|
|
212
|
+
return isApiProductSearchResponseAttributes;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
Object.defineProperty(exports, 'isApiQueryTypedAttributes', {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
get: function () {
|
|
218
|
+
return isApiQueryTypedAttributes;
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
Object.defineProperty(exports, 'isApiResponse', {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function () {
|
|
224
|
+
return isApiResponse;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
Object.defineProperty(exports, 'isApiReviewResponseAttributes', {
|
|
228
|
+
enumerable: true,
|
|
229
|
+
get: function () {
|
|
230
|
+
return isApiReviewResponseAttributes;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
Object.defineProperty(exports, 'isApiReviewRichInformation', {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
get: function () {
|
|
236
|
+
return isApiReviewRichInformation;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
Object.defineProperty(exports, 'isApiSearchAttributes', {
|
|
240
|
+
enumerable: true,
|
|
241
|
+
get: function () {
|
|
242
|
+
return isApiSearchAttributes;
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
Object.defineProperty(exports, 'isApiSuggestionClickedAttributes', {
|
|
246
|
+
enumerable: true,
|
|
247
|
+
get: function () {
|
|
248
|
+
return isApiSuggestionClickedAttributes;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
Object.defineProperty(exports, 'isApiTextResponseAttributes', {
|
|
252
|
+
enumerable: true,
|
|
253
|
+
get: function () {
|
|
254
|
+
return isApiTextResponseAttributes;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
Object.defineProperty(exports, 'isApiUserEvent', {
|
|
258
|
+
enumerable: true,
|
|
259
|
+
get: function () {
|
|
260
|
+
return isApiUserEvent;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
Object.defineProperty(exports, 'isSuggestion', {
|
|
264
|
+
enumerable: true,
|
|
265
|
+
get: function () {
|
|
266
|
+
return isSuggestion;
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLUIyZXVGTC01LmNqcyIsIm5hbWVzIjpbIlN1Z2dlc3Rpb25DYXRlZ29yeSIsIlVzZXJFdmVudENhdGVnb3J5IiwiUmVzcG9uc2VDYXRlZ29yeSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVN1Z2dlc3Rpb24udHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlVc2VyRXZlbnQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQRFBFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlRdWVyeVR5cGVkRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU2VhcmNoRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbkNsaWNrZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy91dGlscy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJlc3BvbnNlLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbi50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQcm9kdWN0U2VhcmNoQXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTdWdnZXN0aW9uIGFzIENvbW1lcmNlU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbkNhdGVnb3J5LFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNTdWdnZXN0aW9uID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIENvbW1lcmNlU3VnZ2VzdGlvbiA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoU3VnZ2VzdGlvbkNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFN1Z2dlc3Rpb25DYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNyZWF0ZWRfYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NvbnRlbnQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpc19hbnN3ZXInIGluIGRhdGEgJiYgZGF0YS5pc19hbnN3ZXIgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS5pc19hbnN3ZXIgIT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlVc2VyRXZlbnQgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgVXNlckV2ZW50ID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnZXZlbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmV2ZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjYXRlZ29yeScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jYXRlZ29yeSAhPT0gJ3N0cmluZycgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhVc2VyRXZlbnRDYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBVc2VyRXZlbnRDYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUERQQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVBEUEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUERQQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb2R1Y3RfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnByb2R1Y3RfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwYXJlbnRfcHJvZHVjdF9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5wYXJlbnRfcHJvZHVjdF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3VybCcgaW4gZGF0YSAmJiBkYXRhLnVybCAhPSBudWxsICYmIHR5cGVvZiBkYXRhLnVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBRdWVyeVR5cGVkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3F1ZXJ5JyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLnF1ZXJ5ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCB7IFNlYXJjaEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlTZWFyY2hBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFNlYXJjaEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdzZWFyY2hfdGVybScgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuc2VhcmNoX3Rlcm0gIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgnc2VsZWN0ZWRfZmlsdGVycycgaW4gZGF0YSAmJiAhQXJyYXkuaXNBcnJheShkYXRhLnNlbGVjdGVkX2ZpbHRlcnMpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEhZGF0YS5zZWFyY2hfdGVybSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ3NlYXJjaF9yZXN1bHRzJyBpbiBkYXRhKSB8fFxuICAgICFBcnJheS5pc0FycmF5KGRhdGEuc2VhcmNoX3Jlc3VsdHMpIHx8XG4gICAgIWRhdGEuc2VhcmNoX3Jlc3VsdHMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IGlzQXBpU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzID0gKFxuICBkYXRhOiB1bmtub3duLFxuKTogZGF0YSBpcyBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgPT5cbiAgZGF0YSAhPSBudWxsICYmXG4gIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAnc3VnZ2VzdGlvbl9pZCcgaW4gZGF0YSAmJlxuICB0eXBlb2YgZGF0YS5zdWdnZXN0aW9uX2lkID09PSAnc3RyaW5nJztcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIHR5cGVcbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVja1xuICogQHBhcmFtIHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSB0byBjaGVja1xuICogQHBhcmFtIHR5cGUgLSBUaGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcHJvcGVydHlcbiAqIEBwYXJhbSBpc09wdGlvbmFsIC0gV2hldGhlciB0aGUgcHJvcGVydHkgaXMgb3B0aW9uYWwgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICpcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCB0eXBlXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNQcm9wZXJ0eU9mVHlwZSA9IDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgb2JqOiB1bmtub3duLFxuICBwcm9wOiBrZXlvZiBULFxuICB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ29iamVjdCcgfCAnYXJyYXknLFxuICBpc09wdGlvbmFsOiBib29sZWFuID0gZmFsc2UsXG4pOiBvYmogaXMgVCA9PiB7XG4gIHRyeSB7XG4gICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gSWYgcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIGl0J3MgdmFsaWQgZm9yIGFuIG9wdGlvbmFsIHByb3BlcnR5XG4gICAgaWYgKCEocHJvcCBpbiBvYmopKSB7XG4gICAgICByZXR1cm4gaXNPcHRpb25hbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IChvYmogYXMgVClbcHJvcF07XG5cbiAgICAvLyBGb3Igb3B0aW9uYWwgcHJvcGVydGllcywgbnVsbCBvciB1bmRlZmluZWQgdmFsdWVzIGFyZSB2YWxpZFxuICAgIGlmIChpc09wdGlvbmFsICYmIHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnYXJyYXknKSB7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gdHlwZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gc3dhbGxvdyB0aGUgZXJyb3IgYXMgaXQgc2hvdWxkIGJlIHJlcG9ydGVkIGluIG1vcmUgZGV0YWlsIGJ5IHRoZSBjYWxsZXJcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG4iLCJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZSwgUmVzcG9uc2VDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUmVzcG9uc2UgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUmVzcG9uc2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogZGF0YSBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdpZCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogaWQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnY2F0ZWdvcnknLCAnc3RyaW5nJykgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhSZXNwb25zZUNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFJlc3BvbnNlQ2F0ZWdvcnkpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVJlc3BvbnNlOiBjYXRlZ29yeSBpcyBub3QgYSBzdHJpbmcgb3Igbm90IGEgdmFsaWQgcmVzcG9uc2UgY2F0ZWdvcnknLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyBkYXRhIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjcmVhdGVkX2F0JywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBjcmVhdGVkX2F0IGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2F0dHJpYnV0ZXMnLCAnb2JqZWN0JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGF0dHJpYnV0ZXMgaXMgbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgaGFzUHJvcGVydHlPZlR5cGUgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0JyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdkZXNjcmlwdGlvbicsICdzdHJpbmcnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBkZXNjcmlwdGlvbiBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnaW1hZ2VfdXJsJywgJ3N0cmluZycsIHRydWUpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBpbWFnZV91cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3RpdGxlJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHRpdGxlIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd1cmwnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdvcmlnaW5hbF9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBvcmlnaW5hbF9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnc2FsZV9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBzYWxlX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdhdmVyYWdlX3JhdGluZycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBhdmVyYWdlX3JhdGluZyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbnVtYmVyX3Jldmlld3MnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbnVtYmVyX3Jldmlld3MgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ21ldGFkYXRhJywgJ2FycmF5JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbWV0YWRhdGEgaXMgbm90IGFuIGFycmF5JywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IEFwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPSAoXG4gIHJpY2hJbmZvOiB1bmtub3duLFxuKTogcmljaEluZm8gaXMgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uID0+IHtcbiAgaWYgKHJpY2hJbmZvID09IG51bGwgfHwgdHlwZW9mIHJpY2hJbmZvICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAnY29ucycgaW4gcmljaEluZm8gJiZcbiAgICAoIUFycmF5LmlzQXJyYXkocmljaEluZm8uY29ucykgfHwgcmljaEluZm8uY29ucy5zb21lKChjb24pID0+IHR5cGVvZiBjb24gIT09ICdzdHJpbmcnKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdwcm9zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5wcm9zKSB8fCByaWNoSW5mby5wcm9zLnNvbWUoKHBybykgPT4gdHlwZW9mIHBybyAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld19kYXRlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3X2RhdGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcl90aXRsZScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnJldmlld2VyX3RpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncHJvZHVjdF9mYW1pbGlhcml0eScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnByb2R1Y3RfZmFtaWxpYXJpdHkgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5pbXBvcnQgeyBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJy4vaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24nO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgPSAob2JqOiB1bmtub3duKTogb2JqIGlzIEFwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9PiB7XG4gIGlmIChvYmogPT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgndGl0bGUnIGluIG9iaiAmJiBvYmoudGl0bGUgIT0gbnVsbCAmJiB0eXBlb2Ygb2JqLnRpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3JyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXcgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcicgaW4gb2JqICYmIHR5cGVvZiBvYmoucmV2aWV3ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdzdGFycycgaW4gb2JqICYmIHR5cGVvZiBvYmouc3RhcnMgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyaWNoX2luZm9ybWF0aW9uJyBpbiBvYmogJiYgIWlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uKG9iai5yaWNoX2luZm9ybWF0aW9uKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IEFwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9yZXNwb25zZUdlbmVyaWNzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcyA9PlxuICB0eXBlb2YgYXR0cmlidXRlcyA9PT0gJ29iamVjdCcgJiZcbiAgYXR0cmlidXRlcyAhPSBudWxsICYmXG4gICdjb250ZW50JyBpbiBhdHRyaWJ1dGVzICYmXG4gIHR5cGVvZiBhdHRyaWJ1dGVzLmNvbnRlbnQgPT09ICdzdHJpbmcnO1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnZ2VuZXJhdGVkX3F1ZXJ5JyBpbiBhdHRyaWJ1dGVzICYmIHR5cGVvZiBhdHRyaWJ1dGVzLmdlbmVyYXRlZF9xdWVyeSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb2R1Y3RfY291bnQnIGluIGF0dHJpYnV0ZXMgJiZcbiAgICBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT09ICdudW1iZXInXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsTUFBYSxnQkFBZ0IsU0FBOEM7QUFDekUsS0FBSSxRQUFRLFFBQVEsT0FBTyxTQUFTLFNBQ2xDLFFBQU87QUFHVCxLQUFJLEVBQUUsUUFBUSxTQUFTLE9BQU8sS0FBSyxPQUFPLFNBQ3hDLFFBQU87QUFHVCxLQUNFLEVBQUUsY0FBYyxTQUNoQixPQUFPLEtBQUssYUFBYSxZQUN6QixDQUFDLE9BQU8sT0FBT0EsbURBQW1CLENBQUMsU0FBUyxLQUFLLFNBQStCLENBRWhGLFFBQU87QUFHVCxLQUFJLEVBQUUsZ0JBQWdCLFNBQVMsT0FBTyxLQUFLLGVBQWUsU0FDeEQsUUFBTztBQUdULEtBQUksRUFBRSxhQUFhLFNBQVMsT0FBTyxLQUFLLFlBQVksU0FDbEQsUUFBTztBQUdULEtBQUksZUFBZSxRQUFRLEtBQUss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
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { logger_default } from "./logger-pdEEY8T2.js";
|
|
2
|
+
import { ResponseCategory, SuggestionCategory, UserEventCategory } from "@spiffy-ai/commerce-api-client";
|
|
3
|
+
|
|
4
|
+
//#region src/application/models/guards/api/isApiSuggestion.ts
|
|
5
|
+
const isSuggestion = (data) => {
|
|
6
|
+
if (data == null || typeof data !== "object") return false;
|
|
7
|
+
if (!("id" in data) || typeof data.id !== "string") return false;
|
|
8
|
+
if (!("category" in data) || typeof data.category !== "string" || !Object.values(SuggestionCategory).includes(data.category)) return false;
|
|
9
|
+
if (!("created_at" in data) || typeof data.created_at !== "string") return false;
|
|
10
|
+
if (!("content" in data) || typeof data.content !== "string") return false;
|
|
11
|
+
if ("is_answer" in data && data.is_answer != null && typeof data.is_answer !== "boolean") return false;
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/application/models/guards/api/isApiUserEvent.ts
|
|
17
|
+
const isApiUserEvent = (data) => {
|
|
18
|
+
if (data == null || typeof data !== "object") return false;
|
|
19
|
+
if (!("event_id" in data) || typeof data.event_id !== "string") return false;
|
|
20
|
+
if (!("created_at" in data) || typeof data.created_at !== "string") return false;
|
|
21
|
+
if (!("category" in data) || typeof data.category !== "string" || !Object.values(UserEventCategory).includes(data.category)) return false;
|
|
22
|
+
return true;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/application/models/guards/api/isApiPDPEventAttributes.ts
|
|
27
|
+
const isApiPDPAttributes = (data) => {
|
|
28
|
+
if (data == null || typeof data !== "object") return false;
|
|
29
|
+
if (!("product_id" in data) || typeof data.product_id !== "string") return false;
|
|
30
|
+
if ("parent_product_id" in data && typeof data.parent_product_id !== "string") return false;
|
|
31
|
+
if ("url" in data && data.url != null && typeof data.url !== "string") return false;
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/application/models/guards/api/isApiQueryTypedEventAttributes.ts
|
|
37
|
+
const isApiQueryTypedAttributes = (data) => data != null && typeof data === "object" && "query" in data && typeof data.query === "string";
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/application/models/guards/api/isApiSearchEventAttributes.ts
|
|
41
|
+
const isApiSearchAttributes = (data) => {
|
|
42
|
+
if (data == null || typeof data !== "object") return false;
|
|
43
|
+
if (!("search_term" in data) || typeof data.search_term !== "string") return false;
|
|
44
|
+
if ("selected_filters" in data && !Array.isArray(data.selected_filters)) return false;
|
|
45
|
+
if (!!data.search_term) return true;
|
|
46
|
+
if (!("search_results" in data) || !Array.isArray(data.search_results) || !data.search_results.every((v) => typeof v === "string")) return false;
|
|
47
|
+
return true;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts
|
|
52
|
+
const isApiSuggestionClickedAttributes = (data) => data != null && typeof data === "object" && "suggestion_id" in data && typeof data.suggestion_id === "string";
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region src/application/models/guards/utils.ts
|
|
56
|
+
/**
|
|
57
|
+
* Checks if an object has a property of a specific type
|
|
58
|
+
*
|
|
59
|
+
* @param obj - The object to check
|
|
60
|
+
* @param prop - The property name to check
|
|
61
|
+
* @param type - The expected type of the property
|
|
62
|
+
* @param isOptional - Whether the property is optional (defaults to false)
|
|
63
|
+
*
|
|
64
|
+
* @returns boolean indicating if the object has the property of the specified type
|
|
65
|
+
*/
|
|
66
|
+
const hasPropertyOfType = (obj, prop, type, isOptional = false) => {
|
|
67
|
+
try {
|
|
68
|
+
if (obj == null || typeof obj !== "object") return false;
|
|
69
|
+
if (!(prop in obj)) return isOptional;
|
|
70
|
+
const value = obj[prop];
|
|
71
|
+
if (isOptional && value == null) return true;
|
|
72
|
+
if (type === "array") return Array.isArray(value);
|
|
73
|
+
return typeof value === type;
|
|
74
|
+
} catch (err) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/application/models/guards/api/isApiResponse.ts
|
|
81
|
+
const isApiResponse = (data) => {
|
|
82
|
+
if (data == null || typeof data !== "object") {
|
|
83
|
+
logger_default.logError("isApiResponse: data is null or not an object", void 0, { data });
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (!hasPropertyOfType(data, "id", "string")) {
|
|
87
|
+
logger_default.logError("isApiResponse: id is not a string", void 0, { data });
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (!hasPropertyOfType(data, "category", "string") || !Object.values(ResponseCategory).includes(data.category)) {
|
|
91
|
+
logger_default.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (!hasPropertyOfType(data, "created_at", "string")) {
|
|
95
|
+
logger_default.logError("isApiResponse: created_at is not a string", void 0, { data });
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
if (!hasPropertyOfType(data, "attributes", "object", true)) {
|
|
99
|
+
logger_default.logError("isApiResponse: attributes is not an object", void 0, { data });
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return true;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/application/models/guards/api/isApiProductResponseAttributes.ts
|
|
107
|
+
const isApiProductResponseAttributes = (attributes) => {
|
|
108
|
+
if (attributes == null || typeof attributes !== "object") {
|
|
109
|
+
logger_default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (!hasPropertyOfType(attributes, "description", "string", true)) {
|
|
113
|
+
logger_default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
if (!hasPropertyOfType(attributes, "image_url", "string", true)) {
|
|
117
|
+
logger_default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
if (!hasPropertyOfType(attributes, "title", "string")) {
|
|
121
|
+
logger_default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
if (!hasPropertyOfType(attributes, "url", "string")) {
|
|
125
|
+
logger_default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (!hasPropertyOfType(attributes, "original_price", "number", true)) {
|
|
129
|
+
logger_default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
if (!hasPropertyOfType(attributes, "sale_price", "number", true)) {
|
|
133
|
+
logger_default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
if (!hasPropertyOfType(attributes, "average_rating", "number", true)) {
|
|
137
|
+
logger_default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
if (!hasPropertyOfType(attributes, "number_reviews", "number", true)) {
|
|
141
|
+
logger_default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
if (!hasPropertyOfType(attributes, "metadata", "array", true)) {
|
|
145
|
+
logger_default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
return true;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/application/models/guards/api/isApiReviewRichInformation.ts
|
|
153
|
+
const isApiReviewRichInformation = (richInfo) => {
|
|
154
|
+
if (richInfo == null || typeof richInfo !== "object") return false;
|
|
155
|
+
if ("cons" in richInfo && (!Array.isArray(richInfo.cons) || richInfo.cons.some((con) => typeof con !== "string"))) return false;
|
|
156
|
+
if ("pros" in richInfo && (!Array.isArray(richInfo.pros) || richInfo.pros.some((pro) => typeof pro !== "string"))) return false;
|
|
157
|
+
if ("review_date" in richInfo && typeof richInfo.review_date !== "string") return false;
|
|
158
|
+
if ("reviewer_title" in richInfo && typeof richInfo.reviewer_title !== "string") return false;
|
|
159
|
+
if ("product_familiarity" in richInfo && typeof richInfo.product_familiarity !== "string") return false;
|
|
160
|
+
return true;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region src/application/models/guards/api/isApiReviewResponseAttributes.ts
|
|
165
|
+
const isApiReviewResponseAttributes = (obj) => {
|
|
166
|
+
if (obj == null || typeof obj !== "object") return false;
|
|
167
|
+
if ("title" in obj && obj.title != null && typeof obj.title !== "string") return false;
|
|
168
|
+
if ("review" in obj && typeof obj.review !== "string") return false;
|
|
169
|
+
if ("reviewer" in obj && typeof obj.reviewer !== "string") return false;
|
|
170
|
+
if ("stars" in obj && typeof obj.stars !== "number") return false;
|
|
171
|
+
if ("rich_information" in obj && !isApiReviewRichInformation(obj.rich_information)) return false;
|
|
172
|
+
return true;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region src/application/models/guards/api/isApiTextResponseAttributes.ts
|
|
177
|
+
const isApiTextResponseAttributes = (attributes) => typeof attributes === "object" && attributes != null && "content" in attributes && typeof attributes.content === "string";
|
|
178
|
+
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/application/models/guards/api/isApiProductSearchAttributes.ts
|
|
181
|
+
const isApiProductSearchResponseAttributes = (attributes) => {
|
|
182
|
+
if (attributes == null || typeof attributes !== "object") return false;
|
|
183
|
+
if ("generated_query" in attributes && typeof attributes.generated_query !== "string") return false;
|
|
184
|
+
if ("product_count" in attributes && attributes.product_count != null && typeof attributes.product_count !== "number") return false;
|
|
185
|
+
return true;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
//#endregion
|
|
189
|
+
export { hasPropertyOfType, isApiPDPAttributes, isApiProductResponseAttributes, isApiProductSearchResponseAttributes, isApiQueryTypedAttributes, isApiResponse, isApiReviewResponseAttributes, isApiReviewRichInformation, isApiSearchAttributes, isApiSuggestionClickedAttributes, isApiTextResponseAttributes, isApiUserEvent, isSuggestion };
|
|
190
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLVhScl9sQUc2LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVN1Z2dlc3Rpb24udHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlVc2VyRXZlbnQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQRFBFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlRdWVyeVR5cGVkRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU2VhcmNoRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbkNsaWNrZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy91dGlscy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJlc3BvbnNlLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbi50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQcm9kdWN0U2VhcmNoQXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTdWdnZXN0aW9uIGFzIENvbW1lcmNlU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbkNhdGVnb3J5LFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNTdWdnZXN0aW9uID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIENvbW1lcmNlU3VnZ2VzdGlvbiA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoU3VnZ2VzdGlvbkNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFN1Z2dlc3Rpb25DYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNyZWF0ZWRfYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NvbnRlbnQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpc19hbnN3ZXInIGluIGRhdGEgJiYgZGF0YS5pc19hbnN3ZXIgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS5pc19hbnN3ZXIgIT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlVc2VyRXZlbnQgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgVXNlckV2ZW50ID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnZXZlbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmV2ZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjYXRlZ29yeScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jYXRlZ29yeSAhPT0gJ3N0cmluZycgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhVc2VyRXZlbnRDYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBVc2VyRXZlbnRDYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUERQQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVBEUEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUERQQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb2R1Y3RfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnByb2R1Y3RfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwYXJlbnRfcHJvZHVjdF9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5wYXJlbnRfcHJvZHVjdF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3VybCcgaW4gZGF0YSAmJiBkYXRhLnVybCAhPSBudWxsICYmIHR5cGVvZiBkYXRhLnVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBRdWVyeVR5cGVkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3F1ZXJ5JyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLnF1ZXJ5ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCB7IFNlYXJjaEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlTZWFyY2hBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFNlYXJjaEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdzZWFyY2hfdGVybScgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuc2VhcmNoX3Rlcm0gIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgnc2VsZWN0ZWRfZmlsdGVycycgaW4gZGF0YSAmJiAhQXJyYXkuaXNBcnJheShkYXRhLnNlbGVjdGVkX2ZpbHRlcnMpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEhZGF0YS5zZWFyY2hfdGVybSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ3NlYXJjaF9yZXN1bHRzJyBpbiBkYXRhKSB8fFxuICAgICFBcnJheS5pc0FycmF5KGRhdGEuc2VhcmNoX3Jlc3VsdHMpIHx8XG4gICAgIWRhdGEuc2VhcmNoX3Jlc3VsdHMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IGlzQXBpU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzID0gKFxuICBkYXRhOiB1bmtub3duLFxuKTogZGF0YSBpcyBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgPT5cbiAgZGF0YSAhPSBudWxsICYmXG4gIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAnc3VnZ2VzdGlvbl9pZCcgaW4gZGF0YSAmJlxuICB0eXBlb2YgZGF0YS5zdWdnZXN0aW9uX2lkID09PSAnc3RyaW5nJztcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIHR5cGVcbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVja1xuICogQHBhcmFtIHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSB0byBjaGVja1xuICogQHBhcmFtIHR5cGUgLSBUaGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcHJvcGVydHlcbiAqIEBwYXJhbSBpc09wdGlvbmFsIC0gV2hldGhlciB0aGUgcHJvcGVydHkgaXMgb3B0aW9uYWwgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICpcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCB0eXBlXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNQcm9wZXJ0eU9mVHlwZSA9IDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgb2JqOiB1bmtub3duLFxuICBwcm9wOiBrZXlvZiBULFxuICB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ29iamVjdCcgfCAnYXJyYXknLFxuICBpc09wdGlvbmFsOiBib29sZWFuID0gZmFsc2UsXG4pOiBvYmogaXMgVCA9PiB7XG4gIHRyeSB7XG4gICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gSWYgcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIGl0J3MgdmFsaWQgZm9yIGFuIG9wdGlvbmFsIHByb3BlcnR5XG4gICAgaWYgKCEocHJvcCBpbiBvYmopKSB7XG4gICAgICByZXR1cm4gaXNPcHRpb25hbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IChvYmogYXMgVClbcHJvcF07XG5cbiAgICAvLyBGb3Igb3B0aW9uYWwgcHJvcGVydGllcywgbnVsbCBvciB1bmRlZmluZWQgdmFsdWVzIGFyZSB2YWxpZFxuICAgIGlmIChpc09wdGlvbmFsICYmIHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnYXJyYXknKSB7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gdHlwZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gc3dhbGxvdyB0aGUgZXJyb3IgYXMgaXQgc2hvdWxkIGJlIHJlcG9ydGVkIGluIG1vcmUgZGV0YWlsIGJ5IHRoZSBjYWxsZXJcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG4iLCJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZSwgUmVzcG9uc2VDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUmVzcG9uc2UgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUmVzcG9uc2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogZGF0YSBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdpZCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogaWQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnY2F0ZWdvcnknLCAnc3RyaW5nJykgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhSZXNwb25zZUNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFJlc3BvbnNlQ2F0ZWdvcnkpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVJlc3BvbnNlOiBjYXRlZ29yeSBpcyBub3QgYSBzdHJpbmcgb3Igbm90IGEgdmFsaWQgcmVzcG9uc2UgY2F0ZWdvcnknLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyBkYXRhIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjcmVhdGVkX2F0JywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBjcmVhdGVkX2F0IGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2F0dHJpYnV0ZXMnLCAnb2JqZWN0JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGF0dHJpYnV0ZXMgaXMgbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgaGFzUHJvcGVydHlPZlR5cGUgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0JyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdkZXNjcmlwdGlvbicsICdzdHJpbmcnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBkZXNjcmlwdGlvbiBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnaW1hZ2VfdXJsJywgJ3N0cmluZycsIHRydWUpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBpbWFnZV91cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3RpdGxlJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHRpdGxlIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd1cmwnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdvcmlnaW5hbF9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBvcmlnaW5hbF9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnc2FsZV9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBzYWxlX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdhdmVyYWdlX3JhdGluZycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBhdmVyYWdlX3JhdGluZyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbnVtYmVyX3Jldmlld3MnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbnVtYmVyX3Jldmlld3MgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ21ldGFkYXRhJywgJ2FycmF5JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbWV0YWRhdGEgaXMgbm90IGFuIGFycmF5JywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IEFwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPSAoXG4gIHJpY2hJbmZvOiB1bmtub3duLFxuKTogcmljaEluZm8gaXMgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uID0+IHtcbiAgaWYgKHJpY2hJbmZvID09IG51bGwgfHwgdHlwZW9mIHJpY2hJbmZvICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAnY29ucycgaW4gcmljaEluZm8gJiZcbiAgICAoIUFycmF5LmlzQXJyYXkocmljaEluZm8uY29ucykgfHwgcmljaEluZm8uY29ucy5zb21lKChjb24pID0+IHR5cGVvZiBjb24gIT09ICdzdHJpbmcnKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdwcm9zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5wcm9zKSB8fCByaWNoSW5mby5wcm9zLnNvbWUoKHBybykgPT4gdHlwZW9mIHBybyAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld19kYXRlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3X2RhdGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcl90aXRsZScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnJldmlld2VyX3RpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncHJvZHVjdF9mYW1pbGlhcml0eScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnByb2R1Y3RfZmFtaWxpYXJpdHkgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5pbXBvcnQgeyBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJy4vaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24nO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgPSAob2JqOiB1bmtub3duKTogb2JqIGlzIEFwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9PiB7XG4gIGlmIChvYmogPT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgndGl0bGUnIGluIG9iaiAmJiBvYmoudGl0bGUgIT0gbnVsbCAmJiB0eXBlb2Ygb2JqLnRpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3JyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXcgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcicgaW4gb2JqICYmIHR5cGVvZiBvYmoucmV2aWV3ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdzdGFycycgaW4gb2JqICYmIHR5cGVvZiBvYmouc3RhcnMgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyaWNoX2luZm9ybWF0aW9uJyBpbiBvYmogJiYgIWlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uKG9iai5yaWNoX2luZm9ybWF0aW9uKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IEFwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9yZXNwb25zZUdlbmVyaWNzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcyA9PlxuICB0eXBlb2YgYXR0cmlidXRlcyA9PT0gJ29iamVjdCcgJiZcbiAgYXR0cmlidXRlcyAhPSBudWxsICYmXG4gICdjb250ZW50JyBpbiBhdHRyaWJ1dGVzICYmXG4gIHR5cGVvZiBhdHRyaWJ1dGVzLmNvbnRlbnQgPT09ICdzdHJpbmcnO1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnZ2VuZXJhdGVkX3F1ZXJ5JyBpbiBhdHRyaWJ1dGVzICYmIHR5cGVvZiBhdHRyaWJ1dGVzLmdlbmVyYXRlZF9xdWVyeSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb2R1Y3RfY291bnQnIGluIGF0dHJpYnV0ZXMgJiZcbiAgICBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT09ICdudW1iZXInXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLE1BQWEsZ0JBQWdCLFNBQThDO0FBQ3pFLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxTQUNsQyxRQUFPO0FBR1QsS0FBSSxFQUFFLFFBQVEsU0FBUyxPQUFPLEtBQUssT0FBTyxTQUN4QyxRQUFPO0FBR1QsS0FDRSxFQUFFLGNBQWMsU0FDaEIsT0FBTyxLQUFLLGFBQWEsWUFDekIsQ0FBQyxPQUFPLE9BQU8sbUJBQW1CLENBQUMsU0FBUyxLQUFLLFNBQStCLENBRWhGLFFBQU87QUFHVCxLQUFJLEVBQUUsZ0JBQWdCLFNBQVMsT0FBTyxLQUFLLGVBQWUsU0FDeEQsUUFBTztBQUdULEtBQUksRUFBRSxhQUFhLFNBQVMsT0FBTyxLQUFLLFlBQVksU0FDbEQsUUFBTztBQUdULEtBQUksZUFBZSxRQUFRLEtBQUssYUFBYSxRQUFRLE9BQU8sS0FBSyxjQUFjLFVBQzdFLFFBQU87QUFHVCxRQUFPOzs7OztBQ2hDVCxNQUFhLGtC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
|