react-native-test-adx 0.1.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.
Files changed (79) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +333 -0
  3. package/lib/module/AdaxonSdk.js +120 -0
  4. package/lib/module/components/AdaxonProvider.js +46 -0
  5. package/lib/module/config/ApiConstants.js +18 -0
  6. package/lib/module/config/StorageKeys.js +12 -0
  7. package/lib/module/core/AdaxonClient.js +88 -0
  8. package/lib/module/errors/AdaxonSdkError.js +23 -0
  9. package/lib/module/hooks/useAdaxon.js +35 -0
  10. package/lib/module/index.js +10 -0
  11. package/lib/module/package.json +1 -0
  12. package/lib/module/platform/android.js +10 -0
  13. package/lib/module/platform/app.js +18 -0
  14. package/lib/module/platform/ios.js +11 -0
  15. package/lib/module/platform/network.js +61 -0
  16. package/lib/module/platform/reactNative.js +78 -0
  17. package/lib/module/platform/types.js +3 -0
  18. package/lib/module/services/app/AppInfoService.js +25 -0
  19. package/lib/module/services/authentication/AuthenticationService.js +26 -0
  20. package/lib/module/services/device/DeviceInfoService.js +22 -0
  21. package/lib/module/services/event/BatchProcessor.js +64 -0
  22. package/lib/module/services/event/EventBuilder.js +43 -0
  23. package/lib/module/services/event/EventQueueService.js +35 -0
  24. package/lib/module/services/event/EventService.js +42 -0
  25. package/lib/module/services/event/normalizeProperties.js +42 -0
  26. package/lib/module/services/event/predefined.js +13 -0
  27. package/lib/module/services/network/ApiClient.js +62 -0
  28. package/lib/module/services/network/NetworkInfoService.js +69 -0
  29. package/lib/module/state/AdaxonContext.js +7 -0
  30. package/lib/module/storage/AnonymousIdService.js +31 -0
  31. package/lib/module/storage/EventQueueStorage.js +143 -0
  32. package/lib/module/storage/memoryStorage.js +16 -0
  33. package/lib/module/types/AdaxonConfig.js +3 -0
  34. package/lib/module/types/ApiTypes.js +1 -0
  35. package/lib/module/types/EventTypes.js +1 -0
  36. package/lib/module/types/QueuedEvent.js +3 -0
  37. package/lib/module/utils/locale.js +15 -0
  38. package/lib/module/utils/strings.js +17 -0
  39. package/lib/module/utils/uuid.js +13 -0
  40. package/lib/module/validation/EventValidator.js +63 -0
  41. package/lib/typescript/package.json +1 -0
  42. package/lib/typescript/src/AdaxonSdk.d.ts +28 -0
  43. package/lib/typescript/src/components/AdaxonProvider.d.ts +11 -0
  44. package/lib/typescript/src/config/ApiConstants.d.ts +17 -0
  45. package/lib/typescript/src/config/StorageKeys.d.ts +5 -0
  46. package/lib/typescript/src/core/AdaxonClient.d.ts +29 -0
  47. package/lib/typescript/src/errors/AdaxonSdkError.d.ts +15 -0
  48. package/lib/typescript/src/hooks/useAdaxon.d.ts +19 -0
  49. package/lib/typescript/src/index.d.ts +19 -0
  50. package/lib/typescript/src/platform/android.d.ts +10 -0
  51. package/lib/typescript/src/platform/app.d.ts +14 -0
  52. package/lib/typescript/src/platform/ios.d.ts +8 -0
  53. package/lib/typescript/src/platform/network.d.ts +6 -0
  54. package/lib/typescript/src/platform/reactNative.d.ts +8 -0
  55. package/lib/typescript/src/platform/types.d.ts +15 -0
  56. package/lib/typescript/src/services/app/AppInfoService.d.ts +11 -0
  57. package/lib/typescript/src/services/authentication/AuthenticationService.d.ts +10 -0
  58. package/lib/typescript/src/services/device/DeviceInfoService.d.ts +10 -0
  59. package/lib/typescript/src/services/event/BatchProcessor.d.ts +19 -0
  60. package/lib/typescript/src/services/event/EventBuilder.d.ts +25 -0
  61. package/lib/typescript/src/services/event/EventQueueService.d.ts +13 -0
  62. package/lib/typescript/src/services/event/EventService.d.ts +23 -0
  63. package/lib/typescript/src/services/event/normalizeProperties.d.ts +26 -0
  64. package/lib/typescript/src/services/event/predefined.d.ts +14 -0
  65. package/lib/typescript/src/services/network/ApiClient.d.ts +14 -0
  66. package/lib/typescript/src/services/network/NetworkInfoService.d.ts +14 -0
  67. package/lib/typescript/src/state/AdaxonContext.d.ts +9 -0
  68. package/lib/typescript/src/storage/AnonymousIdService.d.ts +11 -0
  69. package/lib/typescript/src/storage/EventQueueStorage.d.ts +21 -0
  70. package/lib/typescript/src/storage/memoryStorage.d.ts +3 -0
  71. package/lib/typescript/src/types/AdaxonConfig.d.ts +30 -0
  72. package/lib/typescript/src/types/ApiTypes.d.ts +31 -0
  73. package/lib/typescript/src/types/EventTypes.d.ts +65 -0
  74. package/lib/typescript/src/types/QueuedEvent.d.ts +16 -0
  75. package/lib/typescript/src/utils/locale.d.ts +3 -0
  76. package/lib/typescript/src/utils/strings.d.ts +3 -0
  77. package/lib/typescript/src/utils/uuid.d.ts +3 -0
  78. package/lib/typescript/src/validation/EventValidator.d.ts +13 -0
  79. package/package.json +107 -0
