@surfside/ads 3.6.2 → 3.6.4-4c0a326f.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 (86) hide show
  1. package/lib/cjs/BuildInfo.js +9 -0
  2. package/lib/cjs/BuildInfo.js.map +1 -0
  3. package/lib/cjs/Constants.js +5 -0
  4. package/lib/cjs/Constants.js.map +1 -0
  5. package/lib/cjs/Init.js +130 -0
  6. package/lib/cjs/Init.js.map +1 -0
  7. package/lib/cjs/components/Banner.js +135 -0
  8. package/lib/cjs/components/Banner.js.map +1 -0
  9. package/lib/cjs/components/Card.js +162 -0
  10. package/lib/cjs/components/Card.js.map +1 -0
  11. package/lib/cjs/components/Carousel.js +241 -0
  12. package/lib/cjs/components/Carousel.js.map +1 -0
  13. package/lib/cjs/components/Creative.js +203 -0
  14. package/lib/cjs/components/Creative.js.map +1 -0
  15. package/lib/cjs/components/Dynamic.js +300 -0
  16. package/lib/cjs/components/Dynamic.js.map +1 -0
  17. package/lib/cjs/components/SimpleCreative.js +75 -0
  18. package/lib/cjs/components/SimpleCreative.js.map +1 -0
  19. package/lib/cjs/components/Video.js +134 -0
  20. package/lib/cjs/components/Video.js.map +1 -0
  21. package/lib/cjs/demo/test.js +7 -0
  22. package/lib/cjs/demo/test.js.map +1 -0
  23. package/lib/cjs/index.module.js +107 -0
  24. package/lib/cjs/index.module.js.map +1 -0
  25. package/lib/cjs/index.script.js +102 -0
  26. package/lib/cjs/index.script.js.map +1 -0
  27. package/lib/cjs/index.script.mock.js +154 -0
  28. package/lib/cjs/index.script.mock.js.map +1 -0
  29. package/lib/cjs/service/Init.js +3 -0
  30. package/lib/cjs/service/Init.js.map +1 -0
  31. package/lib/cjs/util/Attributes.js +93 -0
  32. package/lib/cjs/util/Attributes.js.map +1 -0
  33. package/lib/cjs/util/Types.js +3 -0
  34. package/lib/cjs/util/Types.js.map +1 -0
  35. package/lib/esm/BuildInfo.js +6 -0
  36. package/lib/esm/BuildInfo.js.map +1 -0
  37. package/lib/esm/Constants.js +2 -0
  38. package/lib/esm/Constants.js.map +1 -0
  39. package/lib/esm/Init.js +92 -0
  40. package/lib/esm/Init.js.map +1 -0
  41. package/lib/esm/components/Banner.js +131 -0
  42. package/lib/esm/components/Banner.js.map +1 -0
  43. package/lib/esm/components/Card.js +158 -0
  44. package/lib/esm/components/Card.js.map +1 -0
  45. package/lib/esm/components/Carousel.js +237 -0
  46. package/lib/esm/components/Carousel.js.map +1 -0
  47. package/lib/esm/components/Creative.js +198 -0
  48. package/lib/esm/components/Creative.js.map +1 -0
  49. package/lib/esm/components/Dynamic.js +296 -0
  50. package/lib/esm/components/Dynamic.js.map +1 -0
  51. package/lib/esm/components/SimpleCreative.js +69 -0
  52. package/lib/esm/components/SimpleCreative.js.map +1 -0
  53. package/lib/esm/components/Video.js +130 -0
  54. package/lib/esm/components/Video.js.map +1 -0
  55. package/lib/esm/demo/test.js +5 -0
  56. package/lib/esm/demo/test.js.map +1 -0
  57. package/lib/esm/index.module.js +67 -0
  58. package/lib/esm/index.module.js.map +1 -0
  59. package/lib/esm/index.script.js +100 -0
  60. package/lib/esm/index.script.js.map +1 -0
  61. package/lib/esm/index.script.mock.js +152 -0
  62. package/lib/esm/index.script.mock.js.map +1 -0
  63. package/lib/esm/service/Init.js +2 -0
  64. package/lib/esm/service/Init.js.map +1 -0
  65. package/lib/esm/util/Attributes.js +81 -0
  66. package/lib/esm/util/Attributes.js.map +1 -0
  67. package/lib/esm/util/Types.js +2 -0
  68. package/lib/esm/util/Types.js.map +1 -0
  69. package/lib/types/BuildInfo.d.ts +5 -0
  70. package/lib/types/Constants.d.ts +1 -0
  71. package/lib/types/Init.d.ts +31 -0
  72. package/lib/types/components/Banner.d.ts +18 -0
  73. package/lib/types/components/Card.d.ts +17 -0
  74. package/lib/types/components/Carousel.d.ts +31 -0
  75. package/lib/types/components/Creative.d.ts +65 -0
  76. package/lib/types/components/Dynamic.d.ts +23 -0
  77. package/lib/types/components/SimpleCreative.d.ts +19 -0
  78. package/lib/types/components/Video.d.ts +22 -0
  79. package/lib/types/demo/test.d.ts +1 -0
  80. package/lib/types/index.module.d.ts +12 -0
  81. package/lib/types/index.script.d.ts +1 -0
  82. package/lib/types/index.script.mock.d.ts +1 -0
  83. package/lib/types/service/Init.d.ts +1 -0
  84. package/lib/types/util/Attributes.d.ts +24 -0
  85. package/lib/types/util/Types.d.ts +3 -0
  86. package/package.json +10 -10
@@ -0,0 +1,130 @@
1
+ import { CancellationToken } from '@surfside/ads-core';
2
+ import { IntValOrThrow, SimpleCreativeComponent } from './SimpleCreative';
3
+ import { DEBOUNCE_THRESHOLD } from './Creative';
4
+ export class SurfsideVideo extends SimpleCreativeComponent {
5
+ _cancellationToken = new CancellationToken();
6
+ minDuration;
7
+ maxDuration;
8
+ _bounce;
9
+ static get observedAttributes() {
10
+ return [...SimpleCreativeComponent.observedSimpleAttributes, 'min-duration', 'max-duration'];
11
+ }
12
+ constructor(initApi, getUserId, logger) {
13
+ super(initApi, getUserId, logger);
14
+ }
15
+ getComponentName() {
16
+ return 'SurfsideVideo';
17
+ }
18
+ attributesLoaded() {
19
+ return (super.attributesLoaded() && this.minDuration !== undefined && this.maxDuration !== undefined
20
+ && this.minDuration !== null && this.maxDuration !== null);
21
+ }
22
+ async attributeChangedCallback(name, oldValue, newValue) {
23
+ const log = this.log?.with('attributeChangedCallback');
24
+ log?.info('Attribute changed');
25
+ if (name === 'min-duration') {
26
+ try {
27
+ this.minDuration = IntValOrThrow(this, 'min-duration', newValue);
28
+ }
29
+ catch (err) {
30
+ log?.warn('Couldn\'t parse min-duration', err);
31
+ }
32
+ }
33
+ else if (name === 'max-duration') {
34
+ try {
35
+ this.maxDuration = IntValOrThrow(this, 'max-duration', newValue);
36
+ }
37
+ catch (err) {
38
+ log?.warn('Couldn\'t parse min-duration', err);
39
+ }
40
+ }
41
+ else {
42
+ this.simpleAttributeChangedCallback(name, oldValue, newValue, log);
43
+ }
44
+ const totem = crypto.randomUUID();
45
+ this.totem = totem;
46
+ log?.debug(name, 'totem', totem);
47
+ if (!this.attributesLoaded()) {
48
+ log?.debug('Attributes not ready yet...');
49
+ return;
50
+ }
51
+ if (this.totem !== totem) {
52
+ log?.debug('Totem changed. Deferring rendering of video until last attribute changed', totem, this.totem);
53
+ return;
54
+ }
55
+ log?.debug(`Rendering video upon change of [${name}]`);
56
+ if (this._bounce !== undefined) {
57
+ globalThis.clearTimeout(this._bounce);
58
+ }
59
+ this._bounce = globalThis.setTimeout(() => this.render(), DEBOUNCE_THRESHOLD);
60
+ }
61
+ readVideoAttributes() {
62
+ this.readSimpleAttributes();
63
+ }
64
+ async connectedCallback() {
65
+ super.connectedCallback();
66
+ this.readVideoAttributes();
67
+ await this.initApi();
68
+ const totem = crypto.randomUUID();
69
+ this.totem = totem;
70
+ if (this.attributesLoaded()) {
71
+ await this.lazyLoadApi();
72
+ if (this.totem !== totem) {
73
+ this.log?.debug('Attributes changed after connectedCallback, waiting to render');
74
+ return;
75
+ }
76
+ this.log?.debug('Rendering upon connectedCallback');
77
+ await this.render();
78
+ }
79
+ else {
80
+ this.log?.warn('ConnectedCallback called before attributes were all ready.');
81
+ }
82
+ }
83
+ async render() {
84
+ const log = this.log?.with('SurfsideVideo', { zoneId: this.zoneId });
85
+ log?.info('rendering');
86
+ log?.debug('width', this.width, 'height', this.height);
87
+ const stopTimer = log?.time?.('render video');
88
+ this._cancellationToken.cancel();
89
+ const token = new CancellationToken();
90
+ this._cancellationToken = token;
91
+ const { requestBids, startRequest, buildVideoResponse, renderVideo } = this.api;
92
+ const bidResponseResult = await requestBids(startRequest(this.zoneId)
93
+ .withSurfCategory(this.category)
94
+ .withKeywords(this.keywords)
95
+ .withVideo(this.width, this.height, this.minDuration, this.maxDuration)
96
+ .build());
97
+ if (token.cancelled) {
98
+ return;
99
+ }
100
+ if (!bidResponseResult.ok) {
101
+ log?.warn('Did not get any bid responses', bidResponseResult.error);
102
+ return;
103
+ }
104
+ const bid = bidResponseResult.value.seatbid?.[0]?.bid?.[0];
105
+ if (bid === undefined) {
106
+ log?.error('Got a bid response, but it was malformed', bidResponseResult);
107
+ return;
108
+ }
109
+ const responseResult = buildVideoResponse(bid);
110
+ if (!responseResult.ok) {
111
+ log?.error(responseResult.error);
112
+ return;
113
+ }
114
+ const elementResult = renderVideo(responseResult.value);
115
+ if (!elementResult.ok) {
116
+ log?.error(elementResult.error);
117
+ return;
118
+ }
119
+ if (!token.cancelled) {
120
+ stopTimer?.();
121
+ this.shadow.innerHTML = '';
122
+ this.shadow.appendChild(elementResult.value);
123
+ elementResult.value.classList.add(`surf-zone-${this.zoneId}`);
124
+ if (this.api.configuration.settings.reauctionEnabled && bid.ext?.takeover !== true) {
125
+ elementResult.value.onended = () => this.render();
126
+ }
127
+ }
128
+ }
129
+ }
130
+ //# sourceMappingURL=Video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Video.js","sourceRoot":"../@surfside-ads/","sources":["components/Video.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { InitSurfAdsWebComponents } from '../index.module';
2
+ window.onload = () => {
3
+ InitSurfAdsWebComponents();
4
+ };
5
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"../@surfside-ads/","sources":["demo/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;IACjB,wBAAwB,EAAE,CAAC;AAC/B,CAAC,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { GetSurfUserIdCookie, InitSurfAdsWebInternal, SurfsideAdsCoreWebVersionInfo, } from '@surfside/ads-core-web';
2
+ import { SurfsideBanner } from './components/Banner';
3
+ import { InitLogger, MemoizeAsync, SurfsideAdsCoreVersionInfo } from '@surfside/ads-core';
4
+ import { SurfsideVideo } from './components/Video';
5
+ import { SurfsideCarousel } from './components/Carousel';
6
+ import { SurfsideProductCard } from './components/Card';
7
+ import { SurfsideDynamicZone } from './components/Dynamic';
8
+ import { InitSurfAdsCoreClient, SurfsideAdsCoreClientVersionInfo } from '@surfside/ads-core-client';
9
+ import * as SurfsideAdsVersionInfo from './BuildInfo';
10
+ export * from './Init';
11
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
12
+ globalThis.window.location.search.toLowerCase().includes(str);
13
+ export const InitSurfAdsWebComponents = (initializer) => {
14
+ const debug = searchHasString('surf_debug=true');
15
+ const logger = debug ? InitLogger() : undefined;
16
+ const log = logger?.with('InitSurfAdsWebComponents');
17
+ log?.info('🏄‍♂️ Initializing surfside ads web components');
18
+ log?.table(SurfsideAdsVersionTable);
19
+ const initApi = MemoizeAsync((accountId, siteId, channelId, locationId, userId) => {
20
+ return InitSurfAdsWebInternal((initializer ?? InitSurfAdsCoreClient)(accountId, siteId, channelId, locationId, userId));
21
+ });
22
+ log?.debug('Defining surf-banner');
23
+ customElements.define('surf-banner', class extends SurfsideBanner {
24
+ constructor() {
25
+ super(initApi, GetSurfUserIdCookie, logger);
26
+ }
27
+ });
28
+ log?.debug('Definining surf-video');
29
+ customElements.define('surf-video', class extends SurfsideVideo {
30
+ constructor() {
31
+ super(initApi, GetSurfUserIdCookie, logger);
32
+ }
33
+ });
34
+ log?.debug('Definining surf-carousel');
35
+ customElements.define('surf-carousel', class extends SurfsideCarousel {
36
+ constructor() {
37
+ super(initApi, GetSurfUserIdCookie, logger);
38
+ }
39
+ });
40
+ log?.debug('Definining surf-product-card');
41
+ customElements.define('surf-product-card', class extends SurfsideProductCard {
42
+ constructor() {
43
+ super(initApi, GetSurfUserIdCookie, logger);
44
+ }
45
+ });
46
+ log?.debug('Definining surf-dynamic-zone');
47
+ customElements.define('surf-dynamic-zone', class extends SurfsideDynamicZone {
48
+ constructor() {
49
+ super(initApi, GetSurfUserIdCookie, logger);
50
+ }
51
+ });
52
+ };
53
+ const pad = (name) => {
54
+ let newName = name;
55
+ const remaining = 25 - name.length;
56
+ for (let i = 0; i < remaining; i++) {
57
+ newName += ' ';
58
+ }
59
+ return newName;
60
+ };
61
+ export const SurfsideAdsVersionTable = {
62
+ [pad('@surfside/ads-core')]: SurfsideAdsCoreVersionInfo.VersionInfo,
63
+ [pad('@surfside/ads-core-client')]: SurfsideAdsCoreClientVersionInfo.VersionInfo,
64
+ [pad('@surfside/ads-core-web')]: SurfsideAdsCoreWebVersionInfo.VersionInfo,
65
+ [pad('@surfside/ads')]: SurfsideAdsVersionInfo.VersionInfo
66
+ };
67
+ //# sourceMappingURL=index.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.js","sourceRoot":"../@surfside-ads/","sources":["index.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,6BAA6B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAGH,UAAU,EACV,YAAY,EACZ,0BAA0B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACH,qBAAqB,EACrB,gCAAgC,EAEnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,sBAAsB,MAAM,aAAa,CAAC;AACtD,cAAc,QAAQ,CAAC;AAWvB,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CACpC,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW;IACxC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAyB,EAAE,EAAE;IAClE,MAAM,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrD,GAAG,EAAE,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC5D,GAAG,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,CACzB,SAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,UAAkB,EAClB,MAA0B,EAC5B,EAAE;QACA,OAAO,sBAAsB,CAAC,CAAC,WAAW,IAAI,qBAAqB,CAAC,CAChE,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,CACT,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACnC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,KAAM,SAAQ,cAAc;QAC7D;YACI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACJ,CAAC,CAAC;IACH,GAAG,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,KAAM,SAAQ,aAAa;QAC3D;YACI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACJ,CAAC,CAAC;IACH,GAAG,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACvC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,KAAM,SAAQ,gBAAgB;QACjE;YACI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACJ,CAAC,CAAC;IACH,GAAG,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3C,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAM,SAAQ,mBAAmB;QACxE;YACI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACJ,CAAC,CAAC;IACH,GAAG,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3C,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAM,SAAQ,mBAAmB;QACxE;YACI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;IACzB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,OAAO,IAAI,GAAG,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,0BAA0B,CAAC,WAAW;IACnE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,gCAAgC,CAAC,WAAW;IAChF,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,6BAA6B,CAAC,WAAW;IAC1E,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,sBAAsB,CAAC,WAAW;CAC7D,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { InitLogger, Ok, WrapBidRequestDebouncerIfEnabled } from '@surfside/ads-core';
2
+ import { LoadSurfAds } from './Init';
3
+ const edge = '//cdn.surfside.io/sdk/1.0.0/edge.js';
4
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
5
+ globalThis.window.location.search.toLowerCase().includes(str);
6
+ function GetSafeUrl(relativeUrl) {
7
+ /* Already has the Protocol included */
8
+ if (relativeUrl.includes('://')) {
9
+ return relativeUrl;
10
+ }
11
+ /* Check if protocol begins with // or not */
12
+ const slashes = relativeUrl.startsWith('//') ? '' : '//';
13
+ let protocol = globalThis.location.protocol;
14
+ if (!protocol.startsWith('http')) {
15
+ protocol = 'https:';
16
+ }
17
+ return `${protocol}${slashes}${relativeUrl}`;
18
+ }
19
+ function appendEdge() {
20
+ const wind = globalThis.window;
21
+ if (wind.surf === undefined) {
22
+ const url = GetSafeUrl(edge);
23
+ wind.surfContext = wind.surfContext ?? [];
24
+ wind.surfContext.push('surf');
25
+ wind.surf = function surfadsEventHandler(...args) {
26
+ if (wind.surf === undefined) {
27
+ return;
28
+ }
29
+ (wind.surf.q = wind.surf.q ?? []).push(args);
30
+ };
31
+ wind.surf.q = wind.surf.q ?? [];
32
+ const script = globalThis.document.createElement('script');
33
+ script.src = url;
34
+ script.async = true;
35
+ globalThis.document.head.appendChild(script);
36
+ }
37
+ }
38
+ if (globalThis.document.readyState === 'loading') {
39
+ globalThis.window.addEventListener('DOMContentLoaded', () => {
40
+ start();
41
+ });
42
+ }
43
+ else {
44
+ start();
45
+ }
46
+ function start() {
47
+ const isDebug = searchHasString('surf_debug=true');
48
+ const isTelemetryEnabled = isDebug && searchHasString('surf_telemetry=true');
49
+ const logger = isDebug ? InitLogger(true) : undefined;
50
+ const monkeyPatchHistory = (name, newFunc) => {
51
+ const existing = globalThis.window[`surf_monkey_${name}_patched`];
52
+ if (existing !== undefined) {
53
+ return existing;
54
+ }
55
+ const oldFunc = globalThis.history[name];
56
+ globalThis.window[`surf_monkey_${name}`] = oldFunc;
57
+ const patched = (...p) => newFunc(oldFunc, ...p);
58
+ globalThis.window[`surf_monkey_${name}_patched`] = patched;
59
+ return patched;
60
+ };
61
+ try {
62
+ globalThis.history.replaceState = monkeyPatchHistory('replaceState', (oldFunc, ...args) => {
63
+ logger?.info('Intercepting replaceState');
64
+ oldFunc.call(globalThis.window.history, ...args);
65
+ globalThis.window.dispatchEvent(new Event('monkeyHistoryReplace'));
66
+ });
67
+ globalThis.history.pushState = monkeyPatchHistory('pushState', (oldFunc, ...args) => {
68
+ logger?.info('Intercepting pushState');
69
+ oldFunc.call(globalThis.window.history, ...args);
70
+ globalThis.window.dispatchEvent(new Event('monkeyHistoryReplace'));
71
+ });
72
+ }
73
+ catch (e) {
74
+ logger?.error('Unable to monkey patch the history functions', e);
75
+ }
76
+ try {
77
+ logger?.info('Loading digital SDK');
78
+ appendEdge();
79
+ }
80
+ catch (e) {
81
+ logger?.error('Failed to initialize digital SDK! Got', e);
82
+ }
83
+ try {
84
+ logger?.info('Starting up Surfside Ads');
85
+ LoadSurfAds({
86
+ logger,
87
+ telemetry: isTelemetryEnabled,
88
+ overrides: {
89
+ services: {
90
+ requestBids: (config, requestBids) => Ok(WrapBidRequestDebouncerIfEnabled(logger, config.configuration, config.windowInfo, requestBids))
91
+ }
92
+ }
93
+ });
94
+ }
95
+ catch (e) {
96
+ logger?.error('Failed to initialize Surfside Ads! Got ', e);
97
+ }
98
+ }
99
+ ;
100
+ //# sourceMappingURL=index.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.script.js","sourceRoot":"../@surfside-ads/","sources":["index.script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { DeviceToTelemetryDevice, GetValue, InitLogger, ITelemetryCollector, Ok, WrapBidRequestDebouncerIfEnabled } from '@surfside/ads-core';
2
+ import { LoadSurfAds } from './Init';
3
+ import { FallbackSponsoredProducts, MockGetConfiguration, MockRequestBids } from '@surfside/ads-core-mock';
4
+ const edge = '//cdn.surfside.io/sdk/1.0.0/edge.js';
5
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
6
+ globalThis.window.location.search.toLowerCase().includes(str);
7
+ function GetSafeUrl(relativeUrl) {
8
+ /* Already has the Protocol included */
9
+ if (relativeUrl.includes('://')) {
10
+ return relativeUrl;
11
+ }
12
+ /* Check if protocol begins with // or not */
13
+ const slashes = relativeUrl.startsWith('//') ? '' : '//';
14
+ let protocol = globalThis.location.protocol;
15
+ if (!protocol.startsWith('http')) {
16
+ protocol = 'https:';
17
+ }
18
+ return `${protocol}${slashes}${relativeUrl}`;
19
+ }
20
+ function appendEdge() {
21
+ const wind = globalThis.window;
22
+ if (wind.surf === undefined) {
23
+ const url = GetSafeUrl(edge);
24
+ wind.surfContext = wind.surfContext ?? [];
25
+ wind.surfContext.push('surf');
26
+ wind.surf = function surfadsEventHandler(...args) {
27
+ if (wind.surf === undefined) {
28
+ return;
29
+ }
30
+ (wind.surf.q = wind.surf.q ?? []).push(args);
31
+ };
32
+ wind.surf.q = wind.surf.q ?? [];
33
+ const script = globalThis.document.createElement('script');
34
+ script.src = url;
35
+ script.async = true;
36
+ globalThis.document.head.appendChild(script);
37
+ }
38
+ }
39
+ if (globalThis.document.readyState === 'loading') {
40
+ globalThis.window.addEventListener('DOMContentLoaded', () => {
41
+ start();
42
+ });
43
+ }
44
+ else {
45
+ start();
46
+ }
47
+ const MOCK_GEO = {
48
+ country: 'USA',
49
+ region: 'Virginia',
50
+ city: 'Richmond',
51
+ zip: '23218',
52
+ coords: {
53
+ latitude: 37.538837527059044,
54
+ longitude: -77.43359909814527,
55
+ accuracy: 1
56
+ },
57
+ utcoffset: -4,
58
+ ip: '127.0.0.1'
59
+ };
60
+ async function start() {
61
+ const isDebug = searchHasString('surf_debug=true');
62
+ const isTelemetryEnabled = isDebug || searchHasString('surf_telemetry=true');
63
+ const logger = isDebug ? InitLogger(true) : undefined;
64
+ try {
65
+ logger?.info('Loading digital SDK');
66
+ appendEdge();
67
+ }
68
+ catch (e) {
69
+ logger?.error('Failed to initialize digital SDK! Got', e);
70
+ }
71
+ const mockConfiguration = GetValue(await MockGetConfiguration(logger));
72
+ try {
73
+ logger?.info('Starting up Surfside Ads');
74
+ LoadSurfAds({
75
+ logger,
76
+ telemetry: isTelemetryEnabled,
77
+ overrides: {
78
+ dependencies: {
79
+ geo: MOCK_GEO,
80
+ configuration: mockConfiguration
81
+ },
82
+ services: {
83
+ requestBids: (config) => Ok(WrapBidRequestDebouncerIfEnabled(logger, config.configuration, config.windowInfo, (bidRequest) => {
84
+ config.logger?.error('RUNNING MOCK BID REQUEST!!!');
85
+ globalThis.requestCounter ??= 0;
86
+ globalThis.requestCounter++;
87
+ return MockRequestBids(config.logger, config.windowInfo, 0, 0, [], bidRequest);
88
+ })),
89
+ getAllSponsoredBrandProducts: () => Ok(async () => Ok(FallbackSponsoredProducts
90
+ .map((p) => ({
91
+ ...p,
92
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
93
+ details: p.description
94
+ })))),
95
+ getAllSponsoredProducts: () => Ok(async () => Ok(FallbackSponsoredProducts
96
+ .map((p) => ({
97
+ ...p,
98
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
99
+ details: p.description
100
+ })))),
101
+ generateTopProducts: () => Ok(async function* () {
102
+ yield* FallbackSponsoredProducts
103
+ .map((p) => ({
104
+ ...p,
105
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
106
+ details: p.description
107
+ }));
108
+ }),
109
+ generateForYou: () => Ok(async function* () {
110
+ yield* FallbackSponsoredProducts
111
+ .map((p) => ({
112
+ ...p,
113
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
114
+ details: p.description
115
+ }));
116
+ }),
117
+ generatePreviousPurchases: () => Ok(async function* () {
118
+ yield* FallbackSponsoredProducts
119
+ .map((p) => ({
120
+ ...p,
121
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
122
+ details: p.description
123
+ }));
124
+ }),
125
+ getRecommendedProduct: () => Ok(async () => Ok(FallbackSponsoredProducts
126
+ .map((p) => ({
127
+ ...p,
128
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
129
+ details: p.description,
130
+ brand_name: p.brand,
131
+ brandName: p.brand
132
+ }))[Math.floor(Math.random() * FallbackSponsoredProducts.length)])),
133
+ createTelemetryCollector: (config) => {
134
+ return Ok(new class extends ITelemetryCollector {
135
+ constructor() {
136
+ super(config.accountId, config.siteId, config.channelId, config.locationId, DeviceToTelemetryDevice(config.device));
137
+ }
138
+ record(entry) {
139
+ logger?.info(`o(*^▽^*)┛ ${entry.name} | ${entry.durationMs}ms`);
140
+ }
141
+ });
142
+ }
143
+ }
144
+ }
145
+ });
146
+ }
147
+ catch (e) {
148
+ logger?.error('Failed to initialize Surfside Ads! Got ', e);
149
+ }
150
+ }
151
+ ;
152
+ //# sourceMappingURL=index.script.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.script.mock.js","sourceRoot":"../@surfside-ads/","sources":["index.script.mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads/","sources":["service/Init.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ import { Err, Ok } from '@surfside/ads-core';
2
+ export const ReadAttribute = (element, attr) => {
3
+ const value = element.getAttribute(attr);
4
+ if (value === null) {
5
+ return Err(new AttributeNotFoundError(element, attr));
6
+ }
7
+ return Ok(value);
8
+ };
9
+ export const ReadNumberAttribute = (element, attr) => {
10
+ const strValue = ReadAttribute(element, attr);
11
+ if (!strValue.ok) {
12
+ return strValue;
13
+ }
14
+ const value = Number(strValue.value);
15
+ if (Number.isNaN(value)) {
16
+ return Err(new AttributeNotANumberError(element, attr));
17
+ }
18
+ return Ok(value);
19
+ };
20
+ export const ReadIntAttribute = (element, attr) => {
21
+ const numValue = ReadNumberAttribute(element, attr);
22
+ if (!numValue.ok) {
23
+ return numValue;
24
+ }
25
+ if (!Number.isInteger(numValue.value)) {
26
+ return Err(new AttributeNotIntError(element, attr));
27
+ }
28
+ return numValue;
29
+ };
30
+ export const ReadBoolAttribute = (element, attr) => {
31
+ const strValue = ReadAttribute(element, attr);
32
+ if (!strValue.ok) {
33
+ return strValue;
34
+ }
35
+ const value = strValue.value.toLowerCase();
36
+ switch (value) {
37
+ case 'true': {
38
+ return Ok(true);
39
+ }
40
+ case 'false': {
41
+ return Ok(false);
42
+ }
43
+ default: {
44
+ return Err(new AttributeNotBoolError(element, attr));
45
+ }
46
+ }
47
+ };
48
+ export class AttributeNotFoundError extends Error {
49
+ element;
50
+ attribute;
51
+ constructor(element, attribute) {
52
+ super(`Attribute '${attribute}' was not found on element`);
53
+ this.element = element;
54
+ this.attribute = attribute;
55
+ }
56
+ }
57
+ export class AttributeWrongTypeError extends Error {
58
+ element;
59
+ attribute;
60
+ constructor(element, attribute, message) {
61
+ super(message);
62
+ this.element = element;
63
+ this.attribute = attribute;
64
+ }
65
+ }
66
+ export class AttributeNotANumberError extends AttributeWrongTypeError {
67
+ constructor(element, attribute) {
68
+ super(element, attribute, `Attribute '${attribute}' is not a number`);
69
+ }
70
+ }
71
+ export class AttributeNotBoolError extends AttributeWrongTypeError {
72
+ constructor(element, attribute) {
73
+ super(element, attribute, `Attribute '${attribute}' is not a boolean`);
74
+ }
75
+ }
76
+ export class AttributeNotIntError extends AttributeWrongTypeError {
77
+ constructor(element, attribute) {
78
+ super(element, attribute, `Attribute '${attribute}' is not an integer`);
79
+ }
80
+ }
81
+ //# sourceMappingURL=Attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attributes.js","sourceRoot":"../@surfside-ads/","sources":["util/Attributes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.js","sourceRoot":"../@surfside-ads/","sources":["util/Types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare const VersionInfo: {
2
+ buildBranch: string;
3
+ buildHash: string;
4
+ buildVer: string;
5
+ };
@@ -0,0 +1 @@
1
+ export declare const DefaultMinCardWidth = 300;
@@ -0,0 +1,31 @@
1
+ import { type ISurfAdsWebConfigurationOverrides, type ISurfAdsWebDependencies } from '@surfside/ads-core-web';
2
+ import { SurfsideBanner } from './components/Banner';
3
+ import { SurfsideVideo } from './components/Video';
4
+ import { SurfsideCarousel } from './components/Carousel';
5
+ import { SurfsideProductCard } from './components/Card';
6
+ import { SurfsideDynamicZone } from './components/Dynamic';
7
+ import { type ILogger, type Result } from '@surfside/ads-core';
8
+ export type ISurfAdsConfiguration = {
9
+ logger?: ILogger;
10
+ telemetry?: boolean;
11
+ getUserId?: (logger?: ILogger) => Promise<string | undefined>;
12
+ overrides?: {
13
+ services?: Partial<ISurfAdsWebConfigurationOverrides>;
14
+ dependencies?: Partial<ISurfAdsWebDependencies>;
15
+ };
16
+ } & Partial<ISurfAdsWebConfigurationOverrides>;
17
+ export interface ISurfsideAdsApi {
18
+ bannerComponent: typeof SurfsideBanner;
19
+ videoComponent: typeof SurfsideVideo;
20
+ carouselComponent: typeof SurfsideCarousel;
21
+ productCardComponent: typeof SurfsideProductCard;
22
+ dynamicZoneComponent: typeof SurfsideDynamicZone;
23
+ }
24
+ /** Injects dependencies into the advertising web components and passes them an initializer service.
25
+ * Be warned! This function has no side effects, but it returns stateful classes. The web components
26
+ * call their own initialization functions lazily with side effects. Once you begin
27
+ * using Surfside Ads Web components, you have moved out of functional programming land and into OOP
28
+ * land. State for Surfside ads web components is managed within the web component classes.
29
+ */
30
+ export declare const CreateSurfAds: (config?: ISurfAdsConfiguration) => Result<ISurfsideAdsApi>;
31
+ export declare const LoadSurfAds: (config?: ISurfAdsConfiguration) => Result<ISurfsideAdsApi>;