Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/audience/sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@imtbl/audience-sdk",
"description": "Immutable Audience SDK — consent-aware event tracking and identity management",
"name": "@imtbl/audience",
"description": "Immutable Audience — consent-aware event tracking and identity management",
"version": "0.0.0",
"author": "Immutable",
"bugs": "https://github.com/immutable/ts-immutable-sdk/issues",
Expand Down
18 changes: 16 additions & 2 deletions packages/audience/sdk/src/config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
// SDK-specific constants.
// Backend endpoints and base URLs come from @imtbl/audience-core.

export const LIBRARY_NAME = '@imtbl/audience-sdk';
// Replaced at build time by esbuild replace plugin
export const LIBRARY_NAME = '@imtbl/audience';
/** Replaced at build time by esbuild replace plugin. */
export const LIBRARY_VERSION = '__SDK_VERSION__';

/** Log prefix for console messages from this package. */
export const LOG_PREFIX = '[audience]';

/** Default consent source when consentSource is not provided in config. */
export const DEFAULT_CONSENT_SOURCE = 'WebSDK';

// --- Auto-tracked event names ---
// These are fired by the SDK lifecycle, not by studio code.

/** Fired on init (or consent upgrade from none) when no active session cookie exists. */
export const SESSION_START = 'session_start';
Comment thread
ImmutableJeffrey marked this conversation as resolved.
Outdated
/** Fired on explicit shutdown(). Not fired on tab close or consent revocation. */
export const SESSION_END = 'session_end';
11 changes: 0 additions & 11 deletions packages/audience/sdk/src/context.test.ts

This file was deleted.

7 changes: 0 additions & 7 deletions packages/audience/sdk/src/context.ts

This file was deleted.

13 changes: 7 additions & 6 deletions packages/audience/sdk/src/debug.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { Message } from '@imtbl/audience-core';
import { DebugLogger } from './debug';
import { LOG_PREFIX } from './config';

describe('DebugLogger', () => {
let logSpy: jest.SpyInstance;
Expand All @@ -22,7 +23,7 @@ describe('DebugLogger', () => {
anonymousId: 'anon-1',
surface: 'web',
context: { library: 'test', libraryVersion: '0.0.0' },
event: 'click',
eventName: 'click',
properties: {},
};

Expand All @@ -42,7 +43,7 @@ describe('DebugLogger', () => {
logger.logEvent('track', stubMessage);

expect(logSpy).toHaveBeenCalledWith(
'[Immutable Audience] track',
`${LOG_PREFIX} track`,
stubMessage,
);
});
Expand All @@ -52,12 +53,12 @@ describe('DebugLogger', () => {

logger.logFlush(true, 5);
expect(logSpy).toHaveBeenCalledWith(
'[Immutable Audience] flush ok (5 messages)',
`${LOG_PREFIX} flush ok (5 messages)`,
);

logger.logFlush(false, 3);
expect(logSpy).toHaveBeenCalledWith(
'[Immutable Audience] flush failed (3 messages)',
`${LOG_PREFIX} flush failed (3 messages)`,
);
});

Expand All @@ -66,7 +67,7 @@ describe('DebugLogger', () => {
logger.logConsent('none', 'full');

expect(logSpy).toHaveBeenCalledWith(
'[Immutable Audience] consent none full',
`${LOG_PREFIX} consent none \u2192 full`,
);
});

Expand All @@ -75,7 +76,7 @@ describe('DebugLogger', () => {
logger.logWarning('something went wrong');

expect(warnSpy).toHaveBeenCalledWith(
'[Immutable Audience] something went wrong',
`${LOG_PREFIX} something went wrong`,
);
});
});
11 changes: 5 additions & 6 deletions packages/audience/sdk/src/debug.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import type { ConsentLevel, Message } from '@imtbl/audience-core';

const PREFIX = '[Immutable Audience]';
import { LOG_PREFIX } from './config';

export class DebugLogger {
private enabled: boolean;
Expand All @@ -12,24 +11,24 @@ export class DebugLogger {
logEvent(method: string, message: Message): void {
if (!this.enabled) return;
// eslint-disable-next-line no-console
console.log(`${PREFIX} ${method}`, message);
console.log(`${LOG_PREFIX} ${method}`, message);
}

logFlush(ok: boolean, count: number): void {
if (!this.enabled) return;
// eslint-disable-next-line no-console
console.log(`${PREFIX} flush ${ok ? 'ok' : 'failed'} (${count} messages)`);
console.log(`${LOG_PREFIX} flush ${ok ? 'ok' : 'failed'} (${count} messages)`);
}

logConsent(from: ConsentLevel, to: ConsentLevel): void {
if (!this.enabled) return;
// eslint-disable-next-line no-console
console.log(`${PREFIX} consent ${from} → ${to}`);
console.log(`${LOG_PREFIX} consent ${from} → ${to}`);
}

logWarning(msg: string): void {
if (!this.enabled) return;
// eslint-disable-next-line no-console
console.warn(`${PREFIX} ${msg}`);
console.warn(`${LOG_PREFIX} ${msg}`);
}
}
6 changes: 3 additions & 3 deletions packages/audience/sdk/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export type { AudienceSDKConfig } from './types';
export { DebugLogger } from './debug';
export { collectContext } from './context';
export { Audience } from './sdk';
export type { AudienceConfig } from './types';
export type { Environment, ConsentLevel, UserTraits } from '@imtbl/audience-core';
Loading
Loading