@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.
Files changed (79) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/consent/consent.cjs +37 -0
  3. package/dist/cjs/consent/consent.cjs.map +1 -0
  4. package/dist/cjs/findDomSlots/findDomSlots.cjs +28 -0
  5. package/dist/cjs/findDomSlots/findDomSlots.cjs.map +1 -0
  6. package/dist/cjs/hooks.cjs +55 -0
  7. package/dist/cjs/hooks.cjs.map +1 -0
  8. package/dist/cjs/index.cjs +5 -0
  9. package/dist/cjs/index.cjs.map +1 -0
  10. package/dist/cjs/logger/logger.cjs +9 -0
  11. package/dist/cjs/logger/logger.cjs.map +1 -0
  12. package/dist/cjs/main.cjs +120 -0
  13. package/dist/cjs/main.cjs.map +1 -0
  14. package/dist/cjs/main.composables.cjs +61 -0
  15. package/dist/cjs/main.composables.cjs.map +1 -0
  16. package/dist/cjs/main.utils.cjs +25 -0
  17. package/dist/cjs/main.utils.cjs.map +1 -0
  18. package/dist/cjs/package.json.cjs +7 -0
  19. package/dist/cjs/package.json.cjs.map +1 -0
  20. package/dist/cjs/queryDetector/queryDetector.cjs +37 -0
  21. package/dist/cjs/queryDetector/queryDetector.cjs.map +1 -0
  22. package/dist/cjs/requestAds/requestAds.cjs +81 -0
  23. package/dist/cjs/requestAds/requestAds.cjs.map +1 -0
  24. package/dist/cjs/requestAds/requestAds.preview.cjs +52 -0
  25. package/dist/cjs/requestAds/requestAds.preview.cjs.map +1 -0
  26. package/dist/{requestAds.schema-nGqXiJ84.cjs → cjs/requestAds/requestAds.schema.cjs} +1 -1
  27. package/dist/cjs/requestAds/requestAds.schema.cjs.map +1 -0
  28. package/dist/cjs/requestAds/requestAds.utils.cjs +54 -0
  29. package/dist/cjs/requestAds/requestAds.utils.cjs.map +1 -0
  30. package/dist/cjs/slot/slot.cjs +229 -0
  31. package/dist/cjs/slot/slot.cjs.map +1 -0
  32. package/dist/cjs/slot/slot.composables.cjs +125 -0
  33. package/dist/cjs/slot/slot.composables.cjs.map +1 -0
  34. package/dist/cjs/slot/slot.utils.cjs +31 -0
  35. package/dist/cjs/slot/slot.utils.cjs.map +1 -0
  36. package/dist/cjs/slotManager/slotManager.cjs +75 -0
  37. package/dist/cjs/slotManager/slotManager.cjs.map +1 -0
  38. package/dist/consent/consent.js +37 -0
  39. package/dist/consent/consent.js.map +1 -0
  40. package/dist/findDomSlots/findDomSlots.js +28 -0
  41. package/dist/findDomSlots/findDomSlots.js.map +1 -0
  42. package/dist/hooks.js +55 -0
  43. package/dist/hooks.js.map +1 -0
  44. package/dist/index.js +1 -910
  45. package/dist/index.js.map +1 -1
  46. package/dist/logger/logger.js +9 -0
  47. package/dist/logger/logger.js.map +1 -0
  48. package/dist/main.composables.js +61 -0
  49. package/dist/main.composables.js.map +1 -0
  50. package/dist/main.js +120 -0
  51. package/dist/main.js.map +1 -0
  52. package/dist/main.utils.js +25 -0
  53. package/dist/main.utils.js.map +1 -0
  54. package/dist/package.json.js +7 -0
  55. package/dist/package.json.js.map +1 -0
  56. package/dist/queryDetector/queryDetector.js +37 -0
  57. package/dist/queryDetector/queryDetector.js.map +1 -0
  58. package/dist/requestAds/requestAds.js +81 -0
  59. package/dist/requestAds/requestAds.js.map +1 -0
  60. package/dist/requestAds/requestAds.preview.js +52 -0
  61. package/dist/requestAds/requestAds.preview.js.map +1 -0
  62. package/dist/{requestAds.schema-B71AZ4NL.js → requestAds/requestAds.schema.js} +1 -1
  63. package/dist/requestAds/requestAds.schema.js.map +1 -0
  64. package/dist/requestAds/requestAds.utils.js +54 -0
  65. package/dist/requestAds/requestAds.utils.js.map +1 -0
  66. package/dist/slot/slot.composables.js +125 -0
  67. package/dist/slot/slot.composables.js.map +1 -0
  68. package/dist/slot/slot.js +229 -0
  69. package/dist/slot/slot.js.map +1 -0
  70. package/dist/slot/slot.utils.js +31 -0
  71. package/dist/slot/slot.utils.js.map +1 -0
  72. package/dist/slotManager/slotManager.js +75 -0
  73. package/dist/slotManager/slotManager.js.map +1 -0
  74. package/package.json +3 -3
  75. package/dist/index.cjs +0 -914
  76. package/dist/index.cjs.map +0 -1
  77. package/dist/index.d.ts +0 -654
  78. package/dist/requestAds.schema-B71AZ4NL.js.map +0 -1
  79. 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;"}