@c15t/backend 2.0.0-rc.3 → 2.0.0-rc.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.
- package/.turbo/turbo-build.log +12 -12
- package/CHANGELOG.md +8 -0
- package/dist/cache.cjs +4 -4
- package/dist/cache.js +4 -4
- package/dist/core.cjs +29 -27
- package/dist/core.js +27 -25
- package/dist/define-config.d.ts +17 -4
- package/dist/define-config.d.ts.map +1 -1
- package/dist/handlers/init/translations.d.ts +1 -3
- package/dist/handlers/init/translations.d.ts.map +1 -1
- package/dist/init.d.ts +4 -6
- package/dist/init.d.ts.map +1 -1
- package/dist/middleware/openapi/config.d.ts.map +1 -1
- package/dist/router.cjs +21 -20
- package/dist/router.js +19 -18
- package/dist/types/index.d.ts +241 -165
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/create-telemetry-options.d.ts +1 -1
- package/dist/utils/create-telemetry-options.d.ts.map +1 -1
- package/dist/utils/instrumentation.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +7 -7
- package/rslib.config.ts +1 -1
- package/src/core.ts +1 -1
- package/src/define-config.ts +17 -3
- package/src/handlers/init/geo.ts +2 -2
- package/src/handlers/init/index.test.ts +3 -3
- package/src/handlers/init/translations.test.ts +1 -1
- package/src/handlers/init/translations.ts +3 -6
- package/src/init.test.ts +3 -7
- package/src/init.ts +9 -8
- package/src/middleware/openapi/config.ts +2 -2
- package/src/middleware/process-ip/index.test.ts +2 -4
- package/src/middleware/process-ip/index.ts +1 -1
- package/src/routes/init.ts +10 -10
- package/src/types/index.ts +268 -174
- package/src/utils/create-telemetry-options.test.ts +14 -30
- package/src/utils/create-telemetry-options.ts +5 -5
- package/src/utils/instrumentation.test.ts +3 -5
- package/src/utils/instrumentation.ts +1 -3
- package/src/utils/metrics.test.ts +11 -23
- package/src/utils/telemetry-pii.test.ts +3 -5
- package/src/version.ts +1 -1
- /package/dist/{types.cjs → types/index.cjs} +0 -0
- /package/dist/{types.js → types/index.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjD,cAAc,OAAO,CAAC;AAGtB,eAAO,MAAM,QAAQ,sCAAiB,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC/B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Meter, type Span } from '@opentelemetry/api';
|
|
2
2
|
import type { C15TOptions } from '../types';
|
|
3
|
-
type TelemetryConfig =
|
|
3
|
+
type TelemetryConfig = C15TOptions['telemetry'];
|
|
4
4
|
/**
|
|
5
5
|
* Creates telemetry configuration from provided options
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-telemetry-options.d.ts","sourceRoot":"","sources":["../../src/utils/create-telemetry-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,KAAK,EAEV,KAAK,IAAI,EAGT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,KAAK,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"create-telemetry-options.d.ts","sourceRoot":"","sources":["../../src/utils/create-telemetry-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,KAAK,EAEV,KAAK,IAAI,EAGT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,KAAK,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAMhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,SAAS,EAChB,eAAe,CAAC,EAAE,eAAe,EACjC,QAAQ,CAAC,EAAE,MAAM,GACf,eAAe,CA0BjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAKjE;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,WAAW,wCAU9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,WAAW,KAAG,KAUhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAC7C,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,OAAO,CACzB,CAEA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,MAAM,EACd,MAAM,MAAM,EACZ,UAAU,WAAW,gBAkBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,EACtC,QAAQ,MAAM,EACd,MAAM,MAAM,EACZ,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,WAAW,KACnB,OAAO,CAAC,CAAC,CAiBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,EAAE,OAAO,OAAO,SASzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAeP;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,EACtC,MAAM,IAAI,EACV,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KACzB,OAAO,CAAC,CAAC,CAEX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/utils/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC;IACpE,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrD;
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/utils/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC;IACpE,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrD;AAiCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACpC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,EACnC,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,EACxC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.0.0-rc.
|
|
1
|
+
export declare const version = "2.0.0-rc.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c15t/backend",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.4",
|
|
4
4
|
"description": "Consent policy engine and API for c15t. Powers the cookie banner, consent manager, and preferences centre. Webhooks, audit logs, storage adapters. Self host or use consent.io",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"consent",
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
},
|
|
86
86
|
"./types": {
|
|
87
87
|
"types": "./dist/types/index.d.ts",
|
|
88
|
-
"import": "./dist/types.js",
|
|
89
|
-
"require": "./dist/types.cjs"
|
|
88
|
+
"import": "./dist/types/index.js",
|
|
89
|
+
"require": "./dist/types/index.cjs"
|
|
90
90
|
},
|
|
91
91
|
"./cache": {
|
|
92
92
|
"types": "./dist/cache/index.d.ts",
|
|
@@ -94,9 +94,9 @@
|
|
|
94
94
|
"require": "./dist/cache.cjs"
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
|
-
"main": "./dist/
|
|
98
|
-
"module": "./dist/
|
|
99
|
-
"types": "./dist/
|
|
97
|
+
"main": "./dist/core.cjs",
|
|
98
|
+
"module": "./dist/core.js",
|
|
99
|
+
"types": "./dist/core.d.ts",
|
|
100
100
|
"scripts": {
|
|
101
101
|
"prebuild": "genversion --esm --semi src/version.ts",
|
|
102
102
|
"build": "bun prebuild && rslib build",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"dependencies": {
|
|
113
113
|
"@c15t/logger": "2.0.0-rc.1",
|
|
114
114
|
"@c15t/schema": "2.0.0-rc.2",
|
|
115
|
-
"@c15t/translations": "2.0.0-rc.
|
|
115
|
+
"@c15t/translations": "2.0.0-rc.4",
|
|
116
116
|
"@hono/standard-validator": "^0.2.2",
|
|
117
117
|
"@hono/valibot-validator": "0.6.1",
|
|
118
118
|
"@opentelemetry/api": "1.9.0",
|
package/rslib.config.ts
CHANGED
|
@@ -58,7 +58,7 @@ export default defineConfig({
|
|
|
58
58
|
'db/adapters/mongo': ['./src/db/adapters/mongo.ts'],
|
|
59
59
|
'db/migrator': ['./src/db/migrator/index.ts'],
|
|
60
60
|
'define-config': ['./src/define-config.ts'],
|
|
61
|
-
types: ['./src/types/index.ts'],
|
|
61
|
+
'types/index': ['./src/types/index.ts'],
|
|
62
62
|
cache: ['./src/cache/index.ts'],
|
|
63
63
|
},
|
|
64
64
|
},
|
package/src/core.ts
CHANGED
|
@@ -130,7 +130,7 @@ export const c15tInstance = (options: C15TOptions): C15TInstance => {
|
|
|
130
130
|
// Check API key authentication
|
|
131
131
|
const apiKeyAuthenticated = validateRequestAuth(
|
|
132
132
|
request.headers,
|
|
133
|
-
options.
|
|
133
|
+
options.apiKeys
|
|
134
134
|
);
|
|
135
135
|
|
|
136
136
|
const enrichedContext: C15TContext = {
|
package/src/define-config.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { C15TOptions } from './types';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* c15t backend config accepted by `defineConfig`.
|
|
5
|
+
*
|
|
6
|
+
* Keep this as an intersection with `C15TOptions` (instead of `Omit`) so
|
|
7
|
+
* TypeScript preserves property-level JSDoc in editor completions.
|
|
8
|
+
*/
|
|
9
|
+
export type C15TConfig = C15TOptions & {
|
|
10
|
+
/**
|
|
11
|
+
* Logger config is managed internally and is not supported via config files.
|
|
12
|
+
*/
|
|
13
|
+
logger?: never;
|
|
14
|
+
};
|
|
4
15
|
|
|
5
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Helper for typed backend configuration in `c15t-backend.config.ts`.
|
|
18
|
+
*/
|
|
19
|
+
export const defineConfig = (config: C15TConfig) => config;
|
package/src/handlers/init/geo.ts
CHANGED
|
@@ -168,7 +168,7 @@ export async function getLocation(
|
|
|
168
168
|
request: Request,
|
|
169
169
|
options: C15TOptions
|
|
170
170
|
): Promise<{ countryCode: string | null; regionCode: string | null }> {
|
|
171
|
-
if (options.
|
|
171
|
+
if (options.disableGeoLocation) {
|
|
172
172
|
return { countryCode: null, regionCode: null };
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -187,7 +187,7 @@ export function getJurisdiction(
|
|
|
187
187
|
location: { countryCode: string | null; regionCode: string | null },
|
|
188
188
|
options: C15TOptions
|
|
189
189
|
): JurisdictionCode {
|
|
190
|
-
if (options.
|
|
190
|
+
if (options.disableGeoLocation) {
|
|
191
191
|
return 'GDPR';
|
|
192
192
|
}
|
|
193
193
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { baseTranslations } from '@c15t/translations';
|
|
1
|
+
import { baseTranslations } from '@c15t/translations/all';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
3
|
import type { C15TOptions } from '~/types';
|
|
4
4
|
import { checkJurisdiction, getJurisdiction, getLocation } from './geo';
|
|
@@ -161,7 +161,7 @@ describe('Init Handler Utilities', () => {
|
|
|
161
161
|
const options: C15TOptions = {
|
|
162
162
|
trustedOrigins: [],
|
|
163
163
|
adapter: {} as C15TOptions['adapter'],
|
|
164
|
-
|
|
164
|
+
disableGeoLocation: true,
|
|
165
165
|
};
|
|
166
166
|
|
|
167
167
|
const result = await getLocation(request, options);
|
|
@@ -175,7 +175,7 @@ describe('Init Handler Utilities', () => {
|
|
|
175
175
|
const options: C15TOptions = {
|
|
176
176
|
trustedOrigins: [],
|
|
177
177
|
adapter: {} as C15TOptions['adapter'],
|
|
178
|
-
|
|
178
|
+
disableGeoLocation: true,
|
|
179
179
|
};
|
|
180
180
|
|
|
181
181
|
const result = getJurisdiction(
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
baseTranslations,
|
|
3
2
|
type CompleteTranslations,
|
|
4
3
|
deepMergeTranslations,
|
|
5
4
|
selectLanguage,
|
|
6
5
|
type Translations,
|
|
7
6
|
} from '@c15t/translations';
|
|
7
|
+
import { baseTranslations } from '@c15t/translations/all';
|
|
8
8
|
|
|
9
9
|
type SupportedBaseLanguage = keyof typeof baseTranslations;
|
|
10
10
|
|
|
@@ -62,11 +62,8 @@ export function getTranslationsData(
|
|
|
62
62
|
export async function getTranslations(
|
|
63
63
|
acceptLanguage: string,
|
|
64
64
|
options: {
|
|
65
|
-
|
|
65
|
+
customTranslations?: Record<string, Partial<Translations>>;
|
|
66
66
|
}
|
|
67
67
|
) {
|
|
68
|
-
return getTranslationsData(
|
|
69
|
-
acceptLanguage,
|
|
70
|
-
options.advanced?.customTranslations
|
|
71
|
-
);
|
|
68
|
+
return getTranslationsData(acceptLanguage, options.customTranslations);
|
|
72
69
|
}
|
package/src/init.test.ts
CHANGED
|
@@ -36,9 +36,7 @@ vi.mock('./utils/create-telemetry-options', () => ({
|
|
|
36
36
|
...config?.defaultAttributes,
|
|
37
37
|
},
|
|
38
38
|
})),
|
|
39
|
-
isTelemetryEnabled: vi.fn(
|
|
40
|
-
(options) => options?.advanced?.telemetry?.enabled === true
|
|
41
|
-
),
|
|
39
|
+
isTelemetryEnabled: vi.fn((options) => options?.telemetry?.enabled === true),
|
|
42
40
|
}));
|
|
43
41
|
|
|
44
42
|
vi.mock('./db/registry', () => ({
|
|
@@ -95,10 +93,8 @@ describe('init', () => {
|
|
|
95
93
|
|
|
96
94
|
it('logs telemetry enabled when explicitly enabled', () => {
|
|
97
95
|
const options = createOptions({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
enabled: true,
|
|
101
|
-
},
|
|
96
|
+
telemetry: {
|
|
97
|
+
enabled: true,
|
|
102
98
|
},
|
|
103
99
|
});
|
|
104
100
|
init(options);
|
package/src/init.ts
CHANGED
|
@@ -25,12 +25,10 @@ import { initLogger } from './utils/logger';
|
|
|
25
25
|
*
|
|
26
26
|
* // Then pass telemetry config
|
|
27
27
|
* const instance = c15tInstance({
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* meter: metrics.getMeter('my-app'),
|
|
33
|
-
* },
|
|
28
|
+
* telemetry: {
|
|
29
|
+
* enabled: true,
|
|
30
|
+
* tracer: trace.getTracer('my-app'),
|
|
31
|
+
* meter: metrics.getMeter('my-app'),
|
|
34
32
|
* },
|
|
35
33
|
* });
|
|
36
34
|
* ```
|
|
@@ -46,7 +44,7 @@ export const init = (options: C15TOptions): C15TContext => {
|
|
|
46
44
|
// Create telemetry options (validates and merges with defaults)
|
|
47
45
|
const telemetryOptions = createTelemetryOptions(
|
|
48
46
|
String(appName),
|
|
49
|
-
options.
|
|
47
|
+
options.telemetry,
|
|
50
48
|
options.tenantId
|
|
51
49
|
);
|
|
52
50
|
|
|
@@ -70,8 +68,11 @@ export const init = (options: C15TOptions): C15TContext => {
|
|
|
70
68
|
? withTenantScope(rawOrm, options.tenantId)
|
|
71
69
|
: rawOrm;
|
|
72
70
|
|
|
71
|
+
// Destructure ipAddress config to avoid type conflict with C15TContext.ipAddress (resolved string)
|
|
72
|
+
const { ipAddress: _ipAddressConfig, ...baseOptions } = options;
|
|
73
|
+
|
|
73
74
|
const context: C15TContext = {
|
|
74
|
-
...
|
|
75
|
+
...baseOptions,
|
|
75
76
|
appName,
|
|
76
77
|
logger,
|
|
77
78
|
db: orm,
|
|
@@ -8,10 +8,10 @@ import { version } from '~/version';
|
|
|
8
8
|
*/
|
|
9
9
|
export const createOpenAPIConfig = (options: C15TOptions) => {
|
|
10
10
|
return {
|
|
11
|
-
enabled: options.
|
|
11
|
+
enabled: options.openapi?.enabled !== false,
|
|
12
12
|
specPath: '/spec.json',
|
|
13
13
|
docsPath: '/docs',
|
|
14
|
-
...(options.
|
|
14
|
+
...(options.openapi || {}),
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
|
|
@@ -85,13 +85,11 @@ describe('getIpAddress', () => {
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
const createBaseOptions = (
|
|
88
|
-
ipAddressOverrides?:
|
|
88
|
+
ipAddressOverrides?: C15TOptions['ipAddress']
|
|
89
89
|
): C15TOptions => ({
|
|
90
90
|
trustedOrigins: ['http://localhost'],
|
|
91
91
|
adapter: {} as C15TOptions['adapter'],
|
|
92
|
-
|
|
93
|
-
ipAddress: ipAddressOverrides,
|
|
94
|
-
},
|
|
92
|
+
ipAddress: ipAddressOverrides,
|
|
95
93
|
});
|
|
96
94
|
|
|
97
95
|
describe('IP extraction', () => {
|
|
@@ -172,7 +172,7 @@ export function getIpAddress(
|
|
|
172
172
|
req: Request | Headers,
|
|
173
173
|
options: C15TOptions
|
|
174
174
|
): string | null {
|
|
175
|
-
const ipAddressConfig = options.
|
|
175
|
+
const ipAddressConfig = options.ipAddress;
|
|
176
176
|
|
|
177
177
|
if (ipAddressConfig?.tracking === false) {
|
|
178
178
|
return null;
|
package/src/routes/init.ts
CHANGED
|
@@ -58,25 +58,25 @@ Use for geo-targeted consent banners and regional compliance.`,
|
|
|
58
58
|
// Get translations
|
|
59
59
|
const translationsResult = getTranslationsData(
|
|
60
60
|
acceptLanguage,
|
|
61
|
-
options.
|
|
61
|
+
options.customTranslations
|
|
62
62
|
);
|
|
63
63
|
|
|
64
64
|
// Get GVL if enabled
|
|
65
65
|
let gvl = null;
|
|
66
|
-
if (options.
|
|
66
|
+
if (options.iab?.enabled) {
|
|
67
67
|
const language = translationsResult.language.split('-')[0] || 'en';
|
|
68
68
|
const gvlResolver = createGVLResolver({
|
|
69
69
|
appName: options.appName || 'c15t',
|
|
70
|
-
bundled: options.
|
|
71
|
-
cacheAdapter: options.
|
|
72
|
-
vendorIds: options.
|
|
73
|
-
endpoint: options.
|
|
70
|
+
bundled: options.iab.bundled,
|
|
71
|
+
cacheAdapter: options.cache?.adapter,
|
|
72
|
+
vendorIds: options.iab.vendorIds,
|
|
73
|
+
endpoint: options.iab.endpoint,
|
|
74
74
|
});
|
|
75
75
|
gvl = await gvlResolver.get(language);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
// Get custom vendors if configured
|
|
79
|
-
const customVendors = options.
|
|
79
|
+
const customVendors = options.iab?.customVendors;
|
|
80
80
|
|
|
81
81
|
// Record init metric
|
|
82
82
|
const gpc = request.headers.get('sec-gpc') === '1';
|
|
@@ -91,11 +91,11 @@ Use for geo-targeted consent banners and regional compliance.`,
|
|
|
91
91
|
jurisdiction,
|
|
92
92
|
location,
|
|
93
93
|
translations: translationsResult,
|
|
94
|
-
branding: options.
|
|
94
|
+
branding: options.branding || 'c15t',
|
|
95
95
|
gvl,
|
|
96
96
|
customVendors,
|
|
97
|
-
...(options.
|
|
98
|
-
cmpId: options.
|
|
97
|
+
...(options.iab?.cmpId != null && {
|
|
98
|
+
cmpId: options.iab.cmpId,
|
|
99
99
|
}),
|
|
100
100
|
});
|
|
101
101
|
}
|