@surfside/ads 2.0.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.
Files changed (3) hide show
  1. package/README.md +69 -0
  2. package/lib/index.js +2 -0
  3. package/package.json +73 -0
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ ![](/assets/surf-ads.png)
2
+ # Surfside Ads
3
+
4
+ **Surfside Ads** is a complete refactor of the legacy product **Retail.js**, designed with modern web standards and best practices. It provides a more **modular**, **efficient**, and **observable** architecture, with significant improvements to streamline performance, maintainability, and development workflows.
5
+
6
+ ### Key Enhancements:
7
+ - **Modern Web Components**: All legacy `<div>` components have been replaced with **modern web components**, greatly improving efficiency. These components are built using **precompiled Handlebars** and **CSS**, utilizing the **Shadow DOM** to enhance readability and reduce the risk of stylesheet collisions.
8
+
9
+ - **Slimmed Down Handlebars**: The full Handlebars library has been replaced with the **Handlebars runtime**, leveraging **precompiled templates** to reduce the overall footprint while maintaining dynamic rendering capabilities.
10
+
11
+ - **Modular Design**: The architecture has been made highly modular, ensuring components are reusable, configurable, and easier to maintain.
12
+
13
+ - **Fewer Dependencies**: Third-party libraries have been minimized, resulting in a leaner, cleaner codebase with less external overhead.
14
+
15
+ - **Performance Enhancements**: Optimizations have been implemented for faster execution and reduced resource consumption, improving overall runtime performance.
16
+
17
+ - **Improved Observability**: Enhanced monitoring and logging features provide deep insights into system behavior, making it easier to diagnose and resolve issues efficiently.
18
+
19
+ - **New Build Environments**: New build environments have been added, making it easier to develop against **mock services**, as well as to QA against **staging** and **local services**. This allows smoother workflows for development, testing, and deployment.
20
+
21
+ Surfside Ads delivers a modern, streamlined platform that enhances both developer productivity and user experience while providing a more robust and efficient system for all stages of development and deployment.
22
+
23
+ ---
24
+
25
+ ## Contributing
26
+
27
+ ### Hooks
28
+
29
+ This repository uses git hooks to automate some quality control processes. Run `./load-hooks.sh` to install necessary hooks for this project:
30
+
31
+ #### `commit-msg`
32
+
33
+ Requires the following format for all commit messages
34
+ ```
35
+ {BranchName}:
36
+ * Item 1
37
+ * Item 2
38
+ * Item 3
39
+ ```
40
+
41
+ Where each item is a summary of features added or bugs fixed. The commit message must begin with the name of the branch followed by a colon. Branch names must be the ticket you are working on (i.e, if your ticket is `ISSUE-1234`, then your branch name should be `ISSUE-1234`).
42
+
43
+ #### `pre-push`
44
+
45
+ Runs `npm run lint` as a pre-requisite before pushing to the origin. All code must pass linting before it will be code reviewed
46
+
47
+ ### VSCode Plugins
48
+
49
+ #### ESLint
50
+
51
+ In order to promote code quality and uniformity, this project includes an `.eslintrc.json` file. It is **highly suggested** that you use the [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) plugin. It will help you autoformat your code and alert you of issues. If you manage to push code with ESLint failures, **gitlab will fail your build automatically**, so save yourself some time and install the plugin. ESLint is only *required* for files under `src`. `demo` files do not require ESLint.
52
+
53
+ #### Highlight
54
+
55
+ In order to make the project more readable, this project includes default configurations for the [Highlight](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-highlight) plugin. This configuration (under `.vscode/settings.json`) adds opacity to logger calls, so that they fade into the background while actual business logic appears brighter. This encourages us to spam debug logs for observability.
56
+
57
+ ---
58
+
59
+ ## Building
60
+
61
+ run `npm install` to install all dev dependencies and then run `npm build:[environment]` to build (where `[environment]` is either `MOCK`, `LOCAL`, `STAGING`, or `PROD`). This will create `r.js`
62
+ in `dist`, as well as some html files in `dist` for testing with.
63
+
64
+ ---
65
+
66
+ ## Running
67
+
68
+ Run `npm run serve` to build the library and show a simple test creative at
69
+ `https://localhost:8081/dist`
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! For license information please see index.js.LICENSE.txt */
2
+ var e={518:e=>{var r;self,r=()=>(()=>{var e={"./node_modules/handlebars/dist/cjs/handlebars.runtime.js":(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}r.__esModule=!0;var o=n(t("./node_modules/handlebars/dist/cjs/handlebars/base.js")),s=i(t("./node_modules/handlebars/dist/cjs/handlebars/safe-string.js")),l=i(t("./node_modules/handlebars/dist/cjs/handlebars/exception.js")),a=n(t("./node_modules/handlebars/dist/cjs/handlebars/utils.js")),d=n(t("./node_modules/handlebars/dist/cjs/handlebars/runtime.js")),u=i(t("./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js"));function c(){var e=new o.HandlebarsEnvironment;return a.extend(e,o),e.SafeString=s.default,e.Exception=l.default,e.Utils=a,e.escapeExpression=a.escapeExpression,e.VM=d,e.template=function(r){return d.template(r,e)},e}var v=c();v.create=c,u.default(v),v.default=v,r.default=v,e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/base.js":(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.HandlebarsEnvironment=c;var n=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js"),o=i(t("./node_modules/handlebars/dist/cjs/handlebars/exception.js")),s=t("./node_modules/handlebars/dist/cjs/handlebars/helpers.js"),l=t("./node_modules/handlebars/dist/cjs/handlebars/decorators.js"),a=i(t("./node_modules/handlebars/dist/cjs/handlebars/logger.js")),d=t("./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js");r.VERSION="4.7.8",r.COMPILER_REVISION=8,r.LAST_COMPATIBLE_COMPILER_REVISION=7,r.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};var u="[object Object]";function c(e,r,t){this.helpers=e||{},this.partials=r||{},this.decorators=t||{},s.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}c.prototype={constructor:c,logger:a.default,log:a.default.log,registerHelper:function(e,r){if(n.toString.call(e)===u){if(r)throw new o.default("Arg not supported with multiple helpers");n.extend(this.helpers,e)}else this.helpers[e]=r},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,r){if(n.toString.call(e)===u)n.extend(this.partials,e);else{if(void 0===r)throw new o.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=r}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,r){if(n.toString.call(e)===u){if(r)throw new o.default("Arg not supported with multiple decorators");n.extend(this.decorators,e)}else this.decorators[e]=r},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){d.resetLoggedProperties()}};var v=a.default.log;r.log=v,r.createFrame=n.createFrame,r.logger=a.default},"./node_modules/handlebars/dist/cjs/handlebars/decorators.js":(e,r,t)=>{r.__esModule=!0,r.registerDefaultDecorators=function(e){n.default(e)};var i,n=(i=t("./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js"))&&i.__esModule?i:{default:i}},"./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js":(e,r,t)=>{r.__esModule=!0;var i=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js");r.default=function(e){e.registerDecorator("inline",(function(e,r,t,n){var o=e;return r.partials||(r.partials={},o=function(n,o){var s=t.partials;t.partials=i.extend({},s,r.partials);var l=e(n,o);return t.partials=s,l}),r.partials[n.args[0]]=n.fn,o}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/exception.js":(e,r)=>{r.__esModule=!0;var t=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function i(e,r){var n=r&&r.loc,o=void 0,s=void 0,l=void 0,a=void 0;n&&(o=n.start.line,s=n.end.line,l=n.start.column,a=n.end.column,e+=" - "+o+":"+l);for(var d=Error.prototype.constructor.call(this,e),u=0;u<t.length;u++)this[t[u]]=d[t[u]];Error.captureStackTrace&&Error.captureStackTrace(this,i);try{n&&(this.lineNumber=o,this.endLineNumber=s,Object.defineProperty?(Object.defineProperty(this,"column",{value:l,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:a,enumerable:!0})):(this.column=l,this.endColumn=a))}catch(e){}}i.prototype=new Error,r.default=i,e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers.js":(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.registerDefaultHelpers=function(e){n.default(e),o.default(e),s.default(e),l.default(e),a.default(e),d.default(e),u.default(e)},r.moveHelperToHooks=function(e,r,t){e.helpers[r]&&(e.hooks[r]=e.helpers[r],t||delete e.helpers[r])};var n=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js")),o=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js")),s=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js")),l=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js")),a=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js")),d=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js")),u=i(t("./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js"))},"./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js":(e,r,t)=>{r.__esModule=!0;var i=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js");r.default=function(e){e.registerHelper("blockHelperMissing",(function(r,t){var n=t.inverse,o=t.fn;if(!0===r)return o(this);if(!1===r||null==r)return n(this);if(i.isArray(r))return r.length>0?(t.ids&&(t.ids=[t.name]),e.helpers.each(r,t)):n(this);if(t.data&&t.ids){var s=i.createFrame(t.data);s.contextPath=i.appendContextPath(t.data.contextPath,t.name),t={data:s}}return o(r,t)}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js":(e,r,t)=>{r.__esModule=!0;var i,n=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js"),o=(i=t("./node_modules/handlebars/dist/cjs/handlebars/exception.js"))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("each",(function(e,r){if(!r)throw new o.default("Must pass iterator to #each");var t,i=r.fn,s=r.inverse,l=0,a="",d=void 0,u=void 0;function c(r,t,o){d&&(d.key=r,d.index=t,d.first=0===t,d.last=!!o,u&&(d.contextPath=u+r)),a+=i(e[r],{data:d,blockParams:n.blockParams([e[r],r],[u+r,null])})}if(r.data&&r.ids&&(u=n.appendContextPath(r.data.contextPath,r.ids[0])+"."),n.isFunction(e)&&(e=e.call(this)),r.data&&(d=n.createFrame(r.data)),e&&"object"==typeof e)if(n.isArray(e))for(var v=e.length;l<v;l++)l in e&&c(l,l,l===e.length-1);else if("function"==typeof Symbol&&e[Symbol.iterator]){for(var p=[],h=e[Symbol.iterator](),f=h.next();!f.done;f=h.next())p.push(f.value);for(v=(e=p).length;l<v;l++)c(l,l,l===e.length-1)}else t=void 0,Object.keys(e).forEach((function(e){void 0!==t&&c(t,l-1),t=e,l++})),void 0!==t&&c(t,l-1,!0);return 0===l&&(a=s(this)),a}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js":(e,r,t)=>{r.__esModule=!0;var i,n=(i=t("./node_modules/handlebars/dist/cjs/handlebars/exception.js"))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new n.default('Missing helper: "'+arguments[arguments.length-1].name+'"')}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js":(e,r,t)=>{r.__esModule=!0;var i,n=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js"),o=(i=t("./node_modules/handlebars/dist/cjs/handlebars/exception.js"))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("if",(function(e,r){if(2!=arguments.length)throw new o.default("#if requires exactly one argument");return n.isFunction(e)&&(e=e.call(this)),!r.hash.includeZero&&!e||n.isEmpty(e)?r.inverse(this):r.fn(this)})),e.registerHelper("unless",(function(r,t){if(2!=arguments.length)throw new o.default("#unless requires exactly one argument");return e.helpers.if.call(this,r,{fn:t.inverse,inverse:t.fn,hash:t.hash})}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js":(e,r)=>{r.__esModule=!0,r.default=function(e){e.registerHelper("log",(function(){for(var r=[void 0],t=arguments[arguments.length-1],i=0;i<arguments.length-1;i++)r.push(arguments[i]);var n=1;null!=t.hash.level?n=t.hash.level:t.data&&null!=t.data.level&&(n=t.data.level),r[0]=n,e.log.apply(e,r)}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js":(e,r)=>{r.__esModule=!0,r.default=function(e){e.registerHelper("lookup",(function(e,r,t){return e?t.lookupProperty(e,r):e}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js":(e,r,t)=>{r.__esModule=!0;var i,n=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js"),o=(i=t("./node_modules/handlebars/dist/cjs/handlebars/exception.js"))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("with",(function(e,r){if(2!=arguments.length)throw new o.default("#with requires exactly one argument");n.isFunction(e)&&(e=e.call(this));var t=r.fn;if(n.isEmpty(e))return r.inverse(this);var i=r.data;return r.data&&r.ids&&((i=n.createFrame(r.data)).contextPath=n.appendContextPath(r.data.contextPath,r.ids[0])),t(e,{data:i,blockParams:n.blockParams([e],[i&&i.contextPath])})}))},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js":(e,r,t)=>{r.__esModule=!0,r.createNewLookupObject=function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return i.extend.apply(void 0,[Object.create(null)].concat(r))};var i=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js")},"./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js":(e,r,t)=>{r.__esModule=!0,r.createProtoAccessControl=function(e){var r=Object.create(null);r.constructor=!1,r.__defineGetter__=!1,r.__defineSetter__=!1,r.__lookupGetter__=!1;var t=Object.create(null);return t.__proto__=!1,{properties:{whitelist:n.createNewLookupObject(t,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:n.createNewLookupObject(r,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},r.resultIsAllowed=function(e,r,t){return function(e,r){return void 0!==e.whitelist[r]?!0===e.whitelist[r]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==s[e]&&(s[e]=!0,o.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(r),!1)}("function"==typeof e?r.methods:r.properties,t)},r.resetLoggedProperties=function(){Object.keys(s).forEach((function(e){delete s[e]}))};var i,n=t("./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js"),o=(i=t("./node_modules/handlebars/dist/cjs/handlebars/logger.js"))&&i.__esModule?i:{default:i},s=Object.create(null)},"./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js":(e,r)=>{r.__esModule=!0,r.wrapHelper=function(e,r){return"function"!=typeof e?e:function(){return arguments[arguments.length-1]=r(arguments[arguments.length-1]),e.apply(this,arguments)}}},"./node_modules/handlebars/dist/cjs/handlebars/logger.js":(e,r,t)=>{r.__esModule=!0;var i=t("./node_modules/handlebars/dist/cjs/handlebars/utils.js"),n={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var r=i.indexOf(n.methodMap,e.toLowerCase());e=r>=0?r:parseInt(e,10)}return e},log:function(e){if(e=n.lookupLevel(e),"undefined"!=typeof console&&n.lookupLevel(n.level)<=e){var r=n.methodMap[e];console[r]||(r="log");for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];console[r].apply(console,i)}}};r.default=n,e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js":(e,r)=>{r.__esModule=!0,r.default=function(e){"object"!=typeof globalThis&&(Object.prototype.__defineGetter__("__magic__",(function(){return this})),__magic__.globalThis=__magic__,delete Object.prototype.__magic__);var r=globalThis.Handlebars;e.noConflict=function(){return globalThis.Handlebars===e&&(globalThis.Handlebars=r),e}},e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/runtime.js":(e,r,t)=>{r.__esModule=!0,r.checkRevision=function(e){var r=e&&e[0]||1,t=s.COMPILER_REVISION;if(!(r>=s.LAST_COMPATIBLE_COMPILER_REVISION&&r<=s.COMPILER_REVISION)){if(r<s.LAST_COMPATIBLE_COMPILER_REVISION){var i=s.REVISION_CHANGES[t],n=s.REVISION_CHANGES[r];throw new o.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+i+") or downgrade your runtime to an older version ("+n+").")}throw new o.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}},r.template=function(e,r){if(!r)throw new o.default("No environment passed to template");if(!e||!e.main)throw new o.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,r.VM.checkRevision(e.compiler);var t=e.compiler&&7===e.compiler[0],i={strict:function(e,r,t){if(!e||!(r in e))throw new o.default('"'+r+'" not defined in '+e,{loc:t});return i.lookupProperty(e,r)},lookupProperty:function(e,r){var t=e[r];return null==t||Object.prototype.hasOwnProperty.call(e,r)||d.resultIsAllowed(t,i.protoAccessControl,r)?t:void 0},lookup:function(e,r){for(var t=e.length,n=0;n<t;n++)if(null!=(e[n]&&i.lookupProperty(e[n],r)))return e[n][r]},lambda:function(e,r){return"function"==typeof e?e.call(r):e},escapeExpression:n.escapeExpression,invokePartial:function(t,i,s){s.hash&&(i=n.extend({},i,s.hash),s.ids&&(s.ids[0]=!0)),t=r.VM.resolvePartial.call(this,t,i,s);var l=n.extend({},s,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),a=r.VM.invokePartial.call(this,t,i,l);if(null==a&&r.compile&&(s.partials[s.name]=r.compile(t,e.compilerOptions,r),a=s.partials[s.name](i,l)),null!=a){if(s.indent){for(var d=a.split("\n"),u=0,c=d.length;u<c&&(d[u]||u+1!==c);u++)d[u]=s.indent+d[u];a=d.join("\n")}return a}throw new o.default("The partial "+s.name+" could not be compiled when running in runtime-only mode")},fn:function(r){var t=e[r];return t.decorator=e[r+"_d"],t},programs:[],program:function(e,r,t,i,n){var o=this.programs[e],s=this.fn(e);return r||n||i||t?o=u(this,e,s,r,t,i,n):o||(o=this.programs[e]=u(this,e,s)),o},data:function(e,r){for(;e&&r--;)e=e._parent;return e},mergeIfNeeded:function(e,r){var t=e||r;return e&&r&&e!==r&&(t=n.extend({},r,e)),t},nullContext:Object.seal({}),noop:r.VM.noop,compilerInfo:e.compiler};function c(r){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=t.data;c._setup(t),!t.partial&&e.useData&&(n=function(e,r){return r&&"root"in r||((r=r?s.createFrame(r):{}).root=e),r}(r,n));var o=void 0,l=e.useBlockParams?[]:void 0;function a(r){return""+e.main(i,r,i.helpers,i.partials,n,l,o)}return e.useDepths&&(o=t.depths?r!=t.depths[0]?[r].concat(t.depths):t.depths:[r]),(a=v(e.main,a,i,t.depths||[],n,l))(r,t)}return c.isTop=!0,c._setup=function(o){if(o.partial)i.protoAccessControl=o.protoAccessControl,i.helpers=o.helpers,i.partials=o.partials,i.decorators=o.decorators,i.hooks=o.hooks;else{var s=n.extend({},r.helpers,o.helpers);!function(e,r){Object.keys(e).forEach((function(t){var i=e[t];e[t]=function(e,r){var t=r.lookupProperty;return a.wrapHelper(e,(function(e){return n.extend({lookupProperty:t},e)}))}(i,r)}))}(s,i),i.helpers=s,e.usePartial&&(i.partials=i.mergeIfNeeded(o.partials,r.partials)),(e.usePartial||e.useDecorators)&&(i.decorators=n.extend({},r.decorators,o.decorators)),i.hooks={},i.protoAccessControl=d.createProtoAccessControl(o);var u=o.allowCallsToHelperMissing||t;l.moveHelperToHooks(i,"helperMissing",u),l.moveHelperToHooks(i,"blockHelperMissing",u)}},c._child=function(r,t,n,s){if(e.useBlockParams&&!n)throw new o.default("must pass block params");if(e.useDepths&&!s)throw new o.default("must pass parent depths");return u(i,r,e[r],t,0,n,s)},c},r.wrapProgram=u,r.resolvePartial=function(e,r,t){return e?e.call||t.name||(t.name=e,e=t.partials[e]):e="@partial-block"===t.name?t.data["partial-block"]:t.partials[t.name],e},r.invokePartial=function(e,r,t){var i=t.data&&t.data["partial-block"];t.partial=!0,t.ids&&(t.data.contextPath=t.ids[0]||t.data.contextPath);var l=void 0;if(t.fn&&t.fn!==c&&function(){t.data=s.createFrame(t.data);var e=t.fn;l=t.data["partial-block"]=function(r){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return t.data=s.createFrame(t.data),t.data["partial-block"]=i,e(r,t)},e.partials&&(t.partials=n.extend({},t.partials,e.partials))}(),void 0===e&&l&&(e=l),void 0===e)throw new o.default("The partial "+t.name+" could not be found");if(e instanceof Function)return e(r,t)},r.noop=c;var i,n=function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}(t("./node_modules/handlebars/dist/cjs/handlebars/utils.js")),o=(i=t("./node_modules/handlebars/dist/cjs/handlebars/exception.js"))&&i.__esModule?i:{default:i},s=t("./node_modules/handlebars/dist/cjs/handlebars/base.js"),l=t("./node_modules/handlebars/dist/cjs/handlebars/helpers.js"),a=t("./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js"),d=t("./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js");function u(e,r,t,i,n,o,s){function l(r){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=s;return!s||r==s[0]||r===e.nullContext&&null===s[0]||(l=[r].concat(s)),t(e,r,e.helpers,e.partials,n.data||i,o&&[n.blockParams].concat(o),l)}return(l=v(t,l,e,s,i,o)).program=r,l.depth=s?s.length:0,l.blockParams=n||0,l}function c(){return""}function v(e,r,t,i,o,s){if(e.decorator){var l={};r=e.decorator(r,l,t,i&&i[0],o,s,i),n.extend(r,l)}return r}},"./node_modules/handlebars/dist/cjs/handlebars/safe-string.js":(e,r)=>{function t(e){this.string=e}r.__esModule=!0,t.prototype.toString=t.prototype.toHTML=function(){return""+this.string},r.default=t,e.exports=r.default},"./node_modules/handlebars/dist/cjs/handlebars/utils.js":(e,r)=>{r.__esModule=!0,r.extend=s,r.indexOf=function(e,r){for(var t=0,i=e.length;t<i;t++)if(e[t]===r)return t;return-1},r.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return n.test(e)?e.replace(i,o):e},r.isEmpty=function(e){return!e&&0!==e||!(!d(e)||0!==e.length)},r.createFrame=function(e){var r=s({},e);return r._parent=e,r},r.blockParams=function(e,r){return e.path=r,e},r.appendContextPath=function(e,r){return(e?e+".":"")+r};var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},i=/[&<>"'`=]/g,n=/[&<>"'`=]/;function o(e){return t[e]}function s(e){for(var r=1;r<arguments.length;r++)for(var t in arguments[r])Object.prototype.hasOwnProperty.call(arguments[r],t)&&(e[t]=arguments[r][t]);return e}var l=Object.prototype.toString;r.toString=l;var a=function(e){return"function"==typeof e};a(/x/)&&(r.isFunction=a=function(e){return"function"==typeof e&&"[object Function]"===l.call(e)}),r.isFunction=a;var d=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===l.call(e)};r.isArray=d},"./node_modules/handlebars/runtime.js":(e,r,t)=>{e.exports=t("./node_modules/handlebars/dist/cjs/handlebars.runtime.js").default},"./src/constant-values/index.ts":(e,r,t)=>{var i,n,o,s,l,a;t.r(r),t.d(r,{Environment:()=>a,HttpStatus:()=>i,HttpStatusClass:()=>n,IPServices:()=>s,LocationType:()=>l,SurfColors:()=>o}),function(e){e[e.OK=200]="OK",e[e.NO_CONTENT=204]="NO_CONTENT",e[e.BAD_REQUEST=400]="BAD_REQUEST",e[e.NOT_FOUND=404]="NOT_FOUND",e[e.UNAUTHORIZED=401]="UNAUTHORIZED",e[e.FORBIDDEN=403]="FORBIDDEN"}(i||(i={})),function(e){e[e.SUCCESS=2]="SUCCESS",e[e.CLIENT_ERROR=4]="CLIENT_ERROR",e[e.SERVER_ERROR=5]="SERVER_ERROR"}(n||(n={})),function(e){e.INDIGO="#331c7a",e.ULTRAMARINE="#1f69ff",e.AQUAMARINE="#4ceaaa",e.ELECTRIC_LIME="#c5f700",e.CRAYOLA="#f7a800",e.ORANGE="#f66d18",e.RED="#e72024",e.LAVENDER="#c0abff",e.ULTRA_RED="#f97585",e.SOFT_GOLD="#f4bd5d",e.MAGIC_MINT="#baf7db",e.SKY_BLUE="#7eceeb",e.CARIBBEAN_GREN="#0dcc91",e.LAVENDER_GRAY="#d3d3e0"}(o||(o={})),function(e){e[e.IP2LOCATION=1]="IP2LOCATION",e[e.NEUSTAR=2]="NEUSTAR",e[e.MAXMIND=3]="MAXMIND",e[e.NETACUITY=4]="NETACUITY"}(s||(s={})),function(e){e[e.GPS=1]="GPS",e[e.IP=2]="IP",e[e.USER=3]="USER"}(l||(l={})),function(e){e.PROD="PROD",e.STAGING="STAGING",e.LOCAL="LOCAL",e.MOCK="MOCK"}(a||(a={}))},"./src/errors/index.ts":(e,r,t)=>{t.r(r),t.d(r,{NoBidResponseError:()=>i});class i extends Error{constructor(e){super(`No bid response. Got "${e}"`),this.name="NoBidResponseError"}}},"./src/helpers/handlebars/index.ts":(e,r,t)=>{t.r(r),t.d(r,{and:()=>f,array:()=>m,coalesce:()=>u,eq:()=>p,isIn:()=>g,join:()=>c,lower:()=>o,or:()=>h,path:()=>s,search:()=>d,sed:()=>l,slug:()=>n,uri:()=>v});const i=5;function n(e,r){var t;if(null==e||"string"!=typeof e)return"";const n=void 0!==r.hash.hyphenate?new RegExp(r.hash.hyphenate,"ig"):/[\s_\-,]/gi,o=void 0!==r.hash.drop?new RegExp(r.hash.drop,"ig"):/[^A-Za-z0-9-]/gi,s=null!==(t=r.hash.length)&&void 0!==t?t:i;return e.replace(n,"-").replace(o,"").toLowerCase().split("-").slice(0,s).join("-")}function o(e){return null==e||"string"!=typeof e?"":e.toLowerCase()}function s(e){if(0===e||null==e)return"";const r=window.location.pathname.split("/");return r.length<=e?"":r[e]}function l(e,r,t){return e.replace(new RegExp(r),((...e)=>{const r=e.slice(1,-2);let i=t;return i=i.replace(/\\(\d+)/g,((e,t)=>{var i;return null!==(i=r[t-1])&&void 0!==i?i:""})),i=i.replace(/\\U(\d+)/g,((e,t)=>{var i;return(null!==(i=r[t-1])&&void 0!==i?i:"").toUpperCase()})),i=a(i,"U",r,(e=>e.toUpperCase())),i=a(i,"L",r,(e=>e.toLowerCase())),i=a(i,"I",r,(e=>e[0])),i}))}function a(e,r,t,i){return e.replace(new RegExp(`\\\\${r}(\\d+)`,"g"),((e,r)=>{var n;return i(null!==(n=t[r-1])&&void 0!==n?n:"")}))}function d(e){var r;if(void 0===(null==e?void 0:e.length)||0===e.length)return"";const t=window.location.search;return 0===t.length?"":null!==(r=new URLSearchParams(t).get(e))&&void 0!==r?r:""}function u(){for(let e=0;e<arguments.length-1;e++){const r=arguments[e];if(null!=r&&""!==r&&!1!==r)return r}return""}function c(){var e;const r=[...arguments].slice(0,arguments.length-1),t=null!==(e=arguments[arguments.length-1].hash.separator)&&void 0!==e?e:"/";return r.filter((e=>null!=e&&""!==e)).join(t)}function v(e){return void 0===(null==e?void 0:e.length)||0===e.length?"":encodeURIComponent(e).replaceAll("'","%27")}function p(e,r){return e===r}function h(e,r){return Boolean(e)||Boolean(r)}function f(e,r){return Boolean(e)&&Boolean(r)}function g(e,r){return void 0!==(null==r?void 0:r.length)&&0!==r.length&&r.includes(e)}function m(){return Array.from(arguments).slice(0,-1)}},"./src/helpers/index.ts":(e,r,t)=>{t.r(r),t.d(r,{BuildBanner:()=>n.BuildBanner,BuildBannerFromBid:()=>n.BuildBannerFromBid,BuildClickThroughUrl:()=>n.BuildClickThroughUrl,BuildProductInfoFromElement:()=>n.BuildProductInfoFromElement,DeserializeVast:()=>n.DeserializeVast,DeserializeVideo:()=>n.DeserializeVideo,RequestBuilder:()=>i.RequestBuilder,SimpleBannerRequest:()=>i.SimpleBannerRequest,and:()=>o.and,array:()=>o.array,coalesce:()=>o.coalesce,eq:()=>o.eq,isIn:()=>o.isIn,join:()=>o.join,lower:()=>o.lower,or:()=>o.or,path:()=>o.path,search:()=>o.search,sed:()=>o.sed,slug:()=>o.slug,uri:()=>o.uri});var i=t("./src/helpers/requests/index.ts"),n=t("./src/helpers/responses/index.ts"),o=t("./src/helpers/handlebars/index.ts")},"./src/helpers/requests/RequestBuilder.ts":(e,r,t)=>{var i;t.r(r),t.d(r,{RequestBuilder:()=>n}),function(e){e[e.BANNER=0]="BANNER",e[e.VIDEO=1]="VIDEO",e[e.NATIVE=2]="NATIVE"}(i||(i={}));class n{constructor(e){this._builderState=void 0,this._request={id:null!=e?e:this._generateId(),imp:[]}}build(){this._appendBuilderState();for(const e of this._request.imp)e.ext=this._request.ext;return this._request.app={name:window.location.hostname,domain:window.location.hostname,id:window.location.hostname},this._request.site={name:window.location.hostname,domain:window.location.hostname,id:window.location.hostname},this._request}withSurfContext(e,r,t,i,n,o){return this._request.ext={accountId:e,siteId:r,channelId:n,zoneId:i,locationId:t,storeId:t,keywords:o},this}withBanner(e,r,t){return this._appendBuilderState(),this._builderState={type:i.BANNER,imp:{id:this._generateId()},currentCreative:{w:e,h:r,...t}},this}withVideo(e,r,t,n,o=["video/mp4","video/webm"],s){return this._appendBuilderState(),this._builderState={type:i.VIDEO,imp:{id:this._generateId()},currentCreative:{w:e,h:r,minduration:t,maxduration:n,mimes:o,...s}},this}withNative(e,r){return this._appendBuilderState(),this._builderState={type:i.NATIVE,imp:{id:this._generateId()},currentCreative:{request:e,ver:"1.2",...r}},this}withBidFloor(e,r="USD"){if(void 0===this._builderState)throw new Error("Invalid state");return this._builderState.imp.bidfloor=e,this._builderState.imp.bidfloorcur=r,this}withImpExt(e){if(void 0===this._builderState)throw new Error("Invalid state");return this._builderState.imp.ext=e,this}withSite(e){return this._request.site=null!=e?e:{name:window.location.hostname,domain:window.location.hostname},this}withApp(e){return this._request.app=null!=e?e:{name:window.location.hostname,domain:window.location.hostname},this}withDevice(e){return this._request.device=e,this}withUser(e){return this._request.user=e,this}withRegulations(e){return this._request.regs=e,this}_appendBuilderState(){if(void 0!==this._builderState){switch(this._builderState.type){case i.BANNER:this._builderState.imp.banner=this._builderState.currentCreative;break;case i.NATIVE:this._builderState.imp.native=this._builderState.currentCreative;break;case i.VIDEO:this._builderState.imp.video=this._builderState.currentCreative}this._appendImpression()}}_appendImpression(){var e;void 0!==this._builderState&&(this._request.imp=null!==(e=this._request.imp)&&void 0!==e?e:[],this._request.imp.push(this._builderState.imp))}_generateId(){return(4294967295*Math.random()).toString(16)}}},"./src/helpers/requests/SimpleBannerRequest.ts":(e,r,t)=>{t.r(r),t.d(r,{SimpleBannerRequest:()=>i});class i{constructor(e,r,t){const i=Math.floor(4294967295*Math.random()).toString(16);this.id=e,this.imp=[{id:i,banner:{w:r,h:t}}]}}},"./src/helpers/requests/index.ts":(e,r,t)=>{t.r(r),t.d(r,{RequestBuilder:()=>n.RequestBuilder,SimpleBannerRequest:()=>i.SimpleBannerRequest});var i=t("./src/helpers/requests/SimpleBannerRequest.ts"),n=t("./src/helpers/requests/RequestBuilder.ts")},"./src/helpers/responses/BuildBannerResponse.ts":(e,r,t)=>{t.r(r),t.d(r,{BuildBanner:()=>n,BuildBannerFromBid:()=>o,BuildProductInfoFromElement:()=>s});var i=t("./src/helpers/responses/ClickthroughHelpers.ts");function n(e,r){var t,n,l;if(null===e)return{element:null,product:null,clickThrough:null};const a=null===(l=null===(n=null===(t=null==e?void 0:e.seatbid)||void 0===t?void 0:t[0])||void 0===n?void 0:n.bid)||void 0===l?void 0:l[0];if(void 0===a)return{element:null,product:null,clickThrough:null};const d=o(a);if(null===d)return{element:null,product:null,clickThrough:null};if(void 0===r)return{element:d,product:null,clickThrough:null};const u=s(d);let c=null;if(null!==u&&(c=(0,i.BuildClickThroughUrl)(r,u,{image:null,price:null,salePrice:null,thc:null,strain:null,cbd:null,name:null,brand_name:null,brandName:null,productType:null,details:null,cta:null,clickthroughUrl:null,winUrl:null,pixelUrl:null}),null!==c)){const e=d.querySelectorAll("a[href*=\\{SURF_COMMERCE_URL\\}]"),r=c;e.forEach((e=>{const t=e.getAttribute("href");if(null===t)return;const i=t.replace("{SURF_COMMERCE_URL}",r);e.setAttribute("href",i)}))}return{element:d,product:s(d),clickThrough:c}}function o(e){if(void 0===e.adm)return null;const r=document.createElement("div");if(r.innerHTML=e.adm,void 0!==e.nurl){const t=new Image(1,1);t.src=e.nurl,t.style.display="none",r.appendChild(t)}return r}function s(e){var r,t,i,n,o,s,l,a,d,u,c,v,p,h,f;const g=e.querySelector("#surf-product-info");if(null===g)return null;const m=g.dataset;return{image:null!==(r=m.image)&&void 0!==r?r:null,price:null!==(t=m.price)&&void 0!==t?t:null,salePrice:null!==(i=m.saleprice)&&void 0!==i?i:null,thc:null!==(n=m.thc)&&void 0!==n?n:null,strain:null!==(o=m.strain)&&void 0!==o?o:null,cbd:null!==(s=m.cbd)&&void 0!==s?s:null,name:null!==(l=m.name)&&void 0!==l?l:null,brand_name:null!==(a=m.brandname)&&void 0!==a?a:null,brandName:null!==(d=m.brandname)&&void 0!==d?d:null,productType:null!==(u=m.producttype)&&void 0!==u?u:null,details:null!==(c=m.details)&&void 0!==c?c:null,cta:null!==(v=m.cta)&&void 0!==v?v:null,clickthroughUrl:null!==(p=m.clickthroughurl)&&void 0!==p?p:null,winUrl:null!==(h=m.winurl)&&void 0!==h?h:null,pixelUrl:null!==(f=m.pixelurl)&&void 0!==f?f:null,ext:m}}},"./src/helpers/responses/ClickthroughHelpers.ts":(e,r,t)=>{t.r(r),t.d(r,{BuildClickThroughUrl:()=>n});var i=t("./src/helpers/index.ts");function n(e,r,t){return e.templates.clickThroughUrlTemplate({product:r,catalog:t,window:{origin:window.location.origin,port:window.location.port,path:window.location.pathname,host:window.location.host,host_name:window.location.hostname,search:window.location.search,hash:window.location.hash,protocol:window.location.protocol},publisher:e,ext:{}},{helpers:i})}},"./src/helpers/responses/VastHelpers.ts":(e,r,t)=>{function i(e,r,t){null==e||e.debug("getOrThrow name",t);const i=r.querySelector(t);if(null===i)throw new Error(`No ${t} tag found`);return null==e||e.debug("getOrThrow child "+t,i),i}function n(e,r,t){null==e||e.debug("getAttributeOrThrow name",t);const i=r.getAttribute(t);if(null===i)throw new Error(`No ${t} attribute found`);return null==e||e.debug("getAttributeOrThrow attribute "+t,i),i}function o(e,r,t){const i=n(e,r,t),o=Number(i);if(isNaN(o))throw new Error(`${t} is not a number`);return o}function s(e,r){var t,i;const n=null===(i=null===(t=e.seatbid)||void 0===t?void 0:t[0].bid)||void 0===i?void 0:i[0].adm;return void 0===n?null:l(r,n)}function l(e,r){null==e||e.debug("DeserializeVast adm",r);const t=(new DOMParser).parseFromString(r,"text/xml");null==e||e.debug("DeserializeVast doc",t);const i=t.querySelector("VAST");if(null===i)throw new Error("No VAST tag found");null==e||e.debug("DeserializeVast root",i);const o=n(e,i,"version"),s=Array.from(i.querySelectorAll("Ad")).map(a.bind(null,e));return null==e||e.debug("DeserializeVast ads",s),{version:o,ads:s}}function a(e,r){null==e||e.debug("deserializeAd element",r);const t=r.getAttribute("id"),o=function(e,r){var t,o,s,l,a,u,c,v,p,h,f,g,m,S,_,b,w,I,E,y,T,O,R,C;null==e||e.debug("deserializeInline element",r);const x=null===(t=r.querySelector("AdSystem"))||void 0===t?void 0:t.textContent;if(null==x)throw new Error("No AdSystem tag found in InLine");null==e||e.debug("deserializeInline adSystem",x);const N=null===(o=r.querySelector("AdTitle"))||void 0===o?void 0:o.textContent;if(null==N)throw new Error("No AdTitle tag found in InLine");null==e||e.debug("deserializeInline adTitle",N);const D=function(e,r){null==e||e.debug("deserializeImpression element",r);const t=n(e,r,"id"),i=r.textContent;if(null===i)throw new Error("No value found on Impression");return null==e||e.debug("deserializeImpression value",i),{id:t,value:i}}(e,i(e,r,"Impression")),P=Array.from(r.querySelectorAll("Linear")).map(d.bind(null,e)),A=Array.from(r.querySelectorAll("Extensions Extension"));let k;if(A.length>0){const e=A[0],r=null!==(l=null===(s=e.querySelector("Image"))||void 0===s?void 0:s.textContent)&&void 0!==l?l:null,t=null!==(u=null===(a=e.querySelector("Price"))||void 0===a?void 0:a.textContent)&&void 0!==u?u:null,i=null!==(v=null===(c=e.querySelector("SalePrice"))||void 0===c?void 0:c.textContent)&&void 0!==v?v:null,n=null!==(h=null===(p=e.querySelector("THC"))||void 0===p?void 0:p.textContent)&&void 0!==h?h:null,o=null!==(g=null===(f=e.querySelector("Strain"))||void 0===f?void 0:f.textContent)&&void 0!==g?g:null,d=null!==(S=null===(m=e.querySelector("CBD"))||void 0===m?void 0:m.textContent)&&void 0!==S?S:null,x=null!==(b=null===(_=e.querySelector("Name"))||void 0===_?void 0:_.textContent)&&void 0!==b?b:null,N=null!==(I=null===(w=e.querySelector("BrandName"))||void 0===w?void 0:w.textContent)&&void 0!==I?I:null;k={image:r,price:t,salePrice:i,thc:n,strain:o,cbd:d,name:x,brandName:N,brand_name:N,productType:null!==(y=null===(E=e.querySelector("ProductType"))||void 0===E?void 0:E.textContent)&&void 0!==y?y:null,details:null!==(O=null===(T=e.querySelector("Details"))||void 0===T?void 0:T.textContent)&&void 0!==O?O:null,cta:null!==(C=null===(R=e.querySelector("CTA"))||void 0===R?void 0:R.textContent)&&void 0!==C?C:null,clickthroughUrl:null,winUrl:null,pixelUrl:null}}return{impression:D,adSystem:x,adTitle:N,creatives:P,product:k}}(e,i(e,r,"InLine"));return{id:t,inline:o}}function d(e,r){var t;null==e||e.debug("deserializeLinear element",r);const i=null===(t=r.querySelector("Duration"))||void 0===t?void 0:t.textContent;if(null==i)throw new Error("No Duration tag found in Linear");null==e||e.debug("deserializeLinear duration",i);const n=Array.from(r.querySelectorAll("TrackingEvents Tracking")).map(u.bind(null,e));null==e||e.debug("deserializeLinear trackingEvents",n);const o=Array.from(r.querySelectorAll("MediaFiles MediaFile")).map(c.bind(null,e));null==e||e.debug("deserializeLinear mediaFiles",o);const s=Array.from(r.querySelectorAll("VideoClicks ClickThrough")).map(v.bind(null,e));return null==e||e.debug("deserializeLinear videoClicks",s),{duration:i,trackingEvents:n,mediaFiles:o,videoClicks:s}}function u(e,r){null==e||e.debug("deserializeTrackingEvent element",r);const t=n(e,r,"event"),i=r.textContent;if(null===i)throw new Error("No url found on Tracking");return null==e||e.debug("deserializeTrackingEvent url",i),{event:t,url:i}}function c(e,r){null==e||e.debug("deserializeMediaFile element",r);const t=r.getAttribute("id");null==e||e.debug("deserializeMediaFile id",t);const i=n(e,r,"delivery"),s=n(e,r,"type"),l=o(e,r,"width"),a=o(e,r,"height"),d=function(e,r,t){null==e||e.debug("getAttribute name",t);const i=r.getAttribute(t);return null==e||e.debug("getAttribute attribute "+t,i),i}(e,r,"bitrate"),u=r.textContent;if(null===u)throw new Error("No url found on MediaFile");return null==e||e.debug("deserializeMediaFile url",u),{id:t,delivery:i,type:s,width:l,height:a,bitrate:d,url:u}}function v(e,r){null==e||e.debug("deserializeVideoClick element",r);const t=r.getAttribute("id");null==e||e.debug("deserializeVideoClick id",t);const i=r.textContent;if(null===i)throw new Error("No url found on Clickthrough");return null==e||e.debug("deserializeVideoClick url",i),{id:t,url:i}}t.r(r),t.d(r,{DeserializeVast:()=>l,DeserializeVideo:()=>s})},"./src/helpers/responses/index.ts":(e,r,t)=>{t.r(r),t.d(r,{BuildBanner:()=>i.BuildBanner,BuildBannerFromBid:()=>i.BuildBannerFromBid,BuildClickThroughUrl:()=>n.BuildClickThroughUrl,BuildProductInfoFromElement:()=>i.BuildProductInfoFromElement,DeserializeVast:()=>o.DeserializeVast,DeserializeVideo:()=>o.DeserializeVideo});var i=t("./src/helpers/responses/BuildBannerResponse.ts"),n=t("./src/helpers/responses/ClickthroughHelpers.ts"),o=t("./src/helpers/responses/VastHelpers.ts")},"./src/models/index.ts":(e,r,t)=>{t.r(r),t.d(r,{AdCom10DeviceTypes:()=>i.AdCom10DeviceTypes,AgentTypes:()=>i.AgentTypes,ContextSubTypes:()=>i.ContextSubTypes,ContextTypes:()=>i.ContextTypes,EventTrackingMethods:()=>i.EventTrackingMethods,EventTypes:()=>i.EventTypes,NativeAssetId:()=>i.NativeAssetId,NativeDataTypes:()=>i.NativeDataTypes,NativeImageTypes:()=>i.NativeImageTypes,NativePosition:()=>i.NativePosition,NativeRequestBuilder:()=>i.NativeRequestBuilder,NativeResponseToProductInformation:()=>i.NativeResponseToProductInformation,PlacementTypes:()=>i.PlacementTypes,VideoMimes:()=>i.VideoMimes});var i=t("./src/models/rtb/index.ts");t("./src/models/retail/index.ts"),t("./src/models/vast/index.ts"),t("./src/models/tracking/index.ts")},"./src/models/retail/IPublisherConfiguration.ts":(e,r,t)=>{t.r(r)},"./src/models/retail/index.ts":(e,r,t)=>{t.r(r),t("./src/models/retail/IPublisherConfiguration.ts")},"./src/models/rtb/IBidRequest.ts":(e,r,t)=>{var i,n;t.r(r),t.d(r,{AdCom10DeviceTypes:()=>n,AgentTypes:()=>i}),function(e){e[e.SESSION=1]="SESSION",e[e.DEVICE=2]="DEVICE",e[e.USER=3]="USER"}(i||(i={})),function(e){e[e.MOBILE=1]="MOBILE",e[e.PC=2]="PC",e[e.CTV=3]="CTV",e[e.PHONE=4]="PHONE",e[e.TABLET=5]="TABLET",e[e.CONNECTED=6]="CONNECTED",e[e.SET_TOP=7]="SET_TOP",e[e.OOH=8]="OOH"}(n||(n={}))},"./src/models/rtb/IBidResponse.ts":(e,r,t)=>{t.r(r)},"./src/models/rtb/index.ts":(e,r,t)=>{t.r(r),t.d(r,{AdCom10DeviceTypes:()=>i.AdCom10DeviceTypes,AgentTypes:()=>i.AgentTypes,ContextSubTypes:()=>n.ContextSubTypes,ContextTypes:()=>n.ContextTypes,EventTrackingMethods:()=>n.EventTrackingMethods,EventTypes:()=>n.EventTypes,NativeAssetId:()=>n.NativeAssetId,NativeDataTypes:()=>n.NativeDataTypes,NativeImageTypes:()=>n.NativeImageTypes,NativePosition:()=>n.NativePosition,NativeRequestBuilder:()=>n.NativeRequestBuilder,NativeResponseToProductInformation:()=>n.NativeResponseToProductInformation,PlacementTypes:()=>n.PlacementTypes,VideoMimes:()=>n.VideoMimes}),t("./src/models/rtb/IBidResponse.ts");var i=t("./src/models/rtb/IBidRequest.ts"),n=t("./src/models/rtb/native/index.ts")},"./src/models/rtb/native/INativeRequest.ts":(e,r,t)=>{t.r(r)},"./src/models/rtb/native/INativeResponse.ts":(e,r,t)=>{t.r(r),t.d(r,{NativeResponseToProductInformation:()=>o});var i=t("./src/models/index.ts");function n(e,r){var t,i,n;return null!==(n=null===(i=null===(t=null==e?void 0:e.find((e=>e.id===r)))||void 0===t?void 0:t.data)||void 0===i?void 0:i.value)&&void 0!==n?n:null}function o(e){var r,t,o,s,l,a,d,u,c,v,p,h,f,g,m,S;const _=n(e.native.assets,i.NativeAssetId.SPONSORED);return{image:null!==(s=null===(o=null===(t=null===(r=e.native.assets)||void 0===r?void 0:r.find((e=>{var r;return(null===(r=e.img)||void 0===r?void 0:r.type)===i.NativeImageTypes.MAIN})))||void 0===t?void 0:t.img)||void 0===o?void 0:o.url)&&void 0!==s?s:null,name:null!==(u=null===(d=null===(a=null===(l=e.native.assets)||void 0===l?void 0:l.find((e=>void 0!==e.title)))||void 0===a?void 0:a.title)||void 0===d?void 0:d.text)&&void 0!==u?u:null,price:n(e.native.assets,i.NativeAssetId.PRICE),salePrice:n(e.native.assets,i.NativeAssetId.SALEPRICE),thc:n(e.native.assets,i.NativeAssetId.SURF_THC),cbd:n(e.native.assets,i.NativeAssetId.SURF_CBD),strain:n(e.native.assets,i.NativeAssetId.SURF_STRAIN),brand_name:_,brandName:_,productType:n(e.native.assets,i.NativeAssetId.SURF_CATEGORY),details:n(e.native.assets,i.NativeAssetId.DESC),cta:n(e.native.assets,i.NativeAssetId.CTATEXT),clickthroughUrl:null!==(v=null===(c=e.native.link)||void 0===c?void 0:c.url)&&void 0!==v?v:null,winUrl:null!==(f=null===(h=null===(p=e.native.eventtrackers)||void 0===p?void 0:p.find((e=>e.event===i.EventTypes.SURF_WIN)))||void 0===h?void 0:h.url)&&void 0!==f?f:null,pixelUrl:null!==(S=null===(m=null===(g=e.native.eventtrackers)||void 0===g?void 0:g.find((e=>e.event===i.EventTypes.IMP)))||void 0===m?void 0:m.url)&&void 0!==S?S:null}}},"./src/models/rtb/native/NativeConstants.ts":(e,r,t)=>{var i,n,o,s,l,a,d,u,c,v;t.r(r),t.d(r,{ContextSubTypes:()=>d,ContextTypes:()=>a,EventTrackingMethods:()=>v,EventTypes:()=>l,NativeAssetId:()=>s,NativeDataTypes:()=>o,NativeImageTypes:()=>n,NativePosition:()=>i,PlacementTypes:()=>u,VideoMimes:()=>c}),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ABOVE_THE_FOLD=1]="ABOVE_THE_FOLD",e[e.BELOW_THE_FOLD=3]="BELOW_THE_FOLD",e[e.HEADER=4]="HEADER",e[e.FOOTER=5]="FOOTER",e[e.SIDEBAR=6]="SIDEBAR",e[e.FULL_SCREN=7]="FULL_SCREN"}(i||(i={})),function(e){e[e.ICON=1]="ICON",e[e.MAIN=3]="MAIN"}(n||(n={})),function(e){e[e.SPONSORED=1]="SPONSORED",e[e.DESC=2]="DESC",e[e.RATING=3]="RATING",e[e.LIKES=4]="LIKES",e[e.DOWNLOADS=5]="DOWNLOADS",e[e.PRICE=6]="PRICE",e[e.SALEPRICE=7]="SALEPRICE",e[e.PHONE=8]="PHONE",e[e.ADDRESS=9]="ADDRESS",e[e.DESC2=10]="DESC2",e[e.DISPLAYURL=11]="DISPLAYURL",e[e.CTATEXT=12]="CTATEXT",e[e.SURF_STRAIN=500]="SURF_STRAIN",e[e.SURF_THC=501]="SURF_THC",e[e.SURF_CBD=502]="SURF_CBD",e[e.SURF_CATEGORY=503]="SURF_CATEGORY",e[e.SURF_META_PRODUCT=599]="SURF_META_PRODUCT"}(o||(o={})),function(e){e[e.TITLE=0]="TITLE",e[e.IMAGE=1]="IMAGE",e[e.SPONSORED=2]="SPONSORED",e[e.DESC=3]="DESC",e[e.RATING=4]="RATING",e[e.PRICE=5]="PRICE",e[e.SALEPRICE=6]="SALEPRICE",e[e.DISPLAYURL=7]="DISPLAYURL",e[e.CTATEXT=8]="CTATEXT",e[e.SURF_STRAIN=500]="SURF_STRAIN",e[e.SURF_THC=501]="SURF_THC",e[e.SURF_CBD=502]="SURF_CBD",e[e.SURF_CATEGORY=503]="SURF_CATEGORY",e[e.SURF_META_PRODUCT=599]="SURF_META_PRODUCT"}(s||(s={})),function(e){e[e.IMP=1]="IMP",e[e.VIEWABLE_MRC50=2]="VIEWABLE_MRC50",e[e.VIEWABLE_MRC100=3]="VIEWABLE_MRC100",e[e.VIEWABLE_VIDEO50=4]="VIEWABLE_VIDEO50",e[e.SURF_WIN=500]="SURF_WIN",e[e.SURF_CLICK=501]="SURF_CLICK"}(l||(l={})),function(e){e[e.CONTENT=1]="CONTENT",e[e.SOCIAL=2]="SOCIAL",e[e.PRODUCT=3]="PRODUCT"}(a||(a={})),function(e){e[e.GENERAL=10]="GENERAL",e[e.ARTICLE=11]="ARTICLE",e[e.VIDEO=12]="VIDEO",e[e.AUDIO=13]="AUDIO",e[e.IMAGE=14]="IMAGE",e[e.USER_GENERATED=15]="USER_GENERATED",e[e.GENERAL_SOCIAL=20]="GENERAL_SOCIAL",e[e.EMAIL=21]="EMAIL",e[e.CHAT=22]="CHAT",e[e.PRODUCT=30]="PRODUCT",e[e.APPLICATION=31]="APPLICATION",e[e.PRODUCT_REVIEWS=32]="PRODUCT_REVIEWS"}(d||(d={})),function(e){e[e.IN_FEED=1]="IN_FEED",e[e.ATOMIC=2]="ATOMIC",e[e.OUTSIDE_CORE=3]="OUTSIDE_CORE",e[e.RECOMMENDATION=4]="RECOMMENDATION"}(u||(u={})),function(e){e.MP4="video/mp4",e.WEBM="video/webm"}(c||(c={})),function(e){e[e.IMG=1]="IMG",e[e.JS=2]="JS"}(v||(v={}))},"./src/models/rtb/native/NativeRequestBuilder.ts":(e,r,t)=>{t.r(r),t.d(r,{NativeRequestBuilder:()=>n});var i=t("./src/models/index.ts");class n{constructor(){this._request={ver:"1.2",context:i.ContextTypes.PRODUCT,contextsubtype:i.ContextSubTypes.PRODUCT,plcmttype:i.PlacementTypes.RECOMMENDATION,assets:[],eventtrackers:[{event:i.EventTypes.IMP,methods:[i.EventTrackingMethods.IMG]},{event:i.EventTypes.SURF_CLICK,methods:[i.EventTrackingMethods.IMG]}]}}withVer(e){return this._request.ver=e,this}withContext(e){return this._request.context=e,this}withTitle(e=80,r=!0){return void 0===this._request.assets&&(this._request.assets=[]),this._request.assets.push({id:0,required:r?1:0,title:{len:e}}),this}withImage(e,r,t,i,n=!0){return void 0===this._request.assets&&(this._request.assets=[]),this._request.assets.push({id:0,required:n?1:0,img:{w:e,wmin:t,h:r,hmin:i}}),this}withVideo(e,r,t,i=!0){return void 0===this._request.assets&&(this._request.assets=[]),this._request.assets.push({id:0,required:i?1:0,video:{mimes:e,minduration:r,maxduration:t,protocols:[3]}}),this}withData(e,r,t=80,i=!0){return void 0===this._request.assets&&(this._request.assets=[]),this._request.assets.push({id:r,required:i?1:0,data:{type:e,len:t}}),this}withSponsored(e=80,r=!0){return this.withData(i.NativeDataTypes.SPONSORED,i.NativeAssetId.SPONSORED,e,r)}withDescription(e=80,r=!0){return this.withData(i.NativeDataTypes.DESC,i.NativeAssetId.DESC,e,r)}withRating(e=80,r=!0){return this.withData(i.NativeDataTypes.RATING,i.NativeAssetId.RATING,e,r)}withPrice(e=80,r=!0){return this.withData(i.NativeDataTypes.PRICE,i.NativeAssetId.PRICE,e,r)}withSalePrice(e=80,r=!0){return this.withData(i.NativeDataTypes.SALEPRICE,i.NativeAssetId.SALEPRICE,e,r)}withDisplayUrl(e=80,r=!0){return this.withData(i.NativeDataTypes.DISPLAYURL,i.NativeAssetId.DISPLAYURL,e,r)}withCtaText(e=80,r=!0){return this.withData(i.NativeDataTypes.CTATEXT,i.NativeAssetId.CTATEXT,e,r)}withCategory(e=80,r=!0){return this.withData(i.NativeDataTypes.SURF_CATEGORY,i.NativeAssetId.SURF_CATEGORY,e,r)}withTHC(e=80,r=!0){return this.withData(i.NativeDataTypes.SURF_THC,i.NativeAssetId.SURF_THC,e,r)}withCBD(e=80,r=!0){return this.withData(i.NativeDataTypes.SURF_CBD,i.NativeAssetId.SURF_CBD,e,r)}withStrain(e=80,r=!0){return this.withData(i.NativeDataTypes.SURF_STRAIN,i.NativeAssetId.SURF_STRAIN,e,r)}withMetaProduct(e=80,r=!0){return this.withData(i.NativeDataTypes.SURF_META_PRODUCT,i.NativeAssetId.SURF_META_PRODUCT,e,r)}withEventTracker(e,r){return void 0===this._request.eventtrackers&&(this._request.eventtrackers=[]),this._request.eventtrackers.push({event:e,methods:r}),this}build(){return this._request}}},"./src/models/rtb/native/index.ts":(e,r,t)=>{t.r(r),t.d(r,{ContextSubTypes:()=>o.ContextSubTypes,ContextTypes:()=>o.ContextTypes,EventTrackingMethods:()=>o.EventTrackingMethods,EventTypes:()=>o.EventTypes,NativeAssetId:()=>o.NativeAssetId,NativeDataTypes:()=>o.NativeDataTypes,NativeImageTypes:()=>o.NativeImageTypes,NativePosition:()=>o.NativePosition,NativeRequestBuilder:()=>n.NativeRequestBuilder,NativeResponseToProductInformation:()=>i.NativeResponseToProductInformation,PlacementTypes:()=>o.PlacementTypes,VideoMimes:()=>o.VideoMimes}),t("./src/models/rtb/native/INativeRequest.ts");var i=t("./src/models/rtb/native/INativeResponse.ts"),n=t("./src/models/rtb/native/NativeRequestBuilder.ts"),o=t("./src/models/rtb/native/NativeConstants.ts")},"./src/models/tracking/IEvents.ts":(e,r,t)=>{t.r(r)},"./src/models/tracking/IGeoContext.ts":(e,r,t)=>{t.r(r)},"./src/models/tracking/IUserID.ts":(e,r,t)=>{t.r(r)},"./src/models/tracking/index.ts":(e,r,t)=>{t.r(r),t("./src/models/tracking/IGeoContext.ts"),t("./src/models/tracking/IEvents.ts"),t("./src/models/tracking/IUserID.ts")},"./src/models/vast/Vast.ts":(e,r,t)=>{t.r(r)},"./src/models/vast/index.ts":(e,r,t)=>{t.r(r),t("./src/models/vast/Vast.ts")},"./src/services/OverrideService.ts":(e,r,t)=>{t.r(r),t.d(r,{OverrideService:()=>i});class i{constructor(e,r){var t;this._selector=e,this.logger=r,null===(t=this.logger)||void 0===t||t.info("OverrideService.constructor"),this.overrideNode=this.getOverrideNode(),null!==this.overrideNode?this.overrideData=this.mapDataSetToData(this.overrideNode.dataset):this.overrideData=null}getOverrideNode(){return document.querySelector(this._selector)}}},"./src/services/index.ts":(e,r,t)=>{t.r(r),t.d(r,{DeviceOverrideService:()=>l.DeviceOverrideService,GeoOverrideService:()=>l.GeoOverrideService,LocalLoggerService:()=>i.LocalLoggerService,LogLevel:()=>i.LogLevel,SurfsideBidderService:()=>n.SurfsideBidderService,SurfsideConfigurationService:()=>n.SurfsideConfigurationService,SurfsideDeviceService:()=>l.SurfsideDeviceService,SurfsideEventService:()=>l.SurfsideEventService,SurfsideGeoService:()=>l.SurfsideGeoService,SurfsideProductFeedService:()=>s.SurfsideProductFeedService,SurfsideRecommenderService:()=>o.SurfsideRecommenderService,SurfsideUserIDService:()=>l.SurfsideUserIDService,TryGetDeviceInfo:()=>l.TryGetDeviceInfo,UserOverrideService:()=>l.UserOverrideService});var i=t("./src/services/logger/index.ts"),n=t("./src/services/rtb/index.ts"),o=t("./src/services/recommender/index.ts"),s=t("./src/services/product-feed/index.ts"),l=t("./src/services/tracking/index.ts")},"./src/services/logger/ILoggerService.ts":(e,r,t)=>{var i;t.r(r),t.d(r,{LogLevel:()=>i}),function(e){e[e.NONE=0]="NONE",e[e.ERRORS=1]="ERRORS",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG"}(i||(i={}))},"./src/services/logger/LocalLoggerService.ts":(e,r,t)=>{t.r(r),t.d(r,{LocalLoggerService:()=>o});var i=t("./src/constant-values/index.ts"),n=t("./src/services/index.ts");class o{constructor(e){this._logLevel=e,this.debug("Logging enabled")}debug(...e){this._logLevel>=n.LogLevel.DEBUG&&this._log(console.log,e,i.SurfColors.MAGIC_MINT)}info(...e){this._logLevel>=n.LogLevel.INFO&&this._log(console.log,e,i.SurfColors.LAVENDER)}warn(...e){this._logLevel>=n.LogLevel.INFO&&this._log(console.warn,e,i.SurfColors.SOFT_GOLD)}error(...e){this._logLevel>=n.LogLevel.ERRORS&&this._log(console.error,e,i.SurfColors.ULTRA_RED)}_log(e,r,t){r.unshift(`border-radius: 3px; margin-left: 10px; background: ${t}; font-size: 12px; font-weight: bold;`),r.unshift("%c [SURF] "),e.apply(console,r)}}},"./src/services/logger/index.ts":(e,r,t)=>{t.r(r),t.d(r,{LocalLoggerService:()=>n.LocalLoggerService,LogLevel:()=>i.LogLevel});var i=t("./src/services/logger/ILoggerService.ts"),n=t("./src/services/logger/LocalLoggerService.ts")},"./src/services/product-feed/IProductFeedService.ts":(e,r,t)=>{t.r(r)},"./src/services/product-feed/SurfsideProductFeedService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideProductFeedService:()=>n});var i=t("./src/utils/index.ts");class n{constructor(e,r){var t;this._logger=r,null===(t=this._logger)||void 0===t||t.info("SurfsideProductFeedService.constructor initialized",this),this._url=(0,i.GetSafeUrl)(e)}async getProduct(e,r,t,i){var n,o,s;null===(n=this._logger)||void 0===n||n.info("SurfsideProductFeedService.getProduct request",e,r,t,i);const l=await fetch(`${this._url}product/${e}/${t}/${i}.json`),a=await l.json();null===(o=this._logger)||void 0===o||o.debug("SurfsideProductFeedService.getProduct response",a);const d=this._mapResponseToProductInformation(a);return null===(s=this._logger)||void 0===s||s.debug("SurfsideProductFeedService.getProduct mapped",d),d}async getNativeProduct(e,r,t,i){var n,o,s;null===(n=this._logger)||void 0===n||n.info("SurfsideProductFeedService.getProduct request",e,r,t,i);const l=await fetch(`${this._url}native/${e}/${r}/${t}/${i}.json`),a=await l.json();null===(o=this._logger)||void 0===o||o.debug("SurfsideProductFeedService.getProduct response",a);const d=this._mapResponseToProductInformation(a);return null===(s=this._logger)||void 0===s||s.debug("SurfsideProductFeedService.getProduct mapped",d),d}_mapResponseToProductInformation(e){return{image:this._getFieldOrNull(e,"image_link"),price:this._getFieldOrNull(e,"price"),salePrice:this._getFieldOrNull(e,"sale_price"),thc:this._getFieldOrNull(e,"thc"),cbd:this._getFieldOrNull(e,"cbd"),strain:this._getFieldOrNull(e,"strain"),name:this._getFieldOrNull(e,"name"),brand_name:this._getFieldOrNull(e,"brand"),brandName:this._getFieldOrNull(e,"brand"),productType:this._getFieldOrNull(e,"productType"),details:this._getFieldOrNull(e,"details"),cta:this._getFieldOrNull(e,"cta"),clickthroughUrl:this._getFieldOrNull(e,"clickthroughUrl"),winUrl:this._getFieldOrNull(e,"winUrl"),pixelUrl:this._getFieldOrNull(e,"pixelUrl"),ext:e}}_getFieldOrNull(e,r){return r in e?String(e[r]):null}}},"./src/services/product-feed/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideProductFeedService:()=>i.SurfsideProductFeedService}),t("./src/services/product-feed/IProductFeedService.ts");var i=t("./src/services/product-feed/SurfsideProductFeedService.ts")},"./src/services/recommender/IRecommenderService.ts":(e,r,t)=>{t.r(r)},"./src/services/recommender/SurfsideRecommenderService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideRecommenderService:()=>o});var i,n=t("./src/utils/index.ts");!function(e){e.TOP_ALL="top-products",e.FOR_YOU="for-you",e.PAST_PURCHASE="buy-again"}(i||(i={}));class o{constructor(e,r){var t;this._logger=r,null===(t=this._logger)||void 0===t||t.info("SurfsideRecommenderService.constructor initialized",this),this._url=(0,n.GetSafeUrl)(e)}async getTopProducts(e,r,t,n){var o;return null===(o=this._logger)||void 0===o||o.info("SurfsideRecommenderService.getTopProducts request",e,r,t),await this._fetchRecommendations(e,r,t,null,i.TOP_ALL,n)}async getForYou(e,r,t,n,o){var s;return null===(s=this._logger)||void 0===s||s.info("SurfsideRecommenderService.getForYou request",e,r,t,n),await this._fetchRecommendations(e,r,t,n,i.FOR_YOU,o)}async getPreviousPurchases(e,r,t,n,o){var s;return null===(s=this._logger)||void 0===s||s.info("SurfsideRecommenderService.getPreviousPurchases request",e,r,t,n),await this._fetchRecommendations(e,r,t,n,i.PAST_PURCHASE,o)}async _fetchRecommendations(e,r,t,i,n,o){var s,l;null===(s=this._logger)||void 0===s||s.debug("SurfsideRecommenderService._fetchRecommendations request",e,r,t,i,n);const a=await(await fetch(`${this._url.toString()}r/${n}/?accountId=${e}&siteId=${r}&locationId=${t}&user=${i}&count=${o}`+(null===i?"":`&userId=${i}`))).json();return void 0!==a.error?(null===(l=this._logger)||void 0===l||l.warn("SurfsideRecommenderService._fetchRecommendations no results",a),null):a.splice(0,o)}}},"./src/services/recommender/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideRecommenderService:()=>i.SurfsideRecommenderService}),t("./src/services/recommender/IRecommenderService.ts");var i=t("./src/services/recommender/SurfsideRecommenderService.ts")},"./src/services/rtb/bidder/IBidderService.ts":(e,r,t)=>{t.r(r)},"./src/services/rtb/bidder/SurfsideBidderService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideBidderService:()=>l});var i=t("./src/constant-values/index.ts"),n=t("./src/errors/index.ts"),o=t("./src/utils/index.ts");const s=/(?:\$|%24)?(?:\{|%7b)auction_price(?:\}|%7d)/gi;class l{constructor(e,r){var t;this._logger=r,null===(t=this._logger)||void 0===t||t.info("SurfsideBidderService.constructor initialized",this),this._url=(0,o.GetSafeUrl)(e)}async requestBids(e){var r,t,o,l,a,d,u,c,v,p,h,f;null===(r=this._logger)||void 0===r||r.info("SurfsideBidderService.bid request",e);const g=await fetch(this._url,{method:"POST",body:JSON.stringify(e)});if(null===(t=this._logger)||void 0===t||t.debug("SurfsideBidderService.bid response",g),null===(o=this._logger)||void 0===o||o.debug("SurfsideBidderService.bid response status",g.status),g.status!==i.HttpStatus.OK){const e=null!==(l=g.status===i.HttpStatus.NO_CONTENT?g.headers.get("X-REASON"):await g.text())&&void 0!==l?l:`${g.status} - ${g.statusText}`;throw null===(a=this._logger)||void 0===a||a.debug("SurfsideBidderService.bid response no-bid reason:",e),new n.NoBidResponseError(e)}const m=await g.json();for(let e=0;e<(null!==(u=null===(d=m.seatbid)||void 0===d?void 0:d.length)&&void 0!==u?u:0);e++){const r=null===(c=m.seatbid)||void 0===c?void 0:c[e];for(let e=0;e<(null!==(v=null==r?void 0:r.bid.length)&&void 0!==v?v:0);e++){const t=null==r?void 0:r.bid[e];if(void 0!==t)try{t.adm=decodeURIComponent(null!==(p=null==t?void 0:t.adm)&&void 0!==p?p:"").replaceAll(/\\"/gi,'"'),t.nurl=null===(h=t.nurl)||void 0===h?void 0:h.replace(s,t.price.toString())}catch(e){continue}}}return null===(f=this._logger)||void 0===f||f.debug("SurfsideBidderService.bid bidResponse",m),m}}},"./src/services/rtb/bidder/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideBidderService:()=>i.SurfsideBidderService}),t("./src/services/rtb/bidder/IBidderService.ts");var i=t("./src/services/rtb/bidder/SurfsideBidderService.ts")},"./src/services/rtb/configuration/IConfigurationService.ts":(e,r,t)=>{t.r(r)},"./src/services/rtb/configuration/SurfsideConfigurationService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideConfigurationService:()=>n});var i=t("./src/utils/index.ts");class n{constructor(e,r,t){var n;this._handlebars=r,this._logger=t,null===(n=this._logger)||void 0===n||n.info("SurfsideConfigurationService.constructor initialized",this),this._url=(0,i.GetSafeUrl)(e)}async getConfiguration(e,r){var t,i,n;null===(t=this._logger)||void 0===t||t.info("SurfsideConfigurationService.getConfiguration request",e,r);const o=await fetch(this._url+`${e}/${r}/config.json`);if(!o.ok)return null===(i=this._logger)||void 0===i||i.error("SurfsideConfigurationService.getConfiguration failed to fetch",o),null;const s=await o.json();return null===(n=this._logger)||void 0===n||n.debug("SurfsideConfigurationService.getConfiguration response",s),await this._mapConfig(s)}async _mapConfig(e){var r,t,i;return null===(r=this._logger)||void 0===r||r.debug("IConfigurationService.mapConfig mapping:",e),{settings:e.settings,templates:{clickThroughUrlTemplate:this._handlebars.template((await this._importModule(`export default ${null!==(t=e.templates.clickThroughUrlTemplate)&&void 0!==t?t:""}`)).default),productCardTemplate:this._handlebars.template((await this._importModule(`export default ${null!==(i=e.templates.productCardTemplate)&&void 0!==i?i:""}`)).default),javascriptCallbacks:await this._importModule(e.templates.javascriptCallbacks),productCardStylesheet:e.templates.productCardStylesheet,carouselStylesheet:e.templates.carouselStylesheet}}}async _importModule(e){var r,t,i;null===(r=this._logger)||void 0===r||r.debug("IConfigurationService.importDynamicModule importing:",e);const n=new Blob([e],{type:"text/javascript"}),o=URL.createObjectURL(n);null===(t=this._logger)||void 0===t||t.debug("IConfigurationService.importDynamicModule moduleUrl",o);const s=await import(o);return null===(i=this._logger)||void 0===i||i.debug("IConfigurationService.importDynamicModule module:",s),s}}},"./src/services/rtb/configuration/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideConfigurationService:()=>i.SurfsideConfigurationService}),t("./src/services/rtb/configuration/IConfigurationService.ts");var i=t("./src/services/rtb/configuration/SurfsideConfigurationService.ts")},"./src/services/rtb/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideBidderService:()=>i.SurfsideBidderService,SurfsideConfigurationService:()=>n.SurfsideConfigurationService});var i=t("./src/services/rtb/bidder/index.ts"),n=t("./src/services/rtb/configuration/index.ts")},"./src/services/tracking/device/DeviceOverrideService.ts":(e,r,t)=>{t.r(r),t.d(r,{DeviceOverrideService:()=>n});var i=t("./src/services/OverrideService.ts");class n extends i.OverrideService{constructor(e){var r;super("div#surf-device-override",e),null===(r=this.logger)||void 0===r||r.info("DeviceOverrideService.constructor")}async getDeviceInfo(){const e=this.getOverrideNode();return void 0===(null==e?void 0:e.dataset)||(this.overrideData=this.mapDataSetToData(e.dataset)),this.overrideData}mapDataSetToData(e){var r,t,i,n,s;const{ua:l,dnt:a,ip:d,ipv6:u,devicetype:c,make:v,model:p,os:h,osv:f,h:g,w:m,language:S}=e,_={ua:l,dnt:"true"===(null==a?void 0:a.toLowerCase())?1:0,ip:d,ipv6:u,devicetype:o(c),make:v,model:p,os:h,osv:f,h:o(g),w:o(m),language:S},b=null!==(t=null===(r=this.overrideNode)||void 0===r?void 0:r.querySelector("div#surf-device-sua-override"))&&void 0!==t?t:null;if(null===b)return _;const{mobile:w,architecture:I,bitness:E,useragentmodel:y,source:T}=b.dataset,O="true"===(null==w?void 0:w.toLowerCase())?1:0,R="true"===(null==T?void 0:T.toLowerCase())?1:0;let C;const x=[...b.querySelectorAll("div.surf-device-sua-browser-override")];if(x.length>0){C=[];for(const e of x){const{brand:r,version:t}=e.dataset;void 0!==r?C.push({brand:r,version:null==t?void 0:t.split(",")}):null===(i=this.logger)||void 0===i||i.warn("DeviceOverrideService.mapDataSetToData Browser brandInfo is missing brand field. Skipping browser override")}}let N;const D=null!==(n=b.querySelector("div#surf-device-sua-platform-override"))&&void 0!==n?n:null;if(null!==D){const{brand:e,version:r}=D.dataset;void 0===e?null===(s=this.logger)||void 0===s||s.warn("DeviceOverrideService.mapDataSetToData Platform brandinfo is missing brand field. Skipping platform override"):N={brand:e,version:null==r?void 0:r.split(",")}}const P={mobile:O,architecture:I,bitness:E,model:y,source:R,browsers:C,platform:N};return _.sua=P,_}}function o(e){if(void 0===e)return;const r=Number(e);return isNaN(r)?void 0:r}},"./src/services/tracking/device/IDeviceService.ts":(e,r,t)=>{t.r(r)},"./src/services/tracking/device/SurfsideDeviceService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideDeviceService:()=>o,TryGetDeviceInfo:()=>a});var i=t("./src/services/tracking/device/DeviceOverrideService.ts"),n=t("./src/models/index.ts");class o extends i.DeviceOverrideService{constructor(e){super(e),null==e||e.info("SurfsideDeviceService.constructor")}async getDeviceInfo(){var e,r;const t=await super.getDeviceInfo();if(null!==t)return t;const i=s()?1:0,n=a();null!==n&&(null===(e=this.logger)||void 0===e||e.warn("SurfsideDeviceService.getDeviceInfo failure; TryGetDeviceInfo() returned null"));const o={model:null==n?void 0:n.model,mobile:i,browsers:void 0!==(null==n?void 0:n.browser)?[n.browser]:void 0,platform:void 0!==(null==n?void 0:n.os)?{brand:null==n?void 0:n.os,version:null===(r=null==n?void 0:n.osv)||void 0===r?void 0:r.split(".")}:void 0,architecture:(d=navigator.userAgent,/Win64|x64|x86_64|WOW64/.test(d)?"x64":/Win32|x86/.test(d)?"x86":/aarch64|arm64/.test(d)?"ARM64":/armv\d+/.test(d)||s()?"ARM":void 0),source:3};var d;return{make:null==n?void 0:n.make,model:null==n?void 0:n.model,w:screen.width,h:screen.height,language:navigator.language,ua:navigator.userAgent,devicetype:l(),os:null==n?void 0:n.os,osv:null==n?void 0:n.osv,sua:o}}}function s(){return void 0!==window.ontouchstart}function l(){const e=s();if(!e)return n.AdCom10DeviceTypes.PC;const r=window.screen.width,t=window.screen.height,[i,o]=[r,t].sort(((e,r)=>e-r));return e&&i>=600&&o>=960?n.AdCom10DeviceTypes.TABLET:n.AdCom10DeviceTypes.MOBILE}function a(){var e,r,t,i,n,o;const s=navigator.userAgent,l=s.toLowerCase();let a={};return l.includes("android")?a={...d(s)}:l.includes("iphone")||l.includes("ipad")?a={...u(s)}:l.includes("windows nt")?a={make:"Microsoft",model:"Windows",os:"Windows",osv:null===(r=null===(e=/Windows NT (?<osv>[0-9.]+)/gi.exec(s))||void 0===e?void 0:e.groups)||void 0===r?void 0:r.osv}:l.includes("macintosh")&&(a={make:"Apple",model:"Macintosh",os:"MacOS",osv:null===(n=null===(i=null===(t=/Mac OS X (?<osv>[0-9_]+)/gi.exec(s))||void 0===t?void 0:t.groups)||void 0===i?void 0:i.osv)||void 0===n?void 0:n.replaceAll("_",".")}),a.browser=null!==(o=function(e){let r,t;if(e.includes("Firefox/"))r=e.split("Firefox/")[1],t="Firefox";else if(e.includes("Chrome/"))r=e.split("Chrome/")[1].split(" ")[0],t="Chrome";else if(e.includes("Safari/")&&!e.includes("Chrome"))r=e.split("Version/")[1].split(" ")[0],t="Safari";else{if(!e.includes("Edg/"))return null;r=e.split("Edg/")[1],t="Edge"}return{brand:t,version:r.split(".")}}(navigator.userAgent))&&void 0!==o?o:void 0,a}function d(e){var r,t;const i=/^[^\s]+\s\((?<Linux>.*);\s*(?<osv>[^)]+);\s*(?<Model>[^)]+)\)/gi.exec(e),n=null===(r=null==i?void 0:i.groups)||void 0===r?void 0:r.osv,o=null===(t=null==i?void 0:i.groups)||void 0===t?void 0:t.Model;let s;return void 0!==o&&(s=o.includes("Pixel")?"Google":o.includes("SM-")?"Samsung":o.startsWith("LG-")?"LG":o.startsWith("moto")?"Motorola":o.startsWith("Redmi")?"Xiaomi":"Android"),{os:"Android",osv:n,model:o,make:s}}function u(e){var r,t,i,n;const o=/^[^\s]+\s*\((?<Device>[^;]+);\s(?<Model>[^;)]+[;)])\s(?<ModelExt>[^;)]+[;)])?/gi.exec(e),s=null===(r=null==o?void 0:o.groups)||void 0===r?void 0:r.Device;let l;void 0!==s&&(l=s.toLowerCase().includes("ipad")?"iPad":"iPhone");let a,d=null===(t=null==o?void 0:o.groups)||void 0===t?void 0:t.Model;if("U"===d&&(d=null===(i=null==o?void 0:o.groups)||void 0===i?void 0:i.ModelExt),void 0!==d){const e=/OS (?<ver>[0-9_]+)/gi.exec(d);a=null===(n=null==e?void 0:e.groups)||void 0===n?void 0:n.ver}return{make:"Apple",model:l,os:"iOS",osv:a}}},"./src/services/tracking/device/index.ts":(e,r,t)=>{t.r(r),t.d(r,{DeviceOverrideService:()=>i.DeviceOverrideService,SurfsideDeviceService:()=>n.SurfsideDeviceService,TryGetDeviceInfo:()=>n.TryGetDeviceInfo}),t("./src/services/tracking/device/IDeviceService.ts");var i=t("./src/services/tracking/device/DeviceOverrideService.ts"),n=t("./src/services/tracking/device/SurfsideDeviceService.ts")},"./src/services/tracking/events/IEventService.ts":(e,r,t)=>{t.r(r)},"./src/services/tracking/events/SurfsideEventService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideEventService:()=>l});var i,n=t("./src/utils/index.ts");!function(e){e.NEW_TRACKER="newTracker",e.BID_REQUESTED="bidRequested",e.BIDDER_DONE="bidderDone"}(i||(i={}));const o="ads",s="surf";class l{constructor(e={lazyLoad:!1,appId:o},r){var t,l,a,d,u,c,v,p;if(this._logger=r,null===(t=this._logger)||void 0===t||t.info("SurfsideEventService.constructor"),this._appId=null!==(l=e.appId)&&void 0!==l?l:o,this._collectorUrl=(0,n.GetSafeUrl)(null!==(a=e.collectorUrl)&&void 0!==a?a:"//col.surfside.io"),e.lazyLoad&&void 0===window.surf){this._src=(0,n.GetSafeUrl)(e.src),window.surfContext=null!==(d=window.surfContext)&&void 0!==d?d:[],window.surfContext.push("surf"),window.surf=function(){var e;void 0!==window.surf&&(window.surf.q=null!==(e=window.surf.q)&&void 0!==e?e:[]).push(arguments)},this._surf=window.surf,window.surf.q=null!==(u=window.surf.q)&&void 0!==u?u:[];const r=document.createElement("script");r.src=this._src,r.async=!0,r.onload=()=>{var r,t,n,l;null===(r=this._logger)||void 0===r||r.info("SurfsideEventService script loaded"),this._surf=window.surf,this._surf(`${i.NEW_TRACKER}:${this._appId}`,null!==(t=e.appId)&&void 0!==t?t:o,this._collectorUrl,{appId:null!==(n=e.appId)&&void 0!==n?n:o,cookieName:null!==(l=e.cookieName)&&void 0!==l?l:s,discoverRootDomain:!0,cookieSameSite:"Lax"})},document.head.appendChild(r)}else this._surf=window.surf,this._surf(`${i.NEW_TRACKER}:${this._appId}`,null!==(c=e.appId)&&void 0!==c?c:o,this._collectorUrl,{appId:null!==(v=e.appId)&&void 0!==v?v:o,cookieName:null!==(p=e.cookieName)&&void 0!==p?p:s,discoverRootDomain:!0,cookieSameSite:"Lax"})}async raiseBidRequested(e){var r,t,n,o,s;null===(r=this._logger)||void 0===r||r.info("SurfsideEventService.raiseBidRequested"),null===(t=this._logger)||void 0===t||t.debug("SurfsideEventService.raiseBidRequested",e);const l=e.id;null===(n=this._logger)||void 0===n||n.info("SurfsideEventService.raiseBidRequested requestId",l);const a={auctionId:l,bidderRequestId:l,bids:null===(o=e.imp)||void 0===o?void 0:o.map((r=>{var t,i,n,o,s,l,a,d,u,c,v,p,h,f,g,m,S,_,b,w,I,E;return{params:{accountId:null!==(i=null===(t=e.ext)||void 0===t?void 0:t.accountId)&&void 0!==i?i:null,channelId:null!==(o=null===(n=e.ext)||void 0===n?void 0:n.channelId)&&void 0!==o?o:null,siteId:null!==(l=null===(s=e.ext)||void 0===s?void 0:s.siteId)&&void 0!==l?l:null,placementId:null!==(d=null===(a=e.ext)||void 0===a?void 0:a.zoneId)&&void 0!==d?d:null,zone:null!==(c=null===(u=e.ext)||void 0===u?void 0:u.zone)&&void 0!==c?c:null,type:null!==(p=null===(v=e.ext)||void 0===v?void 0:v.type)&&void 0!==p?p:null,storeId:null!==(f=null===(h=e.ext)||void 0===h?void 0:h.storeId)&&void 0!==f?f:null},user:void 0!==(null===(g=null==e?void 0:e.user)||void 0===g?void 0:g.geo)?{geo:e.user.geo}:void 0,ortb2Imp:{ext:{tid:void 0!==(null===(m=null==e?void 0:e.source)||void 0===m?void 0:m.tid)?e.source.tid:""}},mediaTypes:{banner:void 0!==(null===(S=null==r?void 0:r.banner)||void 0===S?void 0:S.w)&&void 0!==(null===(_=null==r?void 0:r.banner)||void 0===_?void 0:_.h)?{sizes:[[r.banner.w,r.banner.h]]}:void 0},transactionId:null!==(w=null===(b=null==e?void 0:e.source)||void 0===b?void 0:b.tid)&&void 0!==w?w:"",sizes:void 0!==(null===(I=null==r?void 0:r.banner)||void 0===I?void 0:I.w)&&void 0!==(null===(E=null==r?void 0:r.banner)||void 0===E?void 0:E.h)?[[r.banner.w,r.banner.h]]:[[0,0]],bidId:r.id,ortb2:{site:{domain:window.location.hostname,page:window.location.pathname},device:{w:window.screen.width,h:window.screen.height,dnt:0,ua:window.navigator.userAgent,language:window.navigator.language}}}})),auctionStart:Date.now(),timeout:0,refererInfo:{stack:[document.referrer],location:window.location.href,page:window.location.href,domain:window.location.hostname},start:Date.now()};null===(s=this._logger)||void 0===s||s.debug("SurfsideEventService.raiseBidRequested snowplowBidRequestPayload",a),this._surf(`${i.BID_REQUESTED}:${this._appId}`,a)}async raiseBidResponded(e,r){var t,n,o,s;null===(t=this._logger)||void 0===t||t.info("SurfsideEventService.raiseBidderDone"),null===(n=this._logger)||void 0===n||n.debug("SurfsideEventService.raiseBidderDone",e);const l=void 0!==(null==e?void 0:e.seatbid)?null===(o=e.seatbid[0])||void 0===o?void 0:o.bid:[],a={auctionId:r.id,bidderRequestId:r.id,bids:l.map((t=>{var i,n,o,s,l,a,d,u,c,v,p,h,f,g,m,S,_,b,w,I,E,y,T,O,R,C,x,N;return{params:{accountId:null!==(s=null!==(n=null===(i=e.ext)||void 0===i?void 0:i.accountId)&&void 0!==n?n:null===(o=r.ext)||void 0===o?void 0:o.accountId)&&void 0!==s?s:null,channelId:null!==(u=null!==(a=null===(l=e.ext)||void 0===l?void 0:l.channelId)&&void 0!==a?a:null===(d=r.ext)||void 0===d?void 0:d.channelId)&&void 0!==u?u:null,siteId:null!==(h=null!==(v=null===(c=e.ext)||void 0===c?void 0:c.siteId)&&void 0!==v?v:null===(p=r.ext)||void 0===p?void 0:p.siteId)&&void 0!==h?h:null,placementId:null!==(S=null!==(g=null===(f=e.ext)||void 0===f?void 0:f.zoneId)&&void 0!==g?g:null===(m=r.ext)||void 0===m?void 0:m.zoneId)&&void 0!==S?S:null,zone:null!==(I=null!==(b=null===(_=e.ext)||void 0===_?void 0:_.zone)&&void 0!==b?b:null===(w=r.ext)||void 0===w?void 0:w.zone)&&void 0!==I?I:null,type:null!==(O=null!==(y=null===(E=e.ext)||void 0===E?void 0:E.type)&&void 0!==y?y:null===(T=r.ext)||void 0===T?void 0:T.type)&&void 0!==O?O:null,storeId:null!==(N=null!==(C=null===(R=e.ext)||void 0===R?void 0:R.storeId)&&void 0!==C?C:null===(x=r.ext)||void 0===x?void 0:x.storeId)&&void 0!==N?N:null},bidId:t.id,transactionId:t.impid,ortb2:{site:{domain:window.location.hostname,page:window.location.pathname},device:{w:window.screen.width,h:window.screen.height,dnt:0,ua:window.navigator.userAgent,language:window.navigator.language}},ortb2Imp:{},sizes:void 0!==t.w&&void 0!==t.h?[[t.w,t.h]]:[[0,0]],mediaTypes:void 0!==t.w&&void 0!==t.h?{banner:{sizes:[[t.w,t.h]]}}:{}}})),auctionStart:0,refererInfo:{stack:[document.referrer],location:window.location.href,page:window.location.href,domain:window.location.hostname},timeout:0,start:Date.now()};null===(s=this._logger)||void 0===s||s.debug("SurfsideEventService.raiseBidderDone snowplowBidderDoneEvent",a),this._surf(`${i.BIDDER_DONE}:${this._appId}`,a)}}},"./src/services/tracking/events/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideEventService:()=>i.SurfsideEventService}),t("./src/services/tracking/events/IEventService.ts");var i=t("./src/services/tracking/events/SurfsideEventService.ts")},"./src/services/tracking/geo/GeoOverrideService.ts":(e,r,t)=>{t.r(r),t.d(r,{GeoOverrideService:()=>n});var i=t("./src/services/OverrideService.ts");class n extends i.OverrideService{constructor(e){super("div#surf-geo-override",e)}mapDataSetToData(e){var r,t,i,n,o;null===(r=this.logger)||void 0===r||r.info("GeoOverrideService.mapDataSetToData");const{country:s,region:l,city:a,zip:d,coords:u,utcoffset:c,ip:v}=e;if(void 0===c||void 0===s||void 0===u||void 0===l||void 0===a||void 0===d||void 0===v)return null===(t=this.logger)||void 0===t||t.warn("GeoOverrideService.mapDataSetToData missing a value in geo override, returning null"),null;const p=Number(c);if(isNaN(p))return null===(i=this.logger)||void 0===i||i.warn("GeoOverrideService.mapDataSetToData utcOffset is not a number, returning null"),null;const[h,f,g]=u.split(",").map((e=>Number(e)));if(void 0===h||isNaN(h)||void 0===f||isNaN(f)||void 0===g||isNaN(g))return null===(n=this.logger)||void 0===n||n.warn("GeoOverrideService.mapDataSetToData coords string is malformed, returning null"),null;const m={country:s,region:l,city:a,zip:d,coords:{latitude:h,longitude:f,accuracy:g},utcoffset:p,ip:v};return null===(o=this.logger)||void 0===o||o.warn("GeoOverrideService.mapDataSetToData override success",m),m}async getGeo(){const e=this.getOverrideNode();return void 0===(null==e?void 0:e.dataset)||(this.overrideData=this.mapDataSetToData(e.dataset)),this.overrideData}}},"./src/services/tracking/geo/IGeoService.ts":(e,r,t)=>{t.r(r)},"./src/services/tracking/geo/SurfsideGeoService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideGeoService:()=>n});var i=t("./src/services/tracking/geo/GeoOverrideService.ts");class n extends i.GeoOverrideService{constructor(e){var r;super(e),null===(r=this.logger)||void 0===r||r.info("SurfsideGeoService.constructor initialized",this)}async getGeo(){var e,r,t;null===(e=this.logger)||void 0===e||e.info("SurfsideGeoService.getGeo");const i=await super.getGeo();if(null!==i)return i;try{const e=await fetch("https://g.surfside.io/enrich");return null===(r=this.logger)||void 0===r||r.debug("SurfsideGeoService.getGeo response",e),await e.json()}catch(e){return null===(t=this.logger)||void 0===t||t.error("Failed to get geolocation information",e),null}}}},"./src/services/tracking/geo/index.ts":(e,r,t)=>{t.r(r),t.d(r,{GeoOverrideService:()=>n.GeoOverrideService,SurfsideGeoService:()=>i.SurfsideGeoService}),t("./src/services/tracking/geo/IGeoService.ts");var i=t("./src/services/tracking/geo/SurfsideGeoService.ts"),n=t("./src/services/tracking/geo/GeoOverrideService.ts")},"./src/services/tracking/index.ts":(e,r,t)=>{t.r(r),t.d(r,{DeviceOverrideService:()=>s.DeviceOverrideService,GeoOverrideService:()=>i.GeoOverrideService,SurfsideDeviceService:()=>s.SurfsideDeviceService,SurfsideEventService:()=>o.SurfsideEventService,SurfsideGeoService:()=>i.SurfsideGeoService,SurfsideUserIDService:()=>n.SurfsideUserIDService,TryGetDeviceInfo:()=>s.TryGetDeviceInfo,UserOverrideService:()=>n.UserOverrideService});var i=t("./src/services/tracking/geo/index.ts"),n=t("./src/services/tracking/user/index.ts"),o=t("./src/services/tracking/events/index.ts"),s=t("./src/services/tracking/device/index.ts")},"./src/services/tracking/user/IUserIDService.ts":(e,r,t)=>{t.r(r)},"./src/services/tracking/user/SurfsideUserIDService.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideUserIDService:()=>o});var i=t("./src/services/tracking/user/UserOverrideService.ts");const n=/surfid.(?<site_hash>[a-z0-9]+)=(?<domain_userid>[^.]+).*/gi;class o extends i.UserOverrideService{constructor(e){var r;super(e),null===(r=this.logger)||void 0===r||r.info("SurfsideUserIDService.constructor initialized")}async getUserId(){var e,r,t,i;null===(e=this.logger)||void 0===e||e.info("SurfsideUserIDService.getUserId");const o=null!==(t=null!==(r=await super.getUserId())&&void 0!==r?r:document.cookie.split(";").filter((e=>e.startsWith("surfid."))).map((e=>e.match(n))).map((e=>{var r;return null===(r=null==e?void 0:e.groups)||void 0===r?void 0:r.domain_userid}))[0])&&void 0!==t?t:null;return null===(i=this.logger)||void 0===i||i.debug("SurfsideUserIDService.getUserId userId",o),o}}},"./src/services/tracking/user/UserOverrideService.ts":(e,r,t)=>{t.r(r),t.d(r,{UserOverrideService:()=>n});var i=t("./src/services/OverrideService.ts");class n extends i.OverrideService{constructor(e){var r;super("div#surf-user-override",e),null===(r=this.logger)||void 0===r||r.info("UserOverrideService.constructor initialized UserOverrideService")}async getUserId(){const e=this.getOverrideNode();return void 0===(null==e?void 0:e.dataset)||(this.overrideData=this.mapDataSetToData(e.dataset)),this.overrideData}mapDataSetToData(e){var r,t;return void 0===e.userid?(null===(r=this.logger)||void 0===r||r.warn("UserOverrideService.getUserId found userId Div block, but no userId was set.Hint: it needs dataset - userid"),null):(null===(t=this.logger)||void 0===t||t.debug(`UserOverrideService.getUserId found userId: ${e.userid}`),e.userid)}}},"./src/services/tracking/user/index.ts":(e,r,t)=>{t.r(r),t.d(r,{SurfsideUserIDService:()=>i.SurfsideUserIDService,UserOverrideService:()=>n.UserOverrideService}),t("./src/services/tracking/user/IUserIDService.ts");var i=t("./src/services/tracking/user/SurfsideUserIDService.ts"),n=t("./src/services/tracking/user/UserOverrideService.ts")},"./src/utils/Protocol.ts":(e,r,t)=>{function i(e){if(e.includes("://"))return e;const r=e.startsWith("//")?"":"//";let t=window.location.protocol;return t.startsWith("http")||(t="https:"),`${t}${r}${e}`}t.r(r),t.d(r,{GetSafeUrl:()=>i})},"./src/utils/index.ts":(e,r,t)=>{t.r(r),t.d(r,{GetSafeUrl:()=>i.GetSafeUrl});var i=t("./src/utils/Protocol.ts")}},r={};function t(i){var n=r[i];if(void 0!==n)return n.exports;var o=r[i]={exports:{}};return e[i](o,o.exports,t),o.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{t.r(i),t.d(i,{AdCom10DeviceTypes:()=>o.AdCom10DeviceTypes,AgentTypes:()=>o.AgentTypes,BuildBanner:()=>a.BuildBanner,BuildBannerFromBid:()=>a.BuildBannerFromBid,BuildClickThroughUrl:()=>a.BuildClickThroughUrl,BuildProductInfoFromElement:()=>a.BuildProductInfoFromElement,ContextSubTypes:()=>o.ContextSubTypes,ContextTypes:()=>o.ContextTypes,DeserializeVast:()=>a.DeserializeVast,DeserializeVideo:()=>a.DeserializeVideo,DeviceOverrideService:()=>e.DeviceOverrideService,Environment:()=>l.Environment,EventTrackingMethods:()=>o.EventTrackingMethods,EventTypes:()=>o.EventTypes,GeoOverrideService:()=>e.GeoOverrideService,HttpStatus:()=>l.HttpStatus,HttpStatusClass:()=>l.HttpStatusClass,IPServices:()=>l.IPServices,LocalLoggerService:()=>e.LocalLoggerService,LocationType:()=>l.LocationType,LogLevel:()=>e.LogLevel,NativeAssetId:()=>o.NativeAssetId,NativeDataTypes:()=>o.NativeDataTypes,NativeImageTypes:()=>o.NativeImageTypes,NativePosition:()=>o.NativePosition,NativeRequestBuilder:()=>o.NativeRequestBuilder,NativeResponseToProductInformation:()=>o.NativeResponseToProductInformation,NoBidResponseError:()=>s.NoBidResponseError,PlacementTypes:()=>o.PlacementTypes,RequestBuilder:()=>a.RequestBuilder,SimpleBannerRequest:()=>a.SimpleBannerRequest,SurfColors:()=>l.SurfColors,SurfsideBidderService:()=>e.SurfsideBidderService,SurfsideConfigurationService:()=>e.SurfsideConfigurationService,SurfsideDeviceService:()=>e.SurfsideDeviceService,SurfsideEventService:()=>e.SurfsideEventService,SurfsideGeoService:()=>e.SurfsideGeoService,SurfsideProductFeedService:()=>e.SurfsideProductFeedService,SurfsideRecommenderService:()=>e.SurfsideRecommenderService,SurfsideUserIDService:()=>e.SurfsideUserIDService,TryGetDeviceInfo:()=>e.TryGetDeviceInfo,UserOverrideService:()=>e.UserOverrideService,VideoMimes:()=>o.VideoMimes,and:()=>a.and,array:()=>a.array,coalesce:()=>a.coalesce,eq:()=>a.eq,initSurfsideCore:()=>d,isIn:()=>a.isIn,join:()=>a.join,lower:()=>a.lower,or:()=>a.or,path:()=>a.path,search:()=>a.search,sed:()=>a.sed,slug:()=>a.slug,uri:()=>a.uri});var e=t("./src/services/index.ts"),r=t("./node_modules/handlebars/runtime.js"),n=t.n(r),o=t("./src/models/index.ts"),s=t("./src/errors/index.ts"),l=t("./src/constant-values/index.ts"),a=t("./src/helpers/index.ts");function d(){const r=n().create();return{bidder:new e.SurfsideBidderService("//rtb.surfside.io/rtb/bids/surfside"),config:new e.SurfsideConfigurationService("//r.surfside.io/",r),geo:new e.SurfsideGeoService,productFeed:new e.SurfsideProductFeedService("//r.surfside.io/"),userId:new e.SurfsideUserIDService,recommender:new e.SurfsideRecommenderService("//t.surfside.io/"),events:new e.SurfsideEventService({lazyLoad:!0,src:"//cdn.surfside.io/sdk/1.0.0/edge.js"})}}})(),i})(),e.exports=r()},379:(e,r,t)=>{var i=t(633);e.exports=(i.default||i).template({compiler:[8,">= 4.3.0"],main:function(e,r,t,i,n){var o,s,l=null!=r?r:e.nullContext||{},a=e.hooks.helperMissing,d="function",u=e.lookupProperty||function(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return e[r]};return'<div class="surfside-banner">\r\n '+(null!=(o=typeof(s=null!=(s=u(t,"adm")||(null!=r?u(r,"adm"):r))?s:a)===d?s.call(l,{name:"adm",hash:{},data:n,loc:{start:{line:2,column:4},end:{line:2,column:13}}}):s)?o:"")+"\r\n "+(null!=(o=typeof(s=null!=(s=u(t,"watermark")||(null!=r?u(r,"watermark"):r))?s:a)===d?s.call(l,{name:"watermark",hash:{},data:n,loc:{start:{line:3,column:4},end:{line:3,column:19}}}):s)?o:"")+" \r\n</div>\r\n"},useData:!0})},803:(e,r,t)=>{var i=t(633);e.exports=(i.default||i).template({compiler:[8,">= 4.3.0"],main:function(e,r,t,i,n){return'<div class="surf-carousel"\r\n _touchstart_="touchStart"\r\n _touchmove_="touchMove"\r\n _touchend_="touchEnd"\r\n>\r\n <div class="sponsored-carousel"></div>\r\n <div class="items">\r\n </div>\r\n <div class="arrow left"\r\n _click_="previousProduct"></div>\r\n <div class="arrow right"\r\n _click_="nextProduct"></div>\r\n\r\n</div>'},useData:!0})},169:(e,r,t)=>{var i=t(633);e.exports=(i.default||i).template({compiler:[8,">= 4.3.0"],main:function(e,r,t,i,n){return'<div class="skeleton-product">\r\n <div class="skeleton-image"></div>\r\n <div class="skeleton-body">\r\n <div class="skeleton-title"></div>\r\n <div class="skeleton-details"></div>\r\n <div class="skeleton-details"></div>\r\n <div class="skeleton-details"></div>\r\n <div class="skeleton-details"></div>\r\n </div>\r\n</div>'},useData:!0})},241:(e,r,t)=>{var i=t(633);e.exports=(i.default||i).template({1:function(e,r,t,i,n){var o,s=e.lookupProperty||function(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return e[r]};return null!=(o=s(t,"each").call(null!=r?r:e.nullContext||{},null!=r?s(r,"creatives"):r,{name:"each",hash:{},fn:e.program(2,n,0),inverse:e.noop,data:n,loc:{start:{line:7,column:12},end:{line:11,column:21}}}))?o:""},2:function(e,r,t,i,n){var o,s=e.lookupProperty||function(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return e[r]};return null!=(o=s(t,"each").call(null!=r?r:e.nullContext||{},null!=r?s(r,"mediaFiles"):r,{name:"each",hash:{},fn:e.program(3,n,0),inverse:e.noop,data:n,loc:{start:{line:8,column:16},end:{line:10,column:25}}}))?o:""},3:function(e,r,t,i,n){var o,s,l=null!=r?r:e.nullContext||{},a=e.hooks.helperMissing,d="function",u=e.lookupProperty||function(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return e[r]};return' <source src="'+(null!=(o=typeof(s=null!=(s=u(t,"url")||(null!=r?u(r,"url"):r))?s:a)===d?s.call(l,{name:"url",hash:{},data:n,loc:{start:{line:9,column:33},end:{line:9,column:40}}}):s)?o:"")+'" type="'+(null!=(o=typeof(s=null!=(s=u(t,"type")||(null!=r?u(r,"type"):r))?s:a)===d?s.call(l,{name:"type",hash:{},data:n,loc:{start:{line:9,column:48},end:{line:9,column:56}}}):s)?o:"")+'" id="'+(null!=(o=typeof(s=null!=(s=u(t,"id")||(null!=r?u(r,"id"):r))?s:a)===d?s.call(l,{name:"id",hash:{},data:n,loc:{start:{line:9,column:62},end:{line:9,column:68}}}):s)?o:"")+'" _error_="onError">\r\n'},compiler:[8,">= 4.3.0"],main:function(e,r,t,i,n){var o,s,l=null!=r?r:e.nullContext||{},a=e.lookupProperty||function(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return e[r]};return'<div class="surfside-video interaction-style-wrapper">\r\n <div class="sizing-container">\r\n <video autoplay muted _loadeddata_="onLoaded">\r\n'+(null!=(o=a(t,"with").call(l,null!=(o=null!=(o=null!=(o=null!=r?a(r,"vast"):r)?a(o,"ads"):o)?a(o,"0"):o)?a(o,"inline"):o,{name:"with",hash:{},fn:e.program(1,n,0),inverse:e.noop,data:n,loc:{start:{line:5,column:12},end:{line:12,column:21}}}))?o:"")+' </video>\r\n\r\n <div class="timer">\r\n <svg\r\n width="36"\r\n height="36"\r\n viewBox="-2 2 36 36"\r\n >\r\n <circle\r\n cx="16"\r\n cy="16"\r\n r="15"\r\n stroke="#7b4af4"\r\n stroke-width="4"\r\n fill="none"\r\n class="timer-circle"\r\n />\r\n </svg>\r\n <div class="timer-value"></div>\r\n </div>\r\n\r\n <div class="surfside-watermark">\r\n '+(null!=(o="function"==typeof(s=null!=(s=a(t,"watermark")||(null!=r?a(r,"watermark"):r))?s:e.hooks.helperMissing)?s.call(l,{name:"watermark",hash:{},data:n,loc:{start:{line:37,column:12},end:{line:37,column:27}}}):s)?o:"")+' \r\n </div>\r\n\r\n <div class="mute-button muted" _click_="onToggleMute"></div>\r\n\r\n </div>\r\n</div>'},useData:!0})},456:(e,r,t)=>{var i=t(633);e.exports=(i.default||i).template({compiler:[8,">= 4.3.0"],main:function(e,r,t,i,n){return'<div class="watermark">\r\n <a href="https://surfside.io/contact" target="_blank">\r\n <div class="watermark-svg">\r\n <img src="https://cdn.surfside.io/assets/surfside-logo.svg" alt="Surfside logo"/>\r\n </div>\r\n </a>\r\n</div>'},useData:!0})},261:(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}r.__esModule=!0;var o=n(t(871)),s=i(t(613)),l=i(t(769)),a=n(t(849)),d=n(t(624)),u=i(t(148));function c(){var e=new o.HandlebarsEnvironment;return a.extend(e,o),e.SafeString=s.default,e.Exception=l.default,e.Utils=a,e.escapeExpression=a.escapeExpression,e.VM=d,e.template=function(r){return d.template(r,e)},e}var v=c();v.create=c,u.default(v),v.default=v,r.default=v,e.exports=r.default},871:(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.HandlebarsEnvironment=c;var n=t(849),o=i(t(769)),s=t(277),l=t(940),a=i(t(566)),d=t(865);r.VERSION="4.7.8",r.COMPILER_REVISION=8,r.LAST_COMPATIBLE_COMPILER_REVISION=7,r.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};var u="[object Object]";function c(e,r,t){this.helpers=e||{},this.partials=r||{},this.decorators=t||{},s.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}c.prototype={constructor:c,logger:a.default,log:a.default.log,registerHelper:function(e,r){if(n.toString.call(e)===u){if(r)throw new o.default("Arg not supported with multiple helpers");n.extend(this.helpers,e)}else this.helpers[e]=r},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,r){if(n.toString.call(e)===u)n.extend(this.partials,e);else{if(void 0===r)throw new o.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=r}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,r){if(n.toString.call(e)===u){if(r)throw new o.default("Arg not supported with multiple decorators");n.extend(this.decorators,e)}else this.decorators[e]=r},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){d.resetLoggedProperties()}};var v=a.default.log;r.log=v,r.createFrame=n.createFrame,r.logger=a.default},940:(e,r,t)=>{r.__esModule=!0,r.registerDefaultDecorators=function(e){n.default(e)};var i,n=(i=t(430))&&i.__esModule?i:{default:i}},430:(e,r,t)=>{r.__esModule=!0;var i=t(849);r.default=function(e){e.registerDecorator("inline",(function(e,r,t,n){var o=e;return r.partials||(r.partials={},o=function(n,o){var s=t.partials;t.partials=i.extend({},s,r.partials);var l=e(n,o);return t.partials=s,l}),r.partials[n.args[0]]=n.fn,o}))},e.exports=r.default},769:(e,r)=>{r.__esModule=!0;var t=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function i(e,r){var n=r&&r.loc,o=void 0,s=void 0,l=void 0,a=void 0;n&&(o=n.start.line,s=n.end.line,l=n.start.column,a=n.end.column,e+=" - "+o+":"+l);for(var d=Error.prototype.constructor.call(this,e),u=0;u<t.length;u++)this[t[u]]=d[t[u]];Error.captureStackTrace&&Error.captureStackTrace(this,i);try{n&&(this.lineNumber=o,this.endLineNumber=s,Object.defineProperty?(Object.defineProperty(this,"column",{value:l,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:a,enumerable:!0})):(this.column=l,this.endColumn=a))}catch(e){}}i.prototype=new Error,r.default=i,e.exports=r.default},277:(e,r,t)=>{function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.registerDefaultHelpers=function(e){n.default(e),o.default(e),s.default(e),l.default(e),a.default(e),d.default(e),u.default(e)},r.moveHelperToHooks=function(e,r,t){e.helpers[r]&&(e.hooks[r]=e.helpers[r],t||delete e.helpers[r])};var n=i(t(97)),o=i(t(785)),s=i(t(353)),l=i(t(355)),a=i(t(300)),d=i(t(466)),u=i(t(908))},97:(e,r,t)=>{r.__esModule=!0;var i=t(849);r.default=function(e){e.registerHelper("blockHelperMissing",(function(r,t){var n=t.inverse,o=t.fn;if(!0===r)return o(this);if(!1===r||null==r)return n(this);if(i.isArray(r))return r.length>0?(t.ids&&(t.ids=[t.name]),e.helpers.each(r,t)):n(this);if(t.data&&t.ids){var s=i.createFrame(t.data);s.contextPath=i.appendContextPath(t.data.contextPath,t.name),t={data:s}}return o(r,t)}))},e.exports=r.default},785:(e,r,t)=>{r.__esModule=!0;var i,n=t(849),o=(i=t(769))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("each",(function(e,r){if(!r)throw new o.default("Must pass iterator to #each");var t,i=r.fn,s=r.inverse,l=0,a="",d=void 0,u=void 0;function c(r,t,o){d&&(d.key=r,d.index=t,d.first=0===t,d.last=!!o,u&&(d.contextPath=u+r)),a+=i(e[r],{data:d,blockParams:n.blockParams([e[r],r],[u+r,null])})}if(r.data&&r.ids&&(u=n.appendContextPath(r.data.contextPath,r.ids[0])+"."),n.isFunction(e)&&(e=e.call(this)),r.data&&(d=n.createFrame(r.data)),e&&"object"==typeof e)if(n.isArray(e))for(var v=e.length;l<v;l++)l in e&&c(l,l,l===e.length-1);else if("function"==typeof Symbol&&e[Symbol.iterator]){for(var p=[],h=e[Symbol.iterator](),f=h.next();!f.done;f=h.next())p.push(f.value);for(v=(e=p).length;l<v;l++)c(l,l,l===e.length-1)}else t=void 0,Object.keys(e).forEach((function(e){void 0!==t&&c(t,l-1),t=e,l++})),void 0!==t&&c(t,l-1,!0);return 0===l&&(a=s(this)),a}))},e.exports=r.default},353:(e,r,t)=>{r.__esModule=!0;var i,n=(i=t(769))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new n.default('Missing helper: "'+arguments[arguments.length-1].name+'"')}))},e.exports=r.default},355:(e,r,t)=>{r.__esModule=!0;var i,n=t(849),o=(i=t(769))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("if",(function(e,r){if(2!=arguments.length)throw new o.default("#if requires exactly one argument");return n.isFunction(e)&&(e=e.call(this)),!r.hash.includeZero&&!e||n.isEmpty(e)?r.inverse(this):r.fn(this)})),e.registerHelper("unless",(function(r,t){if(2!=arguments.length)throw new o.default("#unless requires exactly one argument");return e.helpers.if.call(this,r,{fn:t.inverse,inverse:t.fn,hash:t.hash})}))},e.exports=r.default},300:(e,r)=>{r.__esModule=!0,r.default=function(e){e.registerHelper("log",(function(){for(var r=[void 0],t=arguments[arguments.length-1],i=0;i<arguments.length-1;i++)r.push(arguments[i]);var n=1;null!=t.hash.level?n=t.hash.level:t.data&&null!=t.data.level&&(n=t.data.level),r[0]=n,e.log.apply(e,r)}))},e.exports=r.default},466:(e,r)=>{r.__esModule=!0,r.default=function(e){e.registerHelper("lookup",(function(e,r,t){return e?t.lookupProperty(e,r):e}))},e.exports=r.default},908:(e,r,t)=>{r.__esModule=!0;var i,n=t(849),o=(i=t(769))&&i.__esModule?i:{default:i};r.default=function(e){e.registerHelper("with",(function(e,r){if(2!=arguments.length)throw new o.default("#with requires exactly one argument");n.isFunction(e)&&(e=e.call(this));var t=r.fn;if(n.isEmpty(e))return r.inverse(this);var i=r.data;return r.data&&r.ids&&((i=n.createFrame(r.data)).contextPath=n.appendContextPath(r.data.contextPath,r.ids[0])),t(e,{data:i,blockParams:n.blockParams([e],[i&&i.contextPath])})}))},e.exports=r.default},726:(e,r,t)=>{r.__esModule=!0,r.createNewLookupObject=function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return i.extend.apply(void 0,[Object.create(null)].concat(r))};var i=t(849)},865:(e,r,t)=>{r.__esModule=!0,r.createProtoAccessControl=function(e){var r=Object.create(null);r.constructor=!1,r.__defineGetter__=!1,r.__defineSetter__=!1,r.__lookupGetter__=!1;var t=Object.create(null);return t.__proto__=!1,{properties:{whitelist:n.createNewLookupObject(t,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:n.createNewLookupObject(r,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},r.resultIsAllowed=function(e,r,t){return function(e,r){return void 0!==e.whitelist[r]?!0===e.whitelist[r]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==s[e]&&(s[e]=!0,o.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(r),!1)}("function"==typeof e?r.methods:r.properties,t)},r.resetLoggedProperties=function(){Object.keys(s).forEach((function(e){delete s[e]}))};var i,n=t(726),o=(i=t(566))&&i.__esModule?i:{default:i},s=Object.create(null)},614:(e,r)=>{r.__esModule=!0,r.wrapHelper=function(e,r){return"function"!=typeof e?e:function(){return arguments[arguments.length-1]=r(arguments[arguments.length-1]),e.apply(this,arguments)}}},566:(e,r,t)=>{r.__esModule=!0;var i=t(849),n={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var r=i.indexOf(n.methodMap,e.toLowerCase());e=r>=0?r:parseInt(e,10)}return e},log:function(e){if(e=n.lookupLevel(e),"undefined"!=typeof console&&n.lookupLevel(n.level)<=e){var r=n.methodMap[e];console[r]||(r="log");for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];console[r].apply(console,i)}}};r.default=n,e.exports=r.default},148:(e,r)=>{r.__esModule=!0,r.default=function(e){"object"!=typeof globalThis&&(Object.prototype.__defineGetter__("__magic__",(function(){return this})),__magic__.globalThis=__magic__,delete Object.prototype.__magic__);var r=globalThis.Handlebars;e.noConflict=function(){return globalThis.Handlebars===e&&(globalThis.Handlebars=r),e}},e.exports=r.default},624:(e,r,t)=>{r.__esModule=!0,r.checkRevision=function(e){var r=e&&e[0]||1,t=s.COMPILER_REVISION;if(!(r>=s.LAST_COMPATIBLE_COMPILER_REVISION&&r<=s.COMPILER_REVISION)){if(r<s.LAST_COMPATIBLE_COMPILER_REVISION){var i=s.REVISION_CHANGES[t],n=s.REVISION_CHANGES[r];throw new o.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+i+") or downgrade your runtime to an older version ("+n+").")}throw new o.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}},r.template=function(e,r){if(!r)throw new o.default("No environment passed to template");if(!e||!e.main)throw new o.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,r.VM.checkRevision(e.compiler);var t=e.compiler&&7===e.compiler[0],i={strict:function(e,r,t){if(!e||!(r in e))throw new o.default('"'+r+'" not defined in '+e,{loc:t});return i.lookupProperty(e,r)},lookupProperty:function(e,r){var t=e[r];return null==t||Object.prototype.hasOwnProperty.call(e,r)||d.resultIsAllowed(t,i.protoAccessControl,r)?t:void 0},lookup:function(e,r){for(var t=e.length,n=0;n<t;n++)if(null!=(e[n]&&i.lookupProperty(e[n],r)))return e[n][r]},lambda:function(e,r){return"function"==typeof e?e.call(r):e},escapeExpression:n.escapeExpression,invokePartial:function(t,i,s){s.hash&&(i=n.extend({},i,s.hash),s.ids&&(s.ids[0]=!0)),t=r.VM.resolvePartial.call(this,t,i,s);var l=n.extend({},s,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),a=r.VM.invokePartial.call(this,t,i,l);if(null==a&&r.compile&&(s.partials[s.name]=r.compile(t,e.compilerOptions,r),a=s.partials[s.name](i,l)),null!=a){if(s.indent){for(var d=a.split("\n"),u=0,c=d.length;u<c&&(d[u]||u+1!==c);u++)d[u]=s.indent+d[u];a=d.join("\n")}return a}throw new o.default("The partial "+s.name+" could not be compiled when running in runtime-only mode")},fn:function(r){var t=e[r];return t.decorator=e[r+"_d"],t},programs:[],program:function(e,r,t,i,n){var o=this.programs[e],s=this.fn(e);return r||n||i||t?o=u(this,e,s,r,t,i,n):o||(o=this.programs[e]=u(this,e,s)),o},data:function(e,r){for(;e&&r--;)e=e._parent;return e},mergeIfNeeded:function(e,r){var t=e||r;return e&&r&&e!==r&&(t=n.extend({},r,e)),t},nullContext:Object.seal({}),noop:r.VM.noop,compilerInfo:e.compiler};function c(r){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=t.data;c._setup(t),!t.partial&&e.useData&&(n=function(e,r){return r&&"root"in r||((r=r?s.createFrame(r):{}).root=e),r}(r,n));var o=void 0,l=e.useBlockParams?[]:void 0;function a(r){return""+e.main(i,r,i.helpers,i.partials,n,l,o)}return e.useDepths&&(o=t.depths?r!=t.depths[0]?[r].concat(t.depths):t.depths:[r]),(a=v(e.main,a,i,t.depths||[],n,l))(r,t)}return c.isTop=!0,c._setup=function(o){if(o.partial)i.protoAccessControl=o.protoAccessControl,i.helpers=o.helpers,i.partials=o.partials,i.decorators=o.decorators,i.hooks=o.hooks;else{var s=n.extend({},r.helpers,o.helpers);!function(e,r){Object.keys(e).forEach((function(t){var i=e[t];e[t]=function(e,r){var t=r.lookupProperty;return a.wrapHelper(e,(function(e){return n.extend({lookupProperty:t},e)}))}(i,r)}))}(s,i),i.helpers=s,e.usePartial&&(i.partials=i.mergeIfNeeded(o.partials,r.partials)),(e.usePartial||e.useDecorators)&&(i.decorators=n.extend({},r.decorators,o.decorators)),i.hooks={},i.protoAccessControl=d.createProtoAccessControl(o);var u=o.allowCallsToHelperMissing||t;l.moveHelperToHooks(i,"helperMissing",u),l.moveHelperToHooks(i,"blockHelperMissing",u)}},c._child=function(r,t,n,s){if(e.useBlockParams&&!n)throw new o.default("must pass block params");if(e.useDepths&&!s)throw new o.default("must pass parent depths");return u(i,r,e[r],t,0,n,s)},c},r.wrapProgram=u,r.resolvePartial=function(e,r,t){return e?e.call||t.name||(t.name=e,e=t.partials[e]):e="@partial-block"===t.name?t.data["partial-block"]:t.partials[t.name],e},r.invokePartial=function(e,r,t){var i=t.data&&t.data["partial-block"];t.partial=!0,t.ids&&(t.data.contextPath=t.ids[0]||t.data.contextPath);var l=void 0;if(t.fn&&t.fn!==c&&function(){t.data=s.createFrame(t.data);var e=t.fn;l=t.data["partial-block"]=function(r){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return t.data=s.createFrame(t.data),t.data["partial-block"]=i,e(r,t)},e.partials&&(t.partials=n.extend({},t.partials,e.partials))}(),void 0===e&&l&&(e=l),void 0===e)throw new o.default("The partial "+t.name+" could not be found");if(e instanceof Function)return e(r,t)},r.noop=c;var i,n=function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}(t(849)),o=(i=t(769))&&i.__esModule?i:{default:i},s=t(871),l=t(277),a=t(614),d=t(865);function u(e,r,t,i,n,o,s){function l(r){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=s;return!s||r==s[0]||r===e.nullContext&&null===s[0]||(l=[r].concat(s)),t(e,r,e.helpers,e.partials,n.data||i,o&&[n.blockParams].concat(o),l)}return(l=v(t,l,e,s,i,o)).program=r,l.depth=s?s.length:0,l.blockParams=n||0,l}function c(){return""}function v(e,r,t,i,o,s){if(e.decorator){var l={};r=e.decorator(r,l,t,i&&i[0],o,s,i),n.extend(r,l)}return r}},613:(e,r)=>{function t(e){this.string=e}r.__esModule=!0,t.prototype.toString=t.prototype.toHTML=function(){return""+this.string},r.default=t,e.exports=r.default},849:(e,r)=>{r.__esModule=!0,r.extend=s,r.indexOf=function(e,r){for(var t=0,i=e.length;t<i;t++)if(e[t]===r)return t;return-1},r.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return n.test(e)?e.replace(i,o):e},r.isEmpty=function(e){return!e&&0!==e||!(!d(e)||0!==e.length)},r.createFrame=function(e){var r=s({},e);return r._parent=e,r},r.blockParams=function(e,r){return e.path=r,e},r.appendContextPath=function(e,r){return(e?e+".":"")+r};var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},i=/[&<>"'`=]/g,n=/[&<>"'`=]/;function o(e){return t[e]}function s(e){for(var r=1;r<arguments.length;r++)for(var t in arguments[r])Object.prototype.hasOwnProperty.call(arguments[r],t)&&(e[t]=arguments[r][t]);return e}var l=Object.prototype.toString;r.toString=l;var a=function(e){return"function"==typeof e};a(/x/)&&(r.isFunction=a=function(e){return"function"==typeof e&&"[object Function]"===l.call(e)}),r.isFunction=a;var d=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===l.call(e)};r.isArray=d},633:(e,r,t)=>{e.exports=t(261).default}},r={};function t(i){var n=r[i];if(void 0!==n)return n.exports;var o=r[i]={exports:{}};return e[i](o,o.exports,t),o.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i,n,o,s={};t.r(s),t.d(s,{and:()=>_,array:()=>w,coalesce:()=>h,eq:()=>m,isIn:()=>b,join:()=>f,lower:()=>d,or:()=>S,path:()=>u,search:()=>p,sed:()=>c,slug:()=>a,uri:()=>g}),t(518),HTMLElement,Error,function(e){e.TOP_ALL="top-products",e.FOR_YOU="for-you",e.PAST_PURCHASE="buy-again"}(i||(i={})),(o=n||(n={})).BID="bid",o.RECOMMENDER="recommender",t(379),t(456),t(169);const l=5;function a(e,r){var t;if(null==e||"string"!=typeof e)return"";const i=void 0!==r.hash.hyphenate?new RegExp(r.hash.hyphenate,"ig"):/[\s_\-,]/gi,n=void 0!==r.hash.drop?new RegExp(r.hash.drop,"ig"):/[^A-Za-z0-9-]/gi,o=null!==(t=r.hash.length)&&void 0!==t?t:l;return e.replace(i,"-").replace(n,"").toLowerCase().split("-").slice(0,o).join("-")}function d(e){return null==e||"string"!=typeof e?"":e.toLowerCase()}function u(e){if(0===e||null==e)return"";const r=window.location.pathname.split("/");return r.length<=e?"":r[e]}function c(e,r,t){return e.replace(new RegExp(r),((...e)=>{const r=e.slice(1,-2);let i=t;return i=i.replace(/\\(\d+)/g,((e,t)=>{var i;return null!==(i=r[t-1])&&void 0!==i?i:""})),i=i.replace(/\\U(\d+)/g,((e,t)=>{var i;return(null!==(i=r[t-1])&&void 0!==i?i:"").toUpperCase()})),i=v(i,"U",r,(e=>e.toUpperCase())),i=v(i,"L",r,(e=>e.toLowerCase())),i=v(i,"I",r,(e=>e[0])),i}))}function v(e,r,t,i){return e.replace(new RegExp(`\\\\${r}(\\d+)`,"g"),((e,r)=>{var n;return i(null!==(n=t[r-1])&&void 0!==n?n:"")}))}function p(e){var r;if(void 0===(null==e?void 0:e.length)||0===e.length)return"";const t=window.location.search;return 0===t.length?"":null!==(r=new URLSearchParams(t).get(e))&&void 0!==r?r:""}function h(){for(let e=0;e<arguments.length-1;e++){const r=arguments[e];if(null!=r&&""!==r&&!1!==r)return r}return""}function f(){var e;const r=[...arguments].slice(0,arguments.length-1),t=null!==(e=arguments[arguments.length-1].hash.separator)&&void 0!==e?e:"/";return r.filter((e=>null!=e&&""!==e)).join(t)}function g(e){return void 0===(null==e?void 0:e.length)||0===e.length?"":encodeURIComponent(e).replaceAll("'","%27")}function m(e,r){return e===r}function S(e,r){return Boolean(e)||Boolean(r)}function _(e,r){return Boolean(e)&&Boolean(r)}function b(e,r){return void 0!==(null==r?void 0:r.length)&&0!==r.length&&r.includes(e)}function w(){return Array.from(arguments).slice(0,-1)}var I,E,y;t(241),function(e){e.START="start",e.FIRST_QUARTILE="firstQuartile",e.MIDPOINT="midpoint",e.THIRD_QUARTILE="thirdQuartile",e.COMPLETE="complete",e.STOP="stop",e.IMPRESSION="impression"}(I||(I={})),t(803),function(e){e[e.PRODUCT=0]="PRODUCT",e[e.PAGE=1]="PAGE"}(E||(E={})),function(e){e.SPONSORED="sponsored",e.HYBRID="hybrid",e.RECOMMENDED="recommended"}(y||(y={})),HTMLElement,t(633);
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@surfside/ads",
3
+ "version": "2.0.0",
4
+ "description": "Client code for surfside ads",
5
+ "files": ["lib/index.js"],
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "type": "module",
9
+ "scripts": {
10
+ "lint": "npx eslint -c ./.eslintrc.json src/**/*.ts",
11
+ "build:mock": "npx cross-env NODE_ENV=development ENVIRONMENT=MOCK TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack --mode=development --config webpack.config.ts",
12
+ "build:local": "npx cross-env NODE_ENV=development ENVIRONMENT=LOCAL TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack --mode=development --config webpack.config.ts",
13
+ "build:staging": "npx cross-env NODE_ENV=development ENVIRONMENT=STAGING TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack --mode=development --config webpack.config.ts",
14
+ "build:prod": "npx cross-env NODE_ENV=production cross-env ENVIRONMENT=PROD TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack --mode=production --node-env=production --config webpack.config.ts",
15
+ "watch": "webpack --watch",
16
+ "serve": "npx cross-env NODE_ENV=development ENVIRONMENT=MOCK TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack serve --mode=development --config webpack.config.ts",
17
+ "serve:local": "npx cross-env NODE_ENV=development ENVIRONMENT=LOCAL TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack serve --mode=development --config webpack.config.ts",
18
+ "serve:staging": "npx cross-env NODE_ENV=development ENVIRONMENT=STAGING TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack serve --mode=development --config webpack.config.ts",
19
+ "serve:prod": "npx cross-env NODE_ENV=production ENVIRONMENT=PROD LOG_LEVEL=DEBUG TS_NODE_PROJECT=./tsconfig.webpack.json NODE_OPTIONS='--import=tsx' webpack serve --mode=production --config webpack.config.ts",
20
+ "docs": "npx typedoc --out docs --entryPointStrategy expand ./src",
21
+ "playwright:install-deps": "npx playwright install-deps",
22
+ "playwright:install": "npx playwright install",
23
+ "pretest": "npx npm-run-all playwright:install-deps playwright:install",
24
+ "test": "npx playwright test",
25
+ "test:ui": "npx playwright test --ui"
26
+ },
27
+ "author": "Collin Oswalt, Ranveer Dhaliwal, Alec Below, Michael Blanche, Elsa Chen",
28
+ "license": "UNLICENSED",
29
+ "devDependencies": {
30
+ "@fluentui/web-components": "^2.6.1",
31
+ "@playwright/test": "^1.49.1",
32
+ "@stylistic/eslint-plugin-ts": "^1.5.4",
33
+ "@surfside/ads-core": "^1.0.0",
34
+ "@types/handlebars": "^4.1.0",
35
+ "@types/node": "^20.12.13",
36
+ "@typescript-eslint/eslint-plugin": "^6.20.0",
37
+ "@webpack-cli/generators": "^3.0.7",
38
+ "copy-webpack-plugin": "^12.0.2",
39
+ "cross-env": "^7.0.3",
40
+ "css-loader": "^7.1.2",
41
+ "eslint": "^8.56.0",
42
+ "eslint-config-standard-with-typescript": "^43.0.1",
43
+ "eslint-plugin-import": "^2.29.1",
44
+ "eslint-plugin-n": "^16.6.2",
45
+ "eslint-plugin-promise": "^6.1.1",
46
+ "famfamfam-silk": "^1.0.0",
47
+ "git-rev-sync": "^3.0.2",
48
+ "handlebars-loader": "^1.7.3",
49
+ "html-loader": "^5.0.0",
50
+ "html-webpack-plugin": "^5.6.0",
51
+ "lerna": "^8.1.8",
52
+ "monaco-editor": "^0.50.0",
53
+ "npm-run-all": "^4.1.5",
54
+ "raw-loader": "^4.0.2",
55
+ "sass": "^1.79.4",
56
+ "sass-loader": "^16.0.2",
57
+ "style-loader": "^4.0.0",
58
+ "ts-loader": "^9.5.1",
59
+ "ts-node": "^10.9.2",
60
+ "tsconfig-paths-webpack-plugin": "^4.1.0",
61
+ "tsx": "^4.19.1",
62
+ "typedoc": "^0.25.13",
63
+ "typescript": "^5.3.3",
64
+ "webpack": "^5.94.0",
65
+ "webpack-bundle-analyzer": "^4.10.2",
66
+ "webpack-cli": "^5.1.4",
67
+ "webpack-dev-server": "^5.1.0",
68
+ "yargs": "^17.7.2"
69
+ },
70
+ "dependencies": {
71
+ "handlebars": "^4.7.8"
72
+ }
73
+ }