@surfside/ads-core-client 0.1.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.
@@ -0,0 +1 @@
1
+ export * from './response';
@@ -0,0 +1,7 @@
1
+ import { type IBid, type IBuiltBannerResponse, type ICompiledPublisherConfiguration, type ILogger, type INativeTemplateDelegateWindow, type IProductInformation, type Result } from '@surfside/ads-core';
2
+ export type BuildBannerResponseFn = (bid: IBid) => Result<IBuiltBannerResponse>;
3
+ export declare const BuildBannerResponse: (logger: ILogger | undefined, windowInfo: INativeTemplateDelegateWindow, config: ICompiledPublisherConfiguration, bid: IBid) => Result<IBuiltBannerResponse>;
4
+ export declare const getProductInfoFromDivTag: (logger: ILogger | undefined, div: HTMLElement | null, bid: IBid) => Result<IProductInformation>;
5
+ export declare class MissingProductInfoError extends Error {
6
+ constructor();
7
+ }
@@ -0,0 +1,17 @@
1
+ import { type AsyncResult, type BuildAllSponsoredProductCardResponsesFn, type IBidRequest, type IBidResponse, type IBuiltBannerResponse, type IBuiltProductCardBidResponse, type IBuiltProductCardResponse, type IBuiltVideo, type ILogger } from '@surfside/ads-core';
2
+ import { type BuildBannerResponseFn } from './Banner';
3
+ import { type BuildVideoResponseFn } from './Video';
4
+ export type BuildAllResponsesFn = (request: IBidRequest, response: IBidResponse) => AsyncResult<IBuiltResponseCollection>;
5
+ export type GenerateAllResponsesFn = (request: IBidRequest, response: IBidResponse, pageSize: number) => AsyncResult<IBuiltResponseGeneratorCollection>;
6
+ export interface IBuiltResponseCollection {
7
+ banners: IBuiltBannerResponse[];
8
+ videos: IBuiltVideo[];
9
+ productCards: IBuiltProductCardBidResponse[];
10
+ }
11
+ export interface IBuiltResponseGeneratorCollection {
12
+ banners: IBuiltBannerResponse[];
13
+ videos: IBuiltVideo[];
14
+ productCards?: IBuiltProductCardResponse[];
15
+ }
16
+ export declare const BuildAllResponses: (logger: ILogger | undefined, buildBannerResponse: BuildBannerResponseFn, buildVideoResponse: BuildVideoResponseFn, buildAllProductCardResponses: BuildAllSponsoredProductCardResponsesFn, request: IBidRequest, response: IBidResponse) => AsyncResult<IBuiltResponseCollection>;
17
+ export declare const GenerateAllResponses: (logger: ILogger | undefined, buildBannerResponse: BuildBannerResponseFn, buildVideoResponse: BuildVideoResponseFn, buildProductCard: BuildAllSponsoredProductCardResponsesFn, request: IBidRequest, response: IBidResponse) => AsyncResult<IBuiltResponseGeneratorCollection>;
@@ -0,0 +1,24 @@
1
+ import { type AsyncResult, type ILogger, type RequestBidsFn, type BuildHybridCarouselFromInitialBidFn, type BuildSponsoredCarouselFromInitialBidFn, type BuildRecommendedCarouselFn, type IBuiltProductCardResponse, type IBuiltCarousel, type BuildAllSponsoredProductCardResponsesFn, type IBuiltBannerResponse, type IBuiltVideo, type IDynamicBanner, type IDynamicVideo, type IDynamicProductCard } from '@surfside/ads-core';
2
+ import { type IDynamicZoneRequest } from '@surfside/ads-core';
3
+ import { type BuildBannerResponseFn } from './Banner';
4
+ import { type BuildVideoResponseFn } from './Video';
5
+ import { type IDynamicCarousel } from '@surfside/ads-core';
6
+ export type BuildDynamicResponseFn = (dynamicRequest: IDynamicZoneRequest) => AsyncResult<IBuiltDynamicResponse>;
7
+ export interface IBuiltDynamicCarousel extends IBuiltCarousel {
8
+ dynamicCarouselRequest: IDynamicCarousel;
9
+ }
10
+ export interface IBuiltDynamicBanner extends IBuiltBannerResponse {
11
+ dynamicBannerRequest: IDynamicBanner;
12
+ }
13
+ export interface IBuiltDynamicVideo extends IBuiltVideo {
14
+ dynamicVideoRequest: IDynamicVideo;
15
+ }
16
+ export interface IBuiltDynamicProductCard extends IBuiltProductCardResponse {
17
+ dynamicProductCardRequest: IDynamicProductCard;
18
+ }
19
+ export type IBuiltDynamicResponse = IBuiltDynamicBanner | IBuiltDynamicVideo | IBuiltDynamicProductCard | IBuiltDynamicCarousel;
20
+ export declare const BuildDynamicResponse: (logger: ILogger | undefined, requestBids: RequestBidsFn, buildBannerResponse: BuildBannerResponseFn, buildVideoResponse: BuildVideoResponseFn, buildHybridCarousel: BuildHybridCarouselFromInitialBidFn, buildSponsoredCarousel: BuildSponsoredCarouselFromInitialBidFn, buildRecommendedCarousel: BuildRecommendedCarouselFn, buildAllSponsoredProductCardResponses: BuildAllSponsoredProductCardResponsesFn, dynamicRequest: IDynamicZoneRequest) => AsyncResult<IBuiltDynamicResponse>;
21
+ export declare class NoDynamicAdsAvailableError extends Error {
22
+ readonly dynamicRequest: IDynamicZoneRequest;
23
+ constructor(dynamicRequest: IDynamicZoneRequest);
24
+ }
@@ -0,0 +1,33 @@
1
+ import { type IBid, type IVast, type ILogger, type Result, type IBuiltVideo, type INativeTemplateDelegateWindow, type ICompiledPublisherConfiguration } from '@surfside/ads-core';
2
+ export type BuildVideoResponseFn = (bid: IBid) => Result<IBuiltVideo>;
3
+ export declare const BuildVideoResponse: (logger: ILogger | undefined, windowInfo: INativeTemplateDelegateWindow, configuration: ICompiledPublisherConfiguration, bid: IBid) => Result<IBuiltVideo>;
4
+ export declare const DeserializeVideo: (logger: ILogger | undefined, bid: IBid) => Result<IVast>;
5
+ export declare function DeserializeVast(logger: ILogger | undefined, adm: string): Result<IVast>;
6
+ export declare class MissingChildTagError extends Error {
7
+ element: Element | undefined;
8
+ tagName: string;
9
+ constructor(element: Element | undefined, tagName: string);
10
+ }
11
+ export declare class MissingAttributeError extends Error {
12
+ element: Element;
13
+ attributeName: string;
14
+ constructor(element: Element, attributeName: string);
15
+ }
16
+ export declare class NotANumberError extends Error {
17
+ element: Element;
18
+ attributeName: string;
19
+ constructor(element: Element, attributeName: string);
20
+ }
21
+ export declare class MissingTextContentError extends Error {
22
+ element: Element;
23
+ attributeName: string;
24
+ constructor(element: Element, attributeName: string);
25
+ }
26
+ export declare class MissingCreativeError extends Error {
27
+ vast: IVast;
28
+ constructor(vast: IVast);
29
+ }
30
+ export declare class MissingClickthroughUrlError extends Error {
31
+ vast: IVast;
32
+ constructor(vast: IVast);
33
+ }
@@ -0,0 +1,4 @@
1
+ export * from './Banner';
2
+ export * from './Video';
3
+ export * from './BuildAll';
4
+ export * from './Dynamic';
@@ -0,0 +1,52 @@
1
+ import { type AsyncResult, type BuildAllSponsoredProductCardResponsesFn, type GenerateSponsoredProductCardResponseFn, type GetAllSponsoredProductFromNativeIdFn, type GetConfigurationFn, type GetDeviceFn, type GetGeoFn, type GetRecommendedProductFromProductIdFn, type GetSponsoredProductFromNativeIdFn, type ILogger, type INativeTemplateDelegateWindow, type INavigator, type IScreen, type ISurfsideApi, type NonPersonalRecommenderFn, type PersonalRecommenderFn, type RequestBidsFn, type EvaluateClickthroughTemplateFn, type EvaluateProductCardTemplateFn } from '@surfside/ads-core';
2
+ import { type BuildAllResponsesFn, type BuildBannerResponseFn, type BuildVideoResponseFn, type GenerateAllResponsesFn } from './helpers';
3
+ import { type GetDynamicZoneFn } from '@surfside/ads-core';
4
+ import { type BuildDynamicResponseFn } from './helpers/response/Dynamic';
5
+ export * from '@surfside/ads-core';
6
+ export * from './helpers';
7
+ export interface ISurfsideClientApi extends ISurfsideApi {
8
+ buildBannerResponse: BuildBannerResponseFn;
9
+ buildVideoResponse: BuildVideoResponseFn;
10
+ buildAllResponses: BuildAllResponsesFn;
11
+ generateAllResponses: GenerateAllResponsesFn;
12
+ buildDynamicResponse: BuildDynamicResponseFn;
13
+ screenInfo: IScreen;
14
+ windowInfo: INativeTemplateDelegateWindow;
15
+ navigator: INavigator;
16
+ }
17
+ export declare const InitSurfAdsCoreClientInternal: (internalClientApiDto: {
18
+ logger: ILogger | undefined;
19
+ requestBids: RequestBidsFn;
20
+ getConfiguration: GetConfigurationFn;
21
+ getGeo: GetGeoFn;
22
+ getDevice: GetDeviceFn;
23
+ getSponsoredProduct: GetSponsoredProductFromNativeIdFn;
24
+ getAllSponsoredProducts: GetAllSponsoredProductFromNativeIdFn;
25
+ getRecommendedProduct: GetRecommendedProductFromProductIdFn;
26
+ generateTopProducts: NonPersonalRecommenderFn;
27
+ generateForYou: PersonalRecommenderFn;
28
+ generatePreviousPurchases: PersonalRecommenderFn;
29
+ buildAllProductCardResponses: BuildAllSponsoredProductCardResponsesFn;
30
+ generateProductCardResponse: GenerateSponsoredProductCardResponseFn;
31
+ buildBannerResponse: BuildBannerResponseFn;
32
+ buildVideoResponse: BuildVideoResponseFn;
33
+ buildAllResponses: BuildAllResponsesFn;
34
+ getDynamicZone: GetDynamicZoneFn;
35
+ generateAllResponses: GenerateAllResponsesFn;
36
+ evaluateProductCardTemplate: EvaluateProductCardTemplateFn;
37
+ evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn;
38
+ handlebars: typeof Handlebars;
39
+ screenInfo: IScreen;
40
+ windowInfo: INativeTemplateDelegateWindow;
41
+ navigator: INavigator;
42
+ mobile: boolean;
43
+ ip: string | undefined;
44
+ geoProviderToken: string | undefined;
45
+ accountId: string;
46
+ siteId: string;
47
+ channelId: string;
48
+ locationId: string;
49
+ userId: string | undefined;
50
+ }) => AsyncResult<ISurfsideClientApi>;
51
+ export declare const InitSurfAdsCoreClientServices: (logger: ILogger | undefined, bidderServiceUrl: string, configurationServiceUrl: string, productFeedUrl: string, recommendedProductFeedUrl: string, recommenderServiceUrl: string, dynamicZoneServiceUrl: string, windowInfo: INativeTemplateDelegateWindow, screenInfo: IScreen, navigator: INavigator, mobile: boolean, ip: string | undefined, geoProviderToken: string | undefined, accountId: string, siteId: string, channelId: string, locationId: string, userId: string | undefined) => AsyncResult<ISurfsideClientApi>;
52
+ export declare const InitSurfAdsCoreClient: (accountId: string, siteId: string, channelId: string, locationId: string, userId: string | undefined, logger?: ILogger) => AsyncResult<ISurfsideClientApi>;
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@surfside/ads-core-client",
3
+ "module": "./lib/esm/index.js",
4
+ "main": "./lib/cjs/index.js",
5
+ "types": "./lib/types/index.d.ts",
6
+ "version": "0.1.0",
7
+ "license": "UNLICENSED",
8
+ "files": [
9
+ "lib/",
10
+ "README.md"
11
+ ],
12
+ "type": "module",
13
+ "scripts": {
14
+ "build": "bun run bun.build.ts",
15
+ "lint": "npx eslint"
16
+ },
17
+ "dependencies": {
18
+ "@surfside/ads-core": "^2.0.0"
19
+ },
20
+ "devDependencies": {
21
+ "@types/bun": "latest"
22
+ },
23
+ "peerDependencies": {
24
+ "typescript": "^5"
25
+ }
26
+ }