@surfside/ads 2.0.0 → 3.6.0-0652b02f.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 (88) hide show
  1. package/README.md +15 -69
  2. package/lib/cjs/BuildInfo.js +9 -0
  3. package/lib/cjs/BuildInfo.js.map +1 -0
  4. package/lib/cjs/Constants.js +5 -0
  5. package/lib/cjs/Constants.js.map +1 -0
  6. package/lib/cjs/Init.js +130 -0
  7. package/lib/cjs/Init.js.map +1 -0
  8. package/lib/cjs/components/Banner.js +136 -0
  9. package/lib/cjs/components/Banner.js.map +1 -0
  10. package/lib/cjs/components/Card.js +170 -0
  11. package/lib/cjs/components/Card.js.map +1 -0
  12. package/lib/cjs/components/Carousel.js +249 -0
  13. package/lib/cjs/components/Carousel.js.map +1 -0
  14. package/lib/cjs/components/Creative.js +285 -0
  15. package/lib/cjs/components/Creative.js.map +1 -0
  16. package/lib/cjs/components/Dynamic.js +310 -0
  17. package/lib/cjs/components/Dynamic.js.map +1 -0
  18. package/lib/cjs/components/SimpleCreative.js +81 -0
  19. package/lib/cjs/components/SimpleCreative.js.map +1 -0
  20. package/lib/cjs/components/Video.js +144 -0
  21. package/lib/cjs/components/Video.js.map +1 -0
  22. package/lib/cjs/demo/test.js +7 -0
  23. package/lib/cjs/demo/test.js.map +1 -0
  24. package/lib/cjs/index.module.js +107 -0
  25. package/lib/cjs/index.module.js.map +1 -0
  26. package/lib/cjs/index.script.js +102 -0
  27. package/lib/cjs/index.script.js.map +1 -0
  28. package/lib/cjs/index.script.mock.js +154 -0
  29. package/lib/cjs/index.script.mock.js.map +1 -0
  30. package/lib/cjs/service/Init.js +3 -0
  31. package/lib/cjs/service/Init.js.map +1 -0
  32. package/lib/cjs/util/Attributes.js +93 -0
  33. package/lib/cjs/util/Attributes.js.map +1 -0
  34. package/lib/cjs/util/Types.js +3 -0
  35. package/lib/cjs/util/Types.js.map +1 -0
  36. package/lib/esm/BuildInfo.js +6 -0
  37. package/lib/esm/BuildInfo.js.map +1 -0
  38. package/lib/esm/Constants.js +2 -0
  39. package/lib/esm/Constants.js.map +1 -0
  40. package/lib/esm/Init.js +92 -0
  41. package/lib/esm/Init.js.map +1 -0
  42. package/lib/esm/components/Banner.js +132 -0
  43. package/lib/esm/components/Banner.js.map +1 -0
  44. package/lib/esm/components/Card.js +166 -0
  45. package/lib/esm/components/Card.js.map +1 -0
  46. package/lib/esm/components/Carousel.js +245 -0
  47. package/lib/esm/components/Carousel.js.map +1 -0
  48. package/lib/esm/components/Creative.js +280 -0
  49. package/lib/esm/components/Creative.js.map +1 -0
  50. package/lib/esm/components/Dynamic.js +306 -0
  51. package/lib/esm/components/Dynamic.js.map +1 -0
  52. package/lib/esm/components/SimpleCreative.js +75 -0
  53. package/lib/esm/components/SimpleCreative.js.map +1 -0
  54. package/lib/esm/components/Video.js +140 -0
  55. package/lib/esm/components/Video.js.map +1 -0
  56. package/lib/esm/demo/test.js +5 -0
  57. package/lib/esm/demo/test.js.map +1 -0
  58. package/lib/esm/index.module.js +67 -0
  59. package/lib/esm/index.module.js.map +1 -0
  60. package/lib/esm/index.script.js +100 -0
  61. package/lib/esm/index.script.js.map +1 -0
  62. package/lib/esm/index.script.mock.js +152 -0
  63. package/lib/esm/index.script.mock.js.map +1 -0
  64. package/lib/esm/service/Init.js +2 -0
  65. package/lib/esm/service/Init.js.map +1 -0
  66. package/lib/esm/util/Attributes.js +81 -0
  67. package/lib/esm/util/Attributes.js.map +1 -0
  68. package/lib/esm/util/Types.js +2 -0
  69. package/lib/esm/util/Types.js.map +1 -0
  70. package/lib/types/BuildInfo.d.ts +5 -0
  71. package/lib/types/Constants.d.ts +1 -0
  72. package/lib/types/Init.d.ts +31 -0
  73. package/lib/types/components/Banner.d.ts +17 -0
  74. package/lib/types/components/Card.d.ts +18 -0
  75. package/lib/types/components/Carousel.d.ts +32 -0
  76. package/lib/types/components/Creative.d.ts +84 -0
  77. package/lib/types/components/Dynamic.d.ts +24 -0
  78. package/lib/types/components/SimpleCreative.d.ts +20 -0
  79. package/lib/types/components/Video.d.ts +23 -0
  80. package/lib/types/demo/test.d.ts +1 -0
  81. package/lib/types/index.module.d.ts +12 -0
  82. package/lib/types/index.script.d.ts +1 -0
  83. package/lib/types/index.script.mock.d.ts +1 -0
  84. package/lib/types/service/Init.d.ts +1 -0
  85. package/lib/types/util/Attributes.d.ts +24 -0
  86. package/lib/types/util/Types.d.ts +3 -0
  87. package/package.json +42 -73
  88. package/lib/index.js +0 -2
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SurfsideAdsVersionTable = exports.InitSurfAdsWebComponents = void 0;
40
+ const ads_core_web_1 = require("@surfside/ads-core-web");
41
+ const Banner_1 = require("./components/Banner");
42
+ const ads_core_1 = require("@surfside/ads-core");
43
+ const Video_1 = require("./components/Video");
44
+ const Carousel_1 = require("./components/Carousel");
45
+ const Card_1 = require("./components/Card");
46
+ const Dynamic_1 = require("./components/Dynamic");
47
+ const ads_core_client_1 = require("@surfside/ads-core-client");
48
+ const SurfsideAdsVersionInfo = __importStar(require("./BuildInfo"));
49
+ __exportStar(require("./Init"), exports);
50
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
51
+ globalThis.window.location.search.toLowerCase().includes(str);
52
+ const InitSurfAdsWebComponents = (initializer) => {
53
+ const debug = searchHasString('surf_debug=true');
54
+ const logger = debug ? (0, ads_core_1.InitLogger)() : undefined;
55
+ const log = logger?.with('InitSurfAdsWebComponents');
56
+ log?.info('🏄‍♂️ Initializing surfside ads web components');
57
+ log?.table(exports.SurfsideAdsVersionTable);
58
+ const initApi = (0, ads_core_1.MemoizeAsync)((accountId, siteId, channelId, locationId, userId) => {
59
+ return (0, ads_core_web_1.InitSurfAdsWebInternal)((initializer ?? ads_core_client_1.InitSurfAdsCoreClient)(accountId, siteId, channelId, locationId, userId));
60
+ });
61
+ log?.debug('Defining surf-banner');
62
+ customElements.define('surf-banner', class extends Banner_1.SurfsideBanner {
63
+ constructor() {
64
+ super(initApi, ads_core_web_1.GetSurfUserIdCookie, logger);
65
+ }
66
+ });
67
+ log?.debug('Definining surf-video');
68
+ customElements.define('surf-video', class extends Video_1.SurfsideVideo {
69
+ constructor() {
70
+ super(initApi, ads_core_web_1.GetSurfUserIdCookie, logger);
71
+ }
72
+ });
73
+ log?.debug('Definining surf-carousel');
74
+ customElements.define('surf-carousel', class extends Carousel_1.SurfsideCarousel {
75
+ constructor() {
76
+ super(initApi, ads_core_web_1.GetSurfUserIdCookie, logger);
77
+ }
78
+ });
79
+ log?.debug('Definining surf-product-card');
80
+ customElements.define('surf-product-card', class extends Card_1.SurfsideProductCard {
81
+ constructor() {
82
+ super(initApi, ads_core_web_1.GetSurfUserIdCookie, logger);
83
+ }
84
+ });
85
+ log?.debug('Definining surf-dynamic-zone');
86
+ customElements.define('surf-dynamic-zone', class extends Dynamic_1.SurfsideDynamicZone {
87
+ constructor() {
88
+ super(initApi, ads_core_web_1.GetSurfUserIdCookie, logger);
89
+ }
90
+ });
91
+ };
92
+ exports.InitSurfAdsWebComponents = InitSurfAdsWebComponents;
93
+ const pad = (name) => {
94
+ let newName = name;
95
+ const remaining = 25 - name.length;
96
+ for (let i = 0; i < remaining; i++) {
97
+ newName += ' ';
98
+ }
99
+ return newName;
100
+ };
101
+ exports.SurfsideAdsVersionTable = {
102
+ [pad('@surfside/ads-core')]: ads_core_1.SurfsideAdsCoreVersionInfo.VersionInfo,
103
+ [pad('@surfside/ads-core-client')]: ads_core_client_1.SurfsideAdsCoreClientVersionInfo.VersionInfo,
104
+ [pad('@surfside/ads-core-web')]: ads_core_web_1.SurfsideAdsCoreWebVersionInfo.VersionInfo,
105
+ [pad('@surfside/ads')]: SurfsideAdsVersionInfo.VersionInfo
106
+ };
107
+ //# sourceMappingURL=index.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.js","sourceRoot":"../@surfside-ads/","sources":["index.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ads_core_1 = require("@surfside/ads-core");
4
+ const Init_1 = require("./Init");
5
+ const edge = '//cdn.surfside.io/sdk/1.0.0/edge.js';
6
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
7
+ globalThis.window.location.search.toLowerCase().includes(str);
8
+ function GetSafeUrl(relativeUrl) {
9
+ /* Already has the Protocol included */
10
+ if (relativeUrl.includes('://')) {
11
+ return relativeUrl;
12
+ }
13
+ /* Check if protocol begins with // or not */
14
+ const slashes = relativeUrl.startsWith('//') ? '' : '//';
15
+ let protocol = globalThis.location.protocol;
16
+ if (!protocol.startsWith('http')) {
17
+ protocol = 'https:';
18
+ }
19
+ return `${protocol}${slashes}${relativeUrl}`;
20
+ }
21
+ function appendEdge() {
22
+ const wind = globalThis.window;
23
+ if (wind.surf === undefined) {
24
+ const url = GetSafeUrl(edge);
25
+ wind.surfContext = wind.surfContext ?? [];
26
+ wind.surfContext.push('surf');
27
+ wind.surf = function surfadsEventHandler(...args) {
28
+ if (wind.surf === undefined) {
29
+ return;
30
+ }
31
+ (wind.surf.q = wind.surf.q ?? []).push(args);
32
+ };
33
+ wind.surf.q = wind.surf.q ?? [];
34
+ const script = globalThis.document.createElement('script');
35
+ script.src = url;
36
+ script.async = true;
37
+ globalThis.document.head.appendChild(script);
38
+ }
39
+ }
40
+ if (globalThis.document.readyState === 'loading') {
41
+ globalThis.window.addEventListener('DOMContentLoaded', () => {
42
+ start();
43
+ });
44
+ }
45
+ else {
46
+ start();
47
+ }
48
+ function start() {
49
+ const isDebug = searchHasString('surf_debug=true');
50
+ const isTelemetryEnabled = isDebug && searchHasString('surf_telemetry=true');
51
+ const logger = isDebug ? (0, ads_core_1.InitLogger)(true) : undefined;
52
+ const monkeyPatchHistory = (name, newFunc) => {
53
+ const existing = globalThis.window[`surf_monkey_${name}_patched`];
54
+ if (existing !== undefined) {
55
+ return existing;
56
+ }
57
+ const oldFunc = globalThis.history[name];
58
+ globalThis.window[`surf_monkey_${name}`] = oldFunc;
59
+ const patched = (...p) => newFunc(oldFunc, ...p);
60
+ globalThis.window[`surf_monkey_${name}_patched`] = patched;
61
+ return patched;
62
+ };
63
+ try {
64
+ globalThis.history.replaceState = monkeyPatchHistory('replaceState', (oldFunc, ...args) => {
65
+ logger?.info('Intercepting replaceState');
66
+ oldFunc.call(globalThis.window.history, ...args);
67
+ globalThis.window.dispatchEvent(new Event('monkeyHistoryReplace'));
68
+ });
69
+ globalThis.history.pushState = monkeyPatchHistory('pushState', (oldFunc, ...args) => {
70
+ logger?.info('Intercepting pushState');
71
+ oldFunc.call(globalThis.window.history, ...args);
72
+ globalThis.window.dispatchEvent(new Event('monkeyHistoryReplace'));
73
+ });
74
+ }
75
+ catch (e) {
76
+ logger?.error('Unable to monkey patch the history functions', e);
77
+ }
78
+ try {
79
+ logger?.info('Loading digital SDK');
80
+ appendEdge();
81
+ }
82
+ catch (e) {
83
+ logger?.error('Failed to initialize digital SDK! Got', e);
84
+ }
85
+ try {
86
+ logger?.info('Starting up Surfside Ads');
87
+ (0, Init_1.LoadSurfAds)({
88
+ logger,
89
+ telemetry: isTelemetryEnabled,
90
+ overrides: {
91
+ services: {
92
+ requestBids: (config, requestBids) => (0, ads_core_1.Ok)((0, ads_core_1.WrapBidRequestDebouncerIfEnabled)(logger, config.configuration, config.windowInfo, requestBids))
93
+ }
94
+ }
95
+ });
96
+ }
97
+ catch (e) {
98
+ logger?.error('Failed to initialize Surfside Ads! Got ', e);
99
+ }
100
+ }
101
+ ;
102
+ //# 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,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ads_core_1 = require("@surfside/ads-core");
4
+ const Init_1 = require("./Init");
5
+ const ads_core_mock_1 = require("@surfside/ads-core-mock");
6
+ const edge = '//cdn.surfside.io/sdk/1.0.0/edge.js';
7
+ const searchHasString = (str) => typeof globalThis.window !== 'undefined' &&
8
+ globalThis.window.location.search.toLowerCase().includes(str);
9
+ function GetSafeUrl(relativeUrl) {
10
+ /* Already has the Protocol included */
11
+ if (relativeUrl.includes('://')) {
12
+ return relativeUrl;
13
+ }
14
+ /* Check if protocol begins with // or not */
15
+ const slashes = relativeUrl.startsWith('//') ? '' : '//';
16
+ let protocol = globalThis.location.protocol;
17
+ if (!protocol.startsWith('http')) {
18
+ protocol = 'https:';
19
+ }
20
+ return `${protocol}${slashes}${relativeUrl}`;
21
+ }
22
+ function appendEdge() {
23
+ const wind = globalThis.window;
24
+ if (wind.surf === undefined) {
25
+ const url = GetSafeUrl(edge);
26
+ wind.surfContext = wind.surfContext ?? [];
27
+ wind.surfContext.push('surf');
28
+ wind.surf = function surfadsEventHandler(...args) {
29
+ if (wind.surf === undefined) {
30
+ return;
31
+ }
32
+ (wind.surf.q = wind.surf.q ?? []).push(args);
33
+ };
34
+ wind.surf.q = wind.surf.q ?? [];
35
+ const script = globalThis.document.createElement('script');
36
+ script.src = url;
37
+ script.async = true;
38
+ globalThis.document.head.appendChild(script);
39
+ }
40
+ }
41
+ if (globalThis.document.readyState === 'loading') {
42
+ globalThis.window.addEventListener('DOMContentLoaded', () => {
43
+ start();
44
+ });
45
+ }
46
+ else {
47
+ start();
48
+ }
49
+ const MOCK_GEO = {
50
+ country: 'USA',
51
+ region: 'Virginia',
52
+ city: 'Richmond',
53
+ zip: '23218',
54
+ coords: {
55
+ latitude: 37.538837527059044,
56
+ longitude: -77.43359909814527,
57
+ accuracy: 1
58
+ },
59
+ utcoffset: -4,
60
+ ip: '127.0.0.1'
61
+ };
62
+ async function start() {
63
+ const isDebug = searchHasString('surf_debug=true');
64
+ const isTelemetryEnabled = isDebug || searchHasString('surf_telemetry=true');
65
+ const logger = isDebug ? (0, ads_core_1.InitLogger)(true) : undefined;
66
+ try {
67
+ logger?.info('Loading digital SDK');
68
+ appendEdge();
69
+ }
70
+ catch (e) {
71
+ logger?.error('Failed to initialize digital SDK! Got', e);
72
+ }
73
+ const mockConfiguration = (0, ads_core_1.GetValue)(await (0, ads_core_mock_1.MockGetConfiguration)(logger));
74
+ try {
75
+ logger?.info('Starting up Surfside Ads');
76
+ (0, Init_1.LoadSurfAds)({
77
+ logger,
78
+ telemetry: isTelemetryEnabled,
79
+ overrides: {
80
+ dependencies: {
81
+ geo: MOCK_GEO,
82
+ configuration: mockConfiguration
83
+ },
84
+ services: {
85
+ requestBids: (config) => (0, ads_core_1.Ok)((0, ads_core_1.WrapBidRequestDebouncerIfEnabled)(logger, config.configuration, config.windowInfo, (bidRequest) => {
86
+ config.logger?.error('RUNNING MOCK BID REQUEST!!!');
87
+ globalThis.requestCounter ??= 0;
88
+ globalThis.requestCounter++;
89
+ return (0, ads_core_mock_1.MockRequestBids)(config.logger, config.windowInfo, 0, 0, [], bidRequest);
90
+ })),
91
+ getAllSponsoredBrandProducts: () => (0, ads_core_1.Ok)(async () => (0, ads_core_1.Ok)(ads_core_mock_1.FallbackSponsoredProducts
92
+ .map((p) => ({
93
+ ...p,
94
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
95
+ details: p.description
96
+ })))),
97
+ getAllSponsoredProducts: () => (0, ads_core_1.Ok)(async () => (0, ads_core_1.Ok)(ads_core_mock_1.FallbackSponsoredProducts
98
+ .map((p) => ({
99
+ ...p,
100
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
101
+ details: p.description
102
+ })))),
103
+ generateTopProducts: () => (0, ads_core_1.Ok)(async function* () {
104
+ yield* ads_core_mock_1.FallbackSponsoredProducts
105
+ .map((p) => ({
106
+ ...p,
107
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
108
+ details: p.description
109
+ }));
110
+ }),
111
+ generateForYou: () => (0, ads_core_1.Ok)(async function* () {
112
+ yield* ads_core_mock_1.FallbackSponsoredProducts
113
+ .map((p) => ({
114
+ ...p,
115
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
116
+ details: p.description
117
+ }));
118
+ }),
119
+ generatePreviousPurchases: () => (0, ads_core_1.Ok)(async function* () {
120
+ yield* ads_core_mock_1.FallbackSponsoredProducts
121
+ .map((p) => ({
122
+ ...p,
123
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
124
+ details: p.description
125
+ }));
126
+ }),
127
+ getRecommendedProduct: () => (0, ads_core_1.Ok)(async () => (0, ads_core_1.Ok)(ads_core_mock_1.FallbackSponsoredProducts
128
+ .map((p) => ({
129
+ ...p,
130
+ image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`,
131
+ details: p.description,
132
+ brand_name: p.brand,
133
+ brandName: p.brand
134
+ }))[Math.floor(Math.random() * ads_core_mock_1.FallbackSponsoredProducts.length)])),
135
+ createTelemetryCollector: (config) => {
136
+ return (0, ads_core_1.Ok)(new class extends ads_core_1.ITelemetryCollector {
137
+ constructor() {
138
+ super(config.accountId, config.siteId, config.channelId, config.locationId, (0, ads_core_1.DeviceToTelemetryDevice)(config.device));
139
+ }
140
+ record(entry) {
141
+ logger?.info(`o(*^▽^*)┛ ${entry.name} | ${entry.durationMs}ms`);
142
+ }
143
+ });
144
+ }
145
+ }
146
+ }
147
+ });
148
+ }
149
+ catch (e) {
150
+ logger?.error('Failed to initialize Surfside Ads! Got ', e);
151
+ }
152
+ }
153
+ ;
154
+ //# 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":";;AAAA,iDAW4B;AAC5B,iCAAqC;AACrC,2DAA2G;AAE3G,MAAM,IAAI,GAAG,qCAAqC,CAAC;AAEnD,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,SAAS,UAAU,CAAC,WAAmB;IACnC,uCAAuC;IACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACvB,CAAC;IACD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,UAAU;IACf,MAAM,IAAI,GAAG,UAAU,CAAC,MAAa,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,SAAS,mBAAmB,CAAC,GAAG,IAAW;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YACD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;AACL,CAAC;AAED,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;IAC/C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxD,KAAK,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;KAAM,CAAC;IACJ,KAAK,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,QAAQ,GAAgB;IAC1B,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE;QACJ,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,CAAC,iBAAiB;QAC7B,QAAQ,EAAE,CAAC;KACd;IACD,SAAS,EAAE,CAAC,CAAC;IACb,EAAE,EAAE,WAAW;CAClB,CAAC;AAEF,KAAK,UAAU,KAAK;IAChB,MAAM,OAAO,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,kBAAkB,GAAG,OAAO,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,IAAI,CAAC;QACD,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,UAAU,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAA,mBAAQ,EAAC,MAAM,IAAA,oCAAoB,EAAC,MAAM,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC;QACD,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,IAAA,kBAAW,EAAC;YACR,MAAM;YACN,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE;gBACP,YAAY,EAAE;oBACV,GAAG,EAAE,QAAQ;oBACb,aAAa,EAAE,iBAAiB;iBACnC;gBACD,QAAQ,EAAE;oBACN,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,aAAE,EAAC,IAAA,2CAAgC,EACxD,MAAM,EACN,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,UAAU,EACjB,CAAC,UAAuB,EAAE,EAAE;wBACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBACnD,UAAkB,CAAC,cAAc,KAAK,CAAC,CAAC;wBACxC,UAAkB,CAAC,cAAc,EAAE,CAAC;wBACrC,OAAO,IAAA,+BAAe,EAAC,MAAM,CAAC,MAAM,EAChC,MAAM,CAAC,UAAU,EACjB,CAAC,EACD,CAAC,EACD,EAAE,EACF,UAAU,CACb,CAAC;oBACN,CAAC,CACJ,CAAC;oBACF,4BAA4B,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,IAAI,EAAE,CAAC,IAAA,aAAE,EAAC,yCAAyB;yBAC1E,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;wBACvE,GAAG,CAAC;wBACJ,KAAK,EAAE,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;wBACzF,OAAO,EAAE,CAAC,CAAC,WAAW;qBACzB,CAAC,CAAC,CAAC,CAAC;oBACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,IAAI,EAAE,CAAC,IAAA,aAAE,EAAC,yCAAyB;yBACrE,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;wBACvE,GAAG,CAAC;wBACJ,KAAK,EAAE,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;wBACzF,OAAO,EAAE,CAAC,CAAC,WAAW;qBACzB,CAAC,CAAC,CAAC,CAAC;oBACT,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,SAAS,CAAC;wBACzC,KAAM,CAAC,CAAA,yCAAyB;6BAC3B,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;4BACvE,GAAG,CAAC;4BACJ,KAAK,EACD,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;4BACtF,OAAO,EAAE,CAAC,CAAC,WAAW;yBACzB,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC;oBACF,cAAc,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,SAAS,CAAC;wBACpC,KAAM,CAAC,CAAA,yCAAyB;6BAC3B,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;4BACvE,GAAG,CAAC;4BACJ,KAAK,EACD,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;4BACtF,OAAO,EAAE,CAAC,CAAC,WAAW;yBACzB,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC;oBACF,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,SAAS,CAAC;wBAC/C,KAAM,CAAC,CAAA,yCAAyB;6BAC3B,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;4BACvE,GAAG,CAAC;4BACJ,KAAK,EACD,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;4BACtF,OAAO,EAAE,CAAC,CAAC,WAAW;yBACzB,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC;oBACF,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAA,aAAE,EAAC,KAAK,IAAI,EAAE,CAAC,IAAA,aAAE,EAAC,yCAAyB;yBACnE,GAAG,CAAC,CAAC,CAA+D,EAAE,EAAE,CAAC,CAAC;wBACvE,GAAG,CAAC;wBACJ,KAAK,EAAE,0CAA0C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;wBACzF,OAAO,EAAE,CAAC,CAAC,WAAW;wBACtB,UAAU,EAAE,CAAC,CAAC,KAAK;wBACnB,SAAS,EAAE,CAAC,CAAC,KAAK;qBACrB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,yCAAyB,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;oBACxE,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE;wBACjC,OAAO,IAAA,aAAE,EAAC,IAAI,KAAM,SAAQ,8BAAmB;4BAC3C;gCACI,KAAK,CACD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,UAAU,EACjB,IAAA,kCAAuB,EAAC,MAAM,CAAC,MAAM,CAAC,CACzC,CAAC;4BACN,CAAC;4BACD,MAAM,CAAC,KAAsB;gCACzB,MAAM,EAAE,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;4BACpE,CAAC;yBACJ,CAAC,CAAC;oBACP,CAAC;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;AACL,CAAC;AAAA,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttributeNotIntError = exports.AttributeNotBoolError = exports.AttributeNotANumberError = exports.AttributeWrongTypeError = exports.AttributeNotFoundError = exports.ReadBoolAttribute = exports.ReadIntAttribute = exports.ReadNumberAttribute = exports.ReadAttribute = void 0;
4
+ const ads_core_1 = require("@surfside/ads-core");
5
+ const ReadAttribute = (element, attr) => {
6
+ const value = element.getAttribute(attr);
7
+ if (value === null) {
8
+ return (0, ads_core_1.Err)(new AttributeNotFoundError(element, attr));
9
+ }
10
+ return (0, ads_core_1.Ok)(value);
11
+ };
12
+ exports.ReadAttribute = ReadAttribute;
13
+ const ReadNumberAttribute = (element, attr) => {
14
+ const strValue = (0, exports.ReadAttribute)(element, attr);
15
+ if (!strValue.ok) {
16
+ return strValue;
17
+ }
18
+ const value = Number(strValue.value);
19
+ if (Number.isNaN(value)) {
20
+ return (0, ads_core_1.Err)(new AttributeNotANumberError(element, attr));
21
+ }
22
+ return (0, ads_core_1.Ok)(value);
23
+ };
24
+ exports.ReadNumberAttribute = ReadNumberAttribute;
25
+ const ReadIntAttribute = (element, attr) => {
26
+ const numValue = (0, exports.ReadNumberAttribute)(element, attr);
27
+ if (!numValue.ok) {
28
+ return numValue;
29
+ }
30
+ if (!Number.isInteger(numValue.value)) {
31
+ return (0, ads_core_1.Err)(new AttributeNotIntError(element, attr));
32
+ }
33
+ return numValue;
34
+ };
35
+ exports.ReadIntAttribute = ReadIntAttribute;
36
+ const ReadBoolAttribute = (element, attr) => {
37
+ const strValue = (0, exports.ReadAttribute)(element, attr);
38
+ if (!strValue.ok) {
39
+ return strValue;
40
+ }
41
+ const value = strValue.value.toLowerCase();
42
+ switch (value) {
43
+ case 'true': {
44
+ return (0, ads_core_1.Ok)(true);
45
+ }
46
+ case 'false': {
47
+ return (0, ads_core_1.Ok)(false);
48
+ }
49
+ default: {
50
+ return (0, ads_core_1.Err)(new AttributeNotBoolError(element, attr));
51
+ }
52
+ }
53
+ };
54
+ exports.ReadBoolAttribute = ReadBoolAttribute;
55
+ class AttributeNotFoundError extends Error {
56
+ element;
57
+ attribute;
58
+ constructor(element, attribute) {
59
+ super(`Attribute '${attribute}' was not found on element`);
60
+ this.element = element;
61
+ this.attribute = attribute;
62
+ }
63
+ }
64
+ exports.AttributeNotFoundError = AttributeNotFoundError;
65
+ class AttributeWrongTypeError extends Error {
66
+ element;
67
+ attribute;
68
+ constructor(element, attribute, message) {
69
+ super(message);
70
+ this.element = element;
71
+ this.attribute = attribute;
72
+ }
73
+ }
74
+ exports.AttributeWrongTypeError = AttributeWrongTypeError;
75
+ class AttributeNotANumberError extends AttributeWrongTypeError {
76
+ constructor(element, attribute) {
77
+ super(element, attribute, `Attribute '${attribute}' is not a number`);
78
+ }
79
+ }
80
+ exports.AttributeNotANumberError = AttributeNotANumberError;
81
+ class AttributeNotBoolError extends AttributeWrongTypeError {
82
+ constructor(element, attribute) {
83
+ super(element, attribute, `Attribute '${attribute}' is not a boolean`);
84
+ }
85
+ }
86
+ exports.AttributeNotBoolError = AttributeNotBoolError;
87
+ class AttributeNotIntError extends AttributeWrongTypeError {
88
+ constructor(element, attribute) {
89
+ super(element, attribute, `Attribute '${attribute}' is not an integer`);
90
+ }
91
+ }
92
+ exports.AttributeNotIntError = AttributeNotIntError;
93
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,6 @@
1
+ export const VersionInfo = {
2
+ 'buildBranch': 'HEAD',
3
+ 'buildHash': '0652b02',
4
+ 'buildVer': '3.6.0-5adc7a2.0.0'
5
+ };
6
+ //# sourceMappingURL=BuildInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildInfo.js","sourceRoot":"../@surfside-ads/","sources":["BuildInfo.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,mBAAmB;CAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const DefaultMinCardWidth = 300;
2
+ //# sourceMappingURL=Constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.js","sourceRoot":"../@surfside-ads/","sources":["Constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { GetSurfUserIdCookie, LoadSurfAdsWebSimple, SurfsideAdsCoreWebVersionInfo } 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 { Ctx, MemoizeAsync, Ok, SurfsideAdsCoreVersionInfo } from '@surfside/ads-core';
8
+ import { SurfsideAdsCoreClientVersionInfo } from '@surfside/ads-core-client';
9
+ import * as SurfsideAdsVersionInfo from './BuildInfo';
10
+ ;
11
+ const webApiInitializer = (config) => MemoizeAsync(async (accountId, siteId, channelId, locationId, userId,
12
+ /* This is used for memoizing the init function, but isn't used directly. It's loaded from global
13
+ * state later on */
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ url) => {
16
+ return await LoadSurfAdsWebSimple(accountId, siteId, channelId, locationId, userId, config?.logger, config?.telemetry, config?.overrides);
17
+ });
18
+ /** Injects dependencies into the advertising web components and passes them an initializer service.
19
+ * Be warned! This function has no side effects, but it returns stateful classes. The web components
20
+ * call their own initialization functions lazily with side effects. Once you begin
21
+ * using Surfside Ads Web components, you have moved out of functional programming land and into OOP
22
+ * land. State for Surfside ads web components is managed within the web component classes.
23
+ */
24
+ export const CreateSurfAds = (config) => {
25
+ const { logger } = config ?? {};
26
+ const initializer = webApiInitializer(config);
27
+ const log = Ctx(logger)?.with('CreateSurfAds');
28
+ log?.info('🏄‍♂️ Initializing surfside ads web components');
29
+ log?.table(SurfsideAdsVersionTable);
30
+ const userIdService = config?.getUserId ?? GetSurfUserIdCookie;
31
+ const bannerComponent = class extends SurfsideBanner {
32
+ constructor() {
33
+ super(initializer, userIdService, logger);
34
+ }
35
+ };
36
+ const videoComponent = class extends SurfsideVideo {
37
+ constructor() {
38
+ super(initializer, userIdService, logger);
39
+ }
40
+ };
41
+ const carouselComponent = class extends SurfsideCarousel {
42
+ constructor() {
43
+ super(initializer, userIdService, logger);
44
+ }
45
+ };
46
+ const productCardComponent = class extends SurfsideProductCard {
47
+ constructor() {
48
+ super(initializer, userIdService, logger);
49
+ }
50
+ };
51
+ const dynamicZoneComponent = class extends SurfsideDynamicZone {
52
+ constructor() {
53
+ super(initializer, userIdService, logger);
54
+ }
55
+ };
56
+ return Ok({
57
+ bannerComponent,
58
+ videoComponent,
59
+ carouselComponent,
60
+ productCardComponent,
61
+ dynamicZoneComponent
62
+ });
63
+ };
64
+ export const LoadSurfAds = (config) => {
65
+ const surfAdsRes = CreateSurfAds(config);
66
+ if (!surfAdsRes.ok) {
67
+ return surfAdsRes;
68
+ }
69
+ const surfAds = surfAdsRes.value;
70
+ const { bannerComponent, productCardComponent, videoComponent, carouselComponent, dynamicZoneComponent } = surfAds;
71
+ customElements.define('surf-banner', bannerComponent);
72
+ customElements.define('surf-video', videoComponent);
73
+ customElements.define('surf-carousel', carouselComponent);
74
+ customElements.define('surf-product-card', productCardComponent);
75
+ customElements.define('surf-dynamic-zone', dynamicZoneComponent);
76
+ return surfAdsRes;
77
+ };
78
+ const pad = (name) => {
79
+ let newName = name;
80
+ const remaining = 25 - name.length;
81
+ for (let i = 0; i < remaining; i++) {
82
+ newName += ' ';
83
+ }
84
+ return newName;
85
+ };
86
+ const SurfsideAdsVersionTable = {
87
+ [pad('@surfside/ads-core')]: SurfsideAdsCoreVersionInfo.VersionInfo,
88
+ [pad('@surfside/ads-core-client')]: SurfsideAdsCoreClientVersionInfo.VersionInfo,
89
+ [pad('@surfside/ads-core-web')]: SurfsideAdsCoreWebVersionInfo.VersionInfo,
90
+ [pad('@surfside/ads')]: SurfsideAdsVersionInfo.VersionInfo
91
+ };
92
+ //# sourceMappingURL=Init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads/","sources":["Init.ts"],"names":[],"mappings":"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"}