@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.
@@ -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
+ }