@winible/winible-typed 2.92.3 → 2.92.4

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.
Files changed (27) hide show
  1. package/dist/migrations/20251002044115-create-users-on-bets.js +73 -0
  2. package/dist/migrations/20251002044115-create-users-on-bets.js.map +1 -0
  3. package/dist/src/sanitization.js +84 -0
  4. package/dist/src/sanitization.js.map +1 -0
  5. package/dist/src/sanitization.test.js +191 -0
  6. package/dist/src/sanitization.test.js.map +1 -0
  7. package/dist/typed-model/banner-creative.js +1 -1
  8. package/dist/typed-model/banner-creative.js.map +1 -1
  9. package/dist/typed-model/bet.js +5 -0
  10. package/dist/typed-model/bet.js.map +1 -1
  11. package/dist/typed-model/index.js +4 -2
  12. package/dist/typed-model/index.js.map +1 -1
  13. package/dist/typed-model/users-on-bets.js +92 -0
  14. package/dist/typed-model/users-on-bets.js.map +1 -0
  15. package/package.json +1 -1
  16. package/typed-model/users-on-bets.ts +0 -7
  17. package/dist/event-collector-models/config/config.js +0 -29
  18. package/dist/event-collector-models/config/config.js.map +0 -1
  19. package/dist/migration_numerical_id_to_external_id.js +0 -59
  20. package/dist/migration_numerical_id_to_external_id.js.map +0 -1
  21. package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js +0 -33
  22. package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js.map +0 -1
  23. package/dist/typed-model/market-on-bet-sport.js +0 -58
  24. package/dist/typed-model/market-on-bet-sport.js.map +0 -1
  25. package/dist/typed-model/recurly-payment-monitoring-whitelist.js +0 -45
  26. package/dist/typed-model/recurly-payment-monitoring-whitelist.js.map +0 -1
  27. package/event-collector-models/config/config.ts +0 -29
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ exports.default = {
5
+ async up(queryInterface, sequelize) {
6
+ await queryInterface.createTable("users_on_bets", {
7
+ id: {
8
+ type: sequelize_1.DataTypes.BIGINT,
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ defaultValue: sequelize.fn("next_id"),
12
+ },
13
+ userId: {
14
+ type: sequelize_1.DataTypes.BIGINT,
15
+ field: "user_id",
16
+ allowNull: false,
17
+ references: {
18
+ model: "users",
19
+ key: "id",
20
+ },
21
+ onUpdate: "CASCADE",
22
+ onDelete: "CASCADE",
23
+ },
24
+ betId: {
25
+ type: sequelize_1.DataTypes.BIGINT,
26
+ field: "bet_id",
27
+ allowNull: false,
28
+ references: {
29
+ model: "bets",
30
+ key: "id",
31
+ },
32
+ onUpdate: "CASCADE",
33
+ onDelete: "CASCADE",
34
+ },
35
+ betPlaced: {
36
+ type: sequelize_1.DataTypes.BOOLEAN,
37
+ field: "bet_placed",
38
+ allowNull: true,
39
+ comment: "true = placed, false = not placed, null = unanswered",
40
+ },
41
+ clickedOddPrice: {
42
+ type: sequelize_1.DataTypes.FLOAT,
43
+ field: "clicked_odd_price",
44
+ allowNull: true,
45
+ comment: "The odd price when user clicked the link",
46
+ },
47
+ metadata: {
48
+ type: sequelize_1.DataTypes.JSONB,
49
+ field: "metadata",
50
+ allowNull: true,
51
+ comment: "Stores clicked odd/parlay data and feedback information",
52
+ },
53
+ createdAt: {
54
+ type: sequelize_1.DataTypes.DATE,
55
+ field: "created_at",
56
+ allowNull: false,
57
+ },
58
+ updatedAt: {
59
+ type: sequelize_1.DataTypes.DATE,
60
+ field: "updated_at",
61
+ allowNull: false,
62
+ },
63
+ });
64
+ // Add indexes for better query performance
65
+ await queryInterface.addIndex("users_on_bets", ["user_id"]);
66
+ await queryInterface.addIndex("users_on_bets", ["bet_id"]);
67
+ await queryInterface.addIndex("users_on_bets", ["user_id", "bet_placed"]);
68
+ },
69
+ async down(queryInterface, sequelize) {
70
+ await queryInterface.dropTable("users_on_bets");
71
+ },
72
+ };
73
+ //# sourceMappingURL=20251002044115-create-users-on-bets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251002044115-create-users-on-bets.js","sourceRoot":"","sources":["../../migrations/20251002044115-create-users-on-bets.ts"],"names":[],"mappings":";;AAAA,yCAAiE;AAEjE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,MAAM,cAAc,CAAC,WAAW,CAAC,eAAe,EAAE;YAChD,EAAE,EAAE;gBACF,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;aACtC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE;oBACV,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,IAAI;iBACV;gBACD,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;aACpB;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE;oBACV,KAAK,EAAE,MAAM;oBACb,GAAG,EAAE,IAAI;iBACV;gBACD,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;aACpB;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,qBAAS,CAAC,OAAO;gBACvB,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,sDAAsD;aAChE;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,qBAAS,CAAC,KAAK;gBACrB,KAAK,EAAE,mBAAmB;gBAC1B,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,0CAA0C;aACpD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,qBAAS,CAAC,KAAK;gBACrB,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,yDAAyD;aACnE;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,qBAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,KAAK;aACjB;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,qBAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,KAAK;aACjB;SACF,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,MAAM,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB;QAC7D,MAAM,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;CACF,CAAC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeObject = exports.sanitizeFeedback = exports.sanitizeUserInput = void 0;
4
+ /**
5
+ * Sanitizes user input to prevent XSS and other security issues
6
+ * @param input - The string to sanitize
7
+ * @param maxLength - Maximum allowed length (default: 1000)
8
+ * @returns Sanitized string
9
+ */
10
+ function sanitizeUserInput(input, maxLength = 1000) {
11
+ if (!input || typeof input !== "string") {
12
+ return "";
13
+ }
14
+ // Trim whitespace
15
+ let sanitized = input.trim();
16
+ // Remove or escape potentially dangerous characters
17
+ sanitized = sanitized
18
+ // Remove null bytes
19
+ .replace(/\0/g, "")
20
+ // Remove potential script injection patterns first
21
+ .replace(/javascript:/gi, "")
22
+ .replace(/vbscript:/gi, "")
23
+ .replace(/data:/gi, "")
24
+ .replace(/on\w+\s*=/gi, "")
25
+ // Escape HTML entities
26
+ .replace(/&/g, "&")
27
+ .replace(/</g, "&lt;")
28
+ .replace(/>/g, "&gt;")
29
+ .replace(/"/g, "&quot;")
30
+ .replace(/'/g, "&#x27;")
31
+ .replace(/\//g, "&#x2F;")
32
+ // Remove control characters except newlines and tabs
33
+ .replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "");
34
+ // Apply length limit after all transformations
35
+ return sanitized.slice(0, maxLength);
36
+ }
37
+ exports.sanitizeUserInput = sanitizeUserInput;
38
+ /**
39
+ * Sanitizes feedback text specifically for bet feedback
40
+ * @param feedback - The feedback string to sanitize
41
+ * @returns Sanitized feedback string
42
+ */
43
+ function sanitizeFeedback(feedback) {
44
+ return sanitizeUserInput(feedback, 500); // Limit feedback to 500 characters
45
+ }
46
+ exports.sanitizeFeedback = sanitizeFeedback;
47
+ /**
48
+ * Deep sanitizes an object containing user input
49
+ * @param obj - Object to sanitize
50
+ * @returns Sanitized object
51
+ */
52
+ function sanitizeObject(obj) {
53
+ if (!obj || typeof obj !== "object") {
54
+ return obj;
55
+ }
56
+ if (Array.isArray(obj)) {
57
+ return obj.map((item) => {
58
+ if (typeof item === "string") {
59
+ return sanitizeUserInput(item);
60
+ }
61
+ else if (typeof item === "object") {
62
+ return sanitizeObject(item);
63
+ }
64
+ else {
65
+ return item;
66
+ }
67
+ });
68
+ }
69
+ const sanitized = {};
70
+ for (const [key, value] of Object.entries(obj)) {
71
+ if (typeof value === "string") {
72
+ sanitized[key] = sanitizeUserInput(value);
73
+ }
74
+ else if (typeof value === "object") {
75
+ sanitized[key] = sanitizeObject(value);
76
+ }
77
+ else {
78
+ sanitized[key] = value;
79
+ }
80
+ }
81
+ return sanitized;
82
+ }
83
+ exports.sanitizeObject = sanitizeObject;
84
+ //# sourceMappingURL=sanitization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../src/sanitization.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAa,EACb,YAAoB,IAAI;IAExB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;IAED,kBAAkB;IAClB,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,oDAAoD;IACpD,SAAS,GAAG,SAAS;QACnB,oBAAoB;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,mDAAmD;SAClD,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3B,uBAAuB;SACtB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzB,qDAAqD;SACpD,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;IAEpD,+CAA+C;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC;AAhCD,8CAgCC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,mCAAmC;AAC9E,CAAC;AAFD,4CAEC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,GAAQ;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACnC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAChC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC3C;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,SAAS,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACL,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACxB;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA7BD,wCA6BC"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sanitization_1 = require("./sanitization");
4
+ describe("Sanitization Utilities", () => {
5
+ describe("sanitizeUserInput", () => {
6
+ it("should return empty string for null/undefined input", () => {
7
+ expect((0, sanitization_1.sanitizeUserInput)(null)).toBe("");
8
+ expect((0, sanitization_1.sanitizeUserInput)(undefined)).toBe("");
9
+ expect((0, sanitization_1.sanitizeUserInput)("")).toBe("");
10
+ });
11
+ it("should trim whitespace", () => {
12
+ expect((0, sanitization_1.sanitizeUserInput)(" hello world ")).toBe("hello world");
13
+ expect((0, sanitization_1.sanitizeUserInput)("\n\t test \n\t")).toBe("test");
14
+ });
15
+ it("should escape HTML entities", () => {
16
+ expect((0, sanitization_1.sanitizeUserInput)('<script>alert("xss")</script>')).toBe("&lt;script&gt;alert(&quot;xss&quot;)&lt;&#x2F;script&gt;");
17
+ expect((0, sanitization_1.sanitizeUserInput)("Hello & goodbye")).toBe("Hello &amp; goodbye");
18
+ expect((0, sanitization_1.sanitizeUserInput)("Test \"quotes\" and 'apostrophes'")).toBe("Test &quot;quotes&quot; and &#x27;apostrophes&#x27;");
19
+ });
20
+ it("should remove dangerous script patterns", () => {
21
+ expect((0, sanitization_1.sanitizeUserInput)('javascript:alert("xss")')).toBe("alert(&quot;xss&quot;)");
22
+ expect((0, sanitization_1.sanitizeUserInput)("vbscript:malicious")).toBe("malicious");
23
+ expect((0, sanitization_1.sanitizeUserInput)("data:text/html,<script>")).toBe("text&#x2F;html,&lt;script&gt;");
24
+ });
25
+ it("should remove event handlers", () => {
26
+ expect((0, sanitization_1.sanitizeUserInput)("onclick=alert(1)")).toBe("alert(1)");
27
+ expect((0, sanitization_1.sanitizeUserInput)("onload=malicious()")).toBe("malicious()");
28
+ expect((0, sanitization_1.sanitizeUserInput)("onmouseover=hack()")).toBe("hack()");
29
+ });
30
+ it("should remove null bytes and control characters", () => {
31
+ expect((0, sanitization_1.sanitizeUserInput)("hello\x00world")).toBe("helloworld");
32
+ expect((0, sanitization_1.sanitizeUserInput)("test\x01\x02\x03")).toBe("test");
33
+ expect((0, sanitization_1.sanitizeUserInput)("keep\n\ttabs")).toBe("keep\n\ttabs"); // Keep newlines and tabs
34
+ });
35
+ it("should enforce length limits", () => {
36
+ const longString = "a".repeat(1500);
37
+ const result = (0, sanitization_1.sanitizeUserInput)(longString);
38
+ expect(result.length).toBe(1000); // Default max length
39
+ const customLimit = (0, sanitization_1.sanitizeUserInput)(longString, 50);
40
+ expect(customLimit.length).toBe(50);
41
+ });
42
+ it("should handle complex XSS attempts", () => {
43
+ const xssAttempts = [
44
+ "<img src=x onerror=alert(1)>",
45
+ "<svg onload=alert(1)>",
46
+ "javascript:void(0)",
47
+ '<iframe src="javascript:alert(1)"></iframe>',
48
+ '"><script>alert(1)</script>',
49
+ "'-alert(1)-'",
50
+ ];
51
+ xssAttempts.forEach((attempt) => {
52
+ const result = (0, sanitization_1.sanitizeUserInput)(attempt);
53
+ expect(result).not.toContain("javascript:");
54
+ expect(result).not.toContain("onload");
55
+ expect(result).not.toContain("onerror");
56
+ expect(result).not.toContain("<script>");
57
+ });
58
+ });
59
+ it("should preserve safe content", () => {
60
+ const safeInputs = [
61
+ "Hello world!",
62
+ "This is a normal sentence.",
63
+ "Numbers: 123 and symbols: @#$%",
64
+ "Emojis are fine: 😀 🎉",
65
+ "Line breaks\nare preserved",
66
+ ];
67
+ safeInputs.forEach((input) => {
68
+ const result = (0, sanitization_1.sanitizeUserInput)(input);
69
+ expect(result).toBeTruthy();
70
+ expect(result.length).toBeGreaterThan(0);
71
+ });
72
+ });
73
+ });
74
+ describe("sanitizeFeedback", () => {
75
+ it("should limit feedback to 500 characters", () => {
76
+ const longFeedback = "a".repeat(600);
77
+ const result = (0, sanitization_1.sanitizeFeedback)(longFeedback);
78
+ expect(result.length).toBe(500);
79
+ });
80
+ it("should sanitize feedback content", () => {
81
+ const maliciousFeedback = '<script>alert("feedback hack")</script>';
82
+ const result = (0, sanitization_1.sanitizeFeedback)(maliciousFeedback);
83
+ expect(result).toBe("&lt;script&gt;alert(&quot;feedback hack&quot;)&lt;&#x2F;script&gt;");
84
+ });
85
+ it("should handle normal feedback", () => {
86
+ const normalFeedback = "The odds changed and I couldn't place the bet.";
87
+ const result = (0, sanitization_1.sanitizeFeedback)(normalFeedback);
88
+ expect(result).toBe("The odds changed and I couldn&#x27;t place the bet.");
89
+ });
90
+ });
91
+ describe("sanitizeObject", () => {
92
+ it("should return non-object values unchanged", () => {
93
+ expect((0, sanitization_1.sanitizeObject)(null)).toBe(null);
94
+ expect((0, sanitization_1.sanitizeObject)(undefined)).toBe(undefined);
95
+ expect((0, sanitization_1.sanitizeObject)(123)).toBe(123);
96
+ expect((0, sanitization_1.sanitizeObject)(true)).toBe(true);
97
+ });
98
+ it("should sanitize string values in objects", () => {
99
+ const input = {
100
+ reason: "other",
101
+ customFeedback: '<script>alert("xss")</script>',
102
+ normalField: "safe content",
103
+ };
104
+ const result = (0, sanitization_1.sanitizeObject)(input);
105
+ expect(result.reason).toBe("other");
106
+ expect(result.customFeedback).toBe("&lt;script&gt;alert(&quot;xss&quot;)&lt;&#x2F;script&gt;");
107
+ expect(result.normalField).toBe("safe content");
108
+ });
109
+ it("should handle nested objects", () => {
110
+ const input = {
111
+ user: {
112
+ name: "<script>hack</script>",
113
+ email: "user@example.com",
114
+ },
115
+ feedback: {
116
+ reason: "other",
117
+ details: "javascript:alert(1)",
118
+ },
119
+ };
120
+ const result = (0, sanitization_1.sanitizeObject)(input);
121
+ expect(result.user.name).toBe("&lt;script&gt;hack&lt;&#x2F;script&gt;");
122
+ expect(result.user.email).toBe("user@example.com");
123
+ expect(result.feedback.reason).toBe("other");
124
+ expect(result.feedback.details).toBe("alert(1)");
125
+ });
126
+ it("should handle arrays", () => {
127
+ const input = {
128
+ tags: ["<script>xss</script>", "normal tag", "javascript:void(0)"],
129
+ numbers: [1, 2, 3],
130
+ };
131
+ const result = (0, sanitization_1.sanitizeObject)(input);
132
+ expect(result.tags[0]).toBe("&lt;script&gt;xss&lt;&#x2F;script&gt;");
133
+ expect(result.tags[1]).toBe("normal tag");
134
+ expect(result.tags[2]).toBe("void(0)");
135
+ expect(result.numbers).toEqual([1, 2, 3]);
136
+ });
137
+ it("should handle complex nested structures", () => {
138
+ const input = {
139
+ metadata: {
140
+ feedback: {
141
+ reason: "other",
142
+ customFeedback: "<img src=x onerror=alert(1)>",
143
+ tags: ["javascript:hack", "normal"],
144
+ },
145
+ },
146
+ id: 123,
147
+ active: true,
148
+ };
149
+ const result = (0, sanitization_1.sanitizeObject)(input);
150
+ expect(result.metadata.feedback.reason).toBe("other");
151
+ expect(result.metadata.feedback.customFeedback).toBe("&lt;img src=x alert(1)&gt;");
152
+ expect(result.metadata.feedback.tags[0]).toBe("hack");
153
+ expect(result.metadata.feedback.tags[1]).toBe("normal");
154
+ expect(result.id).toBe(123);
155
+ expect(result.active).toBe(true);
156
+ });
157
+ it("should handle real bet feedback structure", () => {
158
+ const betFeedback = {
159
+ reason: "other",
160
+ customFeedback: 'The sportsbook link was broken and showed <script>alert("xss")</script>',
161
+ };
162
+ const result = (0, sanitization_1.sanitizeObject)(betFeedback);
163
+ expect(result.reason).toBe("other");
164
+ expect(result.customFeedback).toBe("The sportsbook link was broken and showed &lt;script&gt;alert(&quot;xss&quot;)&lt;&#x2F;script&gt;");
165
+ });
166
+ });
167
+ describe("Edge cases and security tests", () => {
168
+ it("should handle Unicode and special characters safely", () => {
169
+ const unicodeInput = "Hello 世界 🌍 café naïve résumé";
170
+ const result = (0, sanitization_1.sanitizeUserInput)(unicodeInput);
171
+ expect(result).toBe(unicodeInput); // Should preserve Unicode
172
+ });
173
+ it("should handle mixed content attacks", () => {
174
+ const mixedAttack = 'Normal text <script>alert("xss")</script> more normal text';
175
+ const result = (0, sanitization_1.sanitizeUserInput)(mixedAttack);
176
+ expect(result).toBe("Normal text &lt;script&gt;alert(&quot;xss&quot;)&lt;&#x2F;script&gt; more normal text");
177
+ });
178
+ it("should handle encoded attacks", () => {
179
+ const encodedAttack = "&lt;script&gt;alert(1)&lt;/script&gt;";
180
+ const result = (0, sanitization_1.sanitizeUserInput)(encodedAttack);
181
+ expect(result).toBe("&amp;lt;script&amp;gt;alert(1)&amp;lt;&#x2F;script&amp;gt;");
182
+ });
183
+ it("should handle very long malicious input", () => {
184
+ const longMalicious = '<script>alert("xss")</script>'.repeat(100);
185
+ const result = (0, sanitization_1.sanitizeUserInput)(longMalicious);
186
+ expect(result.length).toBeLessThanOrEqual(1000);
187
+ expect(result).not.toContain("<script>");
188
+ });
189
+ });
190
+ });
191
+ //# sourceMappingURL=sanitization.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.test.js","sourceRoot":"","sources":["../../src/sanitization.test.ts"],"names":[],"mappings":";;AAAA,iDAIwB;AAExB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,IAAA,gCAAiB,EAAC,IAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAA,gCAAiB,EAAC,SAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,IAAA,gCAAiB,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,IAAA,gCAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,MAAM,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,IAAA,gCAAiB,EAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAC7D,0DAA0D,CAC3D,CAAC;YAEF,MAAM,CAAC,IAAA,gCAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEzE,MAAM,CAAC,IAAA,gCAAiB,EAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CACjE,qDAAqD,CACtD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,IAAA,gCAAiB,EAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CACvD,wBAAwB,CACzB,CAAC;YAEF,MAAM,CAAC,IAAA,gCAAiB,EAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAElE,MAAM,CAAC,IAAA,gCAAiB,EAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CACvD,+BAA+B,CAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE/D,MAAM,CAAC,IAAA,gCAAiB,EAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEpE,MAAM,CAAC,IAAA,gCAAiB,EAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,IAAA,gCAAiB,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAA,gCAAiB,EAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;YAEvD,MAAM,WAAW,GAAG,IAAA,gCAAiB,EAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,WAAW,GAAG;gBAClB,8BAA8B;gBAC9B,uBAAuB;gBACvB,oBAAoB;gBACpB,6CAA6C;gBAC7C,6BAA6B;gBAC7B,cAAc;aACf,CAAC;YAEF,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG;gBACjB,cAAc;gBACd,4BAA4B;gBAC5B,gCAAgC;gBAChC,wBAAwB;gBACxB,4BAA4B;aAC7B,CAAC;YAEF,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,IAAA,+BAAgB,EAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,iBAAiB,GAAG,yCAAyC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAA,+BAAgB,EAAC,iBAAiB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,oEAAoE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,cAAc,GAAG,gDAAgD,CAAC;YACxE,MAAM,MAAM,GAAG,IAAA,+BAAgB,EAAC,cAAc,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,qDAAqD,CACtD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,IAAA,6BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,IAAA,6BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG;gBACZ,MAAM,EAAE,OAAO;gBACf,cAAc,EAAE,+BAA+B;gBAC/C,WAAW,EAAE,cAAc;aAC5B,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAChC,0DAA0D,CAC3D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE;oBACJ,IAAI,EAAE,uBAAuB;oBAC7B,KAAK,EAAE,kBAAkB;iBAC1B;gBACD,QAAQ,EAAE;oBACR,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,qBAAqB;iBAC/B;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,CAAC,sBAAsB,EAAE,YAAY,EAAE,oBAAoB,CAAC;gBAClE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG;gBACZ,QAAQ,EAAE;oBACR,QAAQ,EAAE;wBACR,MAAM,EAAE,OAAO;wBACf,cAAc,EAAE,8BAA8B;wBAC9C,IAAI,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;qBACpC;iBACF;gBACD,EAAE,EAAE,GAAG;gBACP,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,KAAK,CAAC,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAClD,4BAA4B,CAC7B,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,WAAW,GAAG;gBAClB,MAAM,EAAE,OAAO;gBACf,cAAc,EACZ,yEAAyE;aAC5E,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,WAAW,CAAC,CAAC;YAE3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAChC,oGAAoG,CACrG,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,YAAY,GAAG,+BAA+B,CAAC;YACrD,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,WAAW,GACf,4DAA4D,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,uFAAuF,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,aAAa,GAAG,uCAAuC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,4DAA4D,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,aAAa,GAAG,+BAA+B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -104,7 +104,7 @@ BannerCreative.init({
104
104
  },
105
105
  createdBy: {
106
106
  type: sequelize_1.DataTypes.BIGINT,
107
- allowNull: false,
107
+ allowNull: true,
108
108
  references: {
109
109
  model: user_1.default,
110
110
  key: "id",
@@ -1 +1 @@
1
- {"version":3,"file":"banner-creative.js","sourceRoot":"","sources":["../../typed-model/banner-creative.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,sEAA8C;AAK9C,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CA0BA;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,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,wBAAc;YACrB,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,mBAAmB;KAC3B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACtC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,WAAW;KACnB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,kBAAkB;KAC1B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,mBAAmB;KAC3B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,WAAW;KACnB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,oBAAoB;KAC5B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC9D,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,SAAS;KACjB;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,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,OAAO;KACf;CACF,EACD;IACE,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF;;;;EAIE;AAEF,cAAc,CAAC,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IAC5C,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC;QAClC,KAAK,EAAE;YACL,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gBAAgB;AAChB,wBAAc,CAAC,OAAO,CAAC,cAAc,EAAE;IACrC,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAc,CAAC,SAAS,CAAC,wBAAc,EAAE;IACvC,UAAU,EAAE,iBAAiB;CAC9B,CAAC,CAAC;AAEH,cAAI,CAAC,OAAO,CAAC,cAAc,EAAE;IAC3B,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAc,CAAC,SAAS,CAAC,cAAI,EAAE;IAC7B,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,WAAW;CACxB,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"banner-creative.js","sourceRoot":"","sources":["../../typed-model/banner-creative.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,11 @@ Bet.init({
47
47
  allowNull: true,
48
48
  field: "parlay_unit",
49
49
  },
50
+ parlayWager: {
51
+ type: sequelize_1.DataTypes.STRING,
52
+ allowNull: true,
53
+ field: "parlay_wager",
54
+ },
50
55
  lastGradedAt: {
51
56
  type: sequelize_1.DataTypes.DATE,
52
57
  allowNull: true,
@@ -1 +1 @@
1
- {"version":3,"file":"bet.js","sourceRoot":"","sources":["../../typed-model/bet.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,wCAAsD;AAEtD,mEAAmE;AACnE,MAAM,GAAI,SAAQ,iBAAyD;CAY1E;AAED,GAAG,CAAC,IAAI,CACN;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,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;QACrD,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAO,CAAC,CAAC;QAC/C,SAAS,EAAE,KAAK;KACjB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,cAAc;KACtB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,gBAAgB;KACxB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,mBAAmB;KAC3B;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,MAAM;IACjB,OAAO,EACL,wEAAwE;IAC1E,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE;IAChB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,GAAG,CAAC,SAAS,CAAC,cAAI,EAAE;IAClB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"bet.js","sourceRoot":"","sources":["../../typed-model/bet.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,wCAAsD;AAGtD,mEAAmE;AACnE,MAAM,GAAI,SAAQ,iBAAyD;CAa1E;AAED,GAAG,CAAC,IAAI,CACN;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,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;QACrD,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAO,CAAC,CAAC;QAC/C,SAAS,EAAE,KAAK;KACjB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,cAAc;KACtB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,cAAc;KACtB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,gBAAgB;KACxB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,mBAAmB;KAC3B;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,MAAM;IACjB,OAAO,EACL,wEAAwE;IAC1E,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE;IAChB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,GAAG,CAAC,SAAS,CAAC,cAAI,EAAE;IAClB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MigrationToken = exports.Bet = exports.LimitedOffer = exports.AffiliateLinkType = exports.AffiliateCode = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.DiscordIntegrationLog = exports.TelegramIntegrationInviteLink = exports.TelegramIntegrationCode = exports.TelegramIntegrationLog = exports.SubscriberTelegramIntegration = exports.TelegramIntegration = exports.StoresOnOrganizations = exports.UsersOnOrganizations = exports.Organization = exports.FailedTransactions = exports.Whitelist = exports.SubscriberDiscordIntegration = exports.DiscordIntegration = exports.SportOnPosts = exports.Sport = exports.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NewNotificationPreference = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.Withdrawal = exports.RecurlyAccount = exports.FreeSubscriptionPlan = exports.SubscriptionPricingOption = exports.SubscriptionCoupon = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.PasswordTokens = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
7
- exports.pbSequelize = exports.BannerCreative = exports.SportsbookOnMarket = exports.Dispute = exports.DefaultCompliancePolicy = exports.ParlaysOnBets = exports.OddsOnParlays = exports.OddsOnBets = exports.ComplianceRuleSportsbook = exports.Parlay = exports.Odd = exports.AffiliateLink = exports.MarketOnLeague = exports.League = exports.ComplianceRule = exports.Sportsbook = exports.Market = exports.BetSport = exports.SendgridDomain = exports.SendgridIpPool = exports.SendgridEmailSubAccount = exports.PhoneNumberAssignment = exports.MarketingPhoneNumber = exports.Segment = exports.Trigger = exports.CampaignMessage = exports.Campaign = exports.CampaignTemplate = exports.CreatorServiceFee = exports.UserCookiePreference = exports.CouponRedemptions = exports.UserTransactionLocation = exports.UserReview = exports.PumpingRiskScoreMonitoring = exports.UsersOnPermissions = exports.Permission = exports.SMSCustomMessage = void 0;
6
+ exports.UsersOnBets = exports.Bet = exports.LimitedOffer = exports.AffiliateLinkType = exports.AffiliateCode = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.DiscordIntegrationLog = exports.TelegramIntegrationInviteLink = exports.TelegramIntegrationCode = exports.TelegramIntegrationLog = exports.SubscriberTelegramIntegration = exports.TelegramIntegration = exports.StoresOnOrganizations = exports.UsersOnOrganizations = exports.Organization = exports.FailedTransactions = exports.Whitelist = exports.SubscriberDiscordIntegration = exports.DiscordIntegration = exports.SportOnPosts = exports.Sport = exports.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NewNotificationPreference = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.Withdrawal = exports.RecurlyAccount = exports.FreeSubscriptionPlan = exports.SubscriptionPricingOption = exports.SubscriptionCoupon = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.PasswordTokens = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
7
+ exports.pbSequelize = exports.BannerCreative = exports.SportsbookOnMarket = exports.Dispute = exports.DefaultCompliancePolicy = exports.ParlaysOnBets = exports.OddsOnParlays = exports.OddsOnBets = exports.ComplianceRuleSportsbook = exports.Parlay = exports.Odd = exports.AffiliateLink = exports.MarketOnLeague = exports.League = exports.ComplianceRule = exports.Sportsbook = exports.Market = exports.BetSport = exports.SendgridDomain = exports.SendgridIpPool = exports.SendgridEmailSubAccount = exports.PhoneNumberAssignment = exports.MarketingPhoneNumber = exports.Segment = exports.Trigger = exports.CampaignMessage = exports.Campaign = exports.CampaignTemplate = exports.CreatorServiceFee = exports.UserCookiePreference = exports.CouponRedemptions = exports.UserTransactionLocation = exports.UserReview = exports.PumpingRiskScoreMonitoring = exports.UsersOnPermissions = exports.Permission = exports.SMSCustomMessage = exports.MigrationToken = void 0;
8
8
  var content_like_1 = require("./content-like");
9
9
  Object.defineProperty(exports, "ContentLike", { enumerable: true, get: function () { return __importDefault(content_like_1).default; } });
10
10
  var transaction_1 = require("./transaction");
@@ -103,6 +103,8 @@ var limited_offer_1 = require("./limited-offer");
103
103
  Object.defineProperty(exports, "LimitedOffer", { enumerable: true, get: function () { return __importDefault(limited_offer_1).default; } });
104
104
  var bet_1 = require("./bet");
105
105
  Object.defineProperty(exports, "Bet", { enumerable: true, get: function () { return __importDefault(bet_1).default; } });
106
+ var users_on_bets_1 = require("./users-on-bets");
107
+ Object.defineProperty(exports, "UsersOnBets", { enumerable: true, get: function () { return __importDefault(users_on_bets_1).default; } });
106
108
  var migration_token_1 = require("./migration-token");
107
109
  Object.defineProperty(exports, "MigrationToken", { enumerable: true, get: function () { return __importDefault(migration_token_1).default; } });
108
110
  var sms_custom_message_1 = require("./sms-custom-message");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
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
+ const bet_1 = __importDefault(require("./bet"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class UsersOnBets extends sequelize_1.Model {
12
+ }
13
+ UsersOnBets.init({
14
+ id: {
15
+ type: sequelize_1.DataTypes.BIGINT,
16
+ primaryKey: true,
17
+ allowNull: false,
18
+ defaultValue: pb_sequelize_1.default.fn("next_id"),
19
+ },
20
+ userId: {
21
+ type: sequelize_1.DataTypes.BIGINT,
22
+ allowNull: false,
23
+ field: "user_id",
24
+ references: {
25
+ model: user_1.default,
26
+ key: "id",
27
+ },
28
+ },
29
+ betId: {
30
+ type: sequelize_1.DataTypes.BIGINT,
31
+ allowNull: false,
32
+ field: "bet_id",
33
+ references: {
34
+ model: bet_1.default,
35
+ key: "id",
36
+ },
37
+ },
38
+ betPlaced: {
39
+ type: sequelize_1.DataTypes.BOOLEAN,
40
+ allowNull: true,
41
+ field: "bet_placed",
42
+ comment: "true = placed, false = not placed, null = unanswered",
43
+ },
44
+ clickedOddPrice: {
45
+ type: sequelize_1.DataTypes.FLOAT,
46
+ allowNull: true,
47
+ field: "clicked_odd_price",
48
+ comment: "The odd price when user clicked the link",
49
+ },
50
+ metadata: {
51
+ type: sequelize_1.DataTypes.JSONB,
52
+ allowNull: true,
53
+ field: "metadata",
54
+ comment: "Stores clicked odd/parlay data and feedback information",
55
+ },
56
+ createdAt: {
57
+ type: sequelize_1.DataTypes.DATE,
58
+ allowNull: false,
59
+ field: "created_at",
60
+ },
61
+ updatedAt: {
62
+ type: sequelize_1.DataTypes.DATE,
63
+ allowNull: false,
64
+ field: "updated_at",
65
+ },
66
+ }, {
67
+ tableName: "users_on_bets",
68
+ sequelize: pb_sequelize_1.default,
69
+ });
70
+ // Define associations
71
+ user_1.default.hasMany(UsersOnBets, {
72
+ foreignKey: "userId",
73
+ sourceKey: "id",
74
+ onDelete: "CASCADE",
75
+ constraints: true,
76
+ });
77
+ UsersOnBets.belongsTo(user_1.default, {
78
+ foreignKey: "userId",
79
+ targetKey: "id",
80
+ });
81
+ bet_1.default.hasMany(UsersOnBets, {
82
+ foreignKey: "betId",
83
+ sourceKey: "id",
84
+ onDelete: "CASCADE",
85
+ constraints: true,
86
+ });
87
+ UsersOnBets.belongsTo(bet_1.default, {
88
+ foreignKey: "betId",
89
+ targetKey: "id",
90
+ });
91
+ exports.default = UsersOnBets;
92
+ //# sourceMappingURL=users-on-bets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-on-bets.js","sourceRoot":"","sources":["../../typed-model/users-on-bets.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,gDAAwB;AAyBxB,mEAAmE;AACnE,MAAM,WAAY,SAAQ,iBAGzB;CAcA;AAED,WAAW,CAAC,IAAI,CACd;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;YACX,GAAG,EAAE,IAAI;SACV;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,sDAAsD;KAChE;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,0CAA0C;KACpD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,yDAAyD;KACnE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;CACF,EACD;IACE,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,sBAAsB;AACtB,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IACxB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,WAAW,CAAC,SAAS,CAAC,cAAI,EAAE;IAC1B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,aAAG,CAAC,OAAO,CAAC,WAAW,EAAE;IACvB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,WAAW,CAAC,SAAS,CAAC,aAAG,EAAE;IACzB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winible/winible-typed",
3
- "version": "2.92.3",
3
+ "version": "2.92.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -44,7 +44,6 @@ class UsersOnBets extends Model<
44
44
  declare betPlaced: BetPlacedStatus;
45
45
  declare clickedOddPrice?: number;
46
46
  declare metadata?: UserBetMetadata;
47
- declare modalDismissedAt?: Date;
48
47
 
49
48
  declare createdAt: CreationOptional<Date>;
50
49
  declare updatedAt: CreationOptional<Date>;
@@ -98,12 +97,6 @@ UsersOnBets.init(
98
97
  field: "metadata",
99
98
  comment: "Stores clicked odd/parlay data and feedback information",
100
99
  },
101
- modalDismissedAt: {
102
- type: DataTypes.DATE,
103
- allowNull: true,
104
- field: "modal_dismissed_at",
105
- comment: "Timestamp when user dismissed modal without confirming",
106
- },
107
100
  createdAt: {
108
101
  type: DataTypes.DATE,
109
102
  allowNull: false,
@@ -1,29 +0,0 @@
1
- require("dotenv").config();
2
- module.exports = {
3
- development: {
4
- dialect: "postgres",
5
- host: process.env.TS_DB_HOST,
6
- port: process.env.TS_DB_PORT,
7
- database: process.env.TS_DB_NAME,
8
- username: process.env.TS_DB_USER,
9
- password: process.env.TS_DB_PASSWORD,
10
- dialectOptions: {
11
- ssl: false,
12
- },
13
- },
14
- production: {
15
- dialect: "postgres",
16
- host: process.env.TS_DB_HOST,
17
- port: process.env.TS_DB_PORT,
18
- database: process.env.TS_DB_NAME,
19
- username: process.env.TS_DB_USER,
20
- password: process.env.TS_DB_PASSWORD,
21
- dialectOptions: {
22
- ssl: {
23
- require: true,
24
- rejectUnauthorized: false,
25
- },
26
- },
27
- },
28
- };
29
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../event-collector-models/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAE3B,MAAM,CAAC,OAAO,GAAG;IACf,WAAW,EAAE;QACX,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACpC,cAAc,EAAE;YACd,GAAG,EAAE,KAAK;SACX;KACF;IACD,UAAU,EAAE;QACV,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACpC,cAAc,EAAE;YACd,GAAG,EAAE;gBACH,OAAO,EAAE,IAAI;gBACb,kBAAkB,EAAE,KAAK;aAC1B;SACF;KACF;CACF,CAAC"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sequelize_1 = require("sequelize");
4
- /**
5
- * Migration para alterar numerical_id para external_id
6
- * Alterando o tipo de INTEGER para STRING e renomeando a coluna
7
- */
8
- module.exports = {
9
- async up(queryInterface) {
10
- // 1. Alterar tipo de numerical_id para VARCHAR nas tabelas
11
- await queryInterface.changeColumn("bet_sports", "numerical_id", {
12
- type: sequelize_1.DataTypes.STRING,
13
- allowNull: false,
14
- });
15
- await queryInterface.changeColumn("leagues", "numerical_id", {
16
- type: sequelize_1.DataTypes.STRING,
17
- allowNull: false,
18
- });
19
- await queryInterface.changeColumn("markets", "numerical_id", {
20
- type: sequelize_1.DataTypes.STRING,
21
- allowNull: false,
22
- });
23
- await queryInterface.changeColumn("sportsbooks", "numerical_id", {
24
- type: sequelize_1.DataTypes.STRING,
25
- allowNull: false,
26
- });
27
- // 2. Renomear colunas de numerical_id para external_id
28
- await queryInterface.renameColumn("bet_sports", "numerical_id", "external_id");
29
- await queryInterface.renameColumn("leagues", "numerical_id", "external_id");
30
- await queryInterface.renameColumn("markets", "numerical_id", "external_id");
31
- await queryInterface.renameColumn("sportsbooks", "numerical_id", "external_id");
32
- },
33
- async down(queryInterface) {
34
- // Reverter as alterações
35
- // 1. Renomear de volta para numerical_id
36
- await queryInterface.renameColumn("bet_sports", "external_id", "numerical_id");
37
- await queryInterface.renameColumn("leagues", "external_id", "numerical_id");
38
- await queryInterface.renameColumn("markets", "external_id", "numerical_id");
39
- await queryInterface.renameColumn("sportsbooks", "external_id", "numerical_id");
40
- // 2. Alterar tipo de volta para INTEGER
41
- await queryInterface.changeColumn("bet_sports", "numerical_id", {
42
- type: sequelize_1.DataTypes.INTEGER,
43
- allowNull: false,
44
- });
45
- await queryInterface.changeColumn("leagues", "numerical_id", {
46
- type: sequelize_1.DataTypes.INTEGER,
47
- allowNull: false,
48
- });
49
- await queryInterface.changeColumn("markets", "numerical_id", {
50
- type: sequelize_1.DataTypes.INTEGER,
51
- allowNull: false,
52
- });
53
- await queryInterface.changeColumn("sportsbooks", "numerical_id", {
54
- type: sequelize_1.DataTypes.INTEGER,
55
- allowNull: false,
56
- });
57
- },
58
- };
59
- //# sourceMappingURL=migration_numerical_id_to_external_id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration_numerical_id_to_external_id.js","sourceRoot":"","sources":["../migration_numerical_id_to_external_id.ts"],"names":[],"mappings":";;AAAA,yCAAsD;AAEtD;;;GAGG;AAEH,MAAM,CAAC,OAAO,GAAG;IACf,KAAK,CAAC,EAAE,CAAC,cAA8B;QACrC,2DAA2D;QAC3D,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE;YAC9D,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE;YAC3D,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE;YAC3D,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,EAAE;YAC/D,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,uDAAuD;QACvD,MAAM,cAAc,CAAC,YAAY,CAC/B,YAAY,EACZ,cAAc,EACd,aAAa,CACd,CAAC;QACF,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,cAAc,CAAC,YAAY,CAC/B,aAAa,EACb,cAAc,EACd,aAAa,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B;QACvC,yBAAyB;QAEzB,yCAAyC;QACzC,MAAM,cAAc,CAAC,YAAY,CAC/B,YAAY,EACZ,aAAa,EACb,cAAc,CACf,CAAC;QACF,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,cAAc,CAAC,YAAY,CAC/B,aAAa,EACb,aAAa,EACb,cAAc,CACf,CAAC;QAEF,wCAAwC;QACxC,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE;YAC9D,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE;YAC3D,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE;YAC3D,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,EAAE;YAC/D,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sequelize_1 = require("sequelize");
4
- exports.default = {
5
- async up(queryInterface, sequelize) {
6
- await queryInterface.createTable("recurly_payment_monitoring_whitelist", {
7
- id: {
8
- type: sequelize_1.DataTypes.BIGINT,
9
- primaryKey: true,
10
- allowNull: false,
11
- autoIncrement: true,
12
- },
13
- user_id: {
14
- type: sequelize_1.DataTypes.BIGINT,
15
- allowNull: false,
16
- references: {
17
- model: "users",
18
- key: "id",
19
- },
20
- onDelete: "CASCADE",
21
- },
22
- createdAt: {
23
- type: sequelize_1.DataTypes.DATE,
24
- allowNull: false,
25
- defaultValue: sequelize.literal("NOW()"),
26
- },
27
- });
28
- },
29
- async down(queryInterface, sequelize) {
30
- await queryInterface.dropTable("recurly_payment_monitoring_whitelist");
31
- },
32
- };
33
- //# sourceMappingURL=20241123184623-recurly-payment-monitoring-whitelist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"20241123184623-recurly-payment-monitoring-whitelist.js","sourceRoot":"","sources":["../../migrations/20241123184623-recurly-payment-monitoring-whitelist.ts"],"names":[],"mappings":";;AAAA,yCAAiE;AAEjE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,MAAM,cAAc,CAAC,WAAW,CAAC,sCAAsC,EAAE;YACvE,EAAE,EAAE;gBACF,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,IAAI;aACpB;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE;oBACV,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,IAAI;iBACV;gBACD,QAAQ,EAAE,SAAS;aACpB;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,qBAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;aACzC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB;QAC7D,MAAM,cAAc,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACzE,CAAC;CACF,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,45 +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 user_1 = __importDefault(require("./user"));
8
- const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
9
- class RecurlyPaymentMonitoringWhitelist extends sequelize_1.Model {
10
- }
11
- RecurlyPaymentMonitoringWhitelist.init({
12
- id: {
13
- type: sequelize_1.DataTypes.BIGINT,
14
- primaryKey: true,
15
- allowNull: false,
16
- autoIncrement: true,
17
- },
18
- userId: {
19
- type: sequelize_1.DataTypes.BIGINT,
20
- allowNull: false,
21
- field: "user_id",
22
- references: {
23
- model: user_1.default,
24
- key: "id",
25
- },
26
- onDelete: "CASCADE",
27
- },
28
- createdAt: sequelize_1.DataTypes.DATE,
29
- }, {
30
- sequelize: pb_sequelize_1.default,
31
- tableName: "recurly_payment_monitoring_whitelist",
32
- timestamps: false,
33
- });
34
- user_1.default.hasOne(RecurlyPaymentMonitoringWhitelist, {
35
- foreignKey: "userId",
36
- sourceKey: "id",
37
- as: "paymentMonitoringWhitelist",
38
- });
39
- RecurlyPaymentMonitoringWhitelist.belongsTo(user_1.default, {
40
- foreignKey: "userId",
41
- targetKey: "id",
42
- as: "user",
43
- });
44
- exports.default = RecurlyPaymentMonitoringWhitelist;
45
- //# sourceMappingURL=recurly-payment-monitoring-whitelist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recurly-payment-monitoring-whitelist.js","sourceRoot":"","sources":["../../typed-model/recurly-payment-monitoring-whitelist.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kDAA0B;AAE1B,kEAAuC;AAEvC,MAAM,iCAAkC,SAAQ,iBAG/C;CAIA;AAED,iCAAiC,CAAC,IAAI,CACpC;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;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,cAAI;YACX,GAAG,EAAE,IAAI;SACV;QACD,QAAQ,EAAE,SAAS;KACpB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAT,sBAAS;IACT,SAAS,EAAE,sCAAsC;IACjD,UAAU,EAAE,KAAK;CAClB,CACF,CAAC;AAGF,cAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE;IAC7C,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,EAAE,EAAE,4BAA4B;CACjC,CAAC,CAAC;AAEH,iCAAiC,CAAC,SAAS,CAAC,cAAI,EAAE;IAChD,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,EAAE,EAAE,MAAM;CACX,CAAC,CAAC;AAEH,kBAAe,iCAAiC,CAAC"}
@@ -1,29 +0,0 @@
1
- require("dotenv").config();
2
-
3
- module.exports = {
4
- development: {
5
- dialect: "postgres",
6
- host: process.env.TS_DB_HOST,
7
- port: process.env.TS_DB_PORT,
8
- database: process.env.TS_DB_NAME,
9
- username: process.env.TS_DB_USER,
10
- password: process.env.TS_DB_PASSWORD,
11
- dialectOptions: {
12
- ssl: false,
13
- },
14
- },
15
- production: {
16
- dialect: "postgres",
17
- host: process.env.TS_DB_HOST,
18
- port: process.env.TS_DB_PORT,
19
- database: process.env.TS_DB_NAME,
20
- username: process.env.TS_DB_USER,
21
- password: process.env.TS_DB_PASSWORD,
22
- dialectOptions: {
23
- ssl: {
24
- require: true,
25
- rejectUnauthorized: false,
26
- },
27
- },
28
- },
29
- };