@xyo-network/react-advertising 4.1.5 → 4.1.6

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utm/hooks/useCaptureUtmLocation.ts","../../src/utm/lib/UtmStorageArchivist.ts","../../src/utm/hooks/useDefaultPageState.ts","../../src/utm/hooks/useDefaultUtmPageState.ts"],"sourcesContent":["import { usePromise } from '@xylabs/react-promise'\nimport { type Utm, UtmSchema } from '@xyo-network/advertising-payload-plugins'\nimport { useMemo } from 'react'\n\nimport { UtmStorageArchivist } from '../lib/index.ts'\nimport { useDefaultUtmPageState } from './useDefaultUtmPageState.ts'\n\nexport const useCaptureUtmLocation = () => {\n const [{\n utm_campaign, utm_content, utm_medium, utm_source, utm_term,\n }] = useDefaultUtmPageState()\n\n const [sessionStorageArchivist, error] = usePromise(async () => {\n return await UtmStorageArchivist()\n }, [])\n\n const utmPayload = useMemo(() => {\n // Construct the base UTM payload\n const utm: Utm = { schema: UtmSchema }\n\n // Conditionally add all the UTM parameters present\n if (utm_campaign) utm.utm_campaign = utm_campaign\n if (utm_content) utm.utm_content = utm_content\n if (utm_medium) utm.utm_medium = utm_medium\n if (utm_source) utm.utm_source = utm_source\n if (utm_term) utm.utm_term = utm_term\n\n return utm\n }, [utm_campaign, utm_content, utm_medium, utm_source, utm_term])\n\n const [,insertError] = usePromise(async () => {\n if (utmPayload && sessionStorageArchivist) {\n await sessionStorageArchivist.insert([utmPayload])\n }\n }, [sessionStorageArchivist, utmPayload])\n\n return { utmPayload, error: error ?? insertError }\n}\n","import { isUtm } from '@xyo-network/advertising-payload-plugins'\nimport { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\n\nconst STORAGE_NAME_SPACE = 'utm' as const\n\nlet archivist: StorageArchivist | undefined\n\n/**\n * Find or create a single instance of the UtmStorageArchivist\n * @returns Archivist instance\n */\nexport const UtmStorageArchivist = async () => {\n if (archivist) {\n return archivist\n } else {\n archivist = await StorageArchivist.create({\n account: 'random',\n config: {\n schema: StorageArchivistConfigSchema, namespace: STORAGE_NAME_SPACE, type: 'session',\n },\n })\n return archivist\n }\n}\n\nexport const LatestUtmPayload = async () => {\n const archivist = await UtmStorageArchivist()\n return (await archivist.all()).findLast(isUtm)\n}\n","import { useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport type { PageStateKeys } from '../lib/index.ts'\n\nexport interface DefaultPageStateParams<TQueryParams extends PageStateKeys = PageStateKeys> {\n queryParams: TQueryParams\n}\n\nexport type DefaultPageStateReturn<TPageStateKeys extends PageStateKeys = PageStateKeys> = [\n Record<TPageStateKeys[number], string>,\n (source: keyof DefaultPageStateParams, key: TPageStateKeys[number], value: string) => void,\n]\n\n/**\n * Hook to get default page state as key value pairs from various sources. It provides a convenient abstraction over free form\n * page state like query params by narrowing the used params and centralizing their logic.\n *\n * Future work could include adding support for localStorage, sessionStorage, and precedence of sources.\n * @param defaultPageStateParams various sources of default page state (i.e. queryParams, localStorage, etc.)\n * @returns\n */\nexport const useDefaultPageState = <TQueryParams extends PageStateKeys = PageStateKeys>(\n { queryParams }: DefaultPageStateParams<TQueryParams>,\n): DefaultPageStateReturn<TQueryParams> => {\n const [searchParams, setSearchParams] = useSearchParams()\n\n const patchDefaultPageState = (source: keyof DefaultPageStateParams, key: TQueryParams[number], value: string) => {\n switch (source) {\n case 'queryParams': {\n setSearchParams((prevSearchParams) => {\n const newSearchParams = new URLSearchParams(prevSearchParams)\n newSearchParams.set(key, value)\n return newSearchParams\n })\n break\n }\n default: {\n throw new Error(`Invalid source for default page state: ${source}`)\n }\n }\n }\n\n const queryParamsState = useMemo(() => {\n if (!queryParams) return {} as Record<TQueryParams[number], string>\n let defaultState = {} as Record<TQueryParams[number], string>\n for (const [key, value] of searchParams.entries()) {\n if (queryParams.includes(key)) {\n defaultState[key as TQueryParams[number]] = value\n }\n }\n return defaultState\n }, [searchParams, queryParams])\n\n return [queryParamsState, patchDefaultPageState]\n}\n","import { useDefaultPageState } from './useDefaultPageState.ts'\n\nexport const UtmQueryParamStrings = {\n utmCampaign: 'utm_campaign',\n utmContent: 'utm_content',\n utmMedium: 'utm_medium',\n utmSource: 'utm_source',\n utmTerm: 'utm_term',\n} as const\n\nexport type UtmQueryParams = typeof UtmQueryParamStrings[keyof typeof UtmQueryParamStrings]\n\n/** Get the default page state for utm values from specific query params */\nexport const useDefaultUtmPageState = () => useDefaultPageState<UtmQueryParams[]>({ queryParams: Object.values(UtmQueryParamStrings) })\n"],"mappings":";;;;AAAA,SAASA,kBAAkB;AAC3B,SAAmBC,iBAAiB;AACpC,SAASC,WAAAA,gBAAe;;;ACFxB,SAASC,aAAa;AACtB,SAASC,kBAAkBC,oCAAoC;AAE/D,IAAMC,qBAAqB;AAE3B,IAAIC;AAMG,IAAMC,sBAAsB,mCAAA;AACjC,MAAID,WAAW;AACb,WAAOA;EACT,OAAO;AACLA,gBAAY,MAAME,iBAAiBC,OAAO;MACxCC,SAAS;MACTC,QAAQ;QACNC,QAAQC;QAA8BC,WAAWT;QAAoBU,MAAM;MAC7E;IACF,CAAA;AACA,WAAOT;EACT;AACF,GAZmC;AAc5B,IAAMU,mBAAmB,mCAAA;AAC9B,QAAMV,aAAY,MAAMC,oBAAAA;AACxB,UAAQ,MAAMD,WAAUW,IAAG,GAAIC,SAASC,KAAAA;AAC1C,GAHgC;;;ACzBhC,SAASC,eAAe;AACxB,SAASC,uBAAuB;AAqBzB,IAAMC,sBAAsB,wBACjC,EAAEC,YAAW,MAAwC;AAErD,QAAM,CAACC,cAAcC,eAAAA,IAAmBC,gBAAAA;AAExC,QAAMC,wBAAwB,wBAACC,QAAsCC,KAA2BC,UAAAA;AAC9F,YAAQF,QAAAA;MACN,KAAK,eAAe;AAClBH,wBAAgB,CAACM,qBAAAA;AACf,gBAAMC,kBAAkB,IAAIC,gBAAgBF,gBAAAA;AAC5CC,0BAAgBE,IAAIL,KAAKC,KAAAA;AACzB,iBAAOE;QACT,CAAA;AACA;MACF;MACA,SAAS;AACP,cAAM,IAAIG,MAAM,0CAA0CP,MAAAA,EAAQ;MACpE;IACF;EACF,GAd8B;AAgB9B,QAAMQ,mBAAmBC,QAAQ,MAAA;AAC/B,QAAI,CAACd,YAAa,QAAO,CAAC;AAC1B,QAAIe,eAAe,CAAC;AACpB,eAAW,CAACT,KAAKC,KAAAA,KAAUN,aAAae,QAAO,GAAI;AACjD,UAAIhB,YAAYiB,SAASX,GAAAA,GAAM;AAC7BS,qBAAaT,GAAAA,IAA+BC;MAC9C;IACF;AACA,WAAOQ;EACT,GAAG;IAACd;IAAcD;GAAY;AAE9B,SAAO;IAACa;IAAkBT;;AAC5B,GAjCmC;;;ACpB5B,IAAMc,uBAAuB;EAClCC,aAAa;EACbC,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC,SAAS;AACX;AAKO,IAAMC,yBAAyB,6BAAMC,oBAAsC;EAAEC,aAAaC,OAAOC,OAAOV,oBAAAA;AAAsB,CAAA,GAA/F;;;AHN/B,IAAMW,wBAAwB,6BAAA;AACnC,QAAM,CAAC,EACLC,cAAcC,aAAaC,YAAYC,YAAYC,SAAQ,CAC5D,IAAIC,uBAAAA;AAEL,QAAM,CAACC,yBAAyBC,KAAAA,IAASC,WAAW,YAAA;AAClD,WAAO,MAAMC,oBAAAA;EACf,GAAG,CAAA,CAAE;AAEL,QAAMC,aAAaC,SAAQ,MAAA;AAEzB,UAAMC,MAAW;MAAEC,QAAQC;IAAU;AAGrC,QAAId,aAAcY,KAAIZ,eAAeA;AACrC,QAAIC,YAAaW,KAAIX,cAAcA;AACnC,QAAIC,WAAYU,KAAIV,aAAaA;AACjC,QAAIC,WAAYS,KAAIT,aAAaA;AACjC,QAAIC,SAAUQ,KAAIR,WAAWA;AAE7B,WAAOQ;EACT,GAAG;IAACZ;IAAcC;IAAaC;IAAYC;IAAYC;GAAS;AAEhE,QAAM,CAAA,EAAEW,WAAAA,IAAeP,WAAW,YAAA;AAChC,QAAIE,cAAcJ,yBAAyB;AACzC,YAAMA,wBAAwBU,OAAO;QAACN;OAAW;IACnD;EACF,GAAG;IAACJ;IAAyBI;GAAW;AAExC,SAAO;IAAEA;IAAYH,OAAOA,SAASQ;EAAY;AACnD,GA9BqC;","names":["usePromise","UtmSchema","useMemo","isUtm","StorageArchivist","StorageArchivistConfigSchema","STORAGE_NAME_SPACE","archivist","UtmStorageArchivist","StorageArchivist","create","account","config","schema","StorageArchivistConfigSchema","namespace","type","LatestUtmPayload","all","findLast","isUtm","useMemo","useSearchParams","useDefaultPageState","queryParams","searchParams","setSearchParams","useSearchParams","patchDefaultPageState","source","key","value","prevSearchParams","newSearchParams","URLSearchParams","set","Error","queryParamsState","useMemo","defaultState","entries","includes","UtmQueryParamStrings","utmCampaign","utmContent","utmMedium","utmSource","utmTerm","useDefaultUtmPageState","useDefaultPageState","queryParams","Object","values","useCaptureUtmLocation","utm_campaign","utm_content","utm_medium","utm_source","utm_term","useDefaultUtmPageState","sessionStorageArchivist","error","usePromise","UtmStorageArchivist","utmPayload","useMemo","utm","schema","UtmSchema","insertError","insert"]}
1
+ {"version":3,"sources":["../../src/utm/hooks/useCaptureUtmLocation.ts","../../src/utm/lib/UtmStorageArchivist.ts","../../src/utm/hooks/useDefaultPageState.ts","../../src/utm/hooks/useDefaultUtmPageState.ts"],"sourcesContent":["import { usePromise } from '@xylabs/react-promise'\nimport { type Utm, UtmSchema } from '@xyo-network/advertising-payload-plugins'\nimport { useMemo } from 'react'\n\nimport { UtmStorageArchivist } from '../lib/index.ts'\nimport { useDefaultUtmPageState } from './useDefaultUtmPageState.ts'\n\nexport const useCaptureUtmLocation = () => {\n const [{\n utm_campaign, utm_content, utm_medium, utm_source, utm_term,\n }] = useDefaultUtmPageState()\n\n const [sessionStorageArchivist, error] = usePromise(async () => {\n return await UtmStorageArchivist()\n }, [])\n\n const utmPayload = useMemo(() => {\n // Construct the base UTM payload\n const utm: Utm = { schema: UtmSchema }\n\n // Conditionally add all the UTM parameters present\n if (utm_campaign) utm.utm_campaign = utm_campaign\n if (utm_content) utm.utm_content = utm_content\n if (utm_medium) utm.utm_medium = utm_medium\n if (utm_source) utm.utm_source = utm_source\n if (utm_term) utm.utm_term = utm_term\n\n return utm\n }, [utm_campaign, utm_content, utm_medium, utm_source, utm_term])\n\n const [,insertError] = usePromise(async () => {\n if (utmPayload && sessionStorageArchivist) {\n await sessionStorageArchivist.insert([utmPayload])\n }\n }, [sessionStorageArchivist, utmPayload])\n\n return { utmPayload, error: error ?? insertError }\n}\n","import type { Utm } from '@xyo-network/advertising-payload-plugins'\nimport { isUtm } from '@xyo-network/advertising-payload-plugins'\nimport { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\n\nconst STORAGE_NAME_SPACE = 'utm' as const\n\nlet archivist: StorageArchivist | undefined\n\n/**\n * Find or create a single instance of the UtmStorageArchivist\n * @returns Archivist instance\n */\nexport const UtmStorageArchivist = async () => {\n if (archivist) {\n return archivist\n } else {\n archivist = await StorageArchivist.create({\n account: 'random',\n config: {\n schema: StorageArchivistConfigSchema, namespace: STORAGE_NAME_SPACE, type: 'session',\n },\n })\n return archivist\n }\n}\n\nexport const LatestUtmPayload = async (): Promise<Utm | undefined> => {\n const archivist = await UtmStorageArchivist()\n return (await archivist.all()).findLast(isUtm) as Utm\n}\n","import { useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport type { PageStateKeys } from '../lib/index.ts'\n\nexport interface DefaultPageStateParams<TQueryParams extends PageStateKeys = PageStateKeys> {\n queryParams: TQueryParams\n}\n\nexport type DefaultPageStateReturn<TPageStateKeys extends PageStateKeys = PageStateKeys> = [\n Record<TPageStateKeys[number], string>,\n (source: keyof DefaultPageStateParams, key: TPageStateKeys[number], value: string) => void,\n]\n\n/**\n * Hook to get default page state as key value pairs from various sources. It provides a convenient abstraction over free form\n * page state like query params by narrowing the used params and centralizing their logic.\n *\n * Future work could include adding support for localStorage, sessionStorage, and precedence of sources.\n * @param defaultPageStateParams various sources of default page state (i.e. queryParams, localStorage, etc.)\n * @returns\n */\nexport const useDefaultPageState = <TQueryParams extends PageStateKeys = PageStateKeys>(\n { queryParams }: DefaultPageStateParams<TQueryParams>,\n): DefaultPageStateReturn<TQueryParams> => {\n const [searchParams, setSearchParams] = useSearchParams()\n\n const patchDefaultPageState = (source: keyof DefaultPageStateParams, key: TQueryParams[number], value: string) => {\n switch (source) {\n case 'queryParams': {\n setSearchParams((prevSearchParams) => {\n const newSearchParams = new URLSearchParams(prevSearchParams)\n newSearchParams.set(key, value)\n return newSearchParams\n })\n break\n }\n default: {\n throw new Error(`Invalid source for default page state: ${source}`)\n }\n }\n }\n\n const queryParamsState = useMemo(() => {\n if (!queryParams) return {} as Record<TQueryParams[number], string>\n let defaultState = {} as Record<TQueryParams[number], string>\n for (const [key, value] of searchParams.entries()) {\n if (queryParams.includes(key)) {\n defaultState[key as TQueryParams[number]] = value\n }\n }\n return defaultState\n }, [searchParams, queryParams])\n\n return [queryParamsState, patchDefaultPageState]\n}\n","import { useDefaultPageState } from './useDefaultPageState.ts'\n\nexport const UtmQueryParamStrings = {\n utmCampaign: 'utm_campaign',\n utmContent: 'utm_content',\n utmMedium: 'utm_medium',\n utmSource: 'utm_source',\n utmTerm: 'utm_term',\n} as const\n\nexport type UtmQueryParams = typeof UtmQueryParamStrings[keyof typeof UtmQueryParamStrings]\n\n/** Get the default page state for utm values from specific query params */\nexport const useDefaultUtmPageState = () => useDefaultPageState<UtmQueryParams[]>({ queryParams: Object.values(UtmQueryParamStrings) })\n"],"mappings":";;;;AAAA,SAASA,kBAAkB;AAC3B,SAAmBC,iBAAiB;AACpC,SAASC,WAAAA,gBAAe;;;ACDxB,SAASC,aAAa;AACtB,SAASC,kBAAkBC,oCAAoC;AAE/D,IAAMC,qBAAqB;AAE3B,IAAIC;AAMG,IAAMC,sBAAsB,mCAAA;AACjC,MAAID,WAAW;AACb,WAAOA;EACT,OAAO;AACLA,gBAAY,MAAME,iBAAiBC,OAAO;MACxCC,SAAS;MACTC,QAAQ;QACNC,QAAQC;QAA8BC,WAAWT;QAAoBU,MAAM;MAC7E;IACF,CAAA;AACA,WAAOT;EACT;AACF,GAZmC;AAc5B,IAAMU,mBAAmB,mCAAA;AAC9B,QAAMV,aAAY,MAAMC,oBAAAA;AACxB,UAAQ,MAAMD,WAAUW,IAAG,GAAIC,SAASC,KAAAA;AAC1C,GAHgC;;;AC1BhC,SAASC,eAAe;AACxB,SAASC,uBAAuB;AAqBzB,IAAMC,sBAAsB,wBACjC,EAAEC,YAAW,MAAwC;AAErD,QAAM,CAACC,cAAcC,eAAAA,IAAmBC,gBAAAA;AAExC,QAAMC,wBAAwB,wBAACC,QAAsCC,KAA2BC,UAAAA;AAC9F,YAAQF,QAAAA;MACN,KAAK,eAAe;AAClBH,wBAAgB,CAACM,qBAAAA;AACf,gBAAMC,kBAAkB,IAAIC,gBAAgBF,gBAAAA;AAC5CC,0BAAgBE,IAAIL,KAAKC,KAAAA;AACzB,iBAAOE;QACT,CAAA;AACA;MACF;MACA,SAAS;AACP,cAAM,IAAIG,MAAM,0CAA0CP,MAAAA,EAAQ;MACpE;IACF;EACF,GAd8B;AAgB9B,QAAMQ,mBAAmBC,QAAQ,MAAA;AAC/B,QAAI,CAACd,YAAa,QAAO,CAAC;AAC1B,QAAIe,eAAe,CAAC;AACpB,eAAW,CAACT,KAAKC,KAAAA,KAAUN,aAAae,QAAO,GAAI;AACjD,UAAIhB,YAAYiB,SAASX,GAAAA,GAAM;AAC7BS,qBAAaT,GAAAA,IAA+BC;MAC9C;IACF;AACA,WAAOQ;EACT,GAAG;IAACd;IAAcD;GAAY;AAE9B,SAAO;IAACa;IAAkBT;;AAC5B,GAjCmC;;;ACpB5B,IAAMc,uBAAuB;EAClCC,aAAa;EACbC,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC,SAAS;AACX;AAKO,IAAMC,yBAAyB,6BAAMC,oBAAsC;EAAEC,aAAaC,OAAOC,OAAOV,oBAAAA;AAAsB,CAAA,GAA/F;;;AHN/B,IAAMW,wBAAwB,6BAAA;AACnC,QAAM,CAAC,EACLC,cAAcC,aAAaC,YAAYC,YAAYC,SAAQ,CAC5D,IAAIC,uBAAAA;AAEL,QAAM,CAACC,yBAAyBC,KAAAA,IAASC,WAAW,YAAA;AAClD,WAAO,MAAMC,oBAAAA;EACf,GAAG,CAAA,CAAE;AAEL,QAAMC,aAAaC,SAAQ,MAAA;AAEzB,UAAMC,MAAW;MAAEC,QAAQC;IAAU;AAGrC,QAAId,aAAcY,KAAIZ,eAAeA;AACrC,QAAIC,YAAaW,KAAIX,cAAcA;AACnC,QAAIC,WAAYU,KAAIV,aAAaA;AACjC,QAAIC,WAAYS,KAAIT,aAAaA;AACjC,QAAIC,SAAUQ,KAAIR,WAAWA;AAE7B,WAAOQ;EACT,GAAG;IAACZ;IAAcC;IAAaC;IAAYC;IAAYC;GAAS;AAEhE,QAAM,CAAA,EAAEW,WAAAA,IAAeP,WAAW,YAAA;AAChC,QAAIE,cAAcJ,yBAAyB;AACzC,YAAMA,wBAAwBU,OAAO;QAACN;OAAW;IACnD;EACF,GAAG;IAACJ;IAAyBI;GAAW;AAExC,SAAO;IAAEA;IAAYH,OAAOA,SAASQ;EAAY;AACnD,GA9BqC;","names":["usePromise","UtmSchema","useMemo","isUtm","StorageArchivist","StorageArchivistConfigSchema","STORAGE_NAME_SPACE","archivist","UtmStorageArchivist","StorageArchivist","create","account","config","schema","StorageArchivistConfigSchema","namespace","type","LatestUtmPayload","all","findLast","isUtm","useMemo","useSearchParams","useDefaultPageState","queryParams","searchParams","setSearchParams","useSearchParams","patchDefaultPageState","source","key","value","prevSearchParams","newSearchParams","URLSearchParams","set","Error","queryParamsState","useMemo","defaultState","entries","includes","UtmQueryParamStrings","utmCampaign","utmContent","utmMedium","utmSource","utmTerm","useDefaultUtmPageState","useDefaultPageState","queryParams","Object","values","useCaptureUtmLocation","utm_campaign","utm_content","utm_medium","utm_source","utm_term","useDefaultUtmPageState","sessionStorageArchivist","error","usePromise","UtmStorageArchivist","utmPayload","useMemo","utm","schema","UtmSchema","insertError","insert"]}
@@ -1,3 +1,4 @@
1
+ import type { Utm } from '@xyo-network/advertising-payload-plugins';
1
2
  import { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage';
2
3
  export declare const UtmStorageArchivist: () => Promise<StorageArchivist<import("@xylabs/object").BaseParamsFields & {
3
4
  account?: import("@xyo-network/account-model").AccountInstance | "random";
@@ -24,7 +25,5 @@ export declare const UtmStorageArchivist: () => Promise<StorageArchivist<import(
24
25
  ephemeralQueryAccountEnabled?: boolean;
25
26
  moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
26
27
  }, import("@xyo-network/archivist-model").ArchivistModuleEventData>>;
27
- export declare const LatestUtmPayload: () => Promise<import("@xyo-network/payload-model").WithMeta<{
28
- schema: string;
29
- } & import("@xyo-network/payload-model").PayloadFields> | undefined>;
28
+ export declare const LatestUtmPayload: () => Promise<Utm | undefined>;
30
29
  //# sourceMappingURL=UtmStorageArchivist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UtmStorageArchivist.d.ts","sourceRoot":"","sources":["../../../../src/utm/lib/UtmStorageArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAU/F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;oEAY/B,CAAA;AAED,eAAO,MAAM,gBAAgB;;oEAG5B,CAAA"}
1
+ {"version":3,"file":"UtmStorageArchivist.d.ts","sourceRoot":"","sources":["../../../../src/utm/lib/UtmStorageArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0CAA0C,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAU/F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;oEAY/B,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,GAAG,GAAG,SAAS,CAGhE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-advertising",
3
- "version": "4.1.5",
3
+ "version": "4.1.6",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -1,3 +1,4 @@
1
+ import type { Utm } from '@xyo-network/advertising-payload-plugins'
1
2
  import { isUtm } from '@xyo-network/advertising-payload-plugins'
2
3
  import { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'
3
4
 
@@ -23,7 +24,7 @@ export const UtmStorageArchivist = async () => {
23
24
  }
24
25
  }
25
26
 
26
- export const LatestUtmPayload = async () => {
27
+ export const LatestUtmPayload = async (): Promise<Utm | undefined> => {
27
28
  const archivist = await UtmStorageArchivist()
28
- return (await archivist.all()).findLast(isUtm)
29
+ return (await archivist.all()).findLast(isUtm) as Utm
29
30
  }