@winible/winible-typed 2.69.7 → 2.70.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/event-collector-models/page-view-event.js +2 -2
- package/dist/event-collector-models/page-view-event.js.map +1 -1
- package/dist/typed-model/campaign.js +3 -0
- package/dist/typed-model/campaign.js.map +1 -1
- package/event-collector-models/page-view-event.ts +2 -2
- package/package.json +1 -1
- package/typed-model/campaign.ts +4 -0
- package/dist/typed-model/featured-capper.js +0 -51
- package/dist/typed-model/featured-capper.js.map +0 -1
- package/dist/utils/lambdaUtils/logger.js +0 -90
- package/dist/utils/lambdaUtils/logger.js.map +0 -1
@@ -35,7 +35,7 @@ PageViewEvent.init({
|
|
35
35
|
field: "campaign_id",
|
36
36
|
},
|
37
37
|
pageUrl: {
|
38
|
-
type: sequelize_1.DataTypes.
|
38
|
+
type: sequelize_1.DataTypes.TEXT,
|
39
39
|
allowNull: false,
|
40
40
|
field: "page_url",
|
41
41
|
},
|
@@ -50,7 +50,7 @@ PageViewEvent.init({
|
|
50
50
|
field: "anon_user_provider",
|
51
51
|
},
|
52
52
|
referrerUrl: {
|
53
|
-
type: sequelize_1.DataTypes.
|
53
|
+
type: sequelize_1.DataTypes.TEXT,
|
54
54
|
allowNull: true,
|
55
55
|
field: "referrer_url",
|
56
56
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"page-view-event.js","sourceRoot":"","sources":["../../event-collector-models/page-view-event.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,MAAM,aAAc,SAAQ,iBAG3B;CAaA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,YAAY,EAAE,qBAAS,CAAC,MAAM;QAC9B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,SAAS;KACjB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,YAAY;KACpB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,
|
1
|
+
{"version":3,"file":"page-view-event.js","sourceRoot":"","sources":["../../event-collector-models/page-view-event.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,MAAM,aAAc,SAAQ,iBAG3B;CAaA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,YAAY,EAAE,qBAAS,CAAC,MAAM;QAC9B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,SAAS;KACjB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,YAAY;KACpB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,CAAC;QACvE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACnB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,oBAAoB;KAC5B;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,qBAAS,CAAC,GAAG;KAC5B;CACF,EACD;IACE,SAAS,EAAT,sBAAS;IACT,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE,KAAK;CAClB,CACF,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../typed-model/campaign.ts"],"names":[],"mappings":";;;;;AAAA,yCAQmB;AAEnB,kEAAuC;AACvC,wCAA8D;AAC9D,kDAA0B;AAC1B,4EAAmD;AAKnD,MAAM,QAAS,SAAQ,iBAGtB;
|
1
|
+
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../typed-model/campaign.ts"],"names":[],"mappings":";;;;;AAAA,yCAQmB;AAEnB,kEAAuC;AACvC,wCAA8D;AAC9D,kDAA0B;AAC1B,4EAAmD;AAKnD,MAAM,QAAS,SAAQ,iBAGtB;CA2BA;AAED,QAAQ,CAAC,IAAI,CACX;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;KACpB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,IAAI;SACV;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE;YACV,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,IAAI;SACV;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;KACjB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;QACtD,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;QACtD,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,YAAY;KACpB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,UAAU;KAClB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,qBAAS,CAAC,GAAG;KAC5B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,qBAAS,CAAC,GAAG;KAC5B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,KAAK;KACtB;CACF,EACD;IACE,SAAS,EAAE,UAAU;IACrB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,eAAe;AACf,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IACrB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AACH,QAAQ,CAAC,SAAS,CAAC,cAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEnD,QAAQ,CAAC,SAAS,CAAC,2BAAgB,EAAE;IACnC,UAAU,EAAE,oBAAoB;IAChC,EAAE,EAAE,UAAU;CACf,CAAC,CAAC;AACH,2BAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,oBAAoB;CACjC,CAAC,CAAC;AAEH,kBAAe,QAAQ,CAAC"}
|
@@ -55,7 +55,7 @@ PageViewEvent.init(
|
|
55
55
|
field: "campaign_id",
|
56
56
|
},
|
57
57
|
pageUrl: {
|
58
|
-
type: DataTypes.
|
58
|
+
type: DataTypes.TEXT,
|
59
59
|
allowNull: false,
|
60
60
|
field: "page_url",
|
61
61
|
},
|
@@ -70,7 +70,7 @@ PageViewEvent.init(
|
|
70
70
|
field: "anon_user_provider",
|
71
71
|
},
|
72
72
|
referrerUrl: {
|
73
|
-
type: DataTypes.
|
73
|
+
type: DataTypes.TEXT,
|
74
74
|
allowNull: true,
|
75
75
|
field: "referrer_url",
|
76
76
|
},
|
package/package.json
CHANGED
package/typed-model/campaign.ts
CHANGED
@@ -30,6 +30,7 @@ class Campaign extends Model<
|
|
30
30
|
declare endDate: Date | null;
|
31
31
|
declare createdAt: CreationOptional<Date>;
|
32
32
|
declare updatedAt: CreationOptional<Date>;
|
33
|
+
declare metadata: any;
|
33
34
|
|
34
35
|
// Associations
|
35
36
|
declare user?: NonAttribute<User>;
|
@@ -102,6 +103,9 @@ Campaign.init(
|
|
102
103
|
field: "updated_at",
|
103
104
|
defaultValue: DataTypes.NOW,
|
104
105
|
},
|
106
|
+
metadata: {
|
107
|
+
type: DataTypes.JSONB,
|
108
|
+
},
|
105
109
|
},
|
106
110
|
{
|
107
111
|
tableName: "campaign",
|
@@ -1,51 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const sequelize_1 = require("sequelize");
|
7
|
-
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
-
const user_1 = __importDefault(require("./user"));
|
9
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
-
class FeaturedCapper extends sequelize_1.Model {
|
11
|
-
}
|
12
|
-
FeaturedCapper.init({
|
13
|
-
id: {
|
14
|
-
type: sequelize_1.DataTypes.BIGINT,
|
15
|
-
primaryKey: true,
|
16
|
-
allowNull: false,
|
17
|
-
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
18
|
-
},
|
19
|
-
userId: {
|
20
|
-
type: sequelize_1.DataTypes.BIGINT,
|
21
|
-
allowNull: false,
|
22
|
-
field: "user_id",
|
23
|
-
references: {
|
24
|
-
model: user_1.default,
|
25
|
-
},
|
26
|
-
},
|
27
|
-
priority: {
|
28
|
-
type: sequelize_1.DataTypes.SMALLINT,
|
29
|
-
field: "priority",
|
30
|
-
},
|
31
|
-
customLabel: {
|
32
|
-
type: sequelize_1.DataTypes.STRING,
|
33
|
-
field: "custom_label",
|
34
|
-
},
|
35
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
36
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
37
|
-
}, {
|
38
|
-
tableName: "featured_cappers",
|
39
|
-
sequelize: pb_sequelize_1.default,
|
40
|
-
});
|
41
|
-
user_1.default.hasOne(FeaturedCapper, {
|
42
|
-
foreignKey: "userId",
|
43
|
-
sourceKey: "id",
|
44
|
-
});
|
45
|
-
FeaturedCapper.hasOne(user_1.default, {
|
46
|
-
foreignKey: "id",
|
47
|
-
sourceKey: "userId",
|
48
|
-
onDelete: "NO ACTION",
|
49
|
-
});
|
50
|
-
exports.default = FeaturedCapper;
|
51
|
-
//# sourceMappingURL=featured-capper.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"featured-capper.js","sourceRoot":"","sources":["../../typed-model/featured-capper.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CAUA;AAED,cAAc,CAAC,IAAI,CACjB;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,sBAAS,CAAC,EAAE,CAAC,SAAS,CAAC;KACtC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;SACZ;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,QAAQ;QACxB,KAAK,EAAE,UAAU;KAClB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,cAAc;KACtB;IAED,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,MAAM,CAAC,cAAc,EAAE;IAC1B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,cAAc,CAAC,MAAM,CAAC,cAAI,EAAE;IAC1B,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC"}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/**
|
4
|
-
* @param message The log message
|
5
|
-
* @param options Additional context for the log entry
|
6
|
-
*
|
7
|
-
* @example
|
8
|
-
* // Basic usage
|
9
|
-
* logger("User login successful");
|
10
|
-
*
|
11
|
-
* @example
|
12
|
-
* // With user ID
|
13
|
-
* logger("User login successful", { userId: "123456" });
|
14
|
-
*
|
15
|
-
* @example
|
16
|
-
* // With error tracking (standard Error)
|
17
|
-
* try {
|
18
|
-
* throw new Error("Something went wrong");
|
19
|
-
* } catch (error) {
|
20
|
-
* logger("Operation failed", {
|
21
|
-
* userId: "user123",
|
22
|
-
* level: "error",
|
23
|
-
* endpoint: "/auth",
|
24
|
-
* method: "processPayment",
|
25
|
-
* error
|
26
|
-
* });
|
27
|
-
* }
|
28
|
-
*
|
29
|
-
* @example
|
30
|
-
* // With object-like error (e.g., from an API)
|
31
|
-
* const apiError = { status: 403, message: "Forbidden", code: "ACCESS_DENIED" };
|
32
|
-
* logger("API request failed", { error: apiError, level: "error" });
|
33
|
-
*
|
34
|
-
* @example
|
35
|
-
* // With primitive error
|
36
|
-
* logger("Validation failed", { error: "Invalid input", level: "warn" });
|
37
|
-
*
|
38
|
-
* @example
|
39
|
-
* // With request tracking
|
40
|
-
* logger("API request received", {
|
41
|
-
* requestId: req.headers['x-request-id'],
|
42
|
-
* endpoint: "/auth",
|
43
|
-
* method: "validateToken"
|
44
|
-
* action: "validateToken"
|
45
|
-
* });
|
46
|
-
*/
|
47
|
-
const logger = (message, options) => {
|
48
|
-
const timestamp = new Date().toISOString();
|
49
|
-
const environment = process.env.ENVIRONMENT || "development";
|
50
|
-
const logEntry = Object.assign(Object.assign({ message, requestId: (options === null || options === void 0 ? void 0 : options.requestId) || "", timestamp, level: (options === null || options === void 0 ? void 0 : options.level) || "info", environment, endpoint: (options === null || options === void 0 ? void 0 : options.endpoint) || "", method: (options === null || options === void 0 ? void 0 : options.method) || "", action: (options === null || options === void 0 ? void 0 : options.action) || "", userId: (options === null || options === void 0 ? void 0 : options.userId) || "" }, ((options === null || options === void 0 ? void 0 : options.error)
|
51
|
-
? {
|
52
|
-
error: (() => {
|
53
|
-
var _a, _b, _c;
|
54
|
-
// Handle different error types
|
55
|
-
if (options.error instanceof Error) {
|
56
|
-
// Standard Error object
|
57
|
-
return {
|
58
|
-
name: (_a = options.error) === null || _a === void 0 ? void 0 : _a.name,
|
59
|
-
message: (_b = options.error) === null || _b === void 0 ? void 0 : _b.message,
|
60
|
-
stack: (_c = options.error) === null || _c === void 0 ? void 0 : _c.stack,
|
61
|
-
};
|
62
|
-
}
|
63
|
-
else if (typeof options.error === "object" &&
|
64
|
-
options.error !== null) {
|
65
|
-
// Object-like error but not an Error instance
|
66
|
-
const errorObj = options.error;
|
67
|
-
return {
|
68
|
-
name: (errorObj === null || errorObj === void 0 ? void 0 : errorObj.name) || "UnknownError",
|
69
|
-
message: (errorObj === null || errorObj === void 0 ? void 0 : errorObj.message) || String(errorObj),
|
70
|
-
details: errorObj,
|
71
|
-
};
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
// Primitive or other non-object error
|
75
|
-
return {
|
76
|
-
name: "UnknownError",
|
77
|
-
message: String(options.error),
|
78
|
-
};
|
79
|
-
}
|
80
|
-
})(),
|
81
|
-
}
|
82
|
-
: {})), ((options === null || options === void 0 ? void 0 : options.additionalData) ? { data: options.additionalData } : {}));
|
83
|
-
// Log as JSON string on production for easier parsing in CloudWatch
|
84
|
-
const outputLog = environment === "production"
|
85
|
-
? JSON.stringify(logEntry)
|
86
|
-
: JSON.stringify(logEntry, null, 2);
|
87
|
-
console.log(outputLog);
|
88
|
-
};
|
89
|
-
exports.default = logger;
|
90
|
-
//# sourceMappingURL=logger.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../utils/lambdaUtils/logger.ts"],"names":[],"mappings":";;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,OAAuB,EAAE,EAAE;IAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,CAAC;IAE7D,MAAM,QAAQ,iCACZ,OAAO,EACP,SAAS,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,EAAE,EACnC,SAAS,EACT,KAAK,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,MAAM,EAC/B,WAAW,EACX,QAAQ,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,EAAE,EACjC,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,EAC7B,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,EAC7B,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,IAC1B,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;QAChB,CAAC,CAAC;YACE,KAAK,EAAE,CAAC,GAAG,EAAE;;gBACX,+BAA+B;gBAC/B,IAAI,OAAO,CAAC,KAAK,YAAY,KAAK,EAAE;oBAClC,wBAAwB;oBACxB,OAAO;wBACL,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI;wBACzB,OAAO,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO;wBAC/B,KAAK,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK;qBAC5B,CAAC;iBACH;qBAAM,IACL,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;oBACjC,OAAO,CAAC,KAAK,KAAK,IAAI,EACtB;oBACA,8CAA8C;oBAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAA4B,CAAC;oBACtD,OAAO;wBACL,IAAI,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,cAAc;wBACtC,OAAO,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,MAAM,CAAC,QAAQ,CAAC;wBAC9C,OAAO,EAAE,QAAQ;qBAClB,CAAC;iBACH;qBAAM;oBACL,sCAAsC;oBACtC,OAAO;wBACL,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;qBAC/B,CAAC;iBACH;YACH,CAAC,CAAC,EAAE;SACL;QACH,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAC;IAEF,oEAAoE;IACpE,MAAM,SAAS,GACb,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|