@winible/winible-typed 2.71.0 → 2.72.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/config/config.js +30 -0
- package/dist/event-collector-models/config/config.js.map +1 -0
- package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js +33 -0
- package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js.map +1 -0
- package/dist/scripts/testModels.js +45 -55
- package/dist/scripts/testModels.js.map +1 -1
- package/dist/src/types.js +1 -24
- package/dist/src/types.js.map +1 -1
- package/dist/typed-model/bet.js +66 -8
- package/dist/typed-model/bet.js.map +1 -1
- package/dist/typed-model/index.js +6 -24
- package/dist/typed-model/index.js.map +1 -1
- package/dist/typed-model/league.js +5 -38
- package/dist/typed-model/league.js.map +1 -1
- package/dist/typed-model/{featured-capper.js → recurly-payment-monitoring-whitelist.js} +16 -22
- package/dist/typed-model/recurly-payment-monitoring-whitelist.js.map +1 -0
- package/event-collector-models/config/config.ts +29 -0
- package/package.json +1 -1
- package/src/types.ts +5 -0
- package/typed-model/affiliate-link.ts +12 -0
- package/typed-model/compliance-rule-sportsbook.ts +95 -0
- package/typed-model/compliance-rule.ts +68 -0
- package/typed-model/default-compliance-policy.ts +64 -0
- package/typed-model/index.ts +3 -0
- package/dist/typed-model/affiliate-link.js +0 -79
- package/dist/typed-model/affiliate-link.js.map +0 -1
- package/dist/typed-model/bet-sport.js +0 -42
- package/dist/typed-model/bet-sport.js.map +0 -1
- package/dist/typed-model/featured-capper.js.map +0 -1
- package/dist/typed-model/market-on-bet-sport.js +0 -58
- package/dist/typed-model/market-on-bet-sport.js.map +0 -1
- package/dist/typed-model/market.js +0 -37
- package/dist/typed-model/market.js.map +0 -1
- package/dist/typed-model/odd.js +0 -129
- package/dist/typed-model/odd.js.map +0 -1
- package/dist/typed-model/odds-on-bets.js +0 -53
- package/dist/typed-model/odds-on-bets.js.map +0 -1
- package/dist/typed-model/odds-on-parlays.js +0 -53
- package/dist/typed-model/odds-on-parlays.js.map +0 -1
- package/dist/typed-model/parlay.js +0 -55
- package/dist/typed-model/parlay.js.map +0 -1
- package/dist/typed-model/parlays-on-bets.js +0 -53
- package/dist/typed-model/parlays-on-bets.js.map +0 -1
- package/dist/typed-model/sportsbook.js +0 -56
- package/dist/typed-model/sportsbook.js.map +0 -1
- package/dist/utils/lambdaUtils/logger.js +0 -90
- package/dist/utils/lambdaUtils/logger.js.map +0 -1
@@ -26,6 +26,8 @@ class AffiliateLinks extends Model<
|
|
26
26
|
declare cta: string;
|
27
27
|
declare affiliateCode: string;
|
28
28
|
declare affiliateLink: string;
|
29
|
+
declare cpa: string;
|
30
|
+
declare description: string;
|
29
31
|
declare createdAt: CreationOptional<Date>;
|
30
32
|
declare updatedAt: CreationOptional<Date>;
|
31
33
|
}
|
@@ -74,6 +76,16 @@ AffiliateLinks.init(
|
|
74
76
|
allowNull: false,
|
75
77
|
field: "affiliate_link",
|
76
78
|
},
|
79
|
+
cpa: {
|
80
|
+
type: DataTypes.STRING,
|
81
|
+
allowNull: false,
|
82
|
+
field: "cpa",
|
83
|
+
},
|
84
|
+
description: {
|
85
|
+
type: DataTypes.STRING,
|
86
|
+
allowNull: false,
|
87
|
+
field: "description",
|
88
|
+
},
|
77
89
|
createdAt: DataTypes.DATE,
|
78
90
|
updatedAt: DataTypes.DATE,
|
79
91
|
},
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import {
|
2
|
+
Model,
|
3
|
+
InferAttributes,
|
4
|
+
InferCreationAttributes,
|
5
|
+
CreationOptional,
|
6
|
+
DataTypes,
|
7
|
+
} from "sequelize";
|
8
|
+
|
9
|
+
import sequelize from "./pb-sequelize";
|
10
|
+
import { ComplianceRuleType } from "../src/types";
|
11
|
+
import ComplianceRule from "./compliance-rule";
|
12
|
+
import Sportsbook from "./sportsbook";
|
13
|
+
|
14
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
15
|
+
class ComplianceRuleSportsbook extends Model<
|
16
|
+
InferAttributes<ComplianceRuleSportsbook>,
|
17
|
+
InferCreationAttributes<ComplianceRuleSportsbook>
|
18
|
+
> {
|
19
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
20
|
+
// when creating an instance of the model (such as using Model.create()).
|
21
|
+
declare id: CreationOptional<string>;
|
22
|
+
declare complianceRuleId: string;
|
23
|
+
declare sportsbookId: string;
|
24
|
+
declare ruleType: ComplianceRuleType;
|
25
|
+
declare createdAt: CreationOptional<Date>;
|
26
|
+
declare updatedAt: CreationOptional<Date>;
|
27
|
+
}
|
28
|
+
|
29
|
+
ComplianceRuleSportsbook.init(
|
30
|
+
{
|
31
|
+
id: {
|
32
|
+
type: DataTypes.BIGINT,
|
33
|
+
primaryKey: true,
|
34
|
+
allowNull: false,
|
35
|
+
defaultValue: sequelize.fn("next_id"),
|
36
|
+
},
|
37
|
+
complianceRuleId: {
|
38
|
+
type: DataTypes.BIGINT,
|
39
|
+
allowNull: false,
|
40
|
+
references: {
|
41
|
+
model: ComplianceRule,
|
42
|
+
key: "id",
|
43
|
+
},
|
44
|
+
field: "compliance_rule_id",
|
45
|
+
},
|
46
|
+
sportsbookId: {
|
47
|
+
type: DataTypes.BIGINT,
|
48
|
+
allowNull: false,
|
49
|
+
references: {
|
50
|
+
model: Sportsbook,
|
51
|
+
key: "id",
|
52
|
+
},
|
53
|
+
field: "sportsbook_id",
|
54
|
+
comment: "References sportsbooks.id",
|
55
|
+
},
|
56
|
+
ruleType: {
|
57
|
+
type: DataTypes.ENUM(...Object.values(ComplianceRuleType)),
|
58
|
+
allowNull: false,
|
59
|
+
field: "rule_type",
|
60
|
+
},
|
61
|
+
createdAt: DataTypes.DATE,
|
62
|
+
updatedAt: DataTypes.DATE,
|
63
|
+
},
|
64
|
+
{
|
65
|
+
// Other model options go here
|
66
|
+
tableName: "compliance_rule_sportsbooks",
|
67
|
+
comment:
|
68
|
+
"Sportsbook associations with compliance rules (allowed/restricted)",
|
69
|
+
sequelize,
|
70
|
+
}
|
71
|
+
);
|
72
|
+
|
73
|
+
// Define relationships
|
74
|
+
ComplianceRule.hasMany(ComplianceRuleSportsbook, {
|
75
|
+
foreignKey: "complianceRuleId",
|
76
|
+
sourceKey: "id",
|
77
|
+
onDelete: "CASCADE",
|
78
|
+
});
|
79
|
+
|
80
|
+
ComplianceRuleSportsbook.belongsTo(ComplianceRule, {
|
81
|
+
foreignKey: "complianceRuleId",
|
82
|
+
});
|
83
|
+
|
84
|
+
Sportsbook.hasMany(ComplianceRuleSportsbook, {
|
85
|
+
foreignKey: "sportsbookId",
|
86
|
+
sourceKey: "id",
|
87
|
+
onDelete: "NO ACTION",
|
88
|
+
constraints: false,
|
89
|
+
});
|
90
|
+
|
91
|
+
ComplianceRuleSportsbook.belongsTo(Sportsbook, {
|
92
|
+
foreignKey: "sportsbookId",
|
93
|
+
});
|
94
|
+
|
95
|
+
export default ComplianceRuleSportsbook;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import {
|
2
|
+
Model,
|
3
|
+
InferAttributes,
|
4
|
+
InferCreationAttributes,
|
5
|
+
CreationOptional,
|
6
|
+
DataTypes,
|
7
|
+
} from "sequelize";
|
8
|
+
|
9
|
+
import sequelize from "./pb-sequelize";
|
10
|
+
|
11
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
+
class ComplianceRule extends Model<
|
13
|
+
InferAttributes<ComplianceRule>,
|
14
|
+
InferCreationAttributes<ComplianceRule>
|
15
|
+
> {
|
16
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
17
|
+
// when creating an instance of the model (such as using Model.create()).
|
18
|
+
declare id: CreationOptional<string>;
|
19
|
+
declare country: string;
|
20
|
+
declare state?: string;
|
21
|
+
declare requiresOnshore: boolean;
|
22
|
+
declare isActive: boolean;
|
23
|
+
declare createdAt: CreationOptional<Date>;
|
24
|
+
declare updatedAt: CreationOptional<Date>;
|
25
|
+
}
|
26
|
+
|
27
|
+
ComplianceRule.init(
|
28
|
+
{
|
29
|
+
id: {
|
30
|
+
type: DataTypes.BIGINT,
|
31
|
+
primaryKey: true,
|
32
|
+
allowNull: false,
|
33
|
+
defaultValue: sequelize.fn("next_id"),
|
34
|
+
},
|
35
|
+
country: {
|
36
|
+
type: DataTypes.STRING(2),
|
37
|
+
allowNull: false,
|
38
|
+
comment: "ISO country code (US, UK, CA, etc.)",
|
39
|
+
},
|
40
|
+
state: {
|
41
|
+
type: DataTypes.STRING(10),
|
42
|
+
allowNull: true,
|
43
|
+
comment: "State/province code (NY, CA, ON, etc.)",
|
44
|
+
},
|
45
|
+
requiresOnshore: {
|
46
|
+
type: DataTypes.BOOLEAN,
|
47
|
+
allowNull: false,
|
48
|
+
defaultValue: false,
|
49
|
+
field: "requires_onshore",
|
50
|
+
},
|
51
|
+
isActive: {
|
52
|
+
type: DataTypes.BOOLEAN,
|
53
|
+
allowNull: false,
|
54
|
+
defaultValue: true,
|
55
|
+
field: "is_active",
|
56
|
+
},
|
57
|
+
createdAt: DataTypes.DATE,
|
58
|
+
updatedAt: DataTypes.DATE,
|
59
|
+
},
|
60
|
+
{
|
61
|
+
// Other model options go here
|
62
|
+
tableName: "compliance_rules",
|
63
|
+
comment: "Geography-based compliance rules for sportsbook access",
|
64
|
+
sequelize,
|
65
|
+
}
|
66
|
+
);
|
67
|
+
|
68
|
+
export default ComplianceRule;
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import {
|
2
|
+
Model,
|
3
|
+
InferAttributes,
|
4
|
+
InferCreationAttributes,
|
5
|
+
CreationOptional,
|
6
|
+
DataTypes,
|
7
|
+
} from "sequelize";
|
8
|
+
|
9
|
+
import sequelize from "./pb-sequelize";
|
10
|
+
|
11
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
+
class DefaultCompliancePolicy extends Model<
|
13
|
+
InferAttributes<DefaultCompliancePolicy>,
|
14
|
+
InferCreationAttributes<DefaultCompliancePolicy>
|
15
|
+
> {
|
16
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
17
|
+
// when creating an instance of the model (such as using Model.create()).
|
18
|
+
declare id: CreationOptional<string>;
|
19
|
+
declare country: string;
|
20
|
+
declare allowByDefault: boolean;
|
21
|
+
declare isActive: boolean;
|
22
|
+
declare createdAt: CreationOptional<Date>;
|
23
|
+
declare updatedAt: CreationOptional<Date>;
|
24
|
+
}
|
25
|
+
|
26
|
+
DefaultCompliancePolicy.init(
|
27
|
+
{
|
28
|
+
id: {
|
29
|
+
type: DataTypes.BIGINT,
|
30
|
+
primaryKey: true,
|
31
|
+
allowNull: false,
|
32
|
+
defaultValue: sequelize.fn("next_id"),
|
33
|
+
},
|
34
|
+
country: {
|
35
|
+
type: DataTypes.STRING(2),
|
36
|
+
allowNull: false,
|
37
|
+
unique: true,
|
38
|
+
comment: "ISO country code",
|
39
|
+
},
|
40
|
+
allowByDefault: {
|
41
|
+
type: DataTypes.BOOLEAN,
|
42
|
+
allowNull: false,
|
43
|
+
defaultValue: false,
|
44
|
+
field: "allow_by_default",
|
45
|
+
comment: "Whether to allow unlisted sportsbooks",
|
46
|
+
},
|
47
|
+
isActive: {
|
48
|
+
type: DataTypes.BOOLEAN,
|
49
|
+
allowNull: false,
|
50
|
+
defaultValue: true,
|
51
|
+
field: "is_active",
|
52
|
+
},
|
53
|
+
createdAt: DataTypes.DATE,
|
54
|
+
updatedAt: DataTypes.DATE,
|
55
|
+
},
|
56
|
+
{
|
57
|
+
// Other model options go here
|
58
|
+
tableName: "default_compliance_policies",
|
59
|
+
comment: "Default compliance behavior by country",
|
60
|
+
sequelize,
|
61
|
+
}
|
62
|
+
);
|
63
|
+
|
64
|
+
export default DefaultCompliancePolicy;
|
package/typed-model/index.ts
CHANGED
@@ -78,5 +78,8 @@ export { default as Parlay } from "./parlay";
|
|
78
78
|
export { default as OddsOnBets } from "./odds-on-bets";
|
79
79
|
export { default as OddsOnParlays } from "./odds-on-parlays";
|
80
80
|
export { default as ParlaysOnBets } from "./parlays-on-bets";
|
81
|
+
export { default as ComplianceRule } from "./compliance-rule";
|
82
|
+
export { default as ComplianceRuleSportsbook } from "./compliance-rule-sportsbook";
|
83
|
+
export { default as DefaultCompliancePolicy } from "./default-compliance-policy";
|
81
84
|
|
82
85
|
export { default as pbSequelize } from "./pb-sequelize";
|
@@ -1,79 +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 types_1 = require("../src/types");
|
9
|
-
const user_1 = __importDefault(require("./user"));
|
10
|
-
const sportsbook_1 = __importDefault(require("./sportsbook"));
|
11
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
-
class AffiliateLinks extends sequelize_1.Model {
|
13
|
-
}
|
14
|
-
AffiliateLinks.init({
|
15
|
-
id: {
|
16
|
-
type: sequelize_1.DataTypes.BIGINT,
|
17
|
-
primaryKey: true,
|
18
|
-
allowNull: false,
|
19
|
-
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
20
|
-
},
|
21
|
-
creatorId: {
|
22
|
-
type: sequelize_1.DataTypes.BIGINT,
|
23
|
-
allowNull: false,
|
24
|
-
references: {
|
25
|
-
model: user_1.default,
|
26
|
-
key: "id",
|
27
|
-
},
|
28
|
-
field: "creator_id",
|
29
|
-
},
|
30
|
-
sportsbookId: {
|
31
|
-
type: sequelize_1.DataTypes.BIGINT,
|
32
|
-
allowNull: false,
|
33
|
-
references: {
|
34
|
-
model: sportsbook_1.default,
|
35
|
-
key: "id",
|
36
|
-
},
|
37
|
-
field: "sportsbook_id",
|
38
|
-
},
|
39
|
-
type: {
|
40
|
-
type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.AffiliateLinkLinkTypes)),
|
41
|
-
allowNull: false,
|
42
|
-
},
|
43
|
-
cta: {
|
44
|
-
type: sequelize_1.DataTypes.STRING,
|
45
|
-
allowNull: false,
|
46
|
-
},
|
47
|
-
affiliateCode: {
|
48
|
-
type: sequelize_1.DataTypes.STRING,
|
49
|
-
allowNull: false,
|
50
|
-
field: "affiliate_code",
|
51
|
-
},
|
52
|
-
affiliateLink: {
|
53
|
-
type: sequelize_1.DataTypes.STRING,
|
54
|
-
allowNull: false,
|
55
|
-
field: "affiliate_link",
|
56
|
-
},
|
57
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
58
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
59
|
-
}, {
|
60
|
-
// Other model options go here
|
61
|
-
tableName: "affiliate_links",
|
62
|
-
comment: "Affiliate Links table, belongs to a user (creator_id)",
|
63
|
-
sequelize: pb_sequelize_1.default,
|
64
|
-
});
|
65
|
-
user_1.default.hasMany(AffiliateLinks, {
|
66
|
-
foreignKey: "creatorId",
|
67
|
-
sourceKey: "id",
|
68
|
-
onDelete: "NO ACTION",
|
69
|
-
constraints: false,
|
70
|
-
});
|
71
|
-
AffiliateLinks.belongsTo(user_1.default, { foreignKey: "creatorId" });
|
72
|
-
sportsbook_1.default.hasMany(AffiliateLinks, {
|
73
|
-
foreignKey: "sportsbookId",
|
74
|
-
sourceKey: "id",
|
75
|
-
onDelete: "NO ACTION",
|
76
|
-
constraints: false,
|
77
|
-
});
|
78
|
-
exports.default = AffiliateLinks;
|
79
|
-
//# sourceMappingURL=affiliate-link.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"affiliate-link.js","sourceRoot":"","sources":["../../typed-model/affiliate-link.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAAkE;AAClE,kDAA0B;AAC1B,8DAAsC;AAEtC,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CAYA;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,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;YACX,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,YAAY;KACpB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,oBAAU;YACjB,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,eAAe;KACvB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;QAC9D,SAAS,EAAE,KAAK;KACjB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,uDAAuD;IAChE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,cAAc,EAAE;IAC3B,UAAU,EAAE,WAAW;IACvB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAc,CAAC,SAAS,CAAC,cAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;AAE5D,oBAAU,CAAC,OAAO,CAAC,cAAc,EAAE;IACjC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC"}
|
@@ -1,42 +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 types_1 = require("../src/types");
|
9
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
-
class BetSport extends sequelize_1.Model {
|
11
|
-
}
|
12
|
-
BetSport.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
|
-
name: {
|
20
|
-
type: sequelize_1.DataTypes.STRING,
|
21
|
-
allowNull: false,
|
22
|
-
},
|
23
|
-
status: {
|
24
|
-
type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.StatusType)),
|
25
|
-
allowNull: false,
|
26
|
-
},
|
27
|
-
numericalId: {
|
28
|
-
type: sequelize_1.DataTypes.INTEGER,
|
29
|
-
allowNull: false,
|
30
|
-
comment: "Numerical ID provided by Odds Jam",
|
31
|
-
field: "numerical_id",
|
32
|
-
},
|
33
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
34
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
35
|
-
}, {
|
36
|
-
// Other model options go here
|
37
|
-
tableName: "bet_sports",
|
38
|
-
comment: "Bet sports synched from Odds Jam",
|
39
|
-
sequelize: pb_sequelize_1.default,
|
40
|
-
});
|
41
|
-
exports.default = BetSport;
|
42
|
-
//# sourceMappingURL=bet-sport.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"bet-sport.js","sourceRoot":"","sources":["../../typed-model/bet-sport.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAA0C;AAE1C,mEAAmE;AACnE,MAAM,QAAS,SAAQ,iBAGtB;CASA;AAED,QAAQ,CAAC,IAAI,CACX;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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,CAAC;QAClD,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,mCAAmC;QAC5C,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,kCAAkC;IAC3C,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
|
@@ -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,58 +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 types_1 = require("../src/types");
|
9
|
-
const bet_sport_1 = __importDefault(require("./bet-sport"));
|
10
|
-
const market_1 = __importDefault(require("./market"));
|
11
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
-
class MarketOnBetSport extends sequelize_1.Model {
|
13
|
-
}
|
14
|
-
MarketOnBetSport.init({
|
15
|
-
betSportId: {
|
16
|
-
type: sequelize_1.DataTypes.BIGINT,
|
17
|
-
allowNull: false,
|
18
|
-
references: {
|
19
|
-
model: bet_sport_1.default,
|
20
|
-
key: "id",
|
21
|
-
},
|
22
|
-
field: "bet_sport_id",
|
23
|
-
},
|
24
|
-
marketId: {
|
25
|
-
type: sequelize_1.DataTypes.BIGINT,
|
26
|
-
allowNull: false,
|
27
|
-
references: {
|
28
|
-
model: market_1.default,
|
29
|
-
key: "id",
|
30
|
-
},
|
31
|
-
field: "market_id",
|
32
|
-
},
|
33
|
-
status: {
|
34
|
-
type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.StatusType)),
|
35
|
-
allowNull: false,
|
36
|
-
},
|
37
|
-
}, {
|
38
|
-
tableName: "markets_on_bet_sports",
|
39
|
-
comment: "Junction table that relates a bet_sport to a market",
|
40
|
-
timestamps: false,
|
41
|
-
sequelize: pb_sequelize_1.default,
|
42
|
-
});
|
43
|
-
bet_sport_1.default.belongsToMany(market_1.default, {
|
44
|
-
through: MarketOnBetSport,
|
45
|
-
foreignKey: "betSportId",
|
46
|
-
sourceKey: "id",
|
47
|
-
onDelete: "NO ACTION",
|
48
|
-
constraints: false,
|
49
|
-
});
|
50
|
-
market_1.default.belongsToMany(bet_sport_1.default, {
|
51
|
-
through: MarketOnBetSport,
|
52
|
-
foreignKey: "marketId",
|
53
|
-
sourceKey: "id",
|
54
|
-
onDelete: "NO ACTION",
|
55
|
-
constraints: false,
|
56
|
-
});
|
57
|
-
exports.default = MarketOnBetSport;
|
58
|
-
//# sourceMappingURL=market-on-bet-sport.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"market-on-bet-sport.js","sourceRoot":"","sources":["../../typed-model/market-on-bet-sport.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAA0C;AAC1C,4DAAmC;AACnC,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,gBAAiB,SAAQ,iBAG9B;CAMA;AAED,gBAAgB,CAAC,IAAI,CACnB;IACE,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,mBAAQ;YACf,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,cAAc;KACtB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,gBAAM;YACb,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,WAAW;KACnB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,CAAC;QAClD,SAAS,EAAE,KAAK;KACjB;CACF,EACD;IACE,SAAS,EAAE,uBAAuB;IAClC,OAAO,EAAE,qDAAqD;IAC9D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,mBAAQ,CAAC,aAAa,CAAC,gBAAM,EAAE;IAC7B,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,aAAa,CAAC,mBAAQ,EAAE;IAC7B,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,gBAAgB,CAAC"}
|
@@ -1,37 +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
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
9
|
-
class Market extends sequelize_1.Model {
|
10
|
-
}
|
11
|
-
Market.init({
|
12
|
-
id: {
|
13
|
-
type: sequelize_1.DataTypes.BIGINT,
|
14
|
-
primaryKey: true,
|
15
|
-
allowNull: false,
|
16
|
-
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
17
|
-
},
|
18
|
-
name: {
|
19
|
-
type: sequelize_1.DataTypes.STRING,
|
20
|
-
allowNull: false,
|
21
|
-
},
|
22
|
-
numericalId: {
|
23
|
-
type: sequelize_1.DataTypes.INTEGER,
|
24
|
-
allowNull: false,
|
25
|
-
comment: "Numerical ID provided by Odds Jam",
|
26
|
-
field: "numerical_id",
|
27
|
-
},
|
28
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
29
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
30
|
-
}, {
|
31
|
-
// Other model options go here
|
32
|
-
tableName: "markets",
|
33
|
-
comment: "Markets synched from Odds Jam",
|
34
|
-
sequelize: pb_sequelize_1.default,
|
35
|
-
});
|
36
|
-
exports.default = Market;
|
37
|
-
//# sourceMappingURL=market.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../typed-model/market.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,MAAO,SAAQ,iBAGpB;CAQA;AAED,MAAM,CAAC,IAAI,CACT;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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,mCAAmC;QAC5C,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,+BAA+B;IACxC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
package/dist/typed-model/odd.js
DELETED
@@ -1,129 +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 sportsbook_1 = __importDefault(require("./sportsbook"));
|
9
|
-
const market_1 = __importDefault(require("./market"));
|
10
|
-
const league_1 = __importDefault(require("./league"));
|
11
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
-
class Odd extends sequelize_1.Model {
|
13
|
-
}
|
14
|
-
Odd.init({
|
15
|
-
id: {
|
16
|
-
type: sequelize_1.DataTypes.STRING,
|
17
|
-
primaryKey: true,
|
18
|
-
allowNull: false,
|
19
|
-
},
|
20
|
-
sportsbookId: {
|
21
|
-
type: sequelize_1.DataTypes.STRING,
|
22
|
-
allowNull: false,
|
23
|
-
field: "sportsbook_id",
|
24
|
-
references: {
|
25
|
-
model: sportsbook_1.default,
|
26
|
-
key: "id",
|
27
|
-
},
|
28
|
-
},
|
29
|
-
marketId: {
|
30
|
-
type: sequelize_1.DataTypes.STRING,
|
31
|
-
allowNull: false,
|
32
|
-
field: "market_id",
|
33
|
-
references: {
|
34
|
-
model: market_1.default,
|
35
|
-
key: "id",
|
36
|
-
},
|
37
|
-
},
|
38
|
-
leagueId: {
|
39
|
-
type: sequelize_1.DataTypes.STRING,
|
40
|
-
allowNull: false,
|
41
|
-
field: "league_id",
|
42
|
-
references: {
|
43
|
-
model: league_1.default,
|
44
|
-
key: "id",
|
45
|
-
},
|
46
|
-
},
|
47
|
-
name: {
|
48
|
-
type: sequelize_1.DataTypes.STRING,
|
49
|
-
allowNull: false,
|
50
|
-
},
|
51
|
-
isMain: {
|
52
|
-
type: sequelize_1.DataTypes.BOOLEAN,
|
53
|
-
allowNull: false,
|
54
|
-
field: "is_main",
|
55
|
-
},
|
56
|
-
playerId: {
|
57
|
-
type: sequelize_1.DataTypes.STRING,
|
58
|
-
allowNull: false,
|
59
|
-
field: "player_id",
|
60
|
-
},
|
61
|
-
teamId: {
|
62
|
-
type: sequelize_1.DataTypes.STRING,
|
63
|
-
allowNull: false,
|
64
|
-
field: "team_id",
|
65
|
-
},
|
66
|
-
price: {
|
67
|
-
type: sequelize_1.DataTypes.STRING,
|
68
|
-
allowNull: false,
|
69
|
-
},
|
70
|
-
status: {
|
71
|
-
type: sequelize_1.DataTypes.STRING,
|
72
|
-
allowNull: false,
|
73
|
-
},
|
74
|
-
groupingKey: {
|
75
|
-
type: sequelize_1.DataTypes.STRING,
|
76
|
-
allowNull: false,
|
77
|
-
field: "grouping_key",
|
78
|
-
},
|
79
|
-
assets: {
|
80
|
-
type: sequelize_1.DataTypes.JSON,
|
81
|
-
allowNull: false,
|
82
|
-
field: "assets",
|
83
|
-
},
|
84
|
-
deepLink: {
|
85
|
-
type: sequelize_1.DataTypes.JSON,
|
86
|
-
allowNull: false,
|
87
|
-
field: "deep_link",
|
88
|
-
},
|
89
|
-
rawResponse: {
|
90
|
-
type: sequelize_1.DataTypes.JSON,
|
91
|
-
allowNull: false,
|
92
|
-
field: "raw_response",
|
93
|
-
},
|
94
|
-
lastPolledAt: {
|
95
|
-
type: sequelize_1.DataTypes.DATE,
|
96
|
-
allowNull: false,
|
97
|
-
field: "last_polled_at",
|
98
|
-
},
|
99
|
-
settlesAt: {
|
100
|
-
type: sequelize_1.DataTypes.DATE,
|
101
|
-
allowNull: true,
|
102
|
-
},
|
103
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
104
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
105
|
-
}, {
|
106
|
-
tableName: "odds",
|
107
|
-
comment: "Odds table, belongs to a bet",
|
108
|
-
sequelize: pb_sequelize_1.default,
|
109
|
-
});
|
110
|
-
sportsbook_1.default.hasMany(Odd, {
|
111
|
-
foreignKey: "sportsbookId",
|
112
|
-
sourceKey: "id",
|
113
|
-
onDelete: "NO ACTION",
|
114
|
-
constraints: false,
|
115
|
-
});
|
116
|
-
market_1.default.hasMany(Odd, {
|
117
|
-
foreignKey: "marketId",
|
118
|
-
sourceKey: "id",
|
119
|
-
onDelete: "NO ACTION",
|
120
|
-
constraints: false,
|
121
|
-
});
|
122
|
-
league_1.default.hasMany(Odd, {
|
123
|
-
foreignKey: "leagueId",
|
124
|
-
sourceKey: "id",
|
125
|
-
onDelete: "NO ACTION",
|
126
|
-
constraints: false,
|
127
|
-
});
|
128
|
-
exports.default = Odd;
|
129
|
-
//# sourceMappingURL=odd.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"odd.js","sourceRoot":"","sources":["../../typed-model/odd.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,8DAAsC;AACtC,sDAA8B;AAE9B,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,GAAI,SAAQ,iBAAyD;CAmB1E;AAED,GAAG,CAAC,IAAI,CACN;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;KACjB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE;YACV,KAAK,EAAE,oBAAU;YACjB,GAAG,EAAE,IAAI;SACV;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE;YACV,KAAK,EAAE,gBAAM;YACb,GAAG,EAAE,IAAI;SACV;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE;YACV,KAAK,EAAE,gBAAM;YACb,GAAG,EAAE,IAAI;SACV;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACnB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;KAChB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACnB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,8BAA8B;IACvC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,oBAAU,CAAC,OAAO,CAAC,GAAG,EAAE;IACtB,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
|