shared-features 0.0.1
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/README.md +200 -0
- package/dist/AdPanel-D0BiV6Xb.cjs +88 -0
- package/dist/AdPanel-D0BiV6Xb.cjs.map +1 -0
- package/dist/AdPanel-RGRBf4ub.js +89 -0
- package/dist/AdPanel-RGRBf4ub.js.map +1 -0
- package/dist/analytics-6shJHRZG.cjs +463 -0
- package/dist/analytics-6shJHRZG.cjs.map +1 -0
- package/dist/analytics-Bbmodnm_.js +442 -0
- package/dist/analytics-Bbmodnm_.js.map +1 -0
- package/dist/components/ads/AdPanel.d.ts +12 -0
- package/dist/components/ads/AdPanel.d.ts.map +1 -0
- package/dist/components/ads/index.d.ts +9 -0
- package/dist/components/ads/index.d.ts.map +1 -0
- package/dist/components/index.cjs +5 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/firebase/config.d.ts +77 -0
- package/dist/firebase/config.d.ts.map +1 -0
- package/dist/firebase/init.d.ts +55 -0
- package/dist/firebase/init.d.ts.map +1 -0
- package/dist/hooks/index.cjs +6 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useCampaigns.d.ts +59 -0
- package/dist/hooks/useCampaigns.d.ts.map +1 -0
- package/dist/index.cjs +37 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/services/analytics.d.ts +32 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/campaigns.d.ts +31 -0
- package/dist/services/campaigns.d.ts.map +1 -0
- package/dist/services/index.cjs +18 -0
- package/dist/services/index.cjs.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/campaigns.d.ts +378 -0
- package/dist/types/campaigns.d.ts.map +1 -0
- package/dist/types/index.cjs +49 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +49 -0
- package/dist/types/index.js.map +1 -0
- package/dist/useCampaigns-3NxODLLs.js +98 -0
- package/dist/useCampaigns-3NxODLLs.js.map +1 -0
- package/dist/useCampaigns-BNOHpETm.cjs +97 -0
- package/dist/useCampaigns-BNOHpETm.cjs.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { FirebaseApp } from 'firebase/app';
|
|
2
|
+
import { Firestore } from 'firebase/firestore';
|
|
3
|
+
import { Auth } from 'firebase/auth';
|
|
4
|
+
import { SharedFeaturesConfig } from './config';
|
|
5
|
+
/**
|
|
6
|
+
* Initialize shared-features with the given configuration.
|
|
7
|
+
*
|
|
8
|
+
* This creates a secondary Firebase app connection to aoneahsan.com's
|
|
9
|
+
* Firebase project, separate from the consumer project's own Firebase.
|
|
10
|
+
*
|
|
11
|
+
* @param config - Configuration object
|
|
12
|
+
* @returns Initialized state object
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { initSharedFeatures } from 'shared-features';
|
|
17
|
+
*
|
|
18
|
+
* const sharedFeatures = initSharedFeatures({
|
|
19
|
+
* firebaseConfig: {
|
|
20
|
+
* apiKey: import.meta.env.VITE_ZAIONS_FIREBASE_API_KEY,
|
|
21
|
+
* authDomain: 'aoneahsan-portfolio.firebaseapp.com',
|
|
22
|
+
* projectId: 'aoneahsan-portfolio',
|
|
23
|
+
* },
|
|
24
|
+
* projectId: 'ztools',
|
|
25
|
+
* projectName: 'ZTools',
|
|
26
|
+
* platform: 'web',
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function initSharedFeatures(config: SharedFeaturesConfig): Promise<{
|
|
31
|
+
app: FirebaseApp;
|
|
32
|
+
db: Firestore;
|
|
33
|
+
auth: Auth;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Get the shared-features Firebase app instance.
|
|
37
|
+
* Throws if not initialized.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSharedFeaturesApp(): FirebaseApp;
|
|
40
|
+
/**
|
|
41
|
+
* Get the shared-features Firestore instance.
|
|
42
|
+
* Throws if not initialized.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getSharedFeaturesDb(): Firestore;
|
|
45
|
+
/**
|
|
46
|
+
* Get the shared-features Auth instance.
|
|
47
|
+
* Throws if not initialized.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getSharedFeaturesAuth(): Auth;
|
|
50
|
+
/**
|
|
51
|
+
* Get the device ID for anonymous tracking.
|
|
52
|
+
* Returns null if not initialized.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getDeviceId(): string | null;
|
|
55
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/firebase/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA0B,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAgB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAW,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAIrB,MAAM,UAAU,CAAC;AAkDlB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAoD1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAOlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAO/C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const useCampaigns = require("../useCampaigns-BNOHpETm.cjs");
|
|
4
|
+
exports.useCampaign = useCampaigns.useCampaign;
|
|
5
|
+
exports.useCampaigns = useCampaigns.useCampaigns;
|
|
6
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all React hooks from the shared-features package.
|
|
5
|
+
*
|
|
6
|
+
* @author Ahsan Mahmood <aoneahsan@gmail.com>
|
|
7
|
+
*/
|
|
8
|
+
export { useCampaigns, useCampaign } from './useCampaigns';
|
|
9
|
+
export type { UseCampaignsOptions, UseCampaignsResult } from './useCampaigns';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CampaignWithProduct, AdPlacement, SmallPanelVariant, LargePanelVariant } from '../types/campaigns';
|
|
2
|
+
export interface UseCampaignsOptions {
|
|
3
|
+
/** Placement to fetch campaigns for */
|
|
4
|
+
placement: AdPlacement;
|
|
5
|
+
/** Maximum number of campaigns to fetch */
|
|
6
|
+
maxCampaigns?: number;
|
|
7
|
+
/** Whether to auto-fetch on mount (default: true) */
|
|
8
|
+
autoFetch?: boolean;
|
|
9
|
+
/** Default variant for small placements */
|
|
10
|
+
defaultSmallVariant?: SmallPanelVariant;
|
|
11
|
+
/** Default variant for large placements */
|
|
12
|
+
defaultLargeVariant?: LargePanelVariant;
|
|
13
|
+
}
|
|
14
|
+
export interface UseCampaignsResult {
|
|
15
|
+
/** List of eligible campaigns with product data */
|
|
16
|
+
campaigns: CampaignWithProduct[];
|
|
17
|
+
/** Single campaign (first eligible) - convenience accessor */
|
|
18
|
+
campaign: CampaignWithProduct | null;
|
|
19
|
+
/** Whether campaigns are being fetched */
|
|
20
|
+
loading: boolean;
|
|
21
|
+
/** Error message if fetch failed */
|
|
22
|
+
error: string | null;
|
|
23
|
+
/** Refetch campaigns */
|
|
24
|
+
refetch: () => Promise<void>;
|
|
25
|
+
/** Record impression for a campaign */
|
|
26
|
+
recordImpression: (campaign: CampaignWithProduct) => Promise<void>;
|
|
27
|
+
/** Record click for a campaign */
|
|
28
|
+
recordClick: (campaign: CampaignWithProduct) => Promise<void>;
|
|
29
|
+
/** Record close/dismiss for a campaign */
|
|
30
|
+
recordClose: (campaign: CampaignWithProduct) => Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hook to fetch and manage campaigns for a specific placement
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* const { campaigns, loading, recordImpression, recordClick } = useCampaigns({
|
|
38
|
+
* placement: 'footer_slider',
|
|
39
|
+
* maxCampaigns: 5,
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* if (loading) return <Spinner />;
|
|
43
|
+
*
|
|
44
|
+
* return (
|
|
45
|
+
* <AdSlider
|
|
46
|
+
* campaigns={campaigns}
|
|
47
|
+
* onImpression={recordImpression}
|
|
48
|
+
* onClick={recordClick}
|
|
49
|
+
* />
|
|
50
|
+
* );
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function useCampaigns(options: UseCampaignsOptions): UseCampaignsResult;
|
|
54
|
+
/**
|
|
55
|
+
* Hook to fetch a single campaign for a placement
|
|
56
|
+
* Convenience wrapper around useCampaigns
|
|
57
|
+
*/
|
|
58
|
+
export declare function useCampaign(options: Omit<UseCampaignsOptions, 'maxCampaigns'>): UseCampaignsResult;
|
|
59
|
+
//# sourceMappingURL=useCampaigns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCampaigns.d.ts","sourceRoot":"","sources":["../../src/hooks/useCampaigns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,EAAE,WAAW,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,uCAAuC;IACvC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,kCAAkC;IAClC,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0CAA0C;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgH7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,sBAE7E"}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const analytics = require("./analytics-6shJHRZG.cjs");
|
|
4
|
+
const types_index = require("./types/index.cjs");
|
|
5
|
+
const useCampaigns = require("./useCampaigns-BNOHpETm.cjs");
|
|
6
|
+
const AdPanel = require("./AdPanel-D0BiV6Xb.cjs");
|
|
7
|
+
exports.clearCampaignsCache = analytics.clearCampaignsCache;
|
|
8
|
+
exports.clearProductsCache = analytics.clearProductsCache;
|
|
9
|
+
exports.fetchActiveCampaigns = analytics.fetchActiveCampaigns;
|
|
10
|
+
exports.fetchCampaigns = analytics.fetchCampaigns;
|
|
11
|
+
exports.fetchProducts = analytics.fetchProducts;
|
|
12
|
+
exports.getCampaignById = analytics.getCampaignById;
|
|
13
|
+
exports.getCampaignHistory = analytics.getCampaignHistory;
|
|
14
|
+
exports.getConfig = analytics.getConfig;
|
|
15
|
+
exports.getDeviceId = analytics.getDeviceId;
|
|
16
|
+
exports.getEligibleCampaignIds = analytics.getEligibleCampaignIds;
|
|
17
|
+
exports.getProductById = analytics.getProductById;
|
|
18
|
+
exports.getSharedFeaturesApp = analytics.getSharedFeaturesApp;
|
|
19
|
+
exports.getSharedFeaturesAuth = analytics.getSharedFeaturesAuth;
|
|
20
|
+
exports.getSharedFeaturesDb = analytics.getSharedFeaturesDb;
|
|
21
|
+
exports.initSharedFeatures = analytics.initSharedFeatures;
|
|
22
|
+
exports.isEligibleForCampaign = analytics.isEligibleForCampaign;
|
|
23
|
+
exports.isInitialized = analytics.isInitialized;
|
|
24
|
+
exports.recordImpression = analytics.recordImpression;
|
|
25
|
+
exports.trackClick = analytics.trackClick;
|
|
26
|
+
exports.trackClose = analytics.trackClose;
|
|
27
|
+
exports.trackImpression = analytics.trackImpression;
|
|
28
|
+
exports.COLLECTIONS = types_index.COLLECTIONS;
|
|
29
|
+
exports.DEFAULT_CAMPAIGN_PRIORITY = types_index.DEFAULT_CAMPAIGN_PRIORITY;
|
|
30
|
+
exports.DEFAULT_FREQUENCY_DAYS = types_index.DEFAULT_FREQUENCY_DAYS;
|
|
31
|
+
exports.PLACEMENT_NAMES = types_index.PLACEMENT_NAMES;
|
|
32
|
+
exports.PLATFORM_NAMES = types_index.PLATFORM_NAMES;
|
|
33
|
+
exports.VARIANT_NAMES = types_index.VARIANT_NAMES;
|
|
34
|
+
exports.useCampaign = useCampaigns.useCampaign;
|
|
35
|
+
exports.useCampaigns = useCampaigns.useCampaigns;
|
|
36
|
+
exports.AdPanel = AdPanel.AdPanel;
|
|
37
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* shared-features
|
|
3
|
+
*
|
|
4
|
+
* Centralized common features for Zaions projects.
|
|
5
|
+
* All data is managed from aoneahsan.com admin panel.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Advertising campaigns (cross-promotion)
|
|
9
|
+
* - Products catalog
|
|
10
|
+
* - Contact forms (coming soon)
|
|
11
|
+
* - Feature requests (coming soon)
|
|
12
|
+
* - Payment options (coming soon)
|
|
13
|
+
* - Social links (coming soon)
|
|
14
|
+
* - Developer info (coming soon)
|
|
15
|
+
*
|
|
16
|
+
* @author Ahsan Mahmood <aoneahsan@gmail.com>
|
|
17
|
+
* @license MIT
|
|
18
|
+
*/
|
|
19
|
+
export { initSharedFeatures, getSharedFeaturesApp, getSharedFeaturesDb, getSharedFeaturesAuth, getDeviceId, } from './firebase/init';
|
|
20
|
+
export { getConfig, isInitialized, } from './firebase/config';
|
|
21
|
+
export * from './types';
|
|
22
|
+
export * from './services';
|
|
23
|
+
export * from './hooks';
|
|
24
|
+
export * from './components';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,mBAAmB,CAAC;AAM3B,cAAc,SAAS,CAAC;AAMxB,cAAc,YAAY,CAAC;AAM3B,cAAc,SAAS,CAAC;AAMxB,cAAc,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { m, n, h, f, k, j, u, d, c, s, l, g, b, a, i, q, e, r, o, p, t } from "./analytics-Bbmodnm_.js";
|
|
2
|
+
import { COLLECTIONS, DEFAULT_CAMPAIGN_PRIORITY, DEFAULT_FREQUENCY_DAYS, PLACEMENT_NAMES, PLATFORM_NAMES, VARIANT_NAMES } from "./types/index.js";
|
|
3
|
+
import { a as a2, u as u2 } from "./useCampaigns-3NxODLLs.js";
|
|
4
|
+
import { A } from "./AdPanel-RGRBf4ub.js";
|
|
5
|
+
export {
|
|
6
|
+
A as AdPanel,
|
|
7
|
+
COLLECTIONS,
|
|
8
|
+
DEFAULT_CAMPAIGN_PRIORITY,
|
|
9
|
+
DEFAULT_FREQUENCY_DAYS,
|
|
10
|
+
PLACEMENT_NAMES,
|
|
11
|
+
PLATFORM_NAMES,
|
|
12
|
+
VARIANT_NAMES,
|
|
13
|
+
m as clearCampaignsCache,
|
|
14
|
+
n as clearProductsCache,
|
|
15
|
+
h as fetchActiveCampaigns,
|
|
16
|
+
f as fetchCampaigns,
|
|
17
|
+
k as fetchProducts,
|
|
18
|
+
j as getCampaignById,
|
|
19
|
+
u as getCampaignHistory,
|
|
20
|
+
d as getConfig,
|
|
21
|
+
c as getDeviceId,
|
|
22
|
+
s as getEligibleCampaignIds,
|
|
23
|
+
l as getProductById,
|
|
24
|
+
g as getSharedFeaturesApp,
|
|
25
|
+
b as getSharedFeaturesAuth,
|
|
26
|
+
a as getSharedFeaturesDb,
|
|
27
|
+
i as initSharedFeatures,
|
|
28
|
+
q as isEligibleForCampaign,
|
|
29
|
+
e as isInitialized,
|
|
30
|
+
r as recordImpression,
|
|
31
|
+
o as trackClick,
|
|
32
|
+
p as trackClose,
|
|
33
|
+
t as trackImpression,
|
|
34
|
+
a2 as useCampaign,
|
|
35
|
+
u2 as useCampaigns
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AdPlacement, AdVariant, RecordImpressionInput, AdHistoryEntry } from '../types/campaigns';
|
|
2
|
+
/**
|
|
3
|
+
* Check if user is eligible to see a campaign (based on frequency capping)
|
|
4
|
+
*/
|
|
5
|
+
export declare function isEligibleForCampaign(campaignId: string, _frequencyDays?: number): Promise<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Get all campaigns the user is currently eligible to see
|
|
8
|
+
*/
|
|
9
|
+
export declare function getEligibleCampaignIds(): Promise<string[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Get local ad history for a campaign
|
|
12
|
+
*/
|
|
13
|
+
export declare function getCampaignHistory(campaignId: string): Promise<AdHistoryEntry | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Record an ad impression, click, or close
|
|
16
|
+
*
|
|
17
|
+
* This sends the event to the centralized Firebase and updates local history.
|
|
18
|
+
*/
|
|
19
|
+
export declare function recordImpression(input: RecordImpressionInput, frequencyDays?: number): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Convenience function to record an impression
|
|
22
|
+
*/
|
|
23
|
+
export declare function trackImpression(campaignId: string, productId: string, placement: AdPlacement, variant: AdVariant, frequencyDays?: number): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Convenience function to record a click
|
|
26
|
+
*/
|
|
27
|
+
export declare function trackClick(campaignId: string, productId: string, placement: AdPlacement, variant: AdVariant): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Convenience function to record a close/dismiss
|
|
30
|
+
*/
|
|
31
|
+
export declare function trackClose(campaignId: string, productId: string, placement: AdPlacement, variant: AdVariant): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/services/analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAEV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,cAAc,EACf,MAAM,oBAAoB,CAAC;AA2G5B;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,MAAW,GAC1B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGhC;AAMD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,qBAAqB,EAC5B,aAAa,GAAE,MAAW,GACzB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,SAAS,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Campaign, CampaignWithProduct, Product, AdPlacement, FetchCampaignsOptions } from '../types/campaigns';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch all products from Firestore
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchProducts(): Promise<Product[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Get a product by ID (uses cache if available)
|
|
8
|
+
*/
|
|
9
|
+
export declare function getProductById(productId: string): Promise<Product | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Fetch campaigns with optional filters
|
|
12
|
+
*/
|
|
13
|
+
export declare function fetchCampaigns(options?: FetchCampaignsOptions): Promise<Campaign[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Fetch active campaigns for a specific placement
|
|
16
|
+
* Returns campaigns with resolved product data
|
|
17
|
+
*/
|
|
18
|
+
export declare function fetchActiveCampaigns(placement: AdPlacement): Promise<CampaignWithProduct[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a single campaign by ID
|
|
21
|
+
*/
|
|
22
|
+
export declare function getCampaignById(campaignId: string): Promise<Campaign | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Clear the campaigns cache (useful for manual refresh)
|
|
25
|
+
*/
|
|
26
|
+
export declare function clearCampaignsCache(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Clear the products cache
|
|
29
|
+
*/
|
|
30
|
+
export declare function clearProductsCache(): void;
|
|
31
|
+
//# sourceMappingURL=campaigns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/services/campaigns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAeH,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,WAAW,EAEX,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAsG5B;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CASxD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAmBzB;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgErB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAqChC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAM1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const analytics = require("../analytics-6shJHRZG.cjs");
|
|
4
|
+
exports.clearCampaignsCache = analytics.clearCampaignsCache;
|
|
5
|
+
exports.clearProductsCache = analytics.clearProductsCache;
|
|
6
|
+
exports.fetchActiveCampaigns = analytics.fetchActiveCampaigns;
|
|
7
|
+
exports.fetchCampaigns = analytics.fetchCampaigns;
|
|
8
|
+
exports.fetchProducts = analytics.fetchProducts;
|
|
9
|
+
exports.getCampaignById = analytics.getCampaignById;
|
|
10
|
+
exports.getCampaignHistory = analytics.getCampaignHistory;
|
|
11
|
+
exports.getEligibleCampaignIds = analytics.getEligibleCampaignIds;
|
|
12
|
+
exports.getProductById = analytics.getProductById;
|
|
13
|
+
exports.isEligibleForCampaign = analytics.isEligibleForCampaign;
|
|
14
|
+
exports.recordImpression = analytics.recordImpression;
|
|
15
|
+
exports.trackClick = analytics.trackClick;
|
|
16
|
+
exports.trackClose = analytics.trackClose;
|
|
17
|
+
exports.trackImpression = analytics.trackImpression;
|
|
18
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Services Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all services from the shared-features package.
|
|
5
|
+
*
|
|
6
|
+
* @author Ahsan Mahmood <aoneahsan@gmail.com>
|
|
7
|
+
*/
|
|
8
|
+
export { fetchCampaigns, fetchActiveCampaigns, getCampaignById, fetchProducts, getProductById, clearCampaignsCache, clearProductsCache, } from './campaigns';
|
|
9
|
+
export { recordImpression, trackImpression, trackClick, trackClose, isEligibleForCampaign, getEligibleCampaignIds, getCampaignHistory, } from './analytics';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { m, n, h, f, k, j, u, s, l, q, r, o, p, t } from "../analytics-Bbmodnm_.js";
|
|
2
|
+
export {
|
|
3
|
+
m as clearCampaignsCache,
|
|
4
|
+
n as clearProductsCache,
|
|
5
|
+
h as fetchActiveCampaigns,
|
|
6
|
+
f as fetchCampaigns,
|
|
7
|
+
k as fetchProducts,
|
|
8
|
+
j as getCampaignById,
|
|
9
|
+
u as getCampaignHistory,
|
|
10
|
+
s as getEligibleCampaignIds,
|
|
11
|
+
l as getProductById,
|
|
12
|
+
q as isEligibleForCampaign,
|
|
13
|
+
r as recordImpression,
|
|
14
|
+
o as trackClick,
|
|
15
|
+
p as trackClose,
|
|
16
|
+
t as trackImpression
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|