@adhese/sdk 0.20.1 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/consent/consent.cjs +37 -0
- package/dist/cjs/consent/consent.cjs.map +1 -0
- package/dist/cjs/findDomSlots/findDomSlots.cjs +28 -0
- package/dist/cjs/findDomSlots/findDomSlots.cjs.map +1 -0
- package/dist/cjs/hooks.cjs +55 -0
- package/dist/cjs/hooks.cjs.map +1 -0
- package/dist/cjs/index.cjs +5 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/logger/logger.cjs +9 -0
- package/dist/cjs/logger/logger.cjs.map +1 -0
- package/dist/cjs/main.cjs +120 -0
- package/dist/cjs/main.cjs.map +1 -0
- package/dist/cjs/main.composables.cjs +61 -0
- package/dist/cjs/main.composables.cjs.map +1 -0
- package/dist/cjs/main.utils.cjs +25 -0
- package/dist/cjs/main.utils.cjs.map +1 -0
- package/dist/cjs/package.json.cjs +7 -0
- package/dist/cjs/package.json.cjs.map +1 -0
- package/dist/cjs/queryDetector/queryDetector.cjs +37 -0
- package/dist/cjs/queryDetector/queryDetector.cjs.map +1 -0
- package/dist/cjs/requestAds/requestAds.cjs +81 -0
- package/dist/cjs/requestAds/requestAds.cjs.map +1 -0
- package/dist/cjs/requestAds/requestAds.preview.cjs +52 -0
- package/dist/cjs/requestAds/requestAds.preview.cjs.map +1 -0
- package/dist/{requestAds.schema-nGqXiJ84.cjs → cjs/requestAds/requestAds.schema.cjs} +1 -1
- package/dist/cjs/requestAds/requestAds.schema.cjs.map +1 -0
- package/dist/cjs/requestAds/requestAds.utils.cjs +54 -0
- package/dist/cjs/requestAds/requestAds.utils.cjs.map +1 -0
- package/dist/cjs/slot/slot.cjs +229 -0
- package/dist/cjs/slot/slot.cjs.map +1 -0
- package/dist/cjs/slot/slot.composables.cjs +125 -0
- package/dist/cjs/slot/slot.composables.cjs.map +1 -0
- package/dist/cjs/slot/slot.utils.cjs +31 -0
- package/dist/cjs/slot/slot.utils.cjs.map +1 -0
- package/dist/cjs/slotManager/slotManager.cjs +75 -0
- package/dist/cjs/slotManager/slotManager.cjs.map +1 -0
- package/dist/consent/consent.js +37 -0
- package/dist/consent/consent.js.map +1 -0
- package/dist/findDomSlots/findDomSlots.js +28 -0
- package/dist/findDomSlots/findDomSlots.js.map +1 -0
- package/dist/hooks.js +55 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.js +1 -910
- package/dist/index.js.map +1 -1
- package/dist/logger/logger.js +9 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/main.composables.js +61 -0
- package/dist/main.composables.js.map +1 -0
- package/dist/main.js +120 -0
- package/dist/main.js.map +1 -0
- package/dist/main.utils.js +25 -0
- package/dist/main.utils.js.map +1 -0
- package/dist/package.json.js +7 -0
- package/dist/package.json.js.map +1 -0
- package/dist/queryDetector/queryDetector.js +37 -0
- package/dist/queryDetector/queryDetector.js.map +1 -0
- package/dist/requestAds/requestAds.js +81 -0
- package/dist/requestAds/requestAds.js.map +1 -0
- package/dist/requestAds/requestAds.preview.js +52 -0
- package/dist/requestAds/requestAds.preview.js.map +1 -0
- package/dist/{requestAds.schema-B71AZ4NL.js → requestAds/requestAds.schema.js} +1 -1
- package/dist/requestAds/requestAds.schema.js.map +1 -0
- package/dist/requestAds/requestAds.utils.js +54 -0
- package/dist/requestAds/requestAds.utils.js.map +1 -0
- package/dist/slot/slot.composables.js +125 -0
- package/dist/slot/slot.composables.js.map +1 -0
- package/dist/slot/slot.js +229 -0
- package/dist/slot/slot.js.map +1 -0
- package/dist/slot/slot.utils.js +31 -0
- package/dist/slot/slot.utils.js.map +1 -0
- package/dist/slotManager/slotManager.js +75 -0
- package/dist/slotManager/slotManager.js.map +1 -0
- package/package.json +3 -3
- package/dist/index.cjs +0 -914
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -654
- package/dist/requestAds.schema-B71AZ4NL.js.map +0 -1
- package/dist/requestAds.schema-nGqXiJ84.cjs.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ref, computed, watch } from "@adhese/sdk-shared";
|
|
2
|
+
function useConsent(context) {
|
|
3
|
+
const consent = ref("none");
|
|
4
|
+
const consentType = computed(() => consent.value === "none" || consent.value === "all" ? "binary" : "tcf");
|
|
5
|
+
function onTcfConsentChange(data) {
|
|
6
|
+
if (data.tcString)
|
|
7
|
+
consent.value = data.tcString;
|
|
8
|
+
}
|
|
9
|
+
context.hooks.onInit(() => {
|
|
10
|
+
var _a;
|
|
11
|
+
(_a = window.__tcfapi) == null ? void 0 : _a.call(window, "addEventListener", 2, onTcfConsentChange);
|
|
12
|
+
});
|
|
13
|
+
context.hooks.onDispose(() => {
|
|
14
|
+
var _a;
|
|
15
|
+
(_a = window.__tcfapi) == null ? void 0 : _a.call(window, "removeEventListener", 2, onTcfConsentChange);
|
|
16
|
+
});
|
|
17
|
+
watch(() => context.consent, (newConsent) => {
|
|
18
|
+
consent.value = newConsent ? "all" : "none";
|
|
19
|
+
}, { immediate: true });
|
|
20
|
+
watch([consent, consentType], ([newConsent, newConsentType]) => {
|
|
21
|
+
if (newConsentType === "binary") {
|
|
22
|
+
context.parameters.set("tl", newConsent);
|
|
23
|
+
context.parameters.delete("xt");
|
|
24
|
+
} else {
|
|
25
|
+
context.parameters.set("xt", newConsent);
|
|
26
|
+
context.parameters.delete("tl");
|
|
27
|
+
}
|
|
28
|
+
}, { immediate: true });
|
|
29
|
+
watch(consent, (newConsent) => {
|
|
30
|
+
context.consentString = newConsent;
|
|
31
|
+
}, { immediate: true });
|
|
32
|
+
return [consent, consentType];
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
useConsent
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=consent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent.js","sources":["../../src/consent/consent.ts"],"sourcesContent":["import { type ComputedRef, type Ref, computed, ref, watch } from '@adhese/sdk-shared';\nimport type { AdheseContext } from '@adhese/sdk';\nimport type { ConsentData } from '../types';\n\nexport function useConsent(context: AdheseContext): [\n value: Ref<string>,\n type: ComputedRef<'binary' | 'tcf'>,\n] {\n const consent = ref('none');\n const consentType = computed(() => (consent.value === 'none' || consent.value === 'all') ? 'binary' : 'tcf');\n\n function onTcfConsentChange(data: ConsentData): void {\n if (data.tcString)\n consent.value = data.tcString;\n }\n\n context.hooks.onInit(() => {\n window.__tcfapi?.('addEventListener', 2, onTcfConsentChange);\n });\n\n context.hooks.onDispose(() => {\n window.__tcfapi?.('removeEventListener', 2, onTcfConsentChange);\n });\n\n watch(() => context.consent, (newConsent) => {\n consent.value = newConsent ? 'all' : 'none';\n }, { immediate: true });\n\n watch([consent, consentType], ([newConsent, newConsentType]) => {\n if (newConsentType === 'binary') {\n context.parameters.set('tl', newConsent);\n context.parameters.delete('xt');\n }\n else {\n context.parameters.set('xt', newConsent);\n context.parameters.delete('tl');\n }\n }, { immediate: true });\n\n watch(consent, (newConsent) => {\n context.consentString = newConsent;\n }, { immediate: true });\n\n return [consent, consentType];\n}\n"],"names":[],"mappings":";AAIO,SAAS,WAAW,SAGzB;AACM,QAAA,UAAU,IAAI,MAAM;AACpB,QAAA,cAAc,SAAS,MAAO,QAAQ,UAAU,UAAU,QAAQ,UAAU,QAAS,WAAW,KAAK;AAE3G,WAAS,mBAAmB,MAAyB;AACnD,QAAI,KAAK;AACP,cAAQ,QAAQ,KAAK;AAAA,EACzB;AAEQ,UAAA,MAAM,OAAO,MAAM;;AAClB,iBAAA,aAAA,gCAAW,oBAAoB,GAAG;AAAA,EAAkB,CAC5D;AAEO,UAAA,MAAM,UAAU,MAAM;;AACrB,iBAAA,aAAA,gCAAW,uBAAuB,GAAG;AAAA,EAAkB,CAC/D;AAED,QAAM,MAAM,QAAQ,SAAS,CAAC,eAAe;AACnC,YAAA,QAAQ,aAAa,QAAQ;AAAA,EAAA,GACpC,EAAE,WAAW,KAAA,CAAM;AAEhB,QAAA,CAAC,SAAS,WAAW,GAAG,CAAC,CAAC,YAAY,cAAc,MAAM;AAC9D,QAAI,mBAAmB,UAAU;AACvB,cAAA,WAAW,IAAI,MAAM,UAAU;AAC/B,cAAA,WAAW,OAAO,IAAI;AAAA,IAAA,OAE3B;AACK,cAAA,WAAW,IAAI,MAAM,UAAU;AAC/B,cAAA,WAAW,OAAO,IAAI;AAAA,IAChC;AAAA,EAAA,GACC,EAAE,WAAW,KAAA,CAAM;AAEhB,QAAA,SAAS,CAAC,eAAe;AAC7B,YAAQ,gBAAgB;AAAA,EAAA,GACvB,EAAE,WAAW,KAAA,CAAM;AAEf,SAAA,CAAC,SAAS,WAAW;AAC9B;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { waitForDomLoad, generateName } from "@adhese/sdk-shared";
|
|
2
|
+
import { createSlot } from "../slot/slot.js";
|
|
3
|
+
async function findDomSlots(context) {
|
|
4
|
+
await waitForDomLoad();
|
|
5
|
+
return Array.from(document.querySelectorAll(".adunit")).filter((element) => {
|
|
6
|
+
var _a;
|
|
7
|
+
if (!element.dataset.format)
|
|
8
|
+
return false;
|
|
9
|
+
const name = generateName(
|
|
10
|
+
context.location,
|
|
11
|
+
element.dataset.format,
|
|
12
|
+
element.dataset.slot
|
|
13
|
+
);
|
|
14
|
+
return !((_a = context.getAll) == null ? void 0 : _a.call(context).some((activeSlot) => activeSlot.name === name));
|
|
15
|
+
}).map((element) => createSlot({
|
|
16
|
+
format: element.dataset.format,
|
|
17
|
+
containingElement: element,
|
|
18
|
+
slot: element.dataset.slot,
|
|
19
|
+
context
|
|
20
|
+
})).filter((slot) => {
|
|
21
|
+
var _a;
|
|
22
|
+
return !((_a = context.getAll) == null ? void 0 : _a.call(context).some((activeSlot) => activeSlot.name === slot.name));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
findDomSlots
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=findDomSlots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findDomSlots.js","sources":["../../src/findDomSlots/findDomSlots.ts"],"sourcesContent":["import { generateName, waitForDomLoad } from '@adhese/sdk-shared';\nimport type { AdheseContext, AdheseSlot } from '@adhese/sdk';\nimport { createSlot } from '../slot/slot';\n\n/**\n * Find all slots in the DOM and render them. Ignore slots that are already active.\n */\nexport async function findDomSlots(\n context: AdheseContext,\n): Promise<ReadonlyArray<AdheseSlot>> {\n await waitForDomLoad();\n\n return Array.from(document.querySelectorAll<HTMLElement>('.adunit'))\n .filter((element) => {\n if (!element.dataset.format)\n return false;\n\n const name = generateName(\n context.location,\n element.dataset.format,\n element.dataset.slot,\n );\n\n return !context.getAll?.().some(activeSlot => activeSlot.name === name);\n })\n .map(element => createSlot({\n format: element.dataset.format as string,\n containingElement: element,\n slot: element.dataset.slot,\n context,\n }))\n .filter(slot => !context.getAll?.().some(activeSlot => activeSlot.name === slot.name));\n}\n"],"names":[],"mappings":";;AAOA,eAAsB,aACpB,SACoC;AACpC,QAAM,eAAe;AAEd,SAAA,MAAM,KAAK,SAAS,iBAA8B,SAAS,CAAC,EAChE,OAAO,CAAC,YAAY;;AACf,QAAA,CAAC,QAAQ,QAAQ;AACZ,aAAA;AAET,UAAM,OAAO;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA;AAGX,WAAA,GAAC,aAAQ,WAAR,iCAAmB,KAAK,CAAc,eAAA,WAAW,SAAS;AAAA,EACnE,CAAA,EACA,IAAI,CAAA,YAAW,WAAW;AAAA,IACzB,QAAQ,QAAQ,QAAQ;AAAA,IACxB,mBAAmB;AAAA,IACnB,MAAM,QAAQ,QAAQ;AAAA,IACtB;AAAA,EAAA,CACD,CAAC,EACD,OAAO;;AAAQ,cAAC,aAAQ,WAAR,iCAAmB,KAAK,CAAc,eAAA,WAAW,SAAS,KAAK;AAAA,GAAK;AACzF;"}
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createSyncHook, createAsyncHook } from "@adhese/sdk-shared";
|
|
2
|
+
function createGlobalHooks() {
|
|
3
|
+
const disposeFunctions = /* @__PURE__ */ new Set();
|
|
4
|
+
let isInit = false;
|
|
5
|
+
const [runOnInit, onInit, disposeOnInit] = createSyncHook({
|
|
6
|
+
onRun(callbacks) {
|
|
7
|
+
isInit = true;
|
|
8
|
+
callbacks == null ? void 0 : callbacks.clear();
|
|
9
|
+
},
|
|
10
|
+
onAdd() {
|
|
11
|
+
if (isInit)
|
|
12
|
+
runOnInit();
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
disposeFunctions.add(disposeOnInit);
|
|
16
|
+
let isDisposed = false;
|
|
17
|
+
const [runOnDispose, onDispose, disposeOnDispose] = createSyncHook({
|
|
18
|
+
onRun(callbacks) {
|
|
19
|
+
isDisposed = true;
|
|
20
|
+
callbacks == null ? void 0 : callbacks.clear();
|
|
21
|
+
},
|
|
22
|
+
onAdd() {
|
|
23
|
+
if (isDisposed)
|
|
24
|
+
runOnDispose();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
disposeFunctions.add(disposeOnDispose);
|
|
28
|
+
const [runOnRequest, onRequest, disposeOnRequest] = createAsyncHook();
|
|
29
|
+
disposeFunctions.add(disposeOnRequest);
|
|
30
|
+
const [runOnResponse, onResponse, disposeOnResponse] = createAsyncHook();
|
|
31
|
+
disposeFunctions.add(disposeOnResponse);
|
|
32
|
+
const [runOnSlotCreate, onSlotCreate, disposeOnSlotCreate] = createSyncHook();
|
|
33
|
+
disposeFunctions.add(disposeOnSlotCreate);
|
|
34
|
+
function clearAll() {
|
|
35
|
+
for (const disposeFunction of disposeFunctions)
|
|
36
|
+
disposeFunction();
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
runOnInit,
|
|
40
|
+
onInit,
|
|
41
|
+
runOnDispose,
|
|
42
|
+
onDispose,
|
|
43
|
+
runOnRequest,
|
|
44
|
+
onRequest,
|
|
45
|
+
runOnResponse,
|
|
46
|
+
onResponse,
|
|
47
|
+
runOnSlotCreate,
|
|
48
|
+
onSlotCreate,
|
|
49
|
+
clearAll
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
createGlobalHooks
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { createAsyncHook, createSyncHook } from '@adhese/sdk-shared';\nimport type { AdMultiRequestOptions } from './requestAds/requestAds';\nimport type { AdheseAd, AdheseSlotOptions } from './index';\n\n// eslint-disable-next-line ts/explicit-function-return-type,ts/explicit-module-boundary-types\nexport function createGlobalHooks() {\n const disposeFunctions = new Set<() => void>();\n\n let isInit = false;\n const [runOnInit, onInit, disposeOnInit] = createSyncHook({\n onRun(callbacks) {\n isInit = true;\n callbacks?.clear();\n },\n onAdd() {\n if (isInit)\n runOnInit();\n },\n });\n disposeFunctions.add(disposeOnInit);\n\n let isDisposed = false;\n const [runOnDispose, onDispose, disposeOnDispose] = createSyncHook({\n onRun(callbacks) {\n isDisposed = true;\n callbacks?.clear();\n },\n onAdd() {\n if (isDisposed)\n runOnDispose();\n },\n });\n disposeFunctions.add(disposeOnDispose);\n\n const [runOnRequest, onRequest, disposeOnRequest] = createAsyncHook<AdMultiRequestOptions>();\n disposeFunctions.add(disposeOnRequest);\n\n const [runOnResponse, onResponse, disposeOnResponse] = createAsyncHook<ReadonlyArray<AdheseAd>>();\n disposeFunctions.add(disposeOnResponse);\n\n const [runOnSlotCreate, onSlotCreate, disposeOnSlotCreate] = createSyncHook<AdheseSlotOptions>();\n disposeFunctions.add(disposeOnSlotCreate);\n\n function clearAll(): void {\n for (const disposeFunction of disposeFunctions)\n disposeFunction();\n }\n\n return {\n runOnInit,\n onInit,\n runOnDispose,\n onDispose,\n runOnRequest,\n onRequest,\n runOnResponse,\n onResponse,\n runOnSlotCreate,\n onSlotCreate,\n clearAll,\n };\n}\n"],"names":[],"mappings":";AAKO,SAAS,oBAAoB;AAC5B,QAAA,uCAAuB;AAE7B,MAAI,SAAS;AACb,QAAM,CAAC,WAAW,QAAQ,aAAa,IAAI,eAAe;AAAA,IACxD,MAAM,WAAW;AACN,eAAA;AACT,6CAAW;AAAA,IACb;AAAA,IACA,QAAQ;AACF,UAAA;AACQ;IACd;AAAA,EAAA,CACD;AACD,mBAAiB,IAAI,aAAa;AAElC,MAAI,aAAa;AACjB,QAAM,CAAC,cAAc,WAAW,gBAAgB,IAAI,eAAe;AAAA,IACjE,MAAM,WAAW;AACF,mBAAA;AACb,6CAAW;AAAA,IACb;AAAA,IACA,QAAQ;AACF,UAAA;AACW;IACjB;AAAA,EAAA,CACD;AACD,mBAAiB,IAAI,gBAAgB;AAErC,QAAM,CAAC,cAAc,WAAW,gBAAgB,IAAI,gBAAuC;AAC3F,mBAAiB,IAAI,gBAAgB;AAErC,QAAM,CAAC,eAAe,YAAY,iBAAiB,IAAI,gBAAyC;AAChG,mBAAiB,IAAI,iBAAiB;AAEtC,QAAM,CAAC,iBAAiB,cAAc,mBAAmB,IAAI,eAAkC;AAC/F,mBAAiB,IAAI,mBAAmB;AAExC,WAAS,WAAiB;AACxB,eAAW,mBAAmB;AACZ;EACpB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|