@@ -0,0 +1,10 @@
1
+ import type { DeviceInfoReader } from '../../platform/types.js';
2
+ import type { AdaxonDeviceContext, AdaxonPlatform } from '../../types/EventTypes.js';
3
+ export declare class DeviceInfoService {
4
+ private readonly platform;
5
+ private readonly reader?;
6
+ private cached?;
7
+ constructor(platform: AdaxonPlatform, reader?: DeviceInfoReader | undefined);
8
+ getDeviceInfo(): AdaxonDeviceContext;
9
+ }
10
+ //# sourceMappingURL=DeviceInfoService.d.ts.map
@@ -0,0 +1,19 @@
1
+ import type { EventIngestionResponse } from '../../types/ApiTypes.js';
2
+ import type { EventPayload } from '../../types/EventTypes.js';
3
+ import type { BatchProcessResult } from '../../types/QueuedEvent.js';
4
+ import type { EventQueueService } from './EventQueueService.js';
5
+ type BatchSender = (payloads: readonly EventPayload[]) => Promise<EventIngestionResponse>;
6
+ interface BatchProcessorConfig {
7
+ queue: EventQueueService;
8
+ sendBatch: BatchSender;
9
+ }
10
+ export declare class BatchProcessor {
11
+ private readonly queue;
12
+ private readonly sendBatch;
13
+ constructor(config: BatchProcessorConfig);
14
+ process(): Promise<BatchProcessResult>;
15
+ private stopped;
16
+ private result;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=BatchProcessor.d.ts.map
@@ -0,0 +1,25 @@
1
+ import type { AppInfoService } from '../app/AppInfoService.js';
2
+ import type { DeviceInfoService } from '../device/DeviceInfoService.js';
3
+ import type { NetworkInfoService } from '../network/NetworkInfoService.js';
4
+ import type { AnonymousIdService } from '../../storage/AnonymousIdService.js';
5
+ import type { EventPayload, TrackEventInput } from '../../types/EventTypes.js';
6
+ import type { EventValidator } from '../../validation/EventValidator.js';
7
+ interface EventBuilderConfig {
8
+ appId: string;
9
+ deviceInfo: DeviceInfoService;
10
+ appInfo: AppInfoService;
11
+ networkInfo: NetworkInfoService;
12
+ anonymousId: AnonymousIdService;
13
+ validator: EventValidator;
14
+ externalUserId?: string;
15
+ }
16
+ export declare class EventBuilder {
17
+ private readonly config;
18
+ private readonly sessionId;
19
+ private externalUserId?;
20
+ constructor(config: EventBuilderConfig);
21
+ setExternalUserId(externalUserId?: string): void;
22
+ build(input: TrackEventInput): Promise<EventPayload>;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=EventBuilder.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { EventQueueStorage } from '../../storage/EventQueueStorage.js';
2
+ import type { EventPayload } from '../../types/EventTypes.js';
3
+ import type { QueuedEvent } from '../../types/QueuedEvent.js';
4
+ export declare class EventQueueService {
5
+ private readonly storage;
6
+ constructor(storage: EventQueueStorage);
7
+ add(payload: EventPayload): Promise<QueuedEvent>;
8
+ getNextBatch(limit?: number): Promise<QueuedEvent[]>;
9
+ remove(events: readonly QueuedEvent[]): Promise<void>;
10
+ tryAcquireProcessorLock(): boolean;
11
+ releaseProcessorLock(): void;
12
+ }
13
+ //# sourceMappingURL=EventQueueService.d.ts.map
@@ -0,0 +1,23 @@
1
+ import type { ApiClient } from '../network/ApiClient.js';
2
+ import type { EventIngestionResponse, RecommendationResponse } from '../../types/ApiTypes.js';
3
+ import type { EventPayload, EventProperties, TrackEventInput, TrackEventOptions } from '../../types/EventTypes.js';
4
+ import type { EventBuilder } from './EventBuilder.js';
5
+ import type { EventValidator } from '../../validation/EventValidator.js';
6
+ interface EventServiceConfig {
7
+ api: ApiClient;
8
+ builder: EventBuilder;
9
+ validator: EventValidator;
10
+ }
11
+ export declare class EventService {
12
+ private readonly api;
13
+ private readonly builder;
14
+ private readonly validator;
15
+ constructor(config: EventServiceConfig);
16
+ track(eventName: string, properties?: EventProperties, options?: TrackEventOptions): Promise<EventIngestionResponse>;
17
+ trackBatch(events: readonly TrackEventInput[]): Promise<EventIngestionResponse>;
18
+ sendPayloads(payloads: readonly EventPayload[]): Promise<EventIngestionResponse>;
19
+ getRecommendations(input: TrackEventInput): Promise<RecommendationResponse>;
20
+ private postEvents;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=EventService.d.ts.map
@@ -0,0 +1,26 @@
1
+ import type { EventProperties, EventPropertyValue } from '../../types/EventTypes.js';
2
+ export interface TrackPurchaseParams {
3
+ order_id?: string;
4
+ amount?: number;
5
+ currency?: string;
6
+ content_id?: string;
7
+ product_id?: string;
8
+ [key: string]: EventPropertyValue | undefined;
9
+ }
10
+ export interface TrackAddToCartParams {
11
+ product_id?: string;
12
+ price?: number;
13
+ currency?: string;
14
+ content_id?: string;
15
+ quantity?: number;
16
+ [key: string]: EventPropertyValue | undefined;
17
+ }
18
+ export interface TrackLoginParams {
19
+ method?: string;
20
+ [key: string]: EventPropertyValue | undefined;
21
+ }
22
+ export type TrackCompleteRegistrationParams = TrackLoginParams;
23
+ export declare function normalizeEventValues(values: unknown): EventProperties;
24
+ export declare function buildPurchaseProperties(params: TrackPurchaseParams): Record<string, unknown>;
25
+ export declare function buildAddToCartProperties(params: TrackAddToCartParams): Record<string, unknown>;
26
+ //# sourceMappingURL=normalizeProperties.d.ts.map
@@ -0,0 +1,14 @@
1
+ export declare const AdxEvent: {
2
+ readonly PURCHASE: "adx_purchase";
3
+ readonly ADD_TO_CART: "adx_add_to_cart";
4
+ readonly LOGIN: "adx_login";
5
+ readonly COMPLETE_REGISTRATION: "adx_complete_registration";
6
+ };
7
+ export type AdxEventName = (typeof AdxEvent)[keyof typeof AdxEvent];
8
+ export declare const AdxParam: {
9
+ readonly REVENUE: "adx_revenue";
10
+ readonly CURRENCY: "adx_currency";
11
+ readonly CONTENT_ID: "adx_content_id";
12
+ };
13
+ export type AdxParamName = (typeof AdxParam)[keyof typeof AdxParam];
14
+ //# sourceMappingURL=predefined.d.ts.map
@@ -0,0 +1,14 @@
1
+ interface ApiClientConfig {
2
+ sdkKey: string;
3
+ timeoutMs: number;
4
+ fetch?: typeof globalThis.fetch;
5
+ }
6
+ export declare class ApiClient {
7
+ private readonly config;
8
+ private readonly fetchImplementation;
9
+ constructor(config: ApiClientConfig);
10
+ post<TResponse>(path: string, body: unknown): Promise<TResponse>;
11
+ private parseJson;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=ApiClient.d.ts.map
@@ -0,0 +1,14 @@
1
+ import type { NetworkInfoReader } from '../../platform/types.js';
2
+ import type { AdaxonNetworkContext } from '../../types/EventTypes.js';
3
+ export declare function blankNetworkContext(): AdaxonNetworkContext;
4
+ export declare class NetworkInfoService {
5
+ private readonly reader?;
6
+ private readonly lookupPublicIp;
7
+ private cached?;
8
+ constructor(reader?: NetworkInfoReader | undefined, lookupPublicIp?: () => Promise<string | undefined>);
9
+ getNetworkInfo(): Promise<AdaxonNetworkContext>;
10
+ private collect;
11
+ private resolvePublicIp;
12
+ }
13
+ export declare function lookupPublicIpAddress(fetchImpl?: typeof fetch | undefined): Promise<string | undefined>;
14
+ //# sourceMappingURL=NetworkInfoService.d.ts.map
@@ -0,0 +1,9 @@
1
+ import type { AdaxonSdk } from '../AdaxonSdk.js';
2
+ /** Framework state only — event results are never stored here (avoids re-renders). */
3
+ export interface AdaxonContextValue {
4
+ isInitialized: boolean;
5
+ initializationError: string | null;
6
+ sdk: AdaxonSdk;
7
+ }
8
+ export declare const AdaxonContext: import("react").Context<AdaxonContextValue | null>;
9
+ //# sourceMappingURL=AdaxonContext.d.ts.map
@@ -0,0 +1,11 @@
1
+ import type { AdaxonStorageAdapter } from '../types/AdaxonConfig.js';
2
+ export declare class AnonymousIdService {
3
+ private readonly appId;
4
+ private readonly storage?;
5
+ private anonymousIdPromise?;
6
+ constructor(appId: string, storage?: AdaxonStorageAdapter | undefined);
7
+ getAnonymousId(): Promise<string>;
8
+ private get storageKey();
9
+ private loadOrCreate;
10
+ }
11
+ //# sourceMappingURL=AnonymousIdService.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { AdaxonStorageAdapter } from '../types/AdaxonConfig.js';
2
+ import type { QueuedEvent } from '../types/QueuedEvent.js';
3
+ export declare class EventQueueStorage {
4
+ readonly lockId: string;
5
+ private readonly storage;
6
+ private writeChain;
7
+ constructor(appId: string, storage?: AdaxonStorageAdapter);
8
+ append(event: Omit<QueuedEvent, 'sequence'>): Promise<QueuedEvent>;
9
+ getNext(limit: number): Promise<QueuedEvent[]>;
10
+ remove(events: readonly QueuedEvent[]): Promise<void>;
11
+ private enqueueWrite;
12
+ private readMeta;
13
+ private writeMeta;
14
+ private readItemValue;
15
+ private parseQueuedEvent;
16
+ private isQueuedEvent;
17
+ private deleteItem;
18
+ private get metaKey();
19
+ private itemKey;
20
+ }
21
+ //# sourceMappingURL=EventQueueStorage.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { AdaxonStorageAdapter } from '../types/AdaxonConfig.js';
2
+ export declare function createMemoryStorage(): AdaxonStorageAdapter;
3
+ //# sourceMappingURL=memoryStorage.d.ts.map
@@ -0,0 +1,30 @@
1
+ import type { RecommendationOffer } from './ApiTypes.js';
2
+ export interface AdaxonStorageAdapter {
3
+ getItem(key: string): Promise<string | null>;
4
+ setItem(key: string, value: string): Promise<void>;
5
+ removeItem?(key: string): Promise<void>;
6
+ }
7
+ export interface AdaxonSdkConfig {
8
+ appId: string;
9
+ sdkKey: string;
10
+ externalUserId?: string;
11
+ storage?: AdaxonStorageAdapter;
12
+ timeoutMs?: number;
13
+ fetch?: typeof globalThis.fetch;
14
+ testMode?: boolean;
15
+ }
16
+ export type AdaxonInitializationConfiguration = AdaxonSdkConfig;
17
+ export type AdaxonInitializationErrorCode = 'INVALID_CONFIG' | 'UNKNOWN';
18
+ export interface AdaxonInitializationListener {
19
+ onInitializationComplete(): void;
20
+ onInitializationFailed(error: AdaxonInitializationErrorCode, message: string): void;
21
+ }
22
+ export interface AdaxonRecommendationLoadListener {
23
+ onRecommendationsLoaded(offers: RecommendationOffer[]): void;
24
+ onRecommendationsFailedToLoad(message: string, code?: string): void;
25
+ }
26
+ export interface AdaxonOfferShowListener {
27
+ onOfferOpened(offer: RecommendationOffer): void;
28
+ onOfferFailedToOpen(offer: RecommendationOffer, message: string): void;
29
+ }
30
+ //# sourceMappingURL=AdaxonConfig.d.ts.map
@@ -0,0 +1,31 @@
1
+ export interface EventValidationError {
2
+ index: number;
3
+ event_id: string | null;
4
+ reason: string;
5
+ }
6
+ export interface EventIngestionResponse {
7
+ success: boolean;
8
+ message: string;
9
+ accepted: number;
10
+ received: number;
11
+ rejected: number;
12
+ errors?: EventValidationError[];
13
+ }
14
+ export interface RecommendationOffer {
15
+ offer_id: number;
16
+ offer_name: string;
17
+ preview_url: string | null;
18
+ ad_type: string;
19
+ creative_size: string;
20
+ creative_url: string | null;
21
+ offer_url: string;
22
+ }
23
+ export interface RecommendationResponse {
24
+ offers: RecommendationOffer[];
25
+ }
26
+ export interface AdaxonApiErrorBody {
27
+ success?: boolean;
28
+ message?: string;
29
+ errors?: unknown;
30
+ }
31
+ //# sourceMappingURL=ApiTypes.d.ts.map
@@ -0,0 +1,65 @@
1
+ export type AdaxonPlatform = 'android' | 'ios' | 'web';
2
+ export type EventPropertyValue = string | number | boolean | null;
3
+ export type EventProperties = Record<string, EventPropertyValue>;
4
+ export interface AdaxonUserContext {
5
+ external_user_id?: string;
6
+ anonymous_id: string;
7
+ }
8
+ export interface AdaxonDeviceContext {
9
+ platform: AdaxonPlatform;
10
+ os_version?: string;
11
+ brand?: string;
12
+ model?: string;
13
+ language?: string;
14
+ timezone?: string;
15
+ }
16
+ export interface AdaxonAppContext {
17
+ package_name?: string;
18
+ app_version?: string;
19
+ sdk_version?: string;
20
+ }
21
+ export interface AdaxonSessionContext {
22
+ session_id?: string;
23
+ }
24
+ export interface AdaxonNetworkContext {
25
+ connection_type?: string;
26
+ ip_address?: string;
27
+ country?: string;
28
+ region?: string;
29
+ city?: string;
30
+ }
31
+ export interface TrackEventInput {
32
+ eventName: string;
33
+ properties?: EventProperties;
34
+ eventId?: string;
35
+ eventTime?: string;
36
+ }
37
+ export type TrackEventOptions = Omit<TrackEventInput, 'eventName' | 'properties'>;
38
+ export interface EventPayload {
39
+ event_id: string;
40
+ event_name: string;
41
+ event_time: string;
42
+ app_id: string;
43
+ properties: EventProperties;
44
+ user: AdaxonUserContext;
45
+ device: AdaxonDeviceContext;
46
+ app: AdaxonAppContext;
47
+ session: AdaxonSessionContext;
48
+ network: AdaxonNetworkContext;
49
+ }
50
+ export interface RecommendationPayload extends EventPayload {
51
+ event_type: 'recommendation';
52
+ }
53
+ export interface ClickAttribution {
54
+ offerId: number;
55
+ affiliateId: number;
56
+ advertiserId?: number;
57
+ affClickId?: string;
58
+ source?: string;
59
+ affSub?: string;
60
+ affSub2?: string;
61
+ affSub3?: string;
62
+ affSub4?: string;
63
+ affSub5?: string;
64
+ }
65
+ //# sourceMappingURL=EventTypes.d.ts.map
@@ -0,0 +1,16 @@
1
+ import type { EventPayload } from './EventTypes.js';
2
+ export interface QueuedEvent {
3
+ queue_id: string;
4
+ sequence: number;
5
+ created_at: number;
6
+ payload: EventPayload;
7
+ }
8
+ export type BatchProcessStatus = 'already_processing' | 'completed' | 'stopped';
9
+ export interface BatchProcessResult {
10
+ status: BatchProcessStatus;
11
+ batchesSent: number;
12
+ eventsProcessed: number;
13
+ failedQueueIds: string[];
14
+ error?: unknown;
15
+ }
16
+ //# sourceMappingURL=QueuedEvent.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { AdaxonDeviceContext } from '../types/EventTypes.js';
2
+ export declare function readLocaleFields(): Pick<AdaxonDeviceContext, 'language' | 'timezone'>;
3
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare function nonEmptyString(value: unknown): string | undefined;
2
+ export declare function setIfPresent<T extends object, K extends keyof T>(target: T, key: K, value: T[K] | undefined): void;
3
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1,3 @@
1
+ /** UUID v4. Uses Math.random so it works on Hermes without crypto. */
2
+ export declare function createUuid(): string;
3
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { ClickAttribution, EventProperties, TrackEventInput } from '../types/EventTypes.js';
2
+ export declare class EventValidator {
3
+ validateBatch(events: {
4
+ readonly length: number;
5
+ }): void;
6
+ validateTrackInput(input: TrackEventInput): void;
7
+ validateEventName(eventName: string): void;
8
+ validateProperties(properties: EventProperties): void;
9
+ validateClickAttribution(attribution: ClickAttribution): void;
10
+ private validatePositiveInteger;
11
+ private fail;
12
+ }
13
+ //# sourceMappingURL=EventValidator.d.ts.map
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "react-native-test-adx",
3
+ "version": "0.1.1",
4
+ "description": "Adaxon React Native / Expo SDK for event tracking and offer recommendations.",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "react-native": "./lib/module/index.js",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "react-native": "./lib/module/index.js",
12
+ "default": "./lib/module/index.js"
13
+ },
14
+ "./package.json": "./package.json"
15
+ },
16
+ "files": [
17
+ "lib",
18
+ "LICENSE",
19
+ "README.md",
20
+ "!**/__tests__",
21
+ "!**/__fixtures__",
22
+ "!**/__mocks__",
23
+ "!**/*.map",
24
+ "!**/.*"
25
+ ],
26
+ "scripts": {
27
+ "clean": "del-cli lib",
28
+ "typecheck": "tsc",
29
+ "lint": "eslint --config config/eslint.config.mjs \"**/*.{js,ts,tsx}\"",
30
+ "test": "jest --config config/jest.config.js"
31
+ },
32
+ "keywords": [
33
+ "adaxon",
34
+ "react-native-adaxon",
35
+ "react-native-test-adx",
36
+ "react-native",
37
+ "expo",
38
+ "analytics",
39
+ "tracking",
40
+ "events",
41
+ "recommendations",
42
+ "android",
43
+ "ios"
44
+ ],
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://bitbucket.org/rashidmobupps/adaxon-sdk.git"
48
+ },
49
+ "author": "Ritesh Rana <ritesh@mobupps.com> (https://bitbucket.org/rashidmobupps)",
50
+ "license": "MIT",
51
+ "bugs": {
52
+ "url": "https://bitbucket.org/rashidmobupps/adaxon-sdk/issues"
53
+ },
54
+ "homepage": "https://bitbucket.org/rashidmobupps/adaxon-sdk#readme",
55
+ "publishConfig": {
56
+ "access": "public",
57
+ "registry": "https://registry.npmjs.org/"
58
+ },
59
+ "devDependencies": {
60
+ "@eslint/compat": "^2.1.0",
61
+ "@eslint/eslintrc": "^3.3.5",
62
+ "@eslint/js": "9",
63
+ "@jest/globals": "^29.7.0",
64
+ "@react-native/babel-preset": "0.85.0",
65
+ "@react-native/eslint-config": "0.85.0",
66
+ "@react-native/jest-preset": "0.85.0",
67
+ "@types/react": "^19.2.0",
68
+ "@types/react-test-renderer": "^19",
69
+ "del-cli": "^7.0.0",
70
+ "eslint": "^9.39.4",
71
+ "eslint-config-prettier": "^10.1.8",
72
+ "eslint-plugin-prettier": "^5.5.6",
73
+ "jest": "^29.7.0",
74
+ "lefthook": "^2.1.9",
75
+ "prettier": "^3.8.3",
76
+ "react": "19.2.3",
77
+ "react-native": "0.85.0",
78
+ "react-native-builder-bob": "^0.43.0",
79
+ "react-test-renderer": "19.2.3",
80
+ "typescript": "^6.0.3"
81
+ },
82
+ "peerDependencies": {
83
+ "react": "*",
84
+ "react-native": "*"
85
+ },
86
+ "prettier": "./config/prettier.config.mjs",
87
+ "packageManager": "yarn@4.11.0",
88
+ "react-native-builder-bob": {
89
+ "source": "src",
90
+ "output": "lib",
91
+ "targets": [
92
+ [
93
+ "module",
94
+ {
95
+ "esm": true,
96
+ "sourceMaps": false
97
+ }
98
+ ],
99
+ [
100
+ "typescript",
101
+ {
102
+ "project": "tsconfig.build.json"
103
+ }
104
+ ]
105
+ ]
106
+ }
107
+ }