@x12i/analytix-playground 1.0.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/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PromoteRequest {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
draftType: "query" | "function" | "matrix" | "dashboard" | "report" | "tier";
|
|
4
|
+
draft: any;
|
|
5
|
+
targetAnalyticId: string;
|
|
6
|
+
targetAction: "create" | "update";
|
|
7
|
+
}
|
|
8
|
+
export declare class PromotionController {
|
|
9
|
+
static promote(req: PromoteRequest): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7E,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACnC;AAED,qBAAa,mBAAmB;WACjB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;CAoDxD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromotionController = void 0;
|
|
4
|
+
const analytix_catalox_1 = require("@x12i/analytix-catalox");
|
|
5
|
+
const analytix_tiers_1 = require("@x12i/analytix-tiers");
|
|
6
|
+
class PromotionController {
|
|
7
|
+
static async promote(req) {
|
|
8
|
+
const catalog = `analytix_${req.draftType}s`;
|
|
9
|
+
// 1. Validation
|
|
10
|
+
if (!req.draft.id || !req.draft.title) {
|
|
11
|
+
throw new Error("DRAFT_VALIDATION_FAILED");
|
|
12
|
+
}
|
|
13
|
+
// 2. Action Check
|
|
14
|
+
const currentLatest = await analytix_catalox_1.registry.get(catalog, req.targetAnalyticId);
|
|
15
|
+
if (req.targetAction === "create" && currentLatest) {
|
|
16
|
+
throw new Error("PROMOTE_CONFLICT");
|
|
17
|
+
}
|
|
18
|
+
if (req.targetAction === "update" && !currentLatest) {
|
|
19
|
+
throw new Error("ANALYTIC_NOT_FOUND");
|
|
20
|
+
}
|
|
21
|
+
// 3. Concurrency check
|
|
22
|
+
if (req.targetAction === "update" && currentLatest && req.draft.basedOnVersion !== undefined) {
|
|
23
|
+
if (req.draft.basedOnVersion !== currentLatest.version) {
|
|
24
|
+
throw new Error("PROMOTE_CONFLICT");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// 4. Tier specific DAG validation
|
|
28
|
+
if (req.draftType === "tier") {
|
|
29
|
+
try {
|
|
30
|
+
analytix_tiers_1.TierEngine.compileTierDag(req.draft, (id) => {
|
|
31
|
+
// Mock dependency list check
|
|
32
|
+
return req.draft.levels.find((l) => l.analytics.includes(id)) ? [] : [];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
throw err;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// 5. Write to Catalox with status = 'draft'
|
|
40
|
+
const promoted = await analytix_catalox_1.registry.write(catalog, {
|
|
41
|
+
...req.draft,
|
|
42
|
+
status: "draft",
|
|
43
|
+
version: currentLatest ? currentLatest.version + 1 : 1,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
analyticId: promoted.id,
|
|
47
|
+
version: promoted.version,
|
|
48
|
+
status: "draft",
|
|
49
|
+
promotedFrom: {
|
|
50
|
+
sessionId: req.sessionId,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.PromotionController = PromotionController;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkD;AAClD,yDAAkD;AAUlD,MAAa,mBAAmB;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAmB;QACtC,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,SAAS,GAAG,CAAC;QAE7C,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,kBAAkB;QAClB,MAAM,aAAa,GAAG,MAAM,2BAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,uBAAuB;QACvB,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,IAAI,aAAa,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC7F,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,2BAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAU,EAAE,EAAE;oBAClD,6BAA6B;oBAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,MAAM,2BAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;YAC7C,GAAG,GAAG,CAAC,KAAK;YACZ,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,CAAC,CAAC;QAEH,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,OAAO;YACf,YAAY,EAAE;gBACZ,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC;IACJ,CAAC;CACF;AArDD,kDAqDC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@x12i/analytix-playground",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@x12i/analytix-contracts": "^1.0.0",
|
|
8
|
+
"@x12i/analytix-catalox": "^1.0.0",
|
|
9
|
+
"@x12i/analytix-tiers": "^1.0.0"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public",
|
|
16
|
+
"registry": "https://registry.npmjs.org/"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc -p tsconfig.json"
|
|
20
|
+
}
|
|
21
|
+
}
|