@kubuild/core 0.6.0 → 0.7.0
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/dist/document/document-utils.d.ts.map +1 -1
- package/dist/index.cjs +422 -103
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +400 -82
- package/dist/index.js.map +1 -1
- package/dist/io/exporter.d.ts.map +1 -1
- package/dist/io/importer.d.ts +4 -2
- package/dist/io/importer.d.ts.map +1 -1
- package/dist/io/index.d.ts +1 -0
- package/dist/io/index.d.ts.map +1 -1
- package/dist/io/migration.d.ts +21 -2
- package/dist/io/migration.d.ts.map +1 -1
- package/dist/io/tracking-sanitizer.d.ts +23 -0
- package/dist/io/tracking-sanitizer.d.ts.map +1 -0
- package/dist/runtime/binding-resolver.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/server-tracking.d.ts +40 -7
- package/dist/runtime/server-tracking.d.ts.map +1 -1
- package/dist/runtime/tracking-relay.d.ts +44 -0
- package/dist/runtime/tracking-relay.d.ts.map +1 -0
- package/dist/types/interfaces.d.ts +37 -1
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/validation/validator.d.ts +24 -1
- package/dist/validation/validator.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/io/exporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EAIT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/io/exporter.ts"],"names":[],"mappings":"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"}
|
package/dist/io/importer.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export interface AssetConflictResolution {
|
|
|
34
34
|
action: AssetCollisionStrategy;
|
|
35
35
|
newAssetId?: string;
|
|
36
36
|
}
|
|
37
|
-
export type PreflightDiagnosticCode = 'ARCHIVE_EMPTY' | 'ARCHIVE_CORRUPT' | 'SIZE_LIMIT_EXCEEDED' | 'FILE_COUNT_EXCEEDED' | 'ZIP_SLIP_DETECTED' | 'EXECUTABLE_ASSET_DETECTED' | 'PROTOTYPE_POLLUTION_DETECTED' | 'MISSING_MANIFEST' | 'INVALID_MANIFEST' | 'MISSING_PAGE_DOCUMENT' | 'INVALID_PAGE_DOCUMENT' | 'UNSUPPORTED_SCHEMA_VERSION' | 'NO_MIGRATION_PATH' | 'MIGRATION_FAILED' | 'ASSET_FILE_MISSING' | 'ASSET_SIZE_MISMATCH' | 'ASSET_CHECKSUM_MISMATCH' | 'ASSET_LIMIT_EXCEEDED' | 'ASSET_CONFLICT' | 'MISSING_COMPONENTS' | 'MISSING_CAPABILITIES' | 'HOST_ADAPTER_ERROR';
|
|
37
|
+
export type PreflightDiagnosticCode = 'ARCHIVE_EMPTY' | 'ARCHIVE_CORRUPT' | 'SIZE_LIMIT_EXCEEDED' | 'FILE_COUNT_EXCEEDED' | 'ZIP_SLIP_DETECTED' | 'EXECUTABLE_ASSET_DETECTED' | 'PROTOTYPE_POLLUTION_DETECTED' | 'MISSING_MANIFEST' | 'INVALID_MANIFEST' | 'MISSING_PAGE_DOCUMENT' | 'INVALID_PAGE_DOCUMENT' | 'UNSUPPORTED_SCHEMA_VERSION' | 'NO_MIGRATION_PATH' | 'MIGRATION_FAILED' | 'ASSET_FILE_MISSING' | 'ASSET_SIZE_MISMATCH' | 'ASSET_CHECKSUM_MISMATCH' | 'ASSET_LIMIT_EXCEEDED' | 'ASSET_CONFLICT' | 'MISSING_COMPONENTS' | 'MISSING_CAPABILITIES' | 'HOST_ADAPTER_ERROR' | 'TRACKING_SECRET_REMOVED';
|
|
38
38
|
export interface PreflightDiagnostic {
|
|
39
39
|
code: PreflightDiagnosticCode;
|
|
40
40
|
severity: 'error' | 'warning' | 'info';
|
|
@@ -64,7 +64,7 @@ export interface PreflightOptions {
|
|
|
64
64
|
*/
|
|
65
65
|
migrationRegistry?: MigrationRegistry;
|
|
66
66
|
/**
|
|
67
|
-
* Target schema version (defaults to CURRENT_SCHEMA_VERSION
|
|
67
|
+
* Target schema version (defaults to CURRENT_SCHEMA_VERSION).
|
|
68
68
|
*/
|
|
69
69
|
targetSchemaVersion?: string;
|
|
70
70
|
/**
|
|
@@ -201,6 +201,8 @@ export interface ImportPackageSuccess {
|
|
|
201
201
|
extractedAssets: Map<string, ExtractedAsset>;
|
|
202
202
|
renamedAssets?: Record<string, string>;
|
|
203
203
|
preflight: PreflightReport;
|
|
204
|
+
/** Non-fatal notes produced while importing (e.g. tracking secrets stripped). */
|
|
205
|
+
warnings?: PreflightDiagnostic[];
|
|
204
206
|
}
|
|
205
207
|
export interface ImportPackageFailure {
|
|
206
208
|
success: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../src/io/importer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,iBAAiB,EAElB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../src/io/importer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,iBAAiB,EAElB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,cAAc,CAK5D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,yBAAyB,GACzB,mCAAmC,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,gBAAgB,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,uBAAuB,GAC/B,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,2BAA2B,GAC3B,8BAA8B,GAC9B,kBAAkB,GAClB,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,4BAA4B,GAC5B,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GACrB,yBAAyB,GACzB,sBAAsB,GACtB,gBAAgB,GAChB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,yBAAyB,CAAC;AAE9B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAE1C;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7C;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/C;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAE3C;;OAEG;IACH,mBAAmB,CAAC,EAAE,CACpB,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,EACzD,SAAS,EAAE,eAAe,KACvB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEhD;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9F;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAExF;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,aAAa,KACpB,OAAO,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;CACnH;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,gBAAgB,EAAE,uBAAuB,CAAC;IAE1C;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;IAEhC;;OAEG;IACH,sBAAsB,EAAE,sBAAsB,CAAC;IAE/C;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,iBAAiB,KACzB,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;CACrE;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAE9E;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAuBzD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,UAAU,GAAG,WAAW,EACrC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA2e1B;AAwBD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,yBAAmB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,cAAc,yBAAmB,CAAC;AAE/C;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,UAAU,GAAG,WAAW,EACrC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA+R9B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,sBAAgB,CAAC"}
|
package/dist/io/index.d.ts
CHANGED
package/dist/io/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/io/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/io/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,sBAAsB,CAAC"}
|
package/dist/io/migration.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ export interface MigrationError {
|
|
|
7
7
|
targetVersion: string;
|
|
8
8
|
details?: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
+
export type MigrationWarningCode = 'TRACKING_SECRET_REMOVED';
|
|
11
|
+
/**
|
|
12
|
+
* Non-fatal note emitted by a migration step (the migration still succeeds).
|
|
13
|
+
*/
|
|
14
|
+
export interface MigrationWarning {
|
|
15
|
+
code: MigrationWarningCode | (string & {});
|
|
16
|
+
message: string;
|
|
17
|
+
/** Step that emitted the warning, e.g. "1.0.0->1.1.0". */
|
|
18
|
+
step?: string;
|
|
19
|
+
/** Dotted document paths affected. */
|
|
20
|
+
paths?: string[];
|
|
21
|
+
}
|
|
10
22
|
export interface MigrationDiagnostic {
|
|
11
23
|
success: boolean;
|
|
12
24
|
sourceVersion: string;
|
|
@@ -15,6 +27,8 @@ export interface MigrationDiagnostic {
|
|
|
15
27
|
stepsApplied: number;
|
|
16
28
|
dryRun: boolean;
|
|
17
29
|
errors?: MigrationError[];
|
|
30
|
+
/** Non-fatal notes, e.g. tracking secrets stripped from the document. */
|
|
31
|
+
warnings?: MigrationWarning[];
|
|
18
32
|
}
|
|
19
33
|
export interface MigrationResult {
|
|
20
34
|
success: boolean;
|
|
@@ -23,7 +37,7 @@ export interface MigrationResult {
|
|
|
23
37
|
}
|
|
24
38
|
export interface MigrateOptions {
|
|
25
39
|
/**
|
|
26
|
-
* Target schema version (defaults to CURRENT_SCHEMA_VERSION
|
|
40
|
+
* Target schema version (defaults to CURRENT_SCHEMA_VERSION).
|
|
27
41
|
*/
|
|
28
42
|
targetVersion?: string;
|
|
29
43
|
/**
|
|
@@ -39,7 +53,12 @@ export interface MigrateOptions {
|
|
|
39
53
|
*/
|
|
40
54
|
validate?: boolean;
|
|
41
55
|
}
|
|
42
|
-
|
|
56
|
+
/** Context handed to each migration step. */
|
|
57
|
+
export interface MigrationStepContext {
|
|
58
|
+
/** Records a non-fatal warning on the final `MigrationDiagnostic`. */
|
|
59
|
+
warn: (warning: MigrationWarning) => void;
|
|
60
|
+
}
|
|
61
|
+
export type MigrationFunction = (rawDoc: Record<string, unknown>, context: MigrationStepContext) => Record<string, unknown>;
|
|
43
62
|
export interface MigrationStep {
|
|
44
63
|
fromVersion: string;
|
|
45
64
|
toVersion: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/io/migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAKb,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/io/migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes host-owned secret / destination fields (e.g. Meta `capiAccessToken`, TikTok
|
|
3
|
+
* `accessToken`, GA4 `measurementProtocolSecret`, `serverRelayUrl`, custom `endpointUrl` /
|
|
4
|
+
* `headers`) from a tracking config object IN PLACE.
|
|
5
|
+
*
|
|
6
|
+
* Returns the dotted paths (relative to the tracking object) of every field removed.
|
|
7
|
+
* Safe on untrusted input: non-object values are ignored.
|
|
8
|
+
*/
|
|
9
|
+
export declare function stripTrackingSecretsInPlace(tracking: unknown, basePath?: string): string[];
|
|
10
|
+
/**
|
|
11
|
+
* Strips tracking secrets from every place a document (page or project) can carry a
|
|
12
|
+
* tracking config: `tracking`, `metadata.tracking`, and each `artboards[i].document.tracking`.
|
|
13
|
+
* Mutates `doc` in place; pass a clone if the original must be preserved.
|
|
14
|
+
*/
|
|
15
|
+
export declare function stripDocumentTrackingSecretsInPlace(doc: unknown): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Non-mutating variant: returns a sanitized deep copy plus the removed field paths.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sanitizeDocumentTracking<T>(doc: T): {
|
|
20
|
+
document: T;
|
|
21
|
+
removed: string[];
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=tracking-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracking-sanitizer.d.ts","sourceRoot":"","sources":["../../src/io/tracking-sanitizer.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,SAAa,GAAG,MAAM,EAAE,CAkB9F;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CA0B1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAKtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-resolver.d.ts","sourceRoot":"","sources":["../../src/runtime/binding-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,EAAE,CAAA;CAAE,CAAC;AAInC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,UAAU,CAAC,EAClD,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"binding-resolver.d.ts","sourceRoot":"","sources":["../../src/runtime/binding-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,EAAE,CAAA;CAAE,CAAC;AAInC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,UAAU,CAAC,EAClD,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,cAAc,CAsChB;AASD,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,UAAU,CAAC,EAClD,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,CAET"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import type { TrackingConfig, MetaTrackingProviderConfig, GoogleTrackingProviderConfig, TikTokTrackingProviderConfig, CustomTrackingProviderConfig } from '@kubuild/schema';
|
|
1
|
+
import type { TrackingConfig, MetaTrackingProviderConfig, GoogleTrackingProviderConfig, TikTokTrackingProviderConfig, CustomTrackingProviderConfig, MetaTrackingSecrets, GoogleTrackingSecrets, TikTokTrackingSecrets, CustomTrackingSecrets, TrackingProviderSecrets, ServerTrackingProviderType, TrackEventProvider } from '@kubuild/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Reference passed to a host `TrackingSecretResolver`. `credentialId` comes from the trusted
|
|
4
|
+
* tracking config (`providers.<provider>.credentialId`), never from an untrusted request.
|
|
5
|
+
*/
|
|
6
|
+
export interface TrackingSecretRef {
|
|
7
|
+
provider: ServerTrackingProviderType;
|
|
8
|
+
credentialId?: string;
|
|
9
|
+
documentId?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Host-provided function that returns the secret material for one provider, or `null` when the
|
|
13
|
+
* host has none. Implement it against any secret store (env vars, KMS, DB, Vault, ...).
|
|
14
|
+
* A missing secret makes the provider be skipped with a reason — it never throws.
|
|
15
|
+
*/
|
|
16
|
+
export type TrackingSecretResolver = (ref: TrackingSecretRef) => Promise<TrackingProviderSecrets | null | undefined> | TrackingProviderSecrets | null | undefined;
|
|
2
17
|
/**
|
|
3
18
|
* Normalized Server Tracking Event
|
|
4
19
|
*/
|
|
@@ -40,6 +55,8 @@ export interface TrackingDeliveryResult {
|
|
|
40
55
|
data?: unknown;
|
|
41
56
|
error?: string;
|
|
42
57
|
skipped?: boolean;
|
|
58
|
+
/** Why the provider was skipped (e.g. no secret resolved). */
|
|
59
|
+
reason?: string;
|
|
43
60
|
}
|
|
44
61
|
/**
|
|
45
62
|
* Aggregate result from dispatchServerTracking
|
|
@@ -55,6 +72,15 @@ export interface ServerTrackingDispatchResult {
|
|
|
55
72
|
* Options for configuring server tracking dispatch
|
|
56
73
|
*/
|
|
57
74
|
export interface ServerTrackingOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Resolves provider secrets by `credentialId`. The ONLY way secrets reach the dispatcher —
|
|
77
|
+
* the document never contains them. Without it, every server provider is skipped.
|
|
78
|
+
*/
|
|
79
|
+
resolveSecrets?: TrackingSecretResolver;
|
|
80
|
+
/** Host document id, forwarded to `resolveSecrets`. */
|
|
81
|
+
documentId?: string;
|
|
82
|
+
/** Restrict dispatch to one provider ('all' by default). 'gtm' is client-only. */
|
|
83
|
+
provider?: TrackEventProvider;
|
|
58
84
|
fetchFn?: typeof fetch;
|
|
59
85
|
clientIp?: string;
|
|
60
86
|
clientUserAgent?: string;
|
|
@@ -87,24 +113,31 @@ export declare function generateTrackingEventId(prefix?: string): string;
|
|
|
87
113
|
* Dispatches an event to Meta Conversions API (CAPI).
|
|
88
114
|
* Spec: https://developers.facebook.com/docs/marketing-api/conversions-api
|
|
89
115
|
*/
|
|
90
|
-
export declare function sendMetaCapiEvent(event: ServerTrackingEvent, config: MetaTrackingProviderConfig, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
116
|
+
export declare function sendMetaCapiEvent(event: ServerTrackingEvent, config: MetaTrackingProviderConfig, secrets: MetaTrackingSecrets | null | undefined, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
91
117
|
/**
|
|
92
118
|
* Dispatches an event to TikTok Events API.
|
|
93
119
|
* Spec: https://business-api.tiktok.com/portal/docs
|
|
94
120
|
*/
|
|
95
|
-
export declare function sendTikTokEventsApi(event: ServerTrackingEvent, config: TikTokTrackingProviderConfig, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
121
|
+
export declare function sendTikTokEventsApi(event: ServerTrackingEvent, config: TikTokTrackingProviderConfig, secrets: TikTokTrackingSecrets | null | undefined, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
96
122
|
/**
|
|
97
123
|
* Dispatches an event to Google Analytics 4 Measurement Protocol.
|
|
98
124
|
* Spec: https://developers.google.com/analytics/devguides/collection/protocol/ga4
|
|
99
125
|
*/
|
|
100
|
-
export declare function sendGa4MeasurementEvent(event: ServerTrackingEvent, config: GoogleTrackingProviderConfig, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
126
|
+
export declare function sendGa4MeasurementEvent(event: ServerTrackingEvent, config: GoogleTrackingProviderConfig, secrets: GoogleTrackingSecrets | null | undefined, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
101
127
|
/**
|
|
102
128
|
* Dispatches an event to a Custom Webhook.
|
|
103
129
|
*/
|
|
104
|
-
export declare function sendCustomWebhookEvent(event: ServerTrackingEvent,
|
|
130
|
+
export declare function sendCustomWebhookEvent(event: ServerTrackingEvent, _config: CustomTrackingProviderConfig, secrets: CustomTrackingSecrets | null | undefined, options?: ServerTrackingOptions): Promise<TrackingDeliveryResult>;
|
|
105
131
|
/**
|
|
106
|
-
* High-Level Server Tracking Dispatcher
|
|
107
|
-
*
|
|
132
|
+
* High-Level Server Tracking Dispatcher (server-side only).
|
|
133
|
+
*
|
|
134
|
+
* Evaluates the master toggle, selects enabled server providers, resolves each provider's
|
|
135
|
+
* secrets through `options.resolveSecrets` (keyed by the `credentialId` in the trusted
|
|
136
|
+
* config) and dispatches in parallel. A provider without a resolved secret is skipped with a
|
|
137
|
+
* `reason` — this function never throws for missing secrets.
|
|
138
|
+
*
|
|
139
|
+
* Never call this from the browser: the renderer posts to a host relay instead
|
|
140
|
+
* (see `createTrackingRelayHandler`).
|
|
108
141
|
*/
|
|
109
142
|
export declare function dispatchServerTracking(event: ServerTrackingEvent, config?: TrackingConfig, options?: ServerTrackingOptions): Promise<ServerTrackingDispatchResult>;
|
|
110
143
|
//# sourceMappingURL=server-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-tracking.d.ts","sourceRoot":"","sources":["../../src/runtime/server-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"server-tracking.d.ts","sourceRoot":"","sources":["../../src/runtime/server-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,GAAG,EAAE,iBAAiB,KACnB,OAAO,CAAC,uBAAuB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,uBAAuB,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,kBAAkB,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,SAAQ,GAAG,MAAM,CAI9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,EAC/C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAyHjC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,4BAA4B,EACpC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAsFjC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,4BAA4B,EACpC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAyDjC;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CA8CjC;AAaD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,4BAA4B,CAAC,CA+IvC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type TrackingConfig, type TrackEventProvider } from '@kubuild/schema';
|
|
2
|
+
import { type TrackingSecretResolver } from './server-tracking';
|
|
3
|
+
/** Context handed to `getConfig` — use it to look up the trusted config for this page. */
|
|
4
|
+
export interface TrackingRelayConfigContext {
|
|
5
|
+
request: Request;
|
|
6
|
+
/** Untrusted hint from the request body; use it only as a lookup key you authorize. */
|
|
7
|
+
documentId?: string;
|
|
8
|
+
/** Untrusted hint from the request body. */
|
|
9
|
+
credentialId?: string;
|
|
10
|
+
provider: TrackEventProvider;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateTrackingRelayHandlerOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Loads the tracking config from the HOST (database, published page, env, ...).
|
|
15
|
+
* The relay never trusts a config sent in the request body. Return `null` if unknown.
|
|
16
|
+
*/
|
|
17
|
+
getConfig: (ctx: TrackingRelayConfigContext) => Promise<TrackingConfig | null | undefined> | TrackingConfig | null | undefined;
|
|
18
|
+
/** Resolves provider secrets by `credentialId` (from the trusted config). */
|
|
19
|
+
resolveSecrets: TrackingSecretResolver;
|
|
20
|
+
/**
|
|
21
|
+
* Allowed browser origins. When set, requests whose `Origin` header is missing or not in
|
|
22
|
+
* the list are rejected with 403, and CORS headers are returned for allowed origins.
|
|
23
|
+
*/
|
|
24
|
+
allowedOrigins?: readonly string[] | ((origin: string) => boolean);
|
|
25
|
+
fetchFn?: typeof fetch;
|
|
26
|
+
/** Override client IP extraction (defaults to x-forwarded-for / x-real-ip / cf-connecting-ip). */
|
|
27
|
+
getClientIp?: (request: Request) => string | undefined;
|
|
28
|
+
/** Max accepted body size in bytes (default 64 KiB). */
|
|
29
|
+
maxBodyBytes?: number;
|
|
30
|
+
onLog?: (message: string, data?: unknown) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates a reference tracking relay endpoint using only Web-standard `Request`/`Response`
|
|
34
|
+
* (works in Next.js route handlers, Hono, Bun, Deno, Cloudflare Workers, Node 18+ adapters).
|
|
35
|
+
*
|
|
36
|
+
* Flow: validate origin -> validate body with `TrackingRelayRequestSchema` -> load the trusted
|
|
37
|
+
* config via `getConfig` -> attach client IP / UA from request headers -> `dispatchServerTracking`
|
|
38
|
+
* with `resolveSecrets`. The response follows `TrackingRelayResponseSchema` and never echoes
|
|
39
|
+
* provider response bodies.
|
|
40
|
+
*
|
|
41
|
+
* Non-JS backends can implement the same protocol — see `getTrackingRelayRequestJsonSchema()`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createTrackingRelayHandler(options: CreateTrackingRelayHandlerOptions): (request: Request) => Promise<Response>;
|
|
44
|
+
//# sourceMappingURL=tracking-relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracking-relay.d.ts","sourceRoot":"","sources":["../../src/runtime/tracking-relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAE3B,0FAA0F;AAC1F,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,iCAAiC;IAChD;;;OAGG;IACH,SAAS,EAAE,CACT,GAAG,EAAE,0BAA0B,KAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IACpF,6EAA6E;IAC7E,cAAc,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,kGAAkG;IAClG,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IACvD,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AA2BD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,IAGrE,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAoInD"}
|
|
@@ -58,7 +58,41 @@ export interface AiGenerationDiagnostic {
|
|
|
58
58
|
message: string;
|
|
59
59
|
error?: unknown;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Non-fatal tracking delivery diagnostic (e.g. server delivery skipped because the host did
|
|
63
|
+
* not configure a relay). The client-side pixel still fires in these cases.
|
|
64
|
+
*/
|
|
65
|
+
export interface TrackingDiagnostic {
|
|
66
|
+
code: 'TRACKING_RELAY_NOT_CONFIGURED' | 'TRACKING_RELAY_FAILED';
|
|
67
|
+
nodeId?: string;
|
|
68
|
+
eventName?: string;
|
|
69
|
+
message: string;
|
|
70
|
+
error?: unknown;
|
|
71
|
+
}
|
|
72
|
+
export type Diagnostic = ActionDiagnostic | PropBindingDiagnostic | CollectionDiagnostic | AiGenerationDiagnostic | TrackingDiagnostic;
|
|
73
|
+
/**
|
|
74
|
+
* Host-supplied runtime tracking options (NOT part of the document). Server-side delivery
|
|
75
|
+
* (Meta CAPI, TikTok Events API, GA4 MP, custom webhook) only happens through `relayUrl`;
|
|
76
|
+
* the browser never talks to provider APIs with secrets.
|
|
77
|
+
*/
|
|
78
|
+
export interface RuntimeTrackingOptions {
|
|
79
|
+
/**
|
|
80
|
+
* Host relay endpoint implementing the tracking relay protocol v1
|
|
81
|
+
* (`TrackingRelayRequestSchema`). Same-origin is recommended. When absent, server delivery
|
|
82
|
+
* is skipped with a `TRACKING_RELAY_NOT_CONFIGURED` diagnostic.
|
|
83
|
+
*/
|
|
84
|
+
relayUrl?: string;
|
|
85
|
+
/** Host document/page id sent to the relay so it can load the trusted tracking config. */
|
|
86
|
+
documentId?: string;
|
|
87
|
+
/** Extra non-secret request headers (e.g. a CSRF token). */
|
|
88
|
+
relayHeaders?: Readonly<Record<string, string>>;
|
|
89
|
+
/** `fetch` credentials mode for relay calls (default 'same-origin'). */
|
|
90
|
+
credentials?: 'omit' | 'same-origin' | 'include';
|
|
91
|
+
/** Custom fetch implementation (tests, SSR). */
|
|
92
|
+
fetchFn?: typeof fetch;
|
|
93
|
+
/** Receives tracking log lines (skips, relay failures, ...). */
|
|
94
|
+
onLog?: (message: string, data?: unknown) => void;
|
|
95
|
+
}
|
|
62
96
|
export type RenderContext = Readonly<{
|
|
63
97
|
variables?: Readonly<Record<string, unknown>>;
|
|
64
98
|
assetProvider?: AssetProvider;
|
|
@@ -79,6 +113,8 @@ export type RenderContext = Readonly<{
|
|
|
79
113
|
* suppressed and the node sits directly on the canvas instead.
|
|
80
114
|
*/
|
|
81
115
|
artboardSurface?: ArtboardType;
|
|
116
|
+
/** Host tracking runtime options (relay endpoint etc.). Never stored in the document. */
|
|
117
|
+
tracking?: RuntimeTrackingOptions;
|
|
82
118
|
}>;
|
|
83
119
|
export type RuntimeContext = RenderContext;
|
|
84
120
|
export type VariableValueType = 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3D,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;IACxG,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,CAAC;IAChD,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export interface DocumentValidationError {
|
|
|
8
8
|
nodeId?: string;
|
|
9
9
|
details?: Record<string, unknown>;
|
|
10
10
|
}
|
|
11
|
-
export type DocumentValidationWarningCode = 'CHILD_POLICY_VIOLATION' | 'UNKNOWN_COMPONENT_TYPE' | (string & {});
|
|
11
|
+
export type DocumentValidationWarningCode = 'CHILD_POLICY_VIOLATION' | 'UNKNOWN_COMPONENT_TYPE' | 'UNRESOLVED_ASSET_REFERENCE' | (string & {});
|
|
12
12
|
export interface DocumentValidationWarning {
|
|
13
13
|
code: DocumentValidationWarningCode;
|
|
14
14
|
message: string;
|
|
@@ -37,8 +37,31 @@ export interface ValidationOptions {
|
|
|
37
37
|
* If false or undefined (default), allowedChildren mismatches are emitted as non-blocking warnings.
|
|
38
38
|
*/
|
|
39
39
|
strictChildPolicy?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Validate asset references (`{ type: 'asset', assetId, fallbackUrl? }`) found in node props.
|
|
42
|
+
* Checks that `assetId` is a non-empty string and `fallbackUrl` (if present) is a string.
|
|
43
|
+
* When `knownAssetIds` is also supplied, every referenced `assetId` must be in that set.
|
|
44
|
+
* Defaults to `true`.
|
|
45
|
+
*/
|
|
40
46
|
checkAssetReferences?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Known asset IDs used to verify that asset references resolve. A `PageDocument` carries
|
|
49
|
+
* no asset registry of its own (assets live in the `.stora` manifest or the host's asset
|
|
50
|
+
* provider), so this existence check only runs when the caller supplies the IDs.
|
|
51
|
+
* An unresolved reference is an `INVALID_ASSET_REFERENCE` error, or a non-blocking
|
|
52
|
+
* `UNRESOLVED_ASSET_REFERENCE` warning when the reference has a `fallbackUrl`.
|
|
53
|
+
* Ignored when `checkAssetReferences` is `false`.
|
|
54
|
+
*/
|
|
55
|
+
knownAssetIds?: string[] | Set<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Validate variable bindings (`{ type: 'variable', key }`) in node props: `key` must be a
|
|
58
|
+
* non-empty string. Defaults to `true`.
|
|
59
|
+
*/
|
|
41
60
|
checkVariableBindings?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Validate action bindings in node props (a prop named `action`, or any object with a string
|
|
63
|
+
* `type` and a `payload`): `type` must be a non-empty string. Defaults to `true`.
|
|
64
|
+
*/
|
|
42
65
|
checkActionBindings?: boolean;
|
|
43
66
|
securityLimits?: DocumentSecurityLimits;
|
|
44
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GACnC,uBAAuB,GACvB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,wBAAwB,GACxB,kBAAkB,GAClB,8BAA8B,GAC9B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,6BAA6B,GACrC,wBAAwB,GACxB,wBAAwB,GACxB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,wBAAwB,CAwJ1B"}
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GACnC,uBAAuB,GACvB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,wBAAwB,GACxB,kBAAkB,GAClB,8BAA8B,GAC9B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,6BAA6B,GACrC,wBAAwB,GACxB,wBAAwB,GACxB,4BAA4B,GAC5B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,wBAAwB,CAwJ1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubuild/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Framework-agnostic engine for KUBUILD: document utilities, command engine, history, migration, and validation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"homepage": "https://github.com/kustora/kubuild#readme",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"fflate": "^0.8.3",
|
|
44
|
-
"@kubuild/schema": "0.
|
|
44
|
+
"@kubuild/schema": "0.7.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"tsup": "^8.3.6",
|