@techinject/core 0.1.0-alpha.3 → 0.1.0-alpha.4

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,43 @@
1
+ export type AttributionChannel = 'paid_search' | 'paid_social' | 'paid_other' | 'organic_search' | 'ai_search' | 'organic_social' | 'email' | 'referral' | 'direct' | 'other';
2
+ export type ClickIdName = 'gclid' | 'gbraid' | 'wbraid' | 'msclkid' | 'fbclid';
3
+ export type AttributionTouch = {
4
+ channel: AttributionChannel;
5
+ /** Normalized traffic source: google, bing, facebook, a referrer host or (direct). */
6
+ source: string;
7
+ /** cpc, paid_social, organic, ai, social, email, referral, (none) or the supplied utm_medium. */
8
+ medium: string;
9
+ campaign?: string;
10
+ campaignId?: string;
11
+ /** Paid-search keyword from utm_term={keyword}; organic engines never expose terms in the URL. */
12
+ term?: string;
13
+ content?: string;
14
+ clickIds?: Partial<Record<ClickIdName, string>>;
15
+ landingPath: string;
16
+ referrerHost?: string;
17
+ timestamp: number;
18
+ };
19
+ export type AttributionInput = {
20
+ url: string | URL;
21
+ referrer?: string | null;
22
+ timestamp?: number;
23
+ };
24
+ /** Query parameters that may stay on GA4 page_location; every other parameter is stripped. */
25
+ export declare const TRACKING_PARAMETERS: readonly ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", "utm_id", "gclid", "gbraid", "wbraid", "msclkid", "fbclid"];
26
+ export type ReferrerClass = {
27
+ kind: 'search' | 'ai' | 'social';
28
+ source: string;
29
+ };
30
+ /** Known search engine, AI assistant or social network behind a referrer host; undefined otherwise. */
31
+ export declare function classifyReferrerHost(host: string | null | undefined): ReferrerClass | undefined;
32
+ /** Scheme and host of a referrer only; path, query, credentials and fragment never leave the page. */
33
+ export declare function safeReferrer(referrer: string | URL | null | undefined): string;
34
+ /** Origin, redacted path and only the allowlisted campaign/click parameters of a page URL. */
35
+ export declare function safePageLocation(value: string | URL): string;
36
+ /** Meta's _fbc cookie value for a landing fbclid, for hosts passing it to the Conversions API. */
37
+ export declare function metaClickCookie(fbclid: string, timestamp?: number): string | undefined;
38
+ /**
39
+ * Classify the visit that landed on `url`. Returns undefined for internal navigation (same-origin
40
+ * referrer without campaign parameters), since that is not a new touch.
41
+ */
42
+ export declare function parseAttribution(input: AttributionInput): AttributionTouch | undefined;
43
+ //# sourceMappingURL=attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAChB,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,mBAAmB,8IAYtB,CAAC;AAqEX,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACjF,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAU/F;AACD,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAK9E;AACD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAU5D;AACD,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAa,GAAG,MAAM,GAAG,SAAS,CAK1F;AACD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,CA6FtF"}
@@ -0,0 +1,236 @@
1
+ import { safeRoute } from './index.js';
2
+ /** Query parameters that may stay on GA4 page_location; every other parameter is stripped. */
3
+ export const TRACKING_PARAMETERS = [
4
+ 'utm_source',
5
+ 'utm_medium',
6
+ 'utm_campaign',
7
+ 'utm_term',
8
+ 'utm_content',
9
+ 'utm_id',
10
+ 'gclid',
11
+ 'gbraid',
12
+ 'wbraid',
13
+ 'msclkid',
14
+ 'fbclid',
15
+ ];
16
+ const CLICK_IDS = ['gclid', 'gbraid', 'wbraid', 'msclkid', 'fbclid'];
17
+ const SEARCH_ENGINES = [
18
+ [/(^|\.)google\.[a-z.]+$/, 'google'],
19
+ [/(^|\.)bing\.com$/, 'bing'],
20
+ [/(^|\.)yahoo\.[a-z.]+$/, 'yahoo'],
21
+ [/(^|\.)duckduckgo\.com$/, 'duckduckgo'],
22
+ [/(^|\.)yandex\.[a-z.]+$/, 'yandex'],
23
+ [/(^|\.)baidu\.com$/, 'baidu'],
24
+ [/(^|\.)ecosia\.org$/, 'ecosia'],
25
+ [/^search\.brave\.com$/, 'brave'],
26
+ [/(^|\.)startpage\.com$/, 'startpage'],
27
+ [/(^|\.)qwant\.com$/, 'qwant'],
28
+ [/(^|\.)naver\.com$/, 'naver'],
29
+ [/(^|\.)seznam\.cz$/, 'seznam'],
30
+ [/(^|\.)ask\.com$/, 'ask'],
31
+ [/(^|\.)aol\.[a-z.]+$/, 'aol'],
32
+ ];
33
+ const AI_ENGINES = [
34
+ [/^gemini\.google\.com$/, 'gemini'],
35
+ [/(^|\.)(chatgpt\.com|openai\.com)$/, 'chatgpt'],
36
+ [/(^|\.)perplexity\.ai$/, 'perplexity'],
37
+ [/(^|\.)claude\.ai$/, 'claude'],
38
+ [/^copilot\.microsoft\.com$/, 'copilot'],
39
+ [/(^|\.)you\.com$/, 'you'],
40
+ [/(^|\.)mistral\.ai$/, 'mistral'],
41
+ ];
42
+ const SOCIAL_NETWORKS = [
43
+ [/(^|\.)(facebook\.com|fb\.com|fb\.me|messenger\.com)$/, 'facebook'],
44
+ [/(^|\.)instagram\.com$/, 'instagram'],
45
+ [/(^|\.)(twitter\.com|x\.com|t\.co)$/, 'x'],
46
+ [/(^|\.)(linkedin\.com|lnkd\.in)$/, 'linkedin'],
47
+ [/(^|\.)pinterest\.[a-z.]+$/, 'pinterest'],
48
+ [/(^|\.)reddit\.com$/, 'reddit'],
49
+ [/(^|\.)(youtube\.com|youtu\.be)$/, 'youtube'],
50
+ [/(^|\.)tiktok\.com$/, 'tiktok'],
51
+ [/(^|\.)threads\.(net|com)$/, 'threads'],
52
+ [/(^|\.)snapchat\.com$/, 'snapchat'],
53
+ [/(^|\.)(whatsapp\.com|wa\.me)$/, 'whatsapp'],
54
+ [/(^|\.)(telegram\.org|t\.me)$/, 'telegram'],
55
+ [/(^|\.)quora\.com$/, 'quora'],
56
+ ];
57
+ const PAID_SEARCH_MEDIUMS = /^(cpc|ppc|paid[-_ ]?search|sem)$/;
58
+ const PAID_SOCIAL_MEDIUMS = /^(paid[-_ ]?social|social[-_ ]?paid)$/;
59
+ const PAID_OTHER_MEDIUMS = /^(cpm|cpv|cpa|display|banner|retargeting|affiliate|paid[-_ ]?.*)$/;
60
+ const SOCIAL_MEDIUMS = /^(social|social[-_ ]?network|social[-_ ]?media|sm)$/;
61
+ const EMAIL_MEDIUMS = /^(email|e-mail|newsletter)$/;
62
+ function parseUrl(value) {
63
+ try {
64
+ return new URL(String(value));
65
+ }
66
+ catch {
67
+ return undefined;
68
+ }
69
+ }
70
+ /**
71
+ * Clamp a user-controlled tracking value. Anything that looks like an email or exceeds the
72
+ * length budget is dropped so an ad parameter can never carry personal data into providers.
73
+ */
74
+ function safeValue(value, max) {
75
+ if (!value)
76
+ return undefined;
77
+ const trimmed = value.trim();
78
+ if (!trimmed || trimmed.length > max || /[\u0000-\u001f<>"']/.test(trimmed))
79
+ return undefined;
80
+ if (trimmed.includes('@'))
81
+ return undefined;
82
+ return trimmed;
83
+ }
84
+ function lookup(host, table) {
85
+ return table.find(([pattern]) => pattern.test(host))?.[1];
86
+ }
87
+ /** Known search engine, AI assistant or social network behind a referrer host; undefined otherwise. */
88
+ export function classifyReferrerHost(host) {
89
+ if (typeof host !== 'string')
90
+ return undefined;
91
+ const name = host.trim().toLowerCase();
92
+ if (!name)
93
+ return undefined;
94
+ const engine = lookup(name, SEARCH_ENGINES);
95
+ if (engine)
96
+ return { kind: 'search', source: engine };
97
+ const ai = lookup(name, AI_ENGINES);
98
+ if (ai)
99
+ return { kind: 'ai', source: ai };
100
+ const social = lookup(name, SOCIAL_NETWORKS);
101
+ return social ? { kind: 'social', source: social } : undefined;
102
+ }
103
+ /** Scheme and host of a referrer only; path, query, credentials and fragment never leave the page. */
104
+ export function safeReferrer(referrer) {
105
+ if (!referrer)
106
+ return '';
107
+ const url = parseUrl(referrer);
108
+ if (!url || !/^https?:$/.test(url.protocol))
109
+ return '';
110
+ return `${url.origin}/`;
111
+ }
112
+ /** Origin, redacted path and only the allowlisted campaign/click parameters of a page URL. */
113
+ export function safePageLocation(value) {
114
+ const url = parseUrl(value);
115
+ if (!url)
116
+ return '/';
117
+ const params = new URLSearchParams();
118
+ for (const name of TRACKING_PARAMETERS) {
119
+ const safe = safeValue(url.searchParams.get(name), 256);
120
+ if (safe !== undefined)
121
+ params.set(name, safe);
122
+ }
123
+ const query = params.toString();
124
+ return `${url.origin}${safeRoute(url)}${query ? `?${query}` : ''}`;
125
+ }
126
+ /** Meta's _fbc cookie value for a landing fbclid, for hosts passing it to the Conversions API. */
127
+ export function metaClickCookie(fbclid, timestamp = Date.now()) {
128
+ const safe = safeValue(fbclid, 256);
129
+ return safe && /^[A-Za-z0-9_-]+$/.test(safe)
130
+ ? `fb.1.${Math.floor(timestamp)}.${safe}`
131
+ : undefined;
132
+ }
133
+ /**
134
+ * Classify the visit that landed on `url`. Returns undefined for internal navigation (same-origin
135
+ * referrer without campaign parameters), since that is not a new touch.
136
+ */
137
+ export function parseAttribution(input) {
138
+ const url = parseUrl(input.url);
139
+ if (!url)
140
+ return undefined;
141
+ const timestamp = Number.isFinite(input.timestamp) ? input.timestamp : Date.now();
142
+ const referrer = input.referrer ? parseUrl(input.referrer) : undefined;
143
+ const referrerHost = referrer && /^https?:$/.test(referrer.protocol) && referrer.origin !== url.origin
144
+ ? referrer.hostname.toLowerCase()
145
+ : undefined;
146
+ const internal = referrer && /^https?:$/.test(referrer.protocol) && referrer.origin === url.origin;
147
+ const clickIds = {};
148
+ for (const name of CLICK_IDS) {
149
+ const value = safeValue(url.searchParams.get(name), 256);
150
+ if (value)
151
+ clickIds[name] = value;
152
+ }
153
+ const utm = {
154
+ source: safeValue(url.searchParams.get('utm_source'), 100),
155
+ medium: safeValue(url.searchParams.get('utm_medium'), 100),
156
+ campaign: safeValue(url.searchParams.get('utm_campaign'), 150),
157
+ campaignId: safeValue(url.searchParams.get('utm_id'), 100),
158
+ term: safeValue(url.searchParams.get('utm_term'), 200),
159
+ content: safeValue(url.searchParams.get('utm_content'), 150),
160
+ };
161
+ const hasClickId = Object.keys(clickIds).length > 0;
162
+ if (internal && !utm.source && !utm.medium && !hasClickId)
163
+ return undefined;
164
+ const base = {
165
+ landingPath: safeRoute(url),
166
+ timestamp,
167
+ ...(referrerHost ? { referrerHost } : {}),
168
+ ...(hasClickId ? { clickIds } : {}),
169
+ ...(utm.campaign ? { campaign: utm.campaign } : {}),
170
+ ...(utm.campaignId ? { campaignId: utm.campaignId } : {}),
171
+ ...(utm.term ? { term: utm.term } : {}),
172
+ ...(utm.content ? { content: utm.content } : {}),
173
+ };
174
+ const engine = referrerHost ? lookup(referrerHost, SEARCH_ENGINES) : undefined;
175
+ const ai = referrerHost ? lookup(referrerHost, AI_ENGINES) : undefined;
176
+ const social = referrerHost ? lookup(referrerHost, SOCIAL_NETWORKS) : undefined;
177
+ // Auto-tagged ad clicks are authoritative even without UTM parameters.
178
+ if (clickIds.gclid || clickIds.gbraid || clickIds.wbraid)
179
+ return {
180
+ ...base,
181
+ channel: 'paid_search',
182
+ source: utm.source ?? 'google',
183
+ medium: utm.medium ?? 'cpc',
184
+ };
185
+ if (clickIds.msclkid)
186
+ return {
187
+ ...base,
188
+ channel: 'paid_search',
189
+ source: utm.source ?? 'bing',
190
+ medium: utm.medium ?? 'cpc',
191
+ };
192
+ if (utm.medium) {
193
+ const medium = utm.medium.toLowerCase();
194
+ const source = utm.source ?? engine ?? ai ?? social ?? referrerHost ?? '(not set)';
195
+ if (PAID_SEARCH_MEDIUMS.test(medium))
196
+ return {
197
+ ...base,
198
+ channel: engine || /google|bing|yahoo|duckduckgo/.test(source) ? 'paid_search' : 'paid_other',
199
+ source,
200
+ medium: utm.medium,
201
+ };
202
+ if (PAID_SOCIAL_MEDIUMS.test(medium))
203
+ return { ...base, channel: 'paid_social', source, medium: utm.medium };
204
+ if (SOCIAL_MEDIUMS.test(medium))
205
+ return { ...base, channel: 'organic_social', source, medium: utm.medium };
206
+ if (EMAIL_MEDIUMS.test(medium))
207
+ return { ...base, channel: 'email', source, medium: utm.medium };
208
+ if (medium === 'organic')
209
+ return { ...base, channel: 'organic_search', source, medium: utm.medium };
210
+ if (medium === 'referral')
211
+ return { ...base, channel: 'referral', source, medium: utm.medium };
212
+ if (PAID_OTHER_MEDIUMS.test(medium))
213
+ return { ...base, channel: 'paid_other', source, medium: utm.medium };
214
+ return { ...base, channel: 'other', source, medium: utm.medium };
215
+ }
216
+ if (utm.source)
217
+ return { ...base, channel: 'other', source: utm.source, medium: '(not set)' };
218
+ // fbclid is appended to every outbound Facebook click, paid or organic.
219
+ if (clickIds.fbclid)
220
+ return { ...base, channel: 'organic_social', source: social ?? 'facebook', medium: 'social' };
221
+ if (ai)
222
+ return { ...base, channel: 'ai_search', source: ai, medium: 'ai' };
223
+ if (engine)
224
+ return { ...base, channel: 'organic_search', source: engine, medium: 'organic' };
225
+ if (social)
226
+ return { ...base, channel: 'organic_social', source: social, medium: 'social' };
227
+ if (referrerHost)
228
+ return {
229
+ ...base,
230
+ channel: 'referral',
231
+ source: referrerHost.replace(/^www\./, ''),
232
+ medium: 'referral',
233
+ };
234
+ return { ...base, channel: 'direct', source: '(direct)', medium: '(none)' };
235
+ }
236
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import { type Consent, type DispatchResult, type EventInput, type Provider } from '@techinject/contracts';
1
+ import { type EventDefinition, type RegisteredEventInput, type Consent, type DispatchResult, type Provider } from '@techinject/contracts';
2
2
  export type { Consent, DispatchResult, EventInput, Provider, SignalEvent, Observer, RequestRecord, CommerceItem, CommerceProperties, PurchaseProperties, PageViewProperties, } from '@techinject/contracts';
3
- export { DENIED_CONSENT } from '@techinject/contracts';
4
- export type SignalsOptions = {
3
+ export { DENIED_CONSENT, defineEvent } from '@techinject/contracts';
4
+ export type { EventDefinition, EventMapping, EventMappings, RegisteredEventInput, } from '@techinject/contracts';
5
+ export type SignalsOptions<Events extends readonly EventDefinition[] = readonly []> = {
6
+ events?: Events;
5
7
  providers?: Provider[];
6
8
  consent?: Consent;
7
9
  timeoutMs?: number;
@@ -22,9 +24,10 @@ export type ConnectionStatus = {
22
24
  lastStatus?: DispatchResult['outcomes'][number]['status'];
23
25
  lastUpdated?: number;
24
26
  };
25
- export type Signals = ReturnType<typeof createSignals>;
27
+ export type Signals<Events extends readonly EventDefinition[] = readonly []> = ReturnType<typeof createSignals<Events>>;
26
28
  export declare function generateId(): string;
27
29
  export declare function safeRoute(url: string | URL, routeTemplate?: string): string;
30
+ export declare function safeProviderUrl(input: string | URL): string;
28
31
  export type TraceContext = {
29
32
  traceId: string;
30
33
  spanId: string;
@@ -33,8 +36,8 @@ export type TraceContext = {
33
36
  export declare function parseTraceparent(value: string | null | undefined): TraceContext | undefined;
34
37
  export declare function createTraceContext(): TraceContext;
35
38
  export declare function formatTraceparent(context: TraceContext): string;
36
- export declare function createSignals(options?: SignalsOptions): {
37
- track: (input: EventInput) => Promise<DispatchResult>;
39
+ export declare function createSignals<const Events extends readonly EventDefinition[] = readonly []>(options?: SignalsOptions<Events>): {
40
+ track: (input: RegisteredEventInput<Events>) => Promise<DispatchResult>;
38
41
  setConsent: (next: Consent) => void;
39
42
  getConsent: () => {
40
43
  analytics: boolean;
@@ -46,4 +49,5 @@ export declare function createSignals(options?: SignalsOptions): {
46
49
  flush: () => Promise<void>;
47
50
  dispose: () => void;
48
51
  };
52
+ export * from './attribution.js';
49
53
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACvD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB3E;AACD,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AACjF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAQ3F;AACD,wBAAgB,kBAAkB,IAAI,YAAY,CAMjD;AACD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB;mBAgGlC,UAAU,KAAG,OAAO,CAAC,cAAc,CAAC;uBA6ChC,OAAO;;;;;;0BAkBX,gBAAgB,EAAE;mCACP,MAAM,IAAI;;;EA0B5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,cAAc,EAEnB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE,IAAI;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE,IAAI,UAAU,CACvF,OAAO,aAAa,CAAC,MAAM,CAAC,CAC7B,CAAC;AACF,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAkC3E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAO3D;AACD,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AACjF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAQ3F;AACD,wBAAgB,kBAAkB,IAAI,YAAY,CAMjD;AACD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE,EACzF,OAAO,GAAE,cAAc,CAAC,MAAM,CAAM;mBAwHd,oBAAoB,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;uBA6ClD,OAAO;;;;;;0BAkBX,gBAAgB,EAAE;mCACP,MAAM,IAAI;;;EA0B5C;AACD,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,17 @@
1
- import { sanitizeEvent, } from '@techinject/contracts';
2
- export { DENIED_CONSENT } from '@techinject/contracts';
1
+ import { sanitizeEvent, createEventRegistry, resolveProviderEvent, } from '@techinject/contracts';
2
+ export { DENIED_CONSENT, defineEvent } from '@techinject/contracts';
3
3
  export function generateId() {
4
4
  return globalThis.crypto.randomUUID();
5
5
  }
6
6
  export function safeRoute(url, routeTemplate) {
7
7
  try {
8
- const path = new URL(routeTemplate ?? String(url), 'http://signalkit.invalid').pathname;
9
- return path
8
+ const raw = String(routeTemplate ?? url);
9
+ // Strip layout route groups like /(marketing) or /(app)
10
+ const cleaned = raw.replace(/\/\([^)]+\)/g, '');
11
+ const path = new URL(cleaned || '/', 'http://signalkit.invalid').pathname;
12
+ return (path
10
13
  .split('/')
14
+ .filter((segment) => !/^\([^)]+\)$/.test(segment))
11
15
  .map((segment) => {
12
16
  let decoded;
13
17
  try {
@@ -16,17 +20,37 @@ export function safeRoute(url, routeTemplate) {
16
20
  catch {
17
21
  return ':redacted';
18
22
  }
19
- return decoded.includes('@') || decoded.length > 64 ? ':redacted' : segment;
23
+ if (decoded.includes('@') || decoded.length > 64)
24
+ return ':redacted';
25
+ // MongoDB ObjectID (24 hex characters)
26
+ if (/^[0-9a-f]{24}$/i.test(decoded))
27
+ return ':id';
28
+ // Stripe ID (cs_..., pi_..., ch_..., cus_..., etc.)
29
+ if (/^(cs|pi|ch|cus|sub|in|evt|tok)_[a-zA-Z0-9_]{8,}$/i.test(decoded))
30
+ return ':id';
31
+ // CUID (starts with c, 24 alphanumeric characters)
32
+ if (/^c[0-9a-z]{24}$/i.test(decoded))
33
+ return ':id';
34
+ return segment;
20
35
  })
21
36
  .join('/')
22
37
  .replace(/\/[0-9]+(?=\/|$)/g, '/:id')
23
38
  .replace(/\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}(?=\/|$)/gi, '/:id')
24
- .slice(0, 2048);
39
+ .slice(0, 2048) || '/');
25
40
  }
26
41
  catch {
27
42
  return '/';
28
43
  }
29
44
  }
45
+ export function safeProviderUrl(input) {
46
+ try {
47
+ const url = new URL(String(input));
48
+ return `${url.origin}${safeRoute(url.pathname)}`;
49
+ }
50
+ catch {
51
+ return safeRoute(input);
52
+ }
53
+ }
30
54
  export function parseTraceparent(value) {
31
55
  const match = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/.exec(value ?? '');
32
56
  if (!match || /^0+$/.test(match[1]) || /^0+$/.test(match[2]))
@@ -48,6 +72,7 @@ export function formatTraceparent(context) {
48
72
  return `00-${context.traceId}-${context.spanId}-${context.sampled ? '01' : '00'}`;
49
73
  }
50
74
  export function createSignals(options = {}) {
75
+ const registry = createEventRegistry(options.events);
51
76
  const providers = [...(options.providers ?? [])];
52
77
  function normalizeConsent(value) {
53
78
  return {
@@ -110,8 +135,26 @@ export function createSignals(options = {}) {
110
135
  return result;
111
136
  }
112
137
  async function send(provider, event) {
113
- if (!consent[provider.category])
138
+ if (!consent[provider.category]) {
114
139
  return { provider: provider.name, status: 'denied', reason: 'consent' };
140
+ }
141
+ if (provider.eventFamily) {
142
+ try {
143
+ event = {
144
+ ...event,
145
+ providerEvent: resolveProviderEvent(event, provider.eventFamily, registry.get(event.name)),
146
+ };
147
+ }
148
+ catch (error) {
149
+ return {
150
+ provider: provider.name,
151
+ status: 'invalid',
152
+ reason: error instanceof Error && error.message === 'event_mapping_missing'
153
+ ? 'event_mapping_missing'
154
+ : 'event_mapping',
155
+ };
156
+ }
157
+ }
115
158
  const controller = new AbortController();
116
159
  active.set(controller, provider.category);
117
160
  let timer;
@@ -163,7 +206,7 @@ export function createSignals(options = {}) {
163
206
  event =
164
207
  suppliedId !== undefined && suppliedId !== eventId
165
208
  ? undefined
166
- : sanitizeEvent(input, eventId);
209
+ : sanitizeEvent(input, eventId, registry);
167
210
  }
168
211
  catch {
169
212
  event = undefined;
@@ -242,4 +285,5 @@ export function createSignals(options = {}) {
242
285
  },
243
286
  };
244
287
  }
288
+ export * from './attribution.js';
245
289
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techinject/core",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.4",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "exports": {
@@ -14,8 +14,14 @@
14
14
  "LICENSE",
15
15
  "README.md"
16
16
  ],
17
+ "scripts": {
18
+ "build": "tsc -p tsconfig.json",
19
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.type-tests.json",
20
+ "test": "bun --bun vitest run",
21
+ "lint": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.type-tests.json"
22
+ },
17
23
  "dependencies": {
18
- "@techinject/contracts": "0.1.0-alpha.3"
24
+ "@techinject/contracts": "0.1.0-alpha.4"
19
25
  },
20
26
  "repository": {
21
27
  "type": "git",
@@ -26,11 +32,5 @@
26
32
  "access": "public"
27
33
  },
28
34
  "engines": {},
29
- "description": "SignalKit core consent-aware telemetry package",
30
- "scripts": {
31
- "build": "tsc -p tsconfig.json",
32
- "typecheck": "tsc -p tsconfig.json --noEmit",
33
- "test": "vitest run",
34
- "lint": "tsc -p tsconfig.json --noEmit"
35
- }
36
- }
35
+ "description": "SignalKit core consent-aware telemetry package"
36
+ }