@walkeros/web-destination-linkedin 4.8.1 → 4.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +1 -1
- package/dist/dev.d.mts +10 -5
- package/dist/dev.d.ts +10 -5
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/examples/index.d.mts +9 -4
- package/dist/examples/index.d.ts +9 -4
- package/dist/examples/index.js +17 -34
- package/dist/examples/index.mjs +18 -35
- package/dist/index.browser.js +1 -1
- package/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.es5.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/walkerOS.json +24 -36
- package/package.json +4 -4
package/dist/examples/index.mjs
CHANGED
|
@@ -18,20 +18,6 @@ var init = {
|
|
|
18
18
|
_linkedin_partner_id: void 0,
|
|
19
19
|
_linkedin_data_partner_ids: void 0,
|
|
20
20
|
lintrk: void 0
|
|
21
|
-
},
|
|
22
|
-
document: {
|
|
23
|
-
createElement: () => ({
|
|
24
|
-
src: "",
|
|
25
|
-
async: false,
|
|
26
|
-
dataset: {},
|
|
27
|
-
setAttribute: () => {
|
|
28
|
-
},
|
|
29
|
-
removeAttribute: () => {
|
|
30
|
-
}
|
|
31
|
-
}),
|
|
32
|
-
head: { appendChild: () => {
|
|
33
|
-
} },
|
|
34
|
-
querySelector: () => null
|
|
35
21
|
}
|
|
36
22
|
};
|
|
37
23
|
var push = {
|
|
@@ -39,20 +25,6 @@ var push = {
|
|
|
39
25
|
_linkedin_partner_id: "123456",
|
|
40
26
|
_linkedin_data_partner_ids: ["123456"],
|
|
41
27
|
lintrk: Object.assign(noop, { q: [] })
|
|
42
|
-
},
|
|
43
|
-
document: {
|
|
44
|
-
createElement: () => ({
|
|
45
|
-
src: "",
|
|
46
|
-
async: false,
|
|
47
|
-
dataset: {},
|
|
48
|
-
setAttribute: () => {
|
|
49
|
-
},
|
|
50
|
-
removeAttribute: () => {
|
|
51
|
-
}
|
|
52
|
-
}),
|
|
53
|
-
head: { appendChild: () => {
|
|
54
|
-
} },
|
|
55
|
-
querySelector: () => null
|
|
56
28
|
}
|
|
57
29
|
};
|
|
58
30
|
var simulation = ["call:window.lintrk"];
|
|
@@ -60,6 +32,7 @@ var simulation = ["call:window.lintrk"];
|
|
|
60
32
|
// src/examples/step.ts
|
|
61
33
|
var step_exports = {};
|
|
62
34
|
__export(step_exports, {
|
|
35
|
+
consentRevoke: () => consentRevoke,
|
|
63
36
|
conversionSilenced: () => conversionSilenced,
|
|
64
37
|
demoRequestLead: () => demoRequestLead,
|
|
65
38
|
missingConversionIdIgnored: () => missingConversionIdIgnored,
|
|
@@ -69,7 +42,7 @@ __export(step_exports, {
|
|
|
69
42
|
simpleConversionId: () => simpleConversionId,
|
|
70
43
|
unmappedEventIgnored: () => unmappedEventIgnored
|
|
71
44
|
});
|
|
72
|
-
import { getEvent } from "@walkeros/core";
|
|
45
|
+
import { createEvent, getEvent } from "@walkeros/core";
|
|
73
46
|
var unmappedEventIgnored = {
|
|
74
47
|
public: false,
|
|
75
48
|
in: getEvent("product view", { timestamp: 1700000100 }),
|
|
@@ -78,7 +51,7 @@ var unmappedEventIgnored = {
|
|
|
78
51
|
var simpleConversionId = {
|
|
79
52
|
title: "Simple conversion",
|
|
80
53
|
description: "A form submit fires a LinkedIn lintrk track with only a conversion_id from Campaign Manager.",
|
|
81
|
-
in:
|
|
54
|
+
in: createEvent({ name: "form submit", timestamp: 1700000101 }),
|
|
82
55
|
mapping: {
|
|
83
56
|
settings: {
|
|
84
57
|
conversion: {
|
|
@@ -102,7 +75,7 @@ var orderCompleteFullConversion = {
|
|
|
102
75
|
conversion: {
|
|
103
76
|
map: {
|
|
104
77
|
id: { value: 67890 },
|
|
105
|
-
value: "data.
|
|
78
|
+
value: "data.value",
|
|
106
79
|
currency: { key: "data.currency", value: "EUR" },
|
|
107
80
|
eventId: "id"
|
|
108
81
|
}
|
|
@@ -153,7 +126,8 @@ var pageViewConversion = {
|
|
|
153
126
|
var demoRequestLead = {
|
|
154
127
|
title: "Lead conversion",
|
|
155
128
|
description: "A demo request fires a LinkedIn lintrk track for a lead conversion with id and event_id only.",
|
|
156
|
-
in:
|
|
129
|
+
in: createEvent({
|
|
130
|
+
name: "demo request",
|
|
157
131
|
timestamp: 1700000104,
|
|
158
132
|
id: "1700000104abcdef"
|
|
159
133
|
}),
|
|
@@ -180,7 +154,7 @@ var demoRequestLead = {
|
|
|
180
154
|
};
|
|
181
155
|
var conversionSilenced = {
|
|
182
156
|
public: false,
|
|
183
|
-
in:
|
|
157
|
+
in: createEvent({ name: "form submit", timestamp: 1700000105 }),
|
|
184
158
|
mapping: {
|
|
185
159
|
silent: true,
|
|
186
160
|
settings: {
|
|
@@ -195,7 +169,8 @@ var conversionSilenced = {
|
|
|
195
169
|
};
|
|
196
170
|
var missingConversionIdIgnored = {
|
|
197
171
|
public: false,
|
|
198
|
-
|
|
172
|
+
description: "A conversion mapping whose id resolves to nothing makes no lintrk call, so the push fails with missing-input instead of counting as delivered.",
|
|
173
|
+
in: createEvent({ name: "form submit", timestamp: 1700000106 }),
|
|
199
174
|
mapping: {
|
|
200
175
|
settings: {
|
|
201
176
|
conversion: {
|
|
@@ -205,7 +180,8 @@ var missingConversionIdIgnored = {
|
|
|
205
180
|
}
|
|
206
181
|
}
|
|
207
182
|
},
|
|
208
|
-
out: []
|
|
183
|
+
out: [],
|
|
184
|
+
outcome: { status: "failed", code: "missing-input" }
|
|
209
185
|
};
|
|
210
186
|
var partialFieldsOmitted = {
|
|
211
187
|
public: false,
|
|
@@ -235,6 +211,13 @@ var partialFieldsOmitted = {
|
|
|
235
211
|
]
|
|
236
212
|
]
|
|
237
213
|
};
|
|
214
|
+
var consentRevoke = {
|
|
215
|
+
public: false,
|
|
216
|
+
description: "For a destination with config.consent { marketing: true }, revoking marketing makes no vendor call: the Insight Tag has no consent mode, the collector stops sending.",
|
|
217
|
+
command: "consent",
|
|
218
|
+
in: { marketing: false },
|
|
219
|
+
out: []
|
|
220
|
+
};
|
|
238
221
|
export {
|
|
239
222
|
env_exports as env,
|
|
240
223
|
step_exports as step
|
package/dist/index.browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(o,{DestinationLinkedIn:()=>K,default:()=>T,destinationLinkedIn:()=>B});var i=Object.defineProperty,c=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})};function s(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}c({},{stepId:()=>s});function u(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}c({},{getDestination:()=>u});c({},{Level:()=>l});var f,l=((f=l||{})[f.ERROR=0]="ERROR",f[f.WARN=1]="WARN",f[f.INFO=2]="INFO",f[f.DEBUG=3]="DEBUG",f);function a(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}c({},{getTransformer:()=>a});function p(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}c({},{getSource:()=>p});function d(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function g(e,t){return await e.get(t)}function y(e){return Array.isArray(e)}function v(e){return void 0!==e}function w(e){return"object"==typeof e&&null!==e&&"then"in e&&"function"==typeof e.then}function h(e){return"number"==typeof e&&!Number.isNaN(e)}function m(e){return"object"==typeof e&&null!==e&&!y(e)&&"[object Object]"===Object.prototype.toString.call(e)}function b(e){return"string"==typeof e}function O(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&y(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=O(e,t,n);i.push(r)}return i}if(o=m(o)||y(o)?o[t]:void 0,void 0===o)break}return v(o)?o:n}function _(e){return function(e){return"boolean"==typeof e}(e)||b(e)||h(e)||!v(e)||y(e)&&e.every(_)||m(e)&&Object.values(e).every(_)}function j(e){return _(e)?e:void 0}function R(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}c({},{getStore:()=>d,getStoreValue:()=>g});var P=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function k(e,t={},n){var r;if(!n.collector)throw new Error("getMappingValue: context.collector is required");const o=n.consent||n.collector.consent,i=null!=(r=n.event)?r:{},c={event:i,mapping:t,collector:n.collector,logger:n.collector.logger,consent:o},s=y(t)?t:[t];for(const t of s){const r=await R(E,e=>{if(e instanceof P)throw e;n.collector.status.failed++,c.logger.error("mapping processing failed",{event:i,error:e})})(e,t,{...c,mapping:t});if(v(r))return r}}async function E(e,t,n){return(y(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=b(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:c,consent:s,fn:u,key:f,loop:l,map:a,set:p,validate:d,value:g}=i,w={...n,mapping:r};if(c&&!await R(c,e=>{if(e instanceof P)throw e;return w.logger.error("mapping condition failed",{event:w.event,error:e}),!1})(e,w))return;if(s&&!function(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}(s,w.consent))return g;let h=v(g)?g:e;if(l){const[t,n]=l,r="this"===t?[e]:await k(e,t,w);h=y(r)?(await Promise.all(r.map(e=>v(e)?k(e,n,w):void 0))).filter(v):void 0}else a?h=await Object.entries(a).reduce(async(t,[n,r])=>{const o=await t,i=await k(e,r,w);return v(i)&&(o[n]=i),o},Promise.resolve({})):p?h=await Promise.all(p.map(t=>E(e,t,w))):f?h=O(e,f,g):u&&(h=await R(u,e=>{if(e instanceof P)throw e;w.logger.error("mapping fn failed",{event:w.event,error:e})})(e,w));d&&!await R(d,e=>{if(e instanceof P)throw e;return w.logger.error("mapping validate failed",{event:w.event,error:e}),!1})(h,w)&&(h=void 0);const m=j(h);return v(m)?m:j(g)},Promise.resolve(void 0))}var N="observe";function S(e){const t=(e.startsWith("call:")?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}function A(e){return"function"==typeof e}function D(e){return"object"==typeof e&&null!==e}var x=["name","length","prototype","arguments","caller"];function $(e,t){if(-1!==x.indexOf(t))return!1;let n=e;for(;A(n);){if(Object.prototype.hasOwnProperty.call(n,t))return!0;const e=Object.getPrototypeOf(n);if(!A(e)||!A(Object.getPrototypeOf(e)))return!1;n=e}return!1}function q(e,t){const n=Reflect.getOwnPropertyDescriptor(e,t);return!(n&&!n.configurable)||"value"in n&&!0===n.writable}function I(e,t){let n=e;for(const e of t){if(A(n)){if(!$(n,e))return!0;if(!q(n,e))return!1}else if(w(n)){if(!(e in n))return!0}else if(!D(n)||!(e in n))return!1;n=Reflect.get(n,e)}return A(n)}function W(e){const t={window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...e},n=e&&e[N];if(("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&function(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}(n)){delete t[N];const e=function(e,t,n){const r=[],o=[],i=[];for(const n of t){const t=S(n);if(0===t.length)continue;const r=t.join(".");i.push({rest:t,fn:r}),I(e,t)||o.push(r)}const c=new WeakMap,s=new WeakSet;function u(e,t){for(const o of e)if(n)try{n(o,t)}catch(e){}else r.push({fn:o,args:t,ts:Date.now()})}function f(e,t){return 0===t.length||l(e)?e:w(e)&&!t.some(t=>t.rest[0]in e)?Promise.resolve(e).then(e=>f(e,t)):A(e)?v(e,[],t):D(e)?p(e,t):e}function l(e){return(D(e)||A(e))&&s.has(e)}function a(e,t){const n=[],r=[];for(const o of e)o.rest[0]===t&&(1===o.rest.length?n.includes(o.fn)||n.push(o.fn):r.push({rest:o.rest.slice(1),fn:o.fn}));return{leafs:n,deeper:r}}function p(e,t){var n;const r=t.map(e=>`${e.fn}:${e.rest.join(".")}`).join("|"),o=null!=(n=c.get(e))?n:new Map;c.set(e,o);const i=o.get(r);if(i)return i;const s=d(e,t);return o.set(r,s),s}function d(e,t){return A(e)?g(e,t):t.some(t=>!q(e,t.rest[0]))?function(e,t){const n=Object.create(Object.getPrototypeOf(e)),r=y(e,t,()=>o),o=new Proxy(n,{get:(e,t)=>r.get(t),set:(t,n,r)=>Reflect.set(e,n,r,e),has:(t,n)=>Reflect.has(e,n),ownKeys:()=>Reflect.ownKeys(e),getOwnPropertyDescriptor(t,n){const r=Reflect.getOwnPropertyDescriptor(e,n);return r&&{...r,configurable:!0}},defineProperty:(t,n,r)=>Reflect.defineProperty(e,n,r),deleteProperty:(t,n)=>Reflect.deleteProperty(e,n)});return s.add(o),o}(e,t):g(e,t)}function g(e,t){const n=y(e,t,()=>r),r=new Proxy(e,{get:(e,t)=>"string"!=typeof t||q(e,t)?n.get(t):Reflect.get(e,t,e),set:(e,t,n)=>Reflect.set(e,t,n,e)});return s.add(r),r}function y(e,t,n){const r=new Map;return{get(o){const i=Reflect.get(e,o,e);if("string"!=typeof o)return i;if(!A(i)&&!D(i))return i;if(l(i))return i;const c=r.get(o);if(c&&c.value===i)return c.out;const{leafs:s,deeper:u}=a(t,o);if(!(s.length>0||u.length>0)&&(!A(i)||function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return i;let f=i;return A(i)?f=v(i,s,u,{proxy:n(),target:e}):u.length>0&&(f=p(i,u)),r.set(o,{value:i,out:f}),f}}}function v(e,t,n,r){const o=()=>n.filter(t=>!$(e,t.rest[0])),i=new Map,c=new Proxy(e,{get(e,t){const r=Reflect.get(e,t,e);if("string"!=typeof t||!q(e,t))return r;if(!$(e,t))return r;const{leafs:o,deeper:s}=a(n,t);if(0===o.length&&0===s.length)return r;if(l(r))return r;const u=i.get(t);if(u&&u.value===r)return u.out;let f=r;return A(r)?f=v(r,o,s,{proxy:c,target:e}):D(r)&&s.length>0&&(f=p(r,s)),i.set(t,{value:r,out:f}),f},set:(e,t,n)=>Reflect.set(e,t,n,e),apply(e,n,i){u(t,i);const c=!r||n!==r.proxy&&void 0!==n?n:r.target;return f(Reflect.apply(e,c,i),o())},construct(e,n,r){u(t,n);const i=Reflect.construct(e,n,r===c?e:r),s=f(i,o());return D(s)||A(s)?s:i}});return s.add(c),c}return{env:d(e,i),calls:r,unresolved:o}}(t,n.paths,n.record).env,r=new Set;for(const e of n.paths){const n=S(e)[0];if(void 0===n)continue;const o=t[n];null!==o&&"object"==typeof o&&r.add(n)}const o=Array.from(r,t=>[t,e[t]]);for(const[e,n]of o)t[e]=n}return t}var K={};function M(e){const{document:t}=W(e),n=t,r=n.createElement("script");r.src="https://snap.licdn.com/li.lms-analytics/insight.min.js",r.async=!0,n.head.appendChild(r)}var L,B={type:"linkedin",config:{},init({config:e,env:t}){const n=e.settings;return!!(null==n?void 0:n.apiKey)&&(function(e,t){const{window:n}=W(e),r=n;r._linkedin_partner_id=t,r._linkedin_data_partner_ids=r._linkedin_data_partner_ids||[],r._linkedin_data_partner_ids.includes(t)||r._linkedin_data_partner_ids.push(t)}(t,n.apiKey),function(e){const{window:t}=W(e),n=t;if(n.lintrk)return;const r=function(...e){(r.q=r.q||[]).push(e)};r.q=[],n.lintrk=r}(t),e.loadScript&&M(t),e)},async push(e,{rule:t,env:n,collector:r}){const{window:o}=W(n),i=o.lintrk;if(!i)return;if(!0===(null==t?void 0:t.silent))return;const c=(null==t?void 0:t.settings)||{};if(void 0===c.conversion)return;const s=await async function(e,t={},n){var r,o;if(!v(e))return;const i=m(e)&&e.consent||(null==n?void 0:n.consent)||(null==(r=null==n?void 0:n.collector)?void 0:r.consent),c=null!=(o=null==n?void 0:n.event)?o:m(e)?e:{};return k(e,t,{...n,consent:i,event:c})}(e,c.conversion,{collector:r}),u=function(e){if(!m(e))return;const{id:t,value:n,currency:r,eventId:o}=e,i=h(t)?t:b(t)&&""!==t&&!Number.isNaN(Number(t))?Number(t):void 0;if(void 0===i||0===i)return;const c={conversion_id:i};if(h(n))c.conversion_value=n;else if(b(n)&&""!==n){const e=Number(n);Number.isNaN(e)||(c.conversion_value=e)}return b(r)&&""!==r&&(c.currency=r),b(o)&&""!==o&&(c.event_id=o),c}(s);u&&i("track",u)},on(e,t){if("consent"!==e||!t.data)return;const n=t.data,r=t.config;if(!(null==r?void 0:r.loadScript))return;if(!0!==n.marketing)return;const{document:o}=W(t.env),i=o;(i.querySelector?i.querySelector('script[src*="snap.licdn.com"]'):null)||M(t.env)}},T=B;return L=o,((o,i,c,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let u of n(i))r.call(o,u)||u===c||e(o,u,{get:()=>i[u],enumerable:!(s=t(i,u))||s.enumerable});return o})(e({},"__esModule",{value:!0}),L)})();
|
|
1
|
+
"use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o=(t,n,r)=>((t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r)(t,"symbol"!=typeof n?n+"":n,r),i={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(i,{DestinationLinkedIn:()=>Y,default:()=>re,destinationLinkedIn:()=>ne});var s=Object.defineProperty,c=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})};function a(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}c({},{stepId:()=>a});function u(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}c({},{getDestination:()=>u});c({},{Level:()=>l});var f,l=((f=l||{})[f.ERROR=0]="ERROR",f[f.WARN=1]="WARN",f[f.INFO=2]="INFO",f[f.DEBUG=3]="DEBUG",f);function d(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}c({},{getTransformer:()=>d});function p(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}c({},{getSource:()=>p});function y(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function g(e,t){return await e.get(t)}c({},{getStore:()=>y,getStoreValue:()=>g});var v="\\$flow\\.([a-zA-Z_][a-zA-Z0-9_-]*)(?:\\.([a-zA-Z0-9_.]+))?";new RegExp(`^${v}$`),new RegExp(v,"g");function w(e){return Array.isArray(e)}function m(e){return void 0!==e}function h(e){return"object"==typeof e&&null!==e&&"then"in e&&"function"==typeof e.then}function b(e){return"number"==typeof e&&!Number.isNaN(e)}function O(e){return"object"==typeof e&&null!==e&&!w(e)&&"[object Object]"===Object.prototype.toString.call(e)}function j(e){return"string"==typeof e}function k(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&w(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=k(e,t,n);i.push(r)}return i}if(o=O(o)||w(o)?o[t]:void 0,void 0===o)break}return m(o)?o:n}function P(e){return function(e){return"boolean"==typeof e}(e)||j(e)||b(e)||!m(e)||w(e)&&e.every(P)||O(e)&&Object.values(e).every(P)}function _(e){return P(e)?e:void 0}function R(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}function E(e,t){Object.defineProperty(e,"cause",{value:t,writable:!0,configurable:!0})}var A=class e extends Error{constructor(t,n){super(t),this.name="FatalError",n&&"cause"in n&&E(this,n.cause),Object.setPrototypeOf(this,e.prototype)}},x=["transport","timeout","breaker-open","blocked","queue-full","vendor-not-ready","vendor-timeout"],N=class extends Error{constructor(e,t){super(e),o(this,"code"),o(this,"status"),o(this,"retryable"),o(this,"body"),void 0!==t.cause&&E(this,t.cause),this.name="StepError",this.code=t.code,void 0!==t.status&&(this.status=t.status),this.retryable=function(e){if(void 0!==e.retryable)return e.retryable;const{status:t}=e;if(void 0!==t){if(429===t||t>=500&&t<600)return!0;if(t>=400&&t<500)return!1}return x.includes(e.code)}(t),void 0!==t.body&&(this.body=t.body),Object.setPrototypeOf(this,new.target.prototype)}};function S(e){return e.length>300?e.slice(0,300):e}var $=["type","mappingKey"],K=["count","suppressed"];function L(e,t,n,r,o,i="error"){if(null==e?void 0:e.causeLog)return void e.causeLog.report(n,r,o,i);const s=function(e,t){const n={step:e.step,code:e.code};void 0!==e.status&&(n.status=e.status);for(const e of $)"string"==typeof t[e]&&(n[e]=t[e]);for(const e of K)"number"==typeof t[e]&&(n[e]=t[e]);"boolean"==typeof t.retryable&&(n.retryable=t.retryable);const r="string"==typeof(o=t.event)?o:O(o)&&"string"==typeof o.name?o.name:void 0;var o;void 0!==r&&(n.event=r);const i=function(e){if(void 0!==e)return"string"==typeof e?S(e):e instanceof Error||O(e)&&"string"==typeof e.message?S(e.message):S(String(e))}(t.error);return void 0!==i&&(n.error=i),n}(n,o);"warn"===i?t.warn(r,s):t.error(r,s)}var I=["condition","consent","fn","key","loop","map","set","validate","value"];function D(e,t,n,r){const o=e.event.name,i=(null==t?void 0:t.mappingKey)?`mapping.${t.mappingKey}`:"mapping";L(e.collector,e.logger,{step:i,code:"mapping"},n,{..."string"==typeof o?{event:o}:{},...(null==t?void 0:t.mappingKey)?{mappingKey:t.mappingKey}:{},...void 0!==r?{error:r}:{}})}async function T(e,t={},n,r){var o;if(!n.collector)throw new Error("getMappingValue: context.collector is required");const i=n.consent||n.collector.consent,s={event:null!=(o=n.event)?o:{},mapping:t,collector:n.collector,logger:n.collector.logger,consent:i},c=w(t)?t:[t];for(const t of c){const n=await R(V,e=>{if(e instanceof A)throw e;D(s,r,"mapping value failed",e)})(e,t,{...s,mapping:t},r);if(m(n))return n}}async function V(e,t,n,r){return(w(t)?t:[t]).reduce(async(t,o)=>{const i=await t;if(i)return i;const s=j(o)?{key:o}:o;if(!Object.keys(s).length)return;if(!I.some(e=>e in s))return void D({...n,mapping:o},r,`mapping value has no operator (${Object.keys(s).join(", ")}): wrap the fields in map, or use key, value, fn, loop or set`);const{condition:c,consent:a,fn:u,key:f,loop:l,map:d,set:p,validate:y,value:g}=s,v={...n,mapping:o};if(c&&!await R(c,e=>{if(e instanceof A)throw e;return D(v,r,"mapping condition failed",e),!1})(e,v))return;if(a&&!function(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}(a,v.consent))return g;let h=m(g)?g:e;if(l){const[t,n]=l,o="this"===t?[e]:await T(e,t,v,r);h=w(o)?(await Promise.all(o.map(e=>m(e)?T(e,n,v,r):void 0))).filter(m):void 0}else d?h=await Object.entries(d).reduce(async(t,[n,o])=>{const i=await t,s=await T(e,o,v,r);return m(s)&&(i[n]=s),i},Promise.resolve({})):p?h=await Promise.all(p.map(t=>V(e,t,v,r))):f?h=k(e,f,g):u&&(h=await R(u,e=>{if(e instanceof A)throw e;D(v,r,"mapping fn failed",e)})(e,v));y&&!await R(y,e=>{if(e instanceof A)throw e;return D(v,r,"mapping validate failed",e),!1})(h,v)&&(h=void 0);const b=_(h);return m(b)?b:_(g)},Promise.resolve(void 0))}async function W(e,t={},n){return async function(e,t,n,r){var o,i;if(!m(e))return;const s=O(e)&&e.consent||(null==n?void 0:n.consent)||(null==(o=null==n?void 0:n.collector)?void 0:o.consent),c=null!=(i=null==n?void 0:n.event)?i:O(e)?e:{};return T(e,t,{...n,consent:s,event:c},r)}(e,t,n)}var q="observe";function M(e){const t=(e.startsWith("call:")?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}function B(e){return"function"==typeof e}function z(e){return"object"==typeof e&&null!==e}var F=["name","length","prototype","arguments","caller"];function Z(e,t){if(-1!==F.indexOf(t))return!1;let n=e;for(;B(n);){if(Object.prototype.hasOwnProperty.call(n,t))return!0;const e=Object.getPrototypeOf(n);if(!B(e)||!B(Object.getPrototypeOf(e)))return!1;n=e}return!1}function G(e,t){const n=Reflect.getOwnPropertyDescriptor(e,t);return!(n&&!n.configurable)||"value"in n&&!0===n.writable}function U(e,t){let n=e;for(const e of t){if(B(n)){if(!Z(n,e))return!0;if(!G(n,e))return!1}else if(h(n)){if(!(e in n))return!0}else if(!z(n)||!(e in n))return!1;n=Reflect.get(n,e)}return B(n)}function C(e){const t={window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...e},n=e&&e[q];if(("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&function(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}(n)){delete t[q];const e=function(e,t,n){const r=[],o=[],i=[];for(const n of t){const t=M(n);if(0===t.length)continue;const r=t.join(".");i.push({rest:t,fn:r}),U(e,t)||o.push(r)}const s=new WeakMap,c=new WeakSet;function a(e,t){for(const o of e)if(n)try{n(o,t)}catch(e){}else r.push({fn:o,args:t,ts:Date.now()})}function u(e,t){return 0===t.length||f(e)?e:h(e)&&!t.some(t=>t.rest[0]in e)?Promise.resolve(e).then(e=>u(e,t)):B(e)?v(e,[],t):z(e)?d(e,t):e}function f(e){return(z(e)||B(e))&&c.has(e)}function l(e,t){const n=[],r=[];for(const o of e)o.rest[0]===t&&(1===o.rest.length?n.includes(o.fn)||n.push(o.fn):r.push({rest:o.rest.slice(1),fn:o.fn}));return{leafs:n,deeper:r}}function d(e,t){var n;const r=t.map(e=>`${e.fn}:${e.rest.join(".")}`).join("|"),o=null!=(n=s.get(e))?n:new Map;s.set(e,o);const i=o.get(r);if(i)return i;const c=p(e,t);return o.set(r,c),c}function p(e,t){return B(e)?y(e,t):t.some(t=>!G(e,t.rest[0]))?function(e,t){const n=Object.create(Object.getPrototypeOf(e)),r=g(e,t,()=>o),o=new Proxy(n,{get:(e,t)=>r.get(t),set:(t,n,r)=>Reflect.set(e,n,r,e),has:(t,n)=>Reflect.has(e,n),ownKeys:()=>Reflect.ownKeys(e),getOwnPropertyDescriptor(t,n){const r=Reflect.getOwnPropertyDescriptor(e,n);return r&&{...r,configurable:!0}},defineProperty:(t,n,r)=>Reflect.defineProperty(e,n,r),deleteProperty:(t,n)=>Reflect.deleteProperty(e,n)});return c.add(o),o}(e,t):y(e,t)}function y(e,t){const n=g(e,t,()=>r),r=new Proxy(e,{get:(e,t)=>"string"!=typeof t||G(e,t)?n.get(t):Reflect.get(e,t,e),set:(e,t,n)=>Reflect.set(e,t,n,e)});return c.add(r),r}function g(e,t,n){const r=new Map;return{get(o){const i=Reflect.get(e,o,e);if("string"!=typeof o)return i;if(!B(i)&&!z(i))return i;if(f(i))return i;const s=r.get(o);if(s&&s.value===i)return s.out;const{leafs:c,deeper:a}=l(t,o);if(!(c.length>0||a.length>0)&&(!B(i)||function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return i;let u=i;return B(i)?u=v(i,c,a,{proxy:n(),target:e}):a.length>0&&(u=d(i,a)),r.set(o,{value:i,out:u}),u}}}function v(e,t,n,r){const o=()=>n.filter(t=>!Z(e,t.rest[0])),i=new Map,s=new Proxy(e,{get(e,t){const r=Reflect.get(e,t,e);if("string"!=typeof t||!G(e,t))return r;if(!Z(e,t))return r;const{leafs:o,deeper:c}=l(n,t);if(0===o.length&&0===c.length)return r;if(f(r))return r;const a=i.get(t);if(a&&a.value===r)return a.out;let u=r;return B(r)?u=v(r,o,c,{proxy:s,target:e}):z(r)&&c.length>0&&(u=d(r,c)),i.set(t,{value:r,out:u}),u},set:(e,t,n)=>Reflect.set(e,t,n,e),apply(e,n,i){a(t,i);const s=!r||n!==r.proxy&&void 0!==n?n:r.target;return u(Reflect.apply(e,s,i),o())},construct(e,n,r){a(t,n);const i=Reflect.construct(e,n,r===s?e:r),c=u(i,o());return z(c)||B(c)?c:i}});return c.add(s),s}return{env:p(e,i),calls:r,unresolved:o}}(t,n.paths,n.record).env,r=new Set;for(const e of n.paths){const n=M(e)[0];if(void 0===n)continue;const o=t[n];null!==o&&"object"==typeof o&&r.add(n)}const o=Array.from(r,t=>[t,e[t]]);for(const[e,n]of o)t[e]=n}return t}var H="data-walkeros-vendor",J=new WeakMap;var Q=()=>new N("Vendor script failed to load",{code:"vendor-not-loaded"});function X(e,t,n={}){var r,o;const i=()=>null!=t();let s;if(e){const t=null!=(r=n.document)?r:"undefined"!=typeof document?document:void 0;if(!t)throw new N(`Vendor script ${e} has no document to go into`,{code:"vendor-not-ready"});s=function(e,t,n,r,o){const i=function(e,t){const n=e.querySelectorAll(`script[${H}]`);return Array.from(n).find(e=>e.getAttribute("src")===t)}(e,t),s=i&&J.get(i);if(s)return s;const c={state:"loading",expired:!1,timeout:n,waiting:[]};if(i&&o())return c.state="loaded",J.set(i,c),c;const a=null!=i?i:e.createElement("script"),u=e=>{const t=c.waiting;c.waiting=[],t.forEach(t=>t(e))},f=setTimeout(()=>{c.expired=!0,u("expired")},n);if(J.set(a,c),a.addEventListener("load",()=>{clearTimeout(f),c.state="loaded",u("loaded")}),a.addEventListener("error",()=>{clearTimeout(f),c.state="failed",u("failed")}),!i){for(const[e,t]of Object.entries(r))a.setAttribute(e,t);a.src=t,a.async=!0,a.setAttribute(H,""),e.head.appendChild(a)}return c}(t,e,function(e){return"number"==typeof e&&e>0?e:1e4}(n.timeout),null!=(o=n.attributes)?o:{},i)}const c=()=>{const e=t();return null==e?Promise.reject(new N("Vendor not ready: its global is missing",{code:"vendor-not-ready"})):Promise.resolve(e)};return{ready:()=>s?"failed"===s.state?Promise.reject(Q()):"loaded"===s.state||s.expired?c():new Promise((e,t)=>{s.waiting.push(n=>{var r;"failed"===n?t(Q()):"expired"===n?t((r=s.timeout,new N(`Vendor script did not load within ${r}ms`,{code:"vendor-timeout"}))):c().then(e,t)})}):c(),check(){if("failed"===(null==s?void 0:s.state))throw Q()}}}var Y={};function ee(e,t){return X(e.loadScript?"https://snap.licdn.com/li.lms-analytics/insight.min.js":void 0,()=>C(t).window.lintrk,{timeout:e.timeout,document:C(t).document})}var te,ne={type:"linkedin",config:{},init({config:e,env:t}){const n=e.settings;if(!(null==n?void 0:n.apiKey))throw new N("LinkedIn needs settings.apiKey",{code:"config"});return function(e,t){const{window:n}=C(e);n._linkedin_partner_id=t;const r=n._linkedin_data_partner_ids||(n._linkedin_data_partner_ids=[]);r.includes(t)||r.push(t)}(t,n.apiKey),function(e){const{window:t}=C(e);if(t.lintrk)return;const n=Object.assign((...e)=>{(n.q||(n.q=[])).push(e)},{q:[]});t.lintrk=n}(t),ee(e,t),e},async push(e,{config:t,rule:n,env:r,collector:o}){ee(t,r).check();const{lintrk:i}=C(r).window;if(!i)throw new N("LinkedIn Insight Tag not ready: lintrk is missing",{code:"vendor-not-ready"});const s=(null==n?void 0:n.settings)||{};if(!0!==(null==n?void 0:n.silent)&&void 0!==s.conversion){const t=function(e){if(!O(e))return;const{id:t,value:n,currency:r,eventId:o}=e,i=b(t)?t:j(t)&&""!==t&&!Number.isNaN(Number(t))?Number(t):void 0;if(void 0===i||0===i)return;const s={conversion_id:i};if(b(n))s.conversion_value=n;else if(j(n)&&""!==n){const e=Number(n);Number.isNaN(e)||(s.conversion_value=e)}return j(r)&&""!==r&&(s.currency=r),j(o)&&""!==o&&(s.event_id=o),s}(await W(e,s.conversion,{collector:o}));if(!t)throw new N("LinkedIn conversion mapping resolved to no conversion id",{code:"missing-input"});await async function(e,t,n){try{return await e()}catch(e){if(e instanceof N)throw e;throw new N(n,{code:t,cause:e})}}(()=>i("track",t),"transport","LinkedIn lintrk call failed")}},on(e,{config:t,data:n,env:r}){"consent"===e&&O(n)&&t.loadScript&&!0===n.marketing&&ee(t,r)}},re=ne;return te=i,((o,i,s,c)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let a of n(i))r.call(o,a)||a===s||e(o,a,{get:()=>i[a],enumerable:!(c=t(i,a))||c.enumerable});return o})(e({},"__esModule",{value:!0}),te)})();
|
package/dist/index.d.mts
CHANGED
|
@@ -64,8 +64,6 @@ interface Mapping {
|
|
|
64
64
|
* `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and
|
|
65
65
|
* installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with
|
|
66
66
|
* a spy to skip the script injection path.
|
|
67
|
-
*
|
|
68
|
-
* `document` is also mocked so `addScript()` can run headlessly.
|
|
69
67
|
*/
|
|
70
68
|
interface Env extends DestinationWeb.Env {
|
|
71
69
|
window: {
|
package/dist/index.d.ts
CHANGED
|
@@ -64,8 +64,6 @@ interface Mapping {
|
|
|
64
64
|
* `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and
|
|
65
65
|
* installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with
|
|
66
66
|
* a spy to skip the script injection path.
|
|
67
|
-
*
|
|
68
|
-
* `document` is also mocked so `addScript()` can run headlessly.
|
|
69
67
|
*/
|
|
70
68
|
interface Env extends DestinationWeb.Env {
|
|
71
69
|
window: {
|
package/dist/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){asyncGeneratorStep(i,n,o,a,u,"next",e)}function u(e){asyncGeneratorStep(i,n,o,a,u,"throw",e)}a(void 0)})}}function _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&_set_prototype_of(o,r.prototype),o},_construct.apply(null,arguments)}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}function _ts_generator(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){return function(u){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var Destination=function(){var e=function(e,t){if("collector"===e)return"collector";if(!t)throw new Error("stepId(".concat(e,") requires an id"));return"".concat(e,".").concat(t)},t=function(e,t){var r=e.destinations[t];if(!r)throw new Error("Destination not found: ".concat(t));return r},r=function(e,t){var r=e.transformers[t];if(!r)throw new Error("Transformer not found: ".concat(t));return r},n=function(e,t){var r=e.sources[t];if(!r)throw new Error("Source not found: ".concat(t));return r},o=function(e,t){var r=e.stores[t];if(!r)throw new Error("Store not found: ".concat(t));return r},i=function(e,t){return _async_to_generator(function(){return _ts_generator(this,function(r){switch(r.label){case 0:return[4,e.get(t)];case 1:return[2,r.sent()]}})})()},a=function(e){return Array.isArray(e)},u=function(e){return void 0!==e},c=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&"then"in e&&"function"==typeof e.then},l=function(e){return"number"==typeof e&&!Number.isNaN(e)},f=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!a(e)&&"[object Object]"===Object.prototype.toString.call(e)},s=function(e){return"string"==typeof e},_=function(e){return T(e)?e:void 0},p=function(e,t,r){return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return _async_to_generator(function(){var n;return _ts_generator(this,function(i){switch(i.label){case 0:return i.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,i.sent()];case 2:return n=i.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return i.sent(),[7];case 6:return[2]}})})()}},y=function(e,t){return _async_to_generator(function(e){var t,r,n,o,i,c,l,f,s,_,y,v,d,b,h,g=arguments;return _ts_generator(this,function(w){switch(w.label){case 0:if(t=g.length>1&&void 0!==g[1]?g[1]:{},!(r=g.length>2?g[2]:void 0).collector)throw new Error("getMappingValue: context.collector is required");o=r.consent||r.collector.consent,i=null!==(n=r.event)&&void 0!==n?n:{},c={event:i,mapping:t,collector:r.collector,logger:r.collector.logger,consent:o},l=a(t)?t:[t],f=!0,s=!1,_=void 0,w.label=1;case 1:w.trys.push([1,6,7,8]),y=l[Symbol.iterator](),w.label=2;case 2:return(f=(v=y.next()).done)?[3,5]:(d=v.value,[4,p(K,function(e){if(_instanceof(e,M))throw e;r.collector.status.failed++,c.logger.error("mapping processing failed",{event:i,error:e})})(e,d,_object_spread_props(_object_spread({},c),{mapping:d}))]);case 3:if(b=w.sent(),u(b))return[2,b];w.label=4;case 4:return f=!0,[3,2];case 5:return[3,8];case 6:return h=w.sent(),s=!0,_=h,[3,8];case 7:try{f||null==y.return||y.return()}finally{if(s)throw _}return[7];case 8:return[2]}})}).apply(this,arguments)},v=function(e,t){return _async_to_generator(function(e){var t,r,n,o,i,a,c=arguments;return _ts_generator(this,function(l){return t=c.length>1&&void 0!==c[1]?c[1]:{},r=c.length>2?c[2]:void 0,u(e)?(i=f(e)&&e.consent||(null==r?void 0:r.consent)||(null==r||null===(o=r.collector)||void 0===o?void 0:o.consent),a=null!==(n=null==r?void 0:r.event)&&void 0!==n?n:f(e)?e:{},[2,y(e,t,_object_spread_props(_object_spread({},r),{consent:i,event:a}))]):[2]})}).apply(this,arguments)},d=function(e){var t=(e.startsWith(B)?e.slice(5):e).split(".");return t.some(function(e){return""===e})?[]:t},b=function(e){return"function"==typeof e},h=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e},g=function(e,t){if(-1!==G.indexOf(t))return!1;for(var r=e;b(r);){if(Object.prototype.hasOwnProperty.call(r,t))return!0;var n=Object.getPrototypeOf(r);if(!b(n)||!b(Object.getPrototypeOf(n)))return!1;r=n}return!1},w=function(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);return!(r&&!r.configurable)||"value"in r&&!0===r.writable},m=function(e,t){var r=e,n=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var l=a.value;if(b(r)){if(!g(r,l))return!0;if(!w(r,l))return!1}else if(c(r)){if(!(l in r))return!0}else if(!h(r)||!(l in r))return!1;r=Reflect.get(r,l)}}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return b(r)},O=function(e){var t=_object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e),r=e&&e[W];if(("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;var t=e.paths,r=e.record;return Array.isArray(t)&&t.every(function(e){return"string"==typeof e})&&"function"==typeof r}(r)){delete t[W];var n=function(e,t,r){var n=[],o=[],i=[],a=!0,u=!1,l=void 0;try{for(var f,s=t[Symbol.iterator]();!(a=(f=s.next()).done);a=!0){var _=f.value,p=d(_);if(0!==p.length){var y=p.join(".");i.push({rest:p,fn:y}),m(e,p)||o.push(y)}}}catch(e){u=!0,l=e}finally{try{a||null==s.return||s.return()}finally{if(u)throw l}}var v=new WeakMap,O=new WeakSet;function j(e,t){var o=!0,i=!1,a=void 0;try{for(var u,c=e[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;if(r)try{r(l,t)}catch(e){}else n.push({fn:l,args:t,ts:Date.now()})}}catch(e){i=!0,a=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw a}}}function S(e,t){return 0===t.length||P(e)?e:c(e)&&!t.some(function(t){return t.rest[0]in e})?Promise.resolve(e).then(function(e){return S(e,t)}):b(e)?N(e,[],t):h(e)?R(e,t):e}function P(e){return(h(e)||b(e))&&O.has(e)}function k(e,t){var r=[],n=[],o=!0,i=!1,a=void 0;try{for(var u,c=e[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;l.rest[0]===t&&(1===l.rest.length?r.includes(l.fn)||r.push(l.fn):n.push({rest:l.rest.slice(1),fn:l.fn}))}}catch(e){i=!0,a=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw a}}return{leafs:r,deeper:n}}function R(e,t){var r,n=t.map(function(e){return"".concat(e.fn,":").concat(e.rest.join("."))}).join("|"),o=null!==(r=v.get(e))&&void 0!==r?r:new Map;v.set(e,o);var i=o.get(n);if(i)return i;var a=E(e,t);return o.set(n,a),a}function E(e,t){return b(e)?x(e,t):t.some(function(t){return!w(e,t.rest[0])})?function(e,t){var r=Object.create(Object.getPrototypeOf(e)),n=A(e,t,function(){return o}),o=new Proxy(r,{get:function(e,t){return n.get(t)},set:function(t,r,n){return Reflect.set(e,r,n,e)},has:function(t,r){return Reflect.has(e,r)},ownKeys:function(){return Reflect.ownKeys(e)},getOwnPropertyDescriptor:function(t,r){var n=Reflect.getOwnPropertyDescriptor(e,r);return n&&_object_spread_props(_object_spread({},n),{configurable:!0})},defineProperty:function(t,r,n){return Reflect.defineProperty(e,r,n)},deleteProperty:function(t,r){return Reflect.deleteProperty(e,r)}});return O.add(o),o}(e,t):x(e,t)}function x(e,t){var r=A(e,t,function(){return n}),n=new Proxy(e,{get:function(e,t){return"string"!=typeof t||w(e,t)?r.get(t):Reflect.get(e,t,e)},set:function(e,t,r){return Reflect.set(e,t,r,e)}});return O.add(n),n}function A(e,t,r){var n=new Map;return{get:function(o){var i=Reflect.get(e,o,e);if("string"!=typeof o)return i;if(!b(i)&&!h(i))return i;if(P(i))return i;var a=n.get(o);if(a&&a.value===i)return a.out;var u=k(t,o),c=u.leafs,l=u.deeper;if(!(c.length>0||l.length>0)&&(!b(i)||function(e){if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return i;var f=i;return b(i)?f=N(i,c,l,{proxy:r(),target:e}):l.length>0&&(f=R(i,l)),n.set(o,{value:i,out:f}),f}}}function N(e,t,r,n){var o=function(){return r.filter(function(t){return!g(e,t.rest[0])})},i=new Map,a=new Proxy(e,{get:function(e,t){var n=Reflect.get(e,t,e);if("string"!=typeof t||!w(e,t))return n;if(!g(e,t))return n;var o=k(r,t),u=o.leafs,c=o.deeper;if(0===u.length&&0===c.length)return n;if(P(n))return n;var l=i.get(t);if(l&&l.value===n)return l.out;var f=n;return b(n)?f=N(n,u,c,{proxy:a,target:e}):h(n)&&c.length>0&&(f=R(n,c)),i.set(t,{value:n,out:f}),f},set:function(e,t,r){return Reflect.set(e,t,r,e)},apply:function(e,r,i){j(t,i);var a=!n||r!==n.proxy&&void 0!==r?r:n.target;return S(Reflect.apply(e,a,i),o())},construct:function(e,r,n){j(t,r);var i=Reflect.construct(e,r,n===a?e:n),u=S(i,o());return h(u)||b(u)?u:i}});return O.add(a),a}return{env:E(e,i),calls:n,unresolved:o}}(t,r.paths,r.record).env,o=new Set,i=!0,a=!1,u=void 0;try{for(var l,f=r.paths[Symbol.iterator]();!(i=(l=f.next()).done);i=!0){var s=l.value,_=d(s)[0];if(void 0!==_){var p=t[_];null!==p&&"object"==(void 0===p?"undefined":_type_of(p))&&o.add(_)}}}catch(e){a=!0,u=e}finally{try{i||null==f.return||f.return()}finally{if(a)throw u}}var y=Array.from(o,function(e){return[e,n[e]]}),v=!0,O=!1,j=void 0;try{for(var S,P=y[Symbol.iterator]();!(v=(S=P.next()).done);v=!0){var k=_sliced_to_array(S.value,2),R=k[0],E=k[1];t[R]=E}}catch(e){O=!0,j=e}finally{try{v||null==P.return||P.return()}finally{if(O)throw j}}}return t},j=function(e){var t=O(e).document,r=t.createElement("script");r.src=L,r.async=!0,t.head.appendChild(r)},S=Object.defineProperty,P=Object.getOwnPropertyDescriptor,k=Object.getOwnPropertyNames,R=Object.prototype.hasOwnProperty,E={};!function(e,t){for(var r in t)S(e,r,{get:t[r],enumerable:!0})}(E,{DestinationLinkedIn:function(){return F},default:function(){return C},destinationLinkedIn:function(){return V}});var x=Object.defineProperty,A=function(e,t){for(var r in t)x(e,r,{get:t[r],enumerable:!0})};A({},{stepId:function(){return e}});A({},{getDestination:function(){return t}});A({},{Level:function(){return D}});var N,D=((N=D||{})[N.ERROR=0]="ERROR",N[N.WARN=1]="WARN",N[N.INFO=2]="INFO",N[N.DEBUG=3]="DEBUG",N);A({},{getTransformer:function(){return r}});A({},{getSource:function(){return n}});function I(e){for(var t=arguments.length>2?arguments[2]:void 0,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),n=e,o=0;o<r.length;o++){var i=r[o];if("*"===i&&a(n)){var c=r.slice(o+1).join("."),l=[],s=!0,_=!1,p=void 0;try{for(var y,v=n[Symbol.iterator]();!(s=(y=v.next()).done);s=!0){var d=I(y.value,c,t);l.push(d)}}catch(e){_=!0,p=e}finally{try{s||null==v.return||v.return()}finally{if(_)throw p}}return l}if(void 0===(n=f(n)||a(n)?n[i]:void 0))break}return u(n)?n:t}function T(e){return function(e){return"boolean"==typeof e}(e)||s(e)||l(e)||!u(e)||a(e)&&e.every(T)||f(e)&&Object.values(e).every(T)}A({},{getStore:function(){return o},getStoreValue:function(){return i}});var M=function(){function e(t,r){var n;return _class_call_check(this,e),(n=_call_super(this,e,[t,r])).name="FatalError",Object.setPrototypeOf(n,e.prototype),n}return _inherits(e,_wrap_native_super(Error)),e}();function K(e,t,r){return _async_to_generator(function(){return _ts_generator(this,function(n){return[2,(a(t)?t:[t]).reduce(function(t,n){return _async_to_generator(function(){var o,i,c,l,f,v,d,b,h,g,w,m,O,j,S,P,k,R,E,x,A,N,D,T,q;return _ts_generator(this,function(W){switch(W.label){case 0:return[4,t];case 1:return(o=W.sent())?[2,o]:(i=s(n)?{key:n}:n,Object.keys(i).length?(c=i.condition,l=i.consent,f=i.fn,v=i.key,d=i.loop,b=i.map,h=i.set,g=i.validate,w=i.value,m=_object_spread_props(_object_spread({},r),{mapping:n}),(O=c)?[4,p(c,function(e){if(_instanceof(e,M))throw e;return m.logger.error("mapping condition failed",{event:m.event,error:e}),!1})(e,m)]:[3,3]):[2]);case 2:O=!W.sent(),W.label=3;case 3:return O?[2]:l&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(l,m.consent)?[2,w]:(j=u(w)?w:e,d?(S=_sliced_to_array(d,2),P=S[0],k=S[1],"this"!==P?[3,4]:(E=[e],[3,6])):[3,10]);case 4:return[4,y(e,P,m)];case 5:E=W.sent(),W.label=6;case 6:return a(R=E)?[4,Promise.all(R.map(function(e){return u(e)?y(e,k,m):void 0}))]:[3,8];case 7:return x=W.sent().filter(u),[3,9];case 8:x=void 0,W.label=9;case 9:return j=x,[3,21];case 10:return b?[4,Object.entries(b).reduce(function(t,r){var n=_sliced_to_array(r,2),o=n[0],i=n[1];return _async_to_generator(function(){var r,n;return _ts_generator(this,function(a){switch(a.label){case 0:return[4,t];case 1:return r=a.sent(),[4,y(e,i,m)];case 2:return n=a.sent(),[2,(u(n)&&(r[o]=n),r)]}})})()},Promise.resolve({}))]:[3,12];case 11:return j=W.sent(),[3,20];case 12:return h?[4,Promise.all(h.map(function(t){return K(e,t,m)}))]:[3,14];case 13:return A=j=W.sent(),[3,19];case 14:return v?(N=j=I(e,v,w),[3,18]):[3,15];case 15:return(D=f)?[4,p(f,function(e){if(_instanceof(e,M))throw e;m.logger.error("mapping fn failed",{event:m.event,error:e})})(e,m)]:[3,17];case 16:D=j=W.sent(),W.label=17;case 17:N=D,W.label=18;case 18:A=N,W.label=19;case 19:W.label=20;case 20:W.label=21;case 21:return(T=g)?[4,p(g,function(e){if(_instanceof(e,M))throw e;return m.logger.error("mapping validate failed",{event:m.event,error:e}),!1})(j,m)]:[3,23];case 22:T=!W.sent(),W.label=23;case 23:return T&&(j=void 0),q=_(j),[2,u(q)?q:_(w)]}})})()},Promise.resolve(void 0))]})})()}var q,W="observe",B="call:",G=["name","length","prototype","arguments","caller"],F={},L="https://snap.licdn.com/li.lms-analytics/insight.min.js",V={type:"linkedin",config:{},init:function(e){var t=e.config,r=e.env,n=t.settings;return!!(null==n?void 0:n.apiKey)&&(function(e,t){var r=O(e).window;r._linkedin_partner_id=t,r._linkedin_data_partner_ids=r._linkedin_data_partner_ids||[],r._linkedin_data_partner_ids.includes(t)||r._linkedin_data_partner_ids.push(t)}(r,n.apiKey),function(e){var t=O(e).window;if(!t.lintrk){var r=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];(r.q=r.q||[]).push(t)};r.q=[],t.lintrk=r}}(r),t.loadScript&&j(r),t)},push:function(e,t){return _async_to_generator(function(e,t){var r,n,o,i,a,u,c,_,p;return _ts_generator(this,function(y){switch(y.label){case 0:return r=t.rule,n=t.env,o=t.collector,i=O(n),a=i.window,(u=a.lintrk)?!0===(null==r?void 0:r.silent)||void 0===(c=(null==r?void 0:r.settings)||{}).conversion?[2]:[4,v(e,c.conversion,{collector:o})]:[2];case 1:return _=y.sent(),p=function(e){if(f(e)){var t=e.id,r=e.value,n=e.currency,o=e.eventId,i=l(t)?t:s(t)&&""!==t&&!Number.isNaN(Number(t))?Number(t):void 0;if(void 0!==i&&0!==i){var a={conversion_id:i};if(l(r))a.conversion_value=r;else if(s(r)&&""!==r){var u=Number(r);Number.isNaN(u)||(a.conversion_value=u)}return s(n)&&""!==n&&(a.currency=n),s(o)&&""!==o&&(a.event_id=o),a}}}(_),p?(u("track",p),[2]):[2]}})}).apply(this,arguments)},on:function(e,t){if("consent"===e&&t.data){var r=t.data,n=t.config;if((null==n?void 0:n.loadScript)&&!0===r.marketing){var o=O(t.env).document;(o.querySelector?o.querySelector('script[src*="snap.licdn.com"]'):null)||j(t.env)}}}},C=V;return q=E,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,i=!1,a=void 0;try{for(var u,c=function(){var o=u.value;R.call(e,o)||o===r||S(e,o,{get:function(){return t[o]},enumerable:!(n=P(t,o))||n.enumerable})},l=k(t)[Symbol.iterator]();!(o=(u=l.next()).done);o=!0)c()}catch(e){i=!0,a=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw a}}}return e}(S({},"__esModule",{value:!0}),q)}();
|
|
1
|
+
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){asyncGeneratorStep(i,n,o,a,u,"next",e)}function u(e){asyncGeneratorStep(i,n,o,a,u,"throw",e)}a(void 0)})}}function _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&_set_prototype_of(o,r.prototype),o},_construct.apply(null,arguments)}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}function _ts_generator(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){return function(u){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var Destination=function(){var e=function(e,t){if("collector"===e)return"collector";if(!t)throw new Error("stepId(".concat(e,") requires an id"));return"".concat(e,".").concat(t)},t=function(e,t){var r=e.destinations[t];if(!r)throw new Error("Destination not found: ".concat(t));return r},r=function(e,t){var r=e.transformers[t];if(!r)throw new Error("Transformer not found: ".concat(t));return r},n=function(e,t){var r=e.sources[t];if(!r)throw new Error("Source not found: ".concat(t));return r},o=function(e,t){var r=e.stores[t];if(!r)throw new Error("Store not found: ".concat(t));return r},i=function(e,t){return _async_to_generator(function(){return _ts_generator(this,function(r){switch(r.label){case 0:return[4,e.get(t)];case 1:return[2,r.sent()]}})})()},a=function(e){return Array.isArray(e)},u=function(e){return void 0!==e},c=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&"then"in e&&"function"==typeof e.then},l=function(e){return"number"==typeof e&&!Number.isNaN(e)},s=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!a(e)&&"[object Object]"===Object.prototype.toString.call(e)},f=function(e){return"string"==typeof e},p=function(e){return z(e)?e:void 0},_=function(e,t,r){return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return _async_to_generator(function(){var n;return _ts_generator(this,function(i){switch(i.label){case 0:return i.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,i.sent()];case 2:return n=i.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return i.sent(),[7];case 6:return[2]}})})()}},d=function(e,t){Object.defineProperty(e,"cause",{value:t,writable:!0,configurable:!0})},y=function(e,t,r){return _async_to_generator(function(){var n;return _ts_generator(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,e()];case 1:return[2,o.sent()];case 2:if(_instanceof(n=o.sent(),U))throw n;throw new U(r,{code:t,cause:n});case 3:return[2]}})})()},v=function(e){return e.length>300?e.slice(0,300):e},b=function(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"error";if(null==e?void 0:e.causeLog)e.causeLog.report(r,n,o,i);else{var a=function(e,t){var r={step:e.step,code:e.code};void 0!==e.status&&(r.status=e.status);var n=!0,o=!1,i=void 0;try{for(var a,u=Z[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var c=a.value;"string"==typeof t[c]&&(r[c]=t[c])}}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}var l=!0,f=!1,p=void 0;try{for(var _,d=$[Symbol.iterator]();!(l=(_=d.next()).done);l=!0){var y=_.value;"number"==typeof t[y]&&(r[y]=t[y])}}catch(e){f=!0,p=e}finally{try{l||null==d.return||d.return()}finally{if(f)throw p}}"boolean"==typeof t.retryable&&(r.retryable=t.retryable);var b,h="string"==typeof(b=t.event)?b:s(b)&&"string"==typeof b.name?b.name:void 0;void 0!==h&&(r.event=h);var g=function(e){if(void 0!==e)return"string"==typeof e?v(e):_instanceof(e,Error)||s(e)&&"string"==typeof e.message?v(e.message):v(String(e))}(t.error);return void 0!==g&&(r.error=g),r}(r,o);"warn"===i?t.warn(n,a):t.error(n,a)}},h=function(e,t,r,n){var o=e.event.name,i=(null==t?void 0:t.mappingKey)?"mapping.".concat(t.mappingKey):"mapping";b(e.collector,e.logger,{step:i,code:"mapping"},r,_object_spread({},"string"==typeof o?{event:o}:{},(null==t?void 0:t.mappingKey)?{mappingKey:t.mappingKey}:{},void 0!==n?{error:n}:{}))},g=function(e,t,r){return _async_to_generator(function(e){var t,r,n,o,i,c,l,s,f,p,d,y,v,b,g,w=arguments;return _ts_generator(this,function(m){switch(m.label){case 0:if(t=w.length>1&&void 0!==w[1]?w[1]:{},n=w.length>3?w[3]:void 0,!(r=w.length>2?w[2]:void 0).collector)throw new Error("getMappingValue: context.collector is required");i=r.consent||r.collector.consent,c={event:null!==(o=r.event)&&void 0!==o?o:{},mapping:t,collector:r.collector,logger:r.collector.logger,consent:i},l=a(t)?t:[t],s=!0,f=!1,p=void 0,m.label=1;case 1:m.trys.push([1,6,7,8]),d=l[Symbol.iterator](),m.label=2;case 2:return(s=(y=d.next()).done)?[3,5]:(v=y.value,[4,_(J,function(e){if(_instanceof(e,F))throw e;h(c,n,"mapping value failed",e)})(e,v,_object_spread_props(_object_spread({},c),{mapping:v}),n)]);case 3:if(b=m.sent(),u(b))return[2,b];m.label=4;case 4:return s=!0,[3,2];case 5:return[3,8];case 6:return g=m.sent(),f=!0,p=g,[3,8];case 7:try{s||null==d.return||d.return()}finally{if(f)throw p}return[7];case 8:return[2]}})}).apply(this,arguments)},w=function(e,t){return _async_to_generator(function(e){var t=arguments;return _ts_generator(this,function(r){return[2,m(e,t.length>1&&void 0!==t[1]?t[1]:{},t.length>2?t[2]:void 0)]})}).apply(this,arguments)},m=function(e,t,r,n){return _async_to_generator(function(){var o,i,a,c;return _ts_generator(this,function(l){return u(e)?(a=s(e)&&e.consent||(null==r?void 0:r.consent)||(null==r||null===(i=r.collector)||void 0===i?void 0:i.consent),c=null!==(o=null==r?void 0:r.event)&&void 0!==o?o:s(e)?e:{},[2,g(e,t,_object_spread_props(_object_spread({},r),{consent:a,event:c}),n)]):[2]})})()},O=function(e){var t=(e.startsWith(Y)?e.slice(5):e).split(".");return t.some(function(e){return""===e})?[]:t},j=function(e){return"function"==typeof e},S=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e},P=function(e,t){if(-1!==ee.indexOf(t))return!1;for(var r=e;j(r);){if(Object.prototype.hasOwnProperty.call(r,t))return!0;var n=Object.getPrototypeOf(r);if(!j(n)||!j(Object.getPrototypeOf(n)))return!1;r=n}return!1},k=function(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);return!(r&&!r.configurable)||"value"in r&&!0===r.writable},E=function(e,t){var r=e,n=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var l=a.value;if(j(r)){if(!P(r,l))return!0;if(!k(r,l))return!1}else if(c(r)){if(!(l in r))return!0}else if(!S(r)||!(l in r))return!1;r=Reflect.get(r,l)}}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return j(r)},x=function(e){var t=_object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e),r=e&&e[X];if(("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;var t=e.paths,r=e.record;return Array.isArray(t)&&t.every(function(e){return"string"==typeof e})&&"function"==typeof r}(r)){delete t[X];var n=function(e,t,r){var n=[],o=[],i=[],a=!0,u=!1,l=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value,_=O(p);if(0!==_.length){var d=_.join(".");i.push({rest:_,fn:d}),E(e,_)||o.push(d)}}}catch(e){u=!0,l=e}finally{try{a||null==f.return||f.return()}finally{if(u)throw l}}var y=new WeakMap,v=new WeakSet;function b(e,t){var o=!0,i=!1,a=void 0;try{for(var u,c=e[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;if(r)try{r(l,t)}catch(e){}else n.push({fn:l,args:t,ts:Date.now()})}}catch(e){i=!0,a=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw a}}}function h(e,t){return 0===t.length||g(e)?e:c(e)&&!t.some(function(t){return t.rest[0]in e})?Promise.resolve(e).then(function(e){return h(e,t)}):j(e)?I(e,[],t):S(e)?m(e,t):e}function g(e){return(S(e)||j(e))&&v.has(e)}function w(e,t){var r=[],n=[],o=!0,i=!1,a=void 0;try{for(var u,c=e[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;l.rest[0]===t&&(1===l.rest.length?r.includes(l.fn)||r.push(l.fn):n.push({rest:l.rest.slice(1),fn:l.fn}))}}catch(e){i=!0,a=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw a}}return{leafs:r,deeper:n}}function m(e,t){var r,n=t.map(function(e){return"".concat(e.fn,":").concat(e.rest.join("."))}).join("|"),o=null!==(r=y.get(e))&&void 0!==r?r:new Map;y.set(e,o);var i=o.get(n);if(i)return i;var a=x(e,t);return o.set(n,a),a}function x(e,t){return j(e)?R(e,t):t.some(function(t){return!k(e,t.rest[0])})?function(e,t){var r=Object.create(Object.getPrototypeOf(e)),n=A(e,t,function(){return o}),o=new Proxy(r,{get:function(e,t){return n.get(t)},set:function(t,r,n){return Reflect.set(e,r,n,e)},has:function(t,r){return Reflect.has(e,r)},ownKeys:function(){return Reflect.ownKeys(e)},getOwnPropertyDescriptor:function(t,r){var n=Reflect.getOwnPropertyDescriptor(e,r);return n&&_object_spread_props(_object_spread({},n),{configurable:!0})},defineProperty:function(t,r,n){return Reflect.defineProperty(e,r,n)},deleteProperty:function(t,r){return Reflect.deleteProperty(e,r)}});return v.add(o),o}(e,t):R(e,t)}function R(e,t){var r=A(e,t,function(){return n}),n=new Proxy(e,{get:function(e,t){return"string"!=typeof t||k(e,t)?r.get(t):Reflect.get(e,t,e)},set:function(e,t,r){return Reflect.set(e,t,r,e)}});return v.add(n),n}function A(e,t,r){var n=new Map;return{get:function(o){var i=Reflect.get(e,o,e);if("string"!=typeof o)return i;if(!j(i)&&!S(i))return i;if(g(i))return i;var a=n.get(o);if(a&&a.value===i)return a.out;var u=w(t,o),c=u.leafs,l=u.deeper;if(!(c.length>0||l.length>0)&&(!j(i)||function(e){if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return i;var s=i;return j(i)?s=I(i,c,l,{proxy:r(),target:e}):l.length>0&&(s=m(i,l)),n.set(o,{value:i,out:s}),s}}}function I(e,t,r,n){var o=function(){return r.filter(function(t){return!P(e,t.rest[0])})},i=new Map,a=new Proxy(e,{get:function(e,t){var n=Reflect.get(e,t,e);if("string"!=typeof t||!k(e,t))return n;if(!P(e,t))return n;var o=w(r,t),u=o.leafs,c=o.deeper;if(0===u.length&&0===c.length)return n;if(g(n))return n;var l=i.get(t);if(l&&l.value===n)return l.out;var s=n;return j(n)?s=I(n,u,c,{proxy:a,target:e}):S(n)&&c.length>0&&(s=m(n,c)),i.set(t,{value:n,out:s}),s},set:function(e,t,r){return Reflect.set(e,t,r,e)},apply:function(e,r,i){b(t,i);var a=!n||r!==n.proxy&&void 0!==r?r:n.target;return h(Reflect.apply(e,a,i),o())},construct:function(e,r,n){b(t,r);var i=Reflect.construct(e,r,n===a?e:n),u=h(i,o());return S(u)||j(u)?u:i}});return v.add(a),a}return{env:x(e,i),calls:n,unresolved:o}}(t,r.paths,r.record).env,o=new Set,i=!0,a=!1,u=void 0;try{for(var l,s=r.paths[Symbol.iterator]();!(i=(l=s.next()).done);i=!0){var f=l.value,p=O(f)[0];if(void 0!==p){var _=t[p];null!==_&&"object"==(void 0===_?"undefined":_type_of(_))&&o.add(p)}}}catch(e){a=!0,u=e}finally{try{i||null==s.return||s.return()}finally{if(a)throw u}}var d=Array.from(o,function(e){return[e,n[e]]}),y=!0,v=!1,b=void 0;try{for(var h,g=d[Symbol.iterator]();!(y=(h=g.next()).done);y=!0){var w=_sliced_to_array(h.value,2),m=w[0],x=w[1];t[m]=x}}catch(e){v=!0,b=e}finally{try{y||null==g.return||g.return()}finally{if(v)throw b}}}return t},R=function(e,t){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var a=null!=(r=i.document)?r:"undefined"!=typeof document?document:void 0;if(!a)throw new U("Vendor script ".concat(e," has no document to go into"),{code:"vendor-not-ready"});o=function(e,t,r,n,o){var i=function(e,t){var r=e.querySelectorAll("script[".concat(te,"]"));return Array.from(r).find(function(e){return e.getAttribute("src")===t})}(e,t),a=i&&re.get(i);if(a)return a;var u={state:"loading",expired:!1,timeout:r,waiting:[]};if(i&&o())return u.state="loaded",re.set(i,u),u;var c=null!=i?i:e.createElement("script"),l=function(e){var t=u.waiting;u.waiting=[],t.forEach(function(t){return t(e)})},s=setTimeout(function(){u.expired=!0,l("expired")},r);if(re.set(c,u),c.addEventListener("load",function(){clearTimeout(s),u.state="loaded",l("loaded")}),c.addEventListener("error",function(){clearTimeout(s),u.state="failed",l("failed")}),!i){var f=!0,p=!1,_=void 0;try{for(var d,y=Object.entries(n)[Symbol.iterator]();!(f=(d=y.next()).done);f=!0){var v=_sliced_to_array(d.value,2),b=v[0],h=v[1];c.setAttribute(b,h)}}catch(e){p=!0,_=e}finally{try{f||null==y.return||y.return()}finally{if(p)throw _}}c.src=t,c.async=!0,c.setAttribute(te,""),e.head.appendChild(c)}return u}(a,e,function(e){return"number"==typeof e&&e>0?e:1e4}(i.timeout),null!=(n=i.attributes)?n:{},function(){return null!=t()})}var u=function(){var e=t();return null==e?Promise.reject(new U("Vendor not ready: its global is missing",{code:"vendor-not-ready"})):Promise.resolve(e)};return{ready:function(){return o?"failed"===o.state?Promise.reject(ne()):"loaded"===o.state||o.expired?u():new Promise(function(e,t){o.waiting.push(function(r){var n;"failed"===r?t(ne()):"expired"===r?t((n=o.timeout,new U("Vendor script did not load within ".concat(n,"ms"),{code:"vendor-timeout"}))):u().then(e,t)})}):u()},check:function(){if("failed"===(null==o?void 0:o.state))throw ne()}}},A=function(e,t){return R(e.loadScript?ie:void 0,function(){return x(t).window.lintrk},{timeout:e.timeout,document:x(t).document})},I=Object.defineProperty,N=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyNames,K=Object.prototype.hasOwnProperty,T=function(e,t,r){return function(e,t,r){return t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":_type_of(t))?t+"":t,r)},L={};!function(e,t){for(var r in t)I(e,r,{get:t[r],enumerable:!0})}(L,{DestinationLinkedIn:function(){return oe},default:function(){return ue},destinationLinkedIn:function(){return ae}});var M=Object.defineProperty,V=function(e,t){for(var r in t)M(e,r,{get:t[r],enumerable:!0})};V({},{stepId:function(){return e}});V({},{getDestination:function(){return t}});V({},{Level:function(){return q}});var W,q=((W=q||{})[W.ERROR=0]="ERROR",W[W.WARN=1]="WARN",W[W.INFO=2]="INFO",W[W.DEBUG=3]="DEBUG",W);V({},{getTransformer:function(){return r}});V({},{getSource:function(){return n}});V({},{getStore:function(){return o},getStoreValue:function(){return i}});var B="\\$flow\\.(".concat("[a-zA-Z_][a-zA-Z0-9_-]*",")(?:\\.([a-zA-Z0-9_.]+))?");new RegExp("^".concat(B,"$")),new RegExp(B,"g");function G(e){for(var t=arguments.length>2?arguments[2]:void 0,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),n=e,o=0;o<r.length;o++){var i=r[o];if("*"===i&&a(n)){var c=r.slice(o+1).join("."),l=[],f=!0,p=!1,_=void 0;try{for(var d,y=n[Symbol.iterator]();!(f=(d=y.next()).done);f=!0){var v=G(d.value,c,t);l.push(v)}}catch(e){p=!0,_=e}finally{try{f||null==y.return||y.return()}finally{if(p)throw _}}return l}if(void 0===(n=s(n)||a(n)?n[i]:void 0))break}return u(n)?n:t}function z(e){return function(e){return"boolean"==typeof e}(e)||f(e)||l(e)||!u(e)||a(e)&&e.every(z)||s(e)&&Object.values(e).every(z)}var F=function(){function e(t,r){var n;return _class_call_check(this,e),(n=_call_super(this,e,[t])).name="FatalError",r&&"cause"in r&&d(n,r.cause),Object.setPrototypeOf(n,e.prototype),n}return _inherits(e,_wrap_native_super(Error)),e}(),C=["transport","timeout","breaker-open","blocked","queue-full","vendor-not-ready","vendor-timeout"],U=function(e){function t(e,r){var n;return _class_call_check(this,t),n=_call_super(this,t,[e]),T(n,"code"),T(n,"status"),T(n,"retryable"),T(n,"body"),void 0!==r.cause&&d(n,r.cause),n.name="StepError",n.code=r.code,void 0!==r.status&&(n.status=r.status),n.retryable=function(e){if(void 0!==e.retryable)return e.retryable;var t=e.status;if(void 0!==t){if(429===t||t>=500&&t<600)return!0;if(t>=400&&t<500)return!1}return C.includes(e.code)}(r),void 0!==r.body&&(n.body=r.body),Object.setPrototypeOf(n,(_instanceof(this,t)?this.constructor:void 0).prototype),n}return _inherits(t,e),t}(_wrap_native_super(Error)),Z=["type","mappingKey"],$=["count","suppressed"],H=["condition","consent","fn","key","loop","map","set","validate","value"];function J(e,t,r,n){return _async_to_generator(function(){return _ts_generator(this,function(o){return[2,(a(t)?t:[t]).reduce(function(t,o){return _async_to_generator(function(){var i,c,l,s,d,y,v,b,w,m,O,j,S,P,k,E,x,R,A,I,N,D,K,T,L;return _ts_generator(this,function(M){switch(M.label){case 0:return[4,t];case 1:return(i=M.sent())?[2,i]:(c=f(o)?{key:o}:o,Object.keys(c).length?H.some(function(e){return e in c})?(l=c.condition,s=c.consent,d=c.fn,y=c.key,v=c.loop,b=c.map,w=c.set,m=c.validate,O=c.value,j=_object_spread_props(_object_spread({},r),{mapping:o}),(S=l)?[4,_(l,function(e){if(_instanceof(e,F))throw e;return h(j,n,"mapping condition failed",e),!1})(e,j)]:[3,3]):[2,void h(_object_spread_props(_object_spread({},r),{mapping:o}),n,"mapping value has no operator (".concat(Object.keys(c).join(", "),"): wrap the fields in map, or use key, value, fn, loop or set"))]:[2]);case 2:S=!M.sent(),M.label=3;case 3:return S?[2]:s&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(s,j.consent)?[2,O]:(P=u(O)?O:e,v?(k=_sliced_to_array(v,2),E=k[0],x=k[1],"this"!==E?[3,4]:(A=[e],[3,6])):[3,10]);case 4:return[4,g(e,E,j,n)];case 5:A=M.sent(),M.label=6;case 6:return a(R=A)?[4,Promise.all(R.map(function(e){return u(e)?g(e,x,j,n):void 0}))]:[3,8];case 7:return I=M.sent().filter(u),[3,9];case 8:I=void 0,M.label=9;case 9:return P=I,[3,21];case 10:return b?[4,Object.entries(b).reduce(function(t,r){var o=_sliced_to_array(r,2),i=o[0],a=o[1];return _async_to_generator(function(){var r,o;return _ts_generator(this,function(c){switch(c.label){case 0:return[4,t];case 1:return r=c.sent(),[4,g(e,a,j,n)];case 2:return o=c.sent(),[2,(u(o)&&(r[i]=o),r)]}})})()},Promise.resolve({}))]:[3,12];case 11:return P=M.sent(),[3,20];case 12:return w?[4,Promise.all(w.map(function(t){return J(e,t,j,n)}))]:[3,14];case 13:return N=P=M.sent(),[3,19];case 14:return y?(D=P=G(e,y,O),[3,18]):[3,15];case 15:return(K=d)?[4,_(d,function(e){if(_instanceof(e,F))throw e;h(j,n,"mapping fn failed",e)})(e,j)]:[3,17];case 16:K=P=M.sent(),M.label=17;case 17:D=K,M.label=18;case 18:N=D,M.label=19;case 19:M.label=20;case 20:M.label=21;case 21:return(T=m)?[4,_(m,function(e){if(_instanceof(e,F))throw e;return h(j,n,"mapping validate failed",e),!1})(P,j)]:[3,23];case 22:T=!M.sent(),M.label=23;case 23:return T&&(P=void 0),L=p(P),[2,u(L)?L:p(O)]}})})()},Promise.resolve(void 0))]})})()}var Q,X="observe",Y="call:",ee=["name","length","prototype","arguments","caller"],te="data-walkeros-vendor",re=new WeakMap,ne=function(){return new U("Vendor script failed to load",{code:"vendor-not-loaded"})},oe={},ie="https://snap.licdn.com/li.lms-analytics/insight.min.js",ae={type:"linkedin",config:{},init:function(e){var t=e.config,r=e.env,n=t.settings;if(!(null==n?void 0:n.apiKey))throw new U("LinkedIn needs settings.apiKey",{code:"config"});return function(e,t){var r=x(e).window;r._linkedin_partner_id=t;var n=r._linkedin_data_partner_ids||(r._linkedin_data_partner_ids=[]);n.includes(t)||n.push(t)}(r,n.apiKey),function(e){var t=x(e).window;if(!t.lintrk){var r=Object.assign(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];(r.q||(r.q=[])).push(t)},{q:[]});t.lintrk=r}}(r),A(t,r),t},push:function(e,t){return _async_to_generator(function(e,t){var r,n,o,i,a,u,c,p;return _ts_generator(this,function(_){switch(_.label){case 0:if(r=t.config,n=t.rule,o=t.env,i=t.collector,A(r,o).check(),!(a=x(o).window.lintrk))throw new U("LinkedIn Insight Tag not ready: lintrk is missing",{code:"vendor-not-ready"});return u=(null==n?void 0:n.settings)||{},!0===(null==n?void 0:n.silent)||void 0===u.conversion?[3,3]:[4,w(e,u.conversion,{collector:i})];case 1:if(c=_.sent(),p=function(e){if(s(e)){var t=e.id,r=e.value,n=e.currency,o=e.eventId,i=l(t)?t:f(t)&&""!==t&&!Number.isNaN(Number(t))?Number(t):void 0;if(void 0!==i&&0!==i){var a={conversion_id:i};if(l(r))a.conversion_value=r;else if(f(r)&&""!==r){var u=Number(r);Number.isNaN(u)||(a.conversion_value=u)}return f(n)&&""!==n&&(a.currency=n),f(o)&&""!==o&&(a.event_id=o),a}}}(c),!p)throw new U("LinkedIn conversion mapping resolved to no conversion id",{code:"missing-input"});return[4,y(function(){return a("track",p)},"transport","LinkedIn lintrk call failed")];case 2:_.sent(),_.label=3;case 3:return[2]}})}).apply(this,arguments)},on:function(e,t){var r=t.config,n=t.data,o=t.env;"consent"===e&&s(n)&&r.loadScript&&!0===n.marketing&&A(r,o)}},ue=ae;return Q=L,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,i=!1,a=void 0;try{for(var u,c=function(){var o=u.value;K.call(e,o)||o===r||I(e,o,{get:function(){return t[o]},enumerable:!(n=N(t,o))||n.enumerable})},l=D(t)[Symbol.iterator]();!(o=(u=l.next()).done);o=!0)c()}catch(e){i=!0,a=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw a}}}return e}(I({},"__esModule",{value:!0}),Q)}();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e
|
|
1
|
+
"use strict";var n,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o={};((n,i)=>{for(var t in i)e(n,t,{get:i[t],enumerable:!0})})(o,{DestinationLinkedIn:()=>a,default:()=>u,destinationLinkedIn:()=>l}),module.exports=(n=o,((n,o,s,c)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let a of t(o))r.call(n,a)||a===s||e(n,a,{get:()=>o[a],enumerable:!(c=i(o,a))||c.enumerable});return n})(e({},"__esModule",{value:!0}),n));var s=require("@walkeros/core"),c=require("@walkeros/web-core"),a={};function d(n,e){return(0,c.loadVendor)(n.loadScript?"https://snap.licdn.com/li.lms-analytics/insight.min.js":void 0,()=>(0,c.getEnv)(e).window.lintrk,{timeout:n.timeout,document:(0,c.getEnv)(e).document})}var l={type:"linkedin",config:{},init({config:n,env:e}){const i=n.settings;if(!(null==i?void 0:i.apiKey))throw new s.StepError("LinkedIn needs settings.apiKey",{code:"config"});return function(n,e){const{window:i}=(0,c.getEnv)(n);i._linkedin_partner_id=e;const t=i._linkedin_data_partner_ids||(i._linkedin_data_partner_ids=[]);t.includes(e)||t.push(e)}(e,i.apiKey),function(n){const{window:e}=(0,c.getEnv)(n);if(e.lintrk)return;const i=Object.assign((...n)=>{(i.q||(i.q=[])).push(n)},{q:[]});e.lintrk=i}(e),d(n,e),n},async push(n,{config:e,rule:i,env:t,collector:r}){d(e,t).check();const{lintrk:o}=(0,c.getEnv)(t).window;if(!o)throw new s.StepError("LinkedIn Insight Tag not ready: lintrk is missing",{code:"vendor-not-ready"});const a=(null==i?void 0:i.settings)||{};if(!0!==(null==i?void 0:i.silent)&&void 0!==a.conversion){const e=function(n){if(!(0,s.isObject)(n))return;const{id:e,value:i,currency:t,eventId:r}=n,o=(0,s.isNumber)(e)?e:(0,s.isString)(e)&&""!==e&&!Number.isNaN(Number(e))?Number(e):void 0;if(void 0===o||0===o)return;const c={conversion_id:o};if((0,s.isNumber)(i))c.conversion_value=i;else if((0,s.isString)(i)&&""!==i){const n=Number(i);Number.isNaN(n)||(c.conversion_value=n)}return(0,s.isString)(t)&&""!==t&&(c.currency=t),(0,s.isString)(r)&&""!==r&&(c.event_id=r),c}(await(0,s.getMappingValue)(n,a.conversion,{collector:r}));if(!e)throw new s.StepError("LinkedIn conversion mapping resolved to no conversion id",{code:"missing-input"});await(0,s.stepCall)(()=>o("track",e),"transport","LinkedIn lintrk call failed")}},on(n,{config:e,data:i,env:t}){"consent"===n&&(0,s.isObject)(i)&&e.loadScript&&!0===i.marketing&&d(e,t)}},u=l;//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import type { WalkerOS } from '@walkeros/core';\nimport { getMappingValue, isNumber, isObject, isString } from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv } from '@walkeros/web-core';\nimport type {\n Destination,\n Env,\n Lintrk,\n LintrkTrackData,\n Mapping,\n} from './types';\n\n// Types export\nexport * as DestinationLinkedIn from './types';\n\n/**\n * LinkedIn Insight Tag web destination.\n *\n * Loads the LinkedIn Insight Tag script from LinkedIn's CDN and forwards\n * explicit conversions via `window.lintrk('track', ...)`. Opt-in: events\n * without `mapping.settings.conversion` produce zero calls.\n *\n * See `/workspaces/developer/docs/research/linkedin-destination-guide.md`.\n */\n\nconst LINKEDIN_SCRIPT_SRC =\n 'https://snap.licdn.com/li.lms-analytics/insight.min.js';\n\n/**\n * Install the LinkedIn `window.lintrk` queue shim. Mirrors the official\n * snippet: any call made before the CDN script loads is pushed to a queue\n * the script processes once it initializes.\n *\n * Idempotent - if `lintrk` is already installed (e.g. another tag installed\n * it), leave the existing function alone.\n */\nfunction installLintrkQueue(env: Env | undefined): void {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n if (w.lintrk) return;\n const lintrk = function (this: unknown, ...args: unknown[]) {\n (lintrk.q = lintrk.q || []).push(args);\n } as unknown as Lintrk;\n lintrk.q = [];\n w.lintrk = lintrk;\n}\n\nfunction setPartnerGlobals(env: Env | undefined, partnerId: string): void {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n w._linkedin_partner_id = partnerId;\n w._linkedin_data_partner_ids = w._linkedin_data_partner_ids || [];\n if (!w._linkedin_data_partner_ids.includes(partnerId)) {\n w._linkedin_data_partner_ids.push(partnerId);\n }\n}\n\nfunction addScript(env: DestinationWeb.Env | undefined): void {\n const { document } = getEnv(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.src = LINKEDIN_SCRIPT_SRC;\n script.async = true;\n doc.head.appendChild(script);\n}\n\n/**\n * Resolve the short-key walkerOS mapping shape into a LintrkTrackData object.\n *\n * Input (already resolved via getMappingValue):\n * { id, value?, currency?, eventId? }\n *\n * Output (vendor API shape):\n * { conversion_id, conversion_value?, currency?, event_id? }\n *\n * Null/falsy guards:\n * - id must resolve to a truthy number → otherwise return undefined (skip call)\n * - other fields are omitted when falsy\n */\nfunction buildLintrkData(resolved: unknown): LintrkTrackData | undefined {\n if (!isObject(resolved)) return undefined;\n\n const { id, value, currency, eventId } = resolved as {\n id?: unknown;\n value?: unknown;\n currency?: unknown;\n eventId?: unknown;\n };\n\n // id must be a truthy number (Campaign Manager conversion_id).\n // Accept numeric strings by coercion - users may supply { value: \"12345\" }.\n const numericId = isNumber(id)\n ? id\n : isString(id) && id !== '' && !Number.isNaN(Number(id))\n ? Number(id)\n : undefined;\n if (numericId === undefined || numericId === 0) return undefined;\n\n const data: LintrkTrackData = { conversion_id: numericId };\n\n // conversion_value - accept number or numeric string; omit if falsy/NaN.\n if (isNumber(value)) {\n data.conversion_value = value;\n } else if (isString(value) && value !== '') {\n const n = Number(value);\n if (!Number.isNaN(n)) data.conversion_value = n;\n }\n\n // currency - string only; omit if falsy.\n if (isString(currency) && currency !== '') {\n data.currency = currency;\n }\n\n // event_id - string only; omit if falsy.\n if (isString(eventId) && eventId !== '') {\n data.event_id = eventId;\n }\n\n return data;\n}\n\nexport const destinationLinkedIn: Destination = {\n type: 'linkedin',\n\n config: {},\n\n init({ config, env }) {\n const settings = config.settings;\n if (!settings?.apiKey) return false;\n\n setPartnerGlobals(env as Env | undefined, settings.apiKey);\n installLintrkQueue(env as Env | undefined);\n\n // Script injection is opt-in via config.loadScript (same default as\n // plausible / meta). Users who already embed the Insight Tag snippet in\n // their HTML should leave loadScript false - the destination only\n // installs the queue shim and mutates _linkedin_partner_id.\n if (config.loadScript) addScript(env);\n\n return config;\n },\n\n async push(event, { rule, env, collector }) {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n const lintrk = w.lintrk;\n if (!lintrk) return; // init must have run\n\n // Honor rule-level silent (core flag at packages/core/src/types/mapping.ts).\n if (rule?.silent === true) return;\n\n const mappingSettings = (rule?.settings || {}) as Mapping;\n if (mappingSettings.conversion === undefined) return; // opt-in: no config = no call\n\n const resolved = await getMappingValue(\n event as WalkerOS.Event,\n mappingSettings.conversion,\n { collector },\n );\n\n const data = buildLintrkData(resolved);\n if (!data) return;\n\n lintrk('track', data);\n },\n\n on(type, context) {\n if (type !== 'consent' || !context.data) return;\n\n // LinkedIn has no vendor consent mode. The collector's config.consent gate\n // is the sole mechanism for blocking events. This handler exists for a\n // narrow case: config.loadScript was true BUT marketing consent was\n // initially denied, so init() skipped addScript(). When consent later\n // grants marketing, we inject the script.\n const consent = context.data as WalkerOS.Consent;\n const config = context.config;\n if (!config?.loadScript) return;\n if (consent.marketing !== true) return;\n\n // Check whether the script tag is already in the DOM - addScript is not\n // idempotent, and re-injecting would load the tag twice.\n const { document } = getEnv(context.env);\n const doc = document as Document;\n const existing = doc.querySelector\n ? doc.querySelector('script[src*=\"snap.licdn.com\"]')\n : null;\n if (existing) return;\n\n addScript(context.env);\n },\n};\n\nexport default destinationLinkedIn;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n/**\n * LinkedIn Insight Tag runtime surface.\n *\n * The Insight Tag script installs `window.lintrk` — a single function that\n * accepts exactly one tracked action: `lintrk('track', data)`.\n *\n * Before the script loads, the destination installs a queue-backed shim so\n * calls made during init are buffered and flushed once the script loads.\n * This mirrors the pattern LinkedIn's own snippet uses.\n */\nexport type LintrkAction = 'track';\n\nexport interface LintrkTrackData {\n conversion_id: number;\n conversion_value?: number;\n currency?: string;\n event_id?: string;\n}\n\nexport type Lintrk = ((action: LintrkAction, data: LintrkTrackData) => void) & {\n /** Internal queue populated before the CDN script loads. */\n q?: unknown[];\n};\n\ndeclare global {\n interface Window {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n }\n}\n\n/**\n * Destination-level settings.\n *\n * apiKey — the LinkedIn Partner ID (numeric string, e.g. \"123456\"), assigned\n * to `window._linkedin_partner_id` before the script loads.\n * include — event sections made available for mapping resolution. Present for\n * consistency with other destinations; has no effect at call time\n * because `lintrk()` only accepts four fixed fields. Kept so users\n * can reference section-prefixed keys in future custom mapping\n * strategies without a breaking change.\n */\nexport interface Settings {\n apiKey: string;\n}\n\nexport type InitSettings = Partial<Settings>;\n\n/**\n * Per-rule mapping settings.\n *\n * conversion — mapping value resolving to an object with short keys:\n * { id (required), value?, currency?, eventId? }\n *\n * `id` becomes `conversion_id` (number, Campaign Manager conversion rule ID).\n * Other keys translate 1:1 to the vendor parameter names.\n *\n * Events without a resolved `conversion.id` are silently ignored — LinkedIn\n * is an opt-in conversion model.\n */\nexport interface Mapping {\n conversion?: WalkerOSMapping.Value;\n}\n\n/**\n * Env — mock surface for tests and dev. The destination mutates\n * `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and\n * installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with\n * a spy to skip the script injection path.\n *\n * `document` is also mocked so `addScript()` can run headlessly.\n */\nexport interface Env extends DestinationWeb.Env {\n window: {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport interface LinkedInDestination extends Destination {\n env?: Env;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import {\n getMappingValue,\n isNumber,\n isObject,\n isString,\n StepError,\n stepCall,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv, loadVendor } from '@walkeros/web-core';\nimport type { Destination, Lintrk, LintrkTrackData, Mapping } from './types';\n\n// Types export\nexport * as DestinationLinkedIn from './types';\n\n/**\n * LinkedIn Insight Tag web destination.\n *\n * Loads the LinkedIn Insight Tag script from LinkedIn's CDN and forwards\n * explicit conversions via `window.lintrk('track', ...)`. Opt-in: events\n * without `mapping.settings.conversion` produce zero calls.\n *\n * See `/workspaces/developer/docs/research/linkedin-destination-guide.md`.\n */\n\nconst LINKEDIN_SCRIPT_SRC =\n 'https://snap.licdn.com/li.lms-analytics/insight.min.js';\n\n/**\n * Install the LinkedIn `window.lintrk` queue shim. Mirrors the official\n * snippet: any call made before the CDN script loads is pushed to a queue\n * the script processes once it initializes.\n *\n * Idempotent - if `lintrk` is already installed (e.g. another tag installed\n * it), leave the existing function alone.\n */\nfunction installLintrkQueue(env?: DestinationWeb.Env): void {\n const { window } = getEnv(env);\n if (window.lintrk) return;\n const lintrk: Lintrk = Object.assign(\n (...args: unknown[]) => {\n (lintrk.q ||= []).push(args);\n },\n { q: [] },\n );\n window.lintrk = lintrk;\n}\n\nfunction setPartnerGlobals(\n env: DestinationWeb.Env | undefined,\n partnerId: string,\n): void {\n const { window } = getEnv(env);\n window._linkedin_partner_id = partnerId;\n const ids = (window._linkedin_data_partner_ids ||= []);\n if (!ids.includes(partnerId)) ids.push(partnerId);\n}\n\n/**\n * The Insight Tag script `loadVendor` injects with `loadScript`. lintrk\n * replays its own queue, so it is called synchronously and only a failed\n * script is reported.\n */\nfunction vendor(\n config: { loadScript?: boolean; timeout?: number },\n env?: DestinationWeb.Env,\n) {\n return loadVendor(\n config.loadScript ? LINKEDIN_SCRIPT_SRC : undefined,\n () => getEnv(env).window.lintrk,\n { timeout: config.timeout, document: getEnv(env).document },\n );\n}\n\n/**\n * Resolve the short-key walkerOS mapping shape into a LintrkTrackData object.\n *\n * Input (already resolved via getMappingValue):\n * { id, value?, currency?, eventId? }\n *\n * Output (vendor API shape):\n * { conversion_id, conversion_value?, currency?, event_id? }\n *\n * Null/falsy guards:\n * - id must resolve to a truthy number → otherwise return undefined (skip call)\n * - other fields are omitted when falsy\n */\nfunction buildLintrkData(resolved: unknown): LintrkTrackData | undefined {\n if (!isObject(resolved)) return undefined;\n\n const { id, value, currency, eventId } = resolved;\n\n // id must be a truthy number (Campaign Manager conversion_id).\n // Accept numeric strings by coercion - users may supply { value: \"12345\" }.\n const numericId = isNumber(id)\n ? id\n : isString(id) && id !== '' && !Number.isNaN(Number(id))\n ? Number(id)\n : undefined;\n if (numericId === undefined || numericId === 0) return undefined;\n\n const data: LintrkTrackData = { conversion_id: numericId };\n\n // conversion_value - accept number or numeric string; omit if falsy/NaN.\n if (isNumber(value)) {\n data.conversion_value = value;\n } else if (isString(value) && value !== '') {\n const n = Number(value);\n if (!Number.isNaN(n)) data.conversion_value = n;\n }\n\n // currency - string only; omit if falsy.\n if (isString(currency) && currency !== '') {\n data.currency = currency;\n }\n\n // event_id - string only; omit if falsy.\n if (isString(eventId) && eventId !== '') {\n data.event_id = eventId;\n }\n\n return data;\n}\n\nexport const destinationLinkedIn: Destination = {\n type: 'linkedin',\n\n config: {},\n\n init({ config, env }) {\n const settings = config.settings;\n if (!settings?.apiKey)\n throw new StepError('LinkedIn needs settings.apiKey', { code: 'config' });\n\n setPartnerGlobals(env, settings.apiKey);\n installLintrkQueue(env);\n\n // Script injection is opt-in via config.loadScript (same default as\n // plausible / meta). Users who already embed the Insight Tag snippet in\n // their HTML should leave loadScript false - the destination only\n // installs the queue shim and mutates _linkedin_partner_id.\n vendor(config, env);\n\n return config;\n },\n\n async push(event, { config, rule, env, collector }) {\n vendor(config, env).check();\n\n const { lintrk } = getEnv(env).window;\n if (!lintrk)\n throw new StepError('LinkedIn Insight Tag not ready: lintrk is missing', {\n code: 'vendor-not-ready',\n });\n\n const mappingSettings: Mapping = rule?.settings || {};\n\n // Opt-in: a rule without a conversion makes no call. Honor rule-level\n // silent (core flag at packages/core/src/types/mapping.ts) the same way.\n if (rule?.silent !== true && mappingSettings.conversion !== undefined) {\n const resolved = await getMappingValue(\n event,\n mappingSettings.conversion,\n { collector },\n );\n\n const data = buildLintrkData(resolved);\n if (!data)\n throw new StepError(\n 'LinkedIn conversion mapping resolved to no conversion id',\n { code: 'missing-input' },\n );\n\n await stepCall(\n () => lintrk('track', data),\n 'transport',\n 'LinkedIn lintrk call failed',\n );\n }\n },\n\n on(type, { config, data, env }) {\n if (type !== 'consent' || !isObject(data)) return;\n\n // LinkedIn has no vendor consent mode. The collector's config.consent gate\n // is the sole mechanism for blocking events. This handler exists for a\n // narrow case: config.loadScript was true BUT marketing consent was\n // initially denied, so init() did not run. When consent later grants\n // marketing, the script is injected; loadVendor injects it once per page.\n if (!config.loadScript) return;\n if (data.marketing !== true) return;\n\n vendor(config, env);\n },\n};\n\nexport default destinationLinkedIn;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n/**\n * LinkedIn Insight Tag runtime surface.\n *\n * The Insight Tag script installs `window.lintrk` — a single function that\n * accepts exactly one tracked action: `lintrk('track', data)`.\n *\n * Before the script loads, the destination installs a queue-backed shim so\n * calls made during init are buffered and flushed once the script loads.\n * This mirrors the pattern LinkedIn's own snippet uses.\n */\nexport type LintrkAction = 'track';\n\nexport interface LintrkTrackData {\n conversion_id: number;\n conversion_value?: number;\n currency?: string;\n event_id?: string;\n}\n\nexport type Lintrk = ((action: LintrkAction, data: LintrkTrackData) => void) & {\n /** Internal queue populated before the CDN script loads. */\n q?: unknown[];\n};\n\ndeclare global {\n interface Window {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n }\n}\n\n/**\n * Destination-level settings.\n *\n * apiKey — the LinkedIn Partner ID (numeric string, e.g. \"123456\"), assigned\n * to `window._linkedin_partner_id` before the script loads.\n * include — event sections made available for mapping resolution. Present for\n * consistency with other destinations; has no effect at call time\n * because `lintrk()` only accepts four fixed fields. Kept so users\n * can reference section-prefixed keys in future custom mapping\n * strategies without a breaking change.\n */\nexport interface Settings {\n apiKey: string;\n}\n\nexport type InitSettings = Partial<Settings>;\n\n/**\n * Per-rule mapping settings.\n *\n * conversion — mapping value resolving to an object with short keys:\n * { id (required), value?, currency?, eventId? }\n *\n * `id` becomes `conversion_id` (number, Campaign Manager conversion rule ID).\n * Other keys translate 1:1 to the vendor parameter names.\n *\n * Events without a resolved `conversion.id` are silently ignored — LinkedIn\n * is an opt-in conversion model.\n */\nexport interface Mapping {\n conversion?: WalkerOSMapping.Value;\n}\n\n/**\n * Env — mock surface for tests and dev. The destination mutates\n * `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and\n * installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with\n * a spy to skip the script injection path.\n */\nexport interface Env extends DestinationWeb.Env {\n window: {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport interface LinkedInDestination extends Destination {\n env?: Env;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getMappingValue as n,isNumber as i,isObject as e,isString as t}from"@walkeros/core";import{getEnv as
|
|
1
|
+
import{getMappingValue as n,isNumber as i,isObject as e,isString as o,StepError as t,stepCall as r}from"@walkeros/core";import{getEnv as s,loadVendor as c}from"@walkeros/web-core";var d={};function a(n,i){return c(n.loadScript?"https://snap.licdn.com/li.lms-analytics/insight.min.js":void 0,()=>s(i).window.lintrk,{timeout:n.timeout,document:s(i).document})}var l={type:"linkedin",config:{},init({config:n,env:i}){const e=n.settings;if(!(null==e?void 0:e.apiKey))throw new t("LinkedIn needs settings.apiKey",{code:"config"});return function(n,i){const{window:e}=s(n);e._linkedin_partner_id=i;const o=e._linkedin_data_partner_ids||(e._linkedin_data_partner_ids=[]);o.includes(i)||o.push(i)}(i,e.apiKey),function(n){const{window:i}=s(n);if(i.lintrk)return;const e=Object.assign((...n)=>{(e.q||(e.q=[])).push(n)},{q:[]});i.lintrk=e}(i),a(n,i),n},async push(c,{config:d,rule:l,env:u,collector:v}){a(d,u).check();const{lintrk:f}=s(u).window;if(!f)throw new t("LinkedIn Insight Tag not ready: lintrk is missing",{code:"vendor-not-ready"});const p=(null==l?void 0:l.settings)||{};if(!0!==(null==l?void 0:l.silent)&&void 0!==p.conversion){const s=function(n){if(!e(n))return;const{id:t,value:r,currency:s,eventId:c}=n,d=i(t)?t:o(t)&&""!==t&&!Number.isNaN(Number(t))?Number(t):void 0;if(void 0===d||0===d)return;const a={conversion_id:d};if(i(r))a.conversion_value=r;else if(o(r)&&""!==r){const n=Number(r);Number.isNaN(n)||(a.conversion_value=n)}return o(s)&&""!==s&&(a.currency=s),o(c)&&""!==c&&(a.event_id=c),a}(await n(c,p.conversion,{collector:v}));if(!s)throw new t("LinkedIn conversion mapping resolved to no conversion id",{code:"missing-input"});await r(()=>f("track",s),"transport","LinkedIn lintrk call failed")}},on(n,{config:i,data:o,env:t}){"consent"===n&&e(o)&&i.loadScript&&!0===o.marketing&&a(i,t)}},u=l;export{d as DestinationLinkedIn,u as default,l as destinationLinkedIn};//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import type { WalkerOS } from '@walkeros/core';\nimport { getMappingValue, isNumber, isObject, isString } from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv } from '@walkeros/web-core';\nimport type {\n Destination,\n Env,\n Lintrk,\n LintrkTrackData,\n Mapping,\n} from './types';\n\n// Types export\nexport * as DestinationLinkedIn from './types';\n\n/**\n * LinkedIn Insight Tag web destination.\n *\n * Loads the LinkedIn Insight Tag script from LinkedIn's CDN and forwards\n * explicit conversions via `window.lintrk('track', ...)`. Opt-in: events\n * without `mapping.settings.conversion` produce zero calls.\n *\n * See `/workspaces/developer/docs/research/linkedin-destination-guide.md`.\n */\n\nconst LINKEDIN_SCRIPT_SRC =\n 'https://snap.licdn.com/li.lms-analytics/insight.min.js';\n\n/**\n * Install the LinkedIn `window.lintrk` queue shim. Mirrors the official\n * snippet: any call made before the CDN script loads is pushed to a queue\n * the script processes once it initializes.\n *\n * Idempotent - if `lintrk` is already installed (e.g. another tag installed\n * it), leave the existing function alone.\n */\nfunction installLintrkQueue(env: Env | undefined): void {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n if (w.lintrk) return;\n const lintrk = function (this: unknown, ...args: unknown[]) {\n (lintrk.q = lintrk.q || []).push(args);\n } as unknown as Lintrk;\n lintrk.q = [];\n w.lintrk = lintrk;\n}\n\nfunction setPartnerGlobals(env: Env | undefined, partnerId: string): void {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n w._linkedin_partner_id = partnerId;\n w._linkedin_data_partner_ids = w._linkedin_data_partner_ids || [];\n if (!w._linkedin_data_partner_ids.includes(partnerId)) {\n w._linkedin_data_partner_ids.push(partnerId);\n }\n}\n\nfunction addScript(env: DestinationWeb.Env | undefined): void {\n const { document } = getEnv(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.src = LINKEDIN_SCRIPT_SRC;\n script.async = true;\n doc.head.appendChild(script);\n}\n\n/**\n * Resolve the short-key walkerOS mapping shape into a LintrkTrackData object.\n *\n * Input (already resolved via getMappingValue):\n * { id, value?, currency?, eventId? }\n *\n * Output (vendor API shape):\n * { conversion_id, conversion_value?, currency?, event_id? }\n *\n * Null/falsy guards:\n * - id must resolve to a truthy number → otherwise return undefined (skip call)\n * - other fields are omitted when falsy\n */\nfunction buildLintrkData(resolved: unknown): LintrkTrackData | undefined {\n if (!isObject(resolved)) return undefined;\n\n const { id, value, currency, eventId } = resolved as {\n id?: unknown;\n value?: unknown;\n currency?: unknown;\n eventId?: unknown;\n };\n\n // id must be a truthy number (Campaign Manager conversion_id).\n // Accept numeric strings by coercion - users may supply { value: \"12345\" }.\n const numericId = isNumber(id)\n ? id\n : isString(id) && id !== '' && !Number.isNaN(Number(id))\n ? Number(id)\n : undefined;\n if (numericId === undefined || numericId === 0) return undefined;\n\n const data: LintrkTrackData = { conversion_id: numericId };\n\n // conversion_value - accept number or numeric string; omit if falsy/NaN.\n if (isNumber(value)) {\n data.conversion_value = value;\n } else if (isString(value) && value !== '') {\n const n = Number(value);\n if (!Number.isNaN(n)) data.conversion_value = n;\n }\n\n // currency - string only; omit if falsy.\n if (isString(currency) && currency !== '') {\n data.currency = currency;\n }\n\n // event_id - string only; omit if falsy.\n if (isString(eventId) && eventId !== '') {\n data.event_id = eventId;\n }\n\n return data;\n}\n\nexport const destinationLinkedIn: Destination = {\n type: 'linkedin',\n\n config: {},\n\n init({ config, env }) {\n const settings = config.settings;\n if (!settings?.apiKey) return false;\n\n setPartnerGlobals(env as Env | undefined, settings.apiKey);\n installLintrkQueue(env as Env | undefined);\n\n // Script injection is opt-in via config.loadScript (same default as\n // plausible / meta). Users who already embed the Insight Tag snippet in\n // their HTML should leave loadScript false - the destination only\n // installs the queue shim and mutates _linkedin_partner_id.\n if (config.loadScript) addScript(env);\n\n return config;\n },\n\n async push(event, { rule, env, collector }) {\n const { window } = getEnv(env);\n const w = window as Env['window'];\n const lintrk = w.lintrk;\n if (!lintrk) return; // init must have run\n\n // Honor rule-level silent (core flag at packages/core/src/types/mapping.ts).\n if (rule?.silent === true) return;\n\n const mappingSettings = (rule?.settings || {}) as Mapping;\n if (mappingSettings.conversion === undefined) return; // opt-in: no config = no call\n\n const resolved = await getMappingValue(\n event as WalkerOS.Event,\n mappingSettings.conversion,\n { collector },\n );\n\n const data = buildLintrkData(resolved);\n if (!data) return;\n\n lintrk('track', data);\n },\n\n on(type, context) {\n if (type !== 'consent' || !context.data) return;\n\n // LinkedIn has no vendor consent mode. The collector's config.consent gate\n // is the sole mechanism for blocking events. This handler exists for a\n // narrow case: config.loadScript was true BUT marketing consent was\n // initially denied, so init() skipped addScript(). When consent later\n // grants marketing, we inject the script.\n const consent = context.data as WalkerOS.Consent;\n const config = context.config;\n if (!config?.loadScript) return;\n if (consent.marketing !== true) return;\n\n // Check whether the script tag is already in the DOM - addScript is not\n // idempotent, and re-injecting would load the tag twice.\n const { document } = getEnv(context.env);\n const doc = document as Document;\n const existing = doc.querySelector\n ? doc.querySelector('script[src*=\"snap.licdn.com\"]')\n : null;\n if (existing) return;\n\n addScript(context.env);\n },\n};\n\nexport default destinationLinkedIn;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n/**\n * LinkedIn Insight Tag runtime surface.\n *\n * The Insight Tag script installs `window.lintrk` — a single function that\n * accepts exactly one tracked action: `lintrk('track', data)`.\n *\n * Before the script loads, the destination installs a queue-backed shim so\n * calls made during init are buffered and flushed once the script loads.\n * This mirrors the pattern LinkedIn's own snippet uses.\n */\nexport type LintrkAction = 'track';\n\nexport interface LintrkTrackData {\n conversion_id: number;\n conversion_value?: number;\n currency?: string;\n event_id?: string;\n}\n\nexport type Lintrk = ((action: LintrkAction, data: LintrkTrackData) => void) & {\n /** Internal queue populated before the CDN script loads. */\n q?: unknown[];\n};\n\ndeclare global {\n interface Window {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n }\n}\n\n/**\n * Destination-level settings.\n *\n * apiKey — the LinkedIn Partner ID (numeric string, e.g. \"123456\"), assigned\n * to `window._linkedin_partner_id` before the script loads.\n * include — event sections made available for mapping resolution. Present for\n * consistency with other destinations; has no effect at call time\n * because `lintrk()` only accepts four fixed fields. Kept so users\n * can reference section-prefixed keys in future custom mapping\n * strategies without a breaking change.\n */\nexport interface Settings {\n apiKey: string;\n}\n\nexport type InitSettings = Partial<Settings>;\n\n/**\n * Per-rule mapping settings.\n *\n * conversion — mapping value resolving to an object with short keys:\n * { id (required), value?, currency?, eventId? }\n *\n * `id` becomes `conversion_id` (number, Campaign Manager conversion rule ID).\n * Other keys translate 1:1 to the vendor parameter names.\n *\n * Events without a resolved `conversion.id` are silently ignored — LinkedIn\n * is an opt-in conversion model.\n */\nexport interface Mapping {\n conversion?: WalkerOSMapping.Value;\n}\n\n/**\n * Env — mock surface for tests and dev. The destination mutates\n * `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and\n * installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with\n * a spy to skip the script injection path.\n *\n * `document` is also mocked so `addScript()` can run headlessly.\n */\nexport interface Env extends DestinationWeb.Env {\n window: {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport interface LinkedInDestination extends Destination {\n env?: Env;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import {\n getMappingValue,\n isNumber,\n isObject,\n isString,\n StepError,\n stepCall,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv, loadVendor } from '@walkeros/web-core';\nimport type { Destination, Lintrk, LintrkTrackData, Mapping } from './types';\n\n// Types export\nexport * as DestinationLinkedIn from './types';\n\n/**\n * LinkedIn Insight Tag web destination.\n *\n * Loads the LinkedIn Insight Tag script from LinkedIn's CDN and forwards\n * explicit conversions via `window.lintrk('track', ...)`. Opt-in: events\n * without `mapping.settings.conversion` produce zero calls.\n *\n * See `/workspaces/developer/docs/research/linkedin-destination-guide.md`.\n */\n\nconst LINKEDIN_SCRIPT_SRC =\n 'https://snap.licdn.com/li.lms-analytics/insight.min.js';\n\n/**\n * Install the LinkedIn `window.lintrk` queue shim. Mirrors the official\n * snippet: any call made before the CDN script loads is pushed to a queue\n * the script processes once it initializes.\n *\n * Idempotent - if `lintrk` is already installed (e.g. another tag installed\n * it), leave the existing function alone.\n */\nfunction installLintrkQueue(env?: DestinationWeb.Env): void {\n const { window } = getEnv(env);\n if (window.lintrk) return;\n const lintrk: Lintrk = Object.assign(\n (...args: unknown[]) => {\n (lintrk.q ||= []).push(args);\n },\n { q: [] },\n );\n window.lintrk = lintrk;\n}\n\nfunction setPartnerGlobals(\n env: DestinationWeb.Env | undefined,\n partnerId: string,\n): void {\n const { window } = getEnv(env);\n window._linkedin_partner_id = partnerId;\n const ids = (window._linkedin_data_partner_ids ||= []);\n if (!ids.includes(partnerId)) ids.push(partnerId);\n}\n\n/**\n * The Insight Tag script `loadVendor` injects with `loadScript`. lintrk\n * replays its own queue, so it is called synchronously and only a failed\n * script is reported.\n */\nfunction vendor(\n config: { loadScript?: boolean; timeout?: number },\n env?: DestinationWeb.Env,\n) {\n return loadVendor(\n config.loadScript ? LINKEDIN_SCRIPT_SRC : undefined,\n () => getEnv(env).window.lintrk,\n { timeout: config.timeout, document: getEnv(env).document },\n );\n}\n\n/**\n * Resolve the short-key walkerOS mapping shape into a LintrkTrackData object.\n *\n * Input (already resolved via getMappingValue):\n * { id, value?, currency?, eventId? }\n *\n * Output (vendor API shape):\n * { conversion_id, conversion_value?, currency?, event_id? }\n *\n * Null/falsy guards:\n * - id must resolve to a truthy number → otherwise return undefined (skip call)\n * - other fields are omitted when falsy\n */\nfunction buildLintrkData(resolved: unknown): LintrkTrackData | undefined {\n if (!isObject(resolved)) return undefined;\n\n const { id, value, currency, eventId } = resolved;\n\n // id must be a truthy number (Campaign Manager conversion_id).\n // Accept numeric strings by coercion - users may supply { value: \"12345\" }.\n const numericId = isNumber(id)\n ? id\n : isString(id) && id !== '' && !Number.isNaN(Number(id))\n ? Number(id)\n : undefined;\n if (numericId === undefined || numericId === 0) return undefined;\n\n const data: LintrkTrackData = { conversion_id: numericId };\n\n // conversion_value - accept number or numeric string; omit if falsy/NaN.\n if (isNumber(value)) {\n data.conversion_value = value;\n } else if (isString(value) && value !== '') {\n const n = Number(value);\n if (!Number.isNaN(n)) data.conversion_value = n;\n }\n\n // currency - string only; omit if falsy.\n if (isString(currency) && currency !== '') {\n data.currency = currency;\n }\n\n // event_id - string only; omit if falsy.\n if (isString(eventId) && eventId !== '') {\n data.event_id = eventId;\n }\n\n return data;\n}\n\nexport const destinationLinkedIn: Destination = {\n type: 'linkedin',\n\n config: {},\n\n init({ config, env }) {\n const settings = config.settings;\n if (!settings?.apiKey)\n throw new StepError('LinkedIn needs settings.apiKey', { code: 'config' });\n\n setPartnerGlobals(env, settings.apiKey);\n installLintrkQueue(env);\n\n // Script injection is opt-in via config.loadScript (same default as\n // plausible / meta). Users who already embed the Insight Tag snippet in\n // their HTML should leave loadScript false - the destination only\n // installs the queue shim and mutates _linkedin_partner_id.\n vendor(config, env);\n\n return config;\n },\n\n async push(event, { config, rule, env, collector }) {\n vendor(config, env).check();\n\n const { lintrk } = getEnv(env).window;\n if (!lintrk)\n throw new StepError('LinkedIn Insight Tag not ready: lintrk is missing', {\n code: 'vendor-not-ready',\n });\n\n const mappingSettings: Mapping = rule?.settings || {};\n\n // Opt-in: a rule without a conversion makes no call. Honor rule-level\n // silent (core flag at packages/core/src/types/mapping.ts) the same way.\n if (rule?.silent !== true && mappingSettings.conversion !== undefined) {\n const resolved = await getMappingValue(\n event,\n mappingSettings.conversion,\n { collector },\n );\n\n const data = buildLintrkData(resolved);\n if (!data)\n throw new StepError(\n 'LinkedIn conversion mapping resolved to no conversion id',\n { code: 'missing-input' },\n );\n\n await stepCall(\n () => lintrk('track', data),\n 'transport',\n 'LinkedIn lintrk call failed',\n );\n }\n },\n\n on(type, { config, data, env }) {\n if (type !== 'consent' || !isObject(data)) return;\n\n // LinkedIn has no vendor consent mode. The collector's config.consent gate\n // is the sole mechanism for blocking events. This handler exists for a\n // narrow case: config.loadScript was true BUT marketing consent was\n // initially denied, so init() did not run. When consent later grants\n // marketing, the script is injected; loadVendor injects it once per page.\n if (!config.loadScript) return;\n if (data.marketing !== true) return;\n\n vendor(config, env);\n },\n};\n\nexport default destinationLinkedIn;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n/**\n * LinkedIn Insight Tag runtime surface.\n *\n * The Insight Tag script installs `window.lintrk` — a single function that\n * accepts exactly one tracked action: `lintrk('track', data)`.\n *\n * Before the script loads, the destination installs a queue-backed shim so\n * calls made during init are buffered and flushed once the script loads.\n * This mirrors the pattern LinkedIn's own snippet uses.\n */\nexport type LintrkAction = 'track';\n\nexport interface LintrkTrackData {\n conversion_id: number;\n conversion_value?: number;\n currency?: string;\n event_id?: string;\n}\n\nexport type Lintrk = ((action: LintrkAction, data: LintrkTrackData) => void) & {\n /** Internal queue populated before the CDN script loads. */\n q?: unknown[];\n};\n\ndeclare global {\n interface Window {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n }\n}\n\n/**\n * Destination-level settings.\n *\n * apiKey — the LinkedIn Partner ID (numeric string, e.g. \"123456\"), assigned\n * to `window._linkedin_partner_id` before the script loads.\n * include — event sections made available for mapping resolution. Present for\n * consistency with other destinations; has no effect at call time\n * because `lintrk()` only accepts four fixed fields. Kept so users\n * can reference section-prefixed keys in future custom mapping\n * strategies without a breaking change.\n */\nexport interface Settings {\n apiKey: string;\n}\n\nexport type InitSettings = Partial<Settings>;\n\n/**\n * Per-rule mapping settings.\n *\n * conversion — mapping value resolving to an object with short keys:\n * { id (required), value?, currency?, eventId? }\n *\n * `id` becomes `conversion_id` (number, Campaign Manager conversion rule ID).\n * Other keys translate 1:1 to the vendor parameter names.\n *\n * Events without a resolved `conversion.id` are silently ignored — LinkedIn\n * is an opt-in conversion model.\n */\nexport interface Mapping {\n conversion?: WalkerOSMapping.Value;\n}\n\n/**\n * Env — mock surface for tests and dev. The destination mutates\n * `window._linkedin_partner_id` / `window._linkedin_data_partner_ids` and\n * installs `window.lintrk` in init; tests can pre-seed `window.lintrk` with\n * a spy to skip the script injection path.\n */\nexport interface Env extends DestinationWeb.Env {\n window: {\n _linkedin_partner_id?: string;\n _linkedin_data_partner_ids?: string[];\n lintrk?: Lintrk;\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport interface LinkedInDestination extends Destination {\n env?: Env;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n"],"mappings":"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","names":[]}
|