@winible/winible-typed 2.71.1 → 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/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
@@ -1,53 +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 odd_1 = __importDefault(require("./odd"));
|
9
|
-
const parlay_1 = __importDefault(require("./parlay"));
|
10
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
11
|
-
class OddsOnParlays extends sequelize_1.Model {
|
12
|
-
}
|
13
|
-
OddsOnParlays.init({
|
14
|
-
parlayId: {
|
15
|
-
type: sequelize_1.DataTypes.BIGINT,
|
16
|
-
allowNull: false,
|
17
|
-
references: {
|
18
|
-
model: parlay_1.default,
|
19
|
-
key: "id",
|
20
|
-
},
|
21
|
-
field: "parlay_id",
|
22
|
-
},
|
23
|
-
oddId: {
|
24
|
-
type: sequelize_1.DataTypes.BIGINT,
|
25
|
-
allowNull: false,
|
26
|
-
references: {
|
27
|
-
model: odd_1.default,
|
28
|
-
key: "id",
|
29
|
-
},
|
30
|
-
field: "odd_id",
|
31
|
-
},
|
32
|
-
}, {
|
33
|
-
tableName: "odds_on_parlays",
|
34
|
-
comment: "Junction table that relates odds to a parlay",
|
35
|
-
timestamps: false,
|
36
|
-
sequelize: pb_sequelize_1.default,
|
37
|
-
});
|
38
|
-
parlay_1.default.belongsToMany(odd_1.default, {
|
39
|
-
through: OddsOnParlays,
|
40
|
-
foreignKey: "parlayId",
|
41
|
-
sourceKey: "id",
|
42
|
-
onDelete: "NO ACTION",
|
43
|
-
constraints: false,
|
44
|
-
});
|
45
|
-
odd_1.default.belongsToMany(parlay_1.default, {
|
46
|
-
through: OddsOnParlays,
|
47
|
-
foreignKey: "oddId",
|
48
|
-
sourceKey: "id",
|
49
|
-
onDelete: "NO ACTION",
|
50
|
-
constraints: false,
|
51
|
-
});
|
52
|
-
exports.default = OddsOnParlays;
|
53
|
-
//# sourceMappingURL=odds-on-parlays.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"odds-on-parlays.js","sourceRoot":"","sources":["../../typed-model/odds-on-parlays.ts"],"names":[],"mappings":";;;;;AAAA,yCAKmB;AAEnB,kEAAuC;AACvC,gDAAwB;AACxB,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,aAAc,SAAQ,iBAG3B;CAKA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,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,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;CACF,EACD;IACE,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,8CAA8C;IACvD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,gBAAM,CAAC,aAAa,CAAC,aAAG,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,aAAG,CAAC,aAAa,CAAC,gBAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
|
@@ -1,55 +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
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
-
class Parlay extends sequelize_1.Model {
|
11
|
-
}
|
12
|
-
Parlay.init({
|
13
|
-
id: {
|
14
|
-
type: sequelize_1.DataTypes.STRING,
|
15
|
-
primaryKey: true,
|
16
|
-
allowNull: false,
|
17
|
-
},
|
18
|
-
sportsbookId: {
|
19
|
-
type: sequelize_1.DataTypes.STRING,
|
20
|
-
allowNull: false,
|
21
|
-
field: "sportsbook_id",
|
22
|
-
references: {
|
23
|
-
model: sportsbook_1.default,
|
24
|
-
key: "id",
|
25
|
-
},
|
26
|
-
},
|
27
|
-
price: {
|
28
|
-
type: sequelize_1.DataTypes.STRING,
|
29
|
-
allowNull: false,
|
30
|
-
},
|
31
|
-
deepLink: {
|
32
|
-
type: sequelize_1.DataTypes.JSON,
|
33
|
-
allowNull: false,
|
34
|
-
field: "deep_link",
|
35
|
-
},
|
36
|
-
rawResponse: {
|
37
|
-
type: sequelize_1.DataTypes.JSON,
|
38
|
-
allowNull: false,
|
39
|
-
field: "raw_response",
|
40
|
-
},
|
41
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
42
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
43
|
-
}, {
|
44
|
-
tableName: "parlays",
|
45
|
-
comment: "Parlays table, belongs to a bet and holds the deep_link to the parlay",
|
46
|
-
sequelize: pb_sequelize_1.default,
|
47
|
-
});
|
48
|
-
sportsbook_1.default.hasMany(Parlay, {
|
49
|
-
foreignKey: "sportsbookId",
|
50
|
-
sourceKey: "id",
|
51
|
-
onDelete: "NO ACTION",
|
52
|
-
constraints: false,
|
53
|
-
});
|
54
|
-
exports.default = Parlay;
|
55
|
-
//# sourceMappingURL=parlay.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parlay.js","sourceRoot":"","sources":["../../typed-model/parlay.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,8DAAsC;AAEtC,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;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,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;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,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,SAAS;IACpB,OAAO,EACL,uEAAuE;IACzE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,oBAAU,CAAC,OAAO,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
|
@@ -1,53 +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 bet_1 = __importDefault(require("./bet"));
|
9
|
-
const parlay_1 = __importDefault(require("./parlay"));
|
10
|
-
// order of InferAttributes & InferCreationAttributes is important.
|
11
|
-
class ParlaysOnBets extends sequelize_1.Model {
|
12
|
-
}
|
13
|
-
ParlaysOnBets.init({
|
14
|
-
betId: {
|
15
|
-
type: sequelize_1.DataTypes.BIGINT,
|
16
|
-
allowNull: false,
|
17
|
-
references: {
|
18
|
-
model: bet_1.default,
|
19
|
-
key: "id",
|
20
|
-
},
|
21
|
-
field: "bet_id",
|
22
|
-
},
|
23
|
-
parlayId: {
|
24
|
-
type: sequelize_1.DataTypes.BIGINT,
|
25
|
-
allowNull: false,
|
26
|
-
references: {
|
27
|
-
model: parlay_1.default,
|
28
|
-
key: "id",
|
29
|
-
},
|
30
|
-
field: "parlay_id",
|
31
|
-
},
|
32
|
-
}, {
|
33
|
-
tableName: "parlays_on_bets",
|
34
|
-
comment: "Junction table that relates a parlay to a type=parlay bet",
|
35
|
-
timestamps: false,
|
36
|
-
sequelize: pb_sequelize_1.default,
|
37
|
-
});
|
38
|
-
bet_1.default.belongsToMany(parlay_1.default, {
|
39
|
-
through: ParlaysOnBets,
|
40
|
-
foreignKey: "betId",
|
41
|
-
sourceKey: "id",
|
42
|
-
onDelete: "NO ACTION",
|
43
|
-
constraints: false,
|
44
|
-
});
|
45
|
-
parlay_1.default.belongsToMany(bet_1.default, {
|
46
|
-
through: ParlaysOnBets,
|
47
|
-
foreignKey: "parlayId",
|
48
|
-
sourceKey: "id",
|
49
|
-
onDelete: "NO ACTION",
|
50
|
-
constraints: false,
|
51
|
-
});
|
52
|
-
exports.default = ParlaysOnBets;
|
53
|
-
//# sourceMappingURL=parlays-on-bets.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parlays-on-bets.js","sourceRoot":"","sources":["../../typed-model/parlays-on-bets.ts"],"names":[],"mappings":";;;;;AAAA,yCAKmB;AAEnB,kEAAuC;AACvC,gDAAwB;AAExB,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,aAAc,SAAQ,iBAG3B;CAKA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;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;CACF,EACD;IACE,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,2DAA2D;IACpE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,aAAG,CAAC,aAAa,CAAC,gBAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,aAAa,CAAC,aAAG,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
|
@@ -1,56 +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 Sportsbook extends sequelize_1.Model {
|
11
|
-
}
|
12
|
-
Sportsbook.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
|
-
logo: {
|
34
|
-
type: sequelize_1.DataTypes.STRING,
|
35
|
-
allowNull: false,
|
36
|
-
},
|
37
|
-
isOnshore: {
|
38
|
-
type: sequelize_1.DataTypes.BOOLEAN,
|
39
|
-
allowNull: false,
|
40
|
-
field: "is_onshore",
|
41
|
-
},
|
42
|
-
isOffshore: {
|
43
|
-
type: sequelize_1.DataTypes.BOOLEAN,
|
44
|
-
allowNull: false,
|
45
|
-
field: "is_offshore",
|
46
|
-
},
|
47
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
48
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
49
|
-
}, {
|
50
|
-
// Other model options go here
|
51
|
-
tableName: "sportsbooks",
|
52
|
-
comment: "Sportsbooks synched from Odds Jam",
|
53
|
-
sequelize: pb_sequelize_1.default,
|
54
|
-
});
|
55
|
-
exports.default = Sportsbook;
|
56
|
-
//# sourceMappingURL=sportsbook.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"sportsbook.js","sourceRoot":"","sources":["../../typed-model/sportsbook.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAA0C;AAE1C,mEAAmE;AACnE,MAAM,UAAW,SAAQ,iBAGxB;CAYA;AAED,UAAU,CAAC,IAAI,CACb;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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,aAAa;IACxB,OAAO,EAAE,mCAAmC;IAC5C,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/**
|
4
|
-
* @param message The log message
|
5
|
-
* @param options Additional context for the log entry
|
6
|
-
*
|
7
|
-
* @example
|
8
|
-
* // Basic usage
|
9
|
-
* logger("User login successful");
|
10
|
-
*
|
11
|
-
* @example
|
12
|
-
* // With user ID
|
13
|
-
* logger("User login successful", { userId: "123456" });
|
14
|
-
*
|
15
|
-
* @example
|
16
|
-
* // With error tracking (standard Error)
|
17
|
-
* try {
|
18
|
-
* throw new Error("Something went wrong");
|
19
|
-
* } catch (error) {
|
20
|
-
* logger("Operation failed", {
|
21
|
-
* userId: "user123",
|
22
|
-
* level: "error",
|
23
|
-
* endpoint: "/auth",
|
24
|
-
* method: "processPayment",
|
25
|
-
* error
|
26
|
-
* });
|
27
|
-
* }
|
28
|
-
*
|
29
|
-
* @example
|
30
|
-
* // With object-like error (e.g., from an API)
|
31
|
-
* const apiError = { status: 403, message: "Forbidden", code: "ACCESS_DENIED" };
|
32
|
-
* logger("API request failed", { error: apiError, level: "error" });
|
33
|
-
*
|
34
|
-
* @example
|
35
|
-
* // With primitive error
|
36
|
-
* logger("Validation failed", { error: "Invalid input", level: "warn" });
|
37
|
-
*
|
38
|
-
* @example
|
39
|
-
* // With request tracking
|
40
|
-
* logger("API request received", {
|
41
|
-
* requestId: req.headers['x-request-id'],
|
42
|
-
* endpoint: "/auth",
|
43
|
-
* method: "validateToken"
|
44
|
-
* action: "validateToken"
|
45
|
-
* });
|
46
|
-
*/
|
47
|
-
const logger = (message, options) => {
|
48
|
-
const timestamp = new Date().toISOString();
|
49
|
-
const environment = process.env.ENVIRONMENT || "development";
|
50
|
-
const logEntry = Object.assign(Object.assign({ message, requestId: (options === null || options === void 0 ? void 0 : options.requestId) || "", timestamp, level: (options === null || options === void 0 ? void 0 : options.level) || "info", environment, endpoint: (options === null || options === void 0 ? void 0 : options.endpoint) || "", method: (options === null || options === void 0 ? void 0 : options.method) || "", action: (options === null || options === void 0 ? void 0 : options.action) || "", userId: (options === null || options === void 0 ? void 0 : options.userId) || "" }, ((options === null || options === void 0 ? void 0 : options.error)
|
51
|
-
? {
|
52
|
-
error: (() => {
|
53
|
-
var _a, _b, _c;
|
54
|
-
// Handle different error types
|
55
|
-
if (options.error instanceof Error) {
|
56
|
-
// Standard Error object
|
57
|
-
return {
|
58
|
-
name: (_a = options.error) === null || _a === void 0 ? void 0 : _a.name,
|
59
|
-
message: (_b = options.error) === null || _b === void 0 ? void 0 : _b.message,
|
60
|
-
stack: (_c = options.error) === null || _c === void 0 ? void 0 : _c.stack,
|
61
|
-
};
|
62
|
-
}
|
63
|
-
else if (typeof options.error === "object" &&
|
64
|
-
options.error !== null) {
|
65
|
-
// Object-like error but not an Error instance
|
66
|
-
const errorObj = options.error;
|
67
|
-
return {
|
68
|
-
name: (errorObj === null || errorObj === void 0 ? void 0 : errorObj.name) || "UnknownError",
|
69
|
-
message: (errorObj === null || errorObj === void 0 ? void 0 : errorObj.message) || String(errorObj),
|
70
|
-
details: errorObj,
|
71
|
-
};
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
// Primitive or other non-object error
|
75
|
-
return {
|
76
|
-
name: "UnknownError",
|
77
|
-
message: String(options.error),
|
78
|
-
};
|
79
|
-
}
|
80
|
-
})(),
|
81
|
-
}
|
82
|
-
: {})), ((options === null || options === void 0 ? void 0 : options.additionalData) ? { data: options.additionalData } : {}));
|
83
|
-
// Log as JSON string on production for easier parsing in CloudWatch
|
84
|
-
const outputLog = environment === "production"
|
85
|
-
? JSON.stringify(logEntry)
|
86
|
-
: JSON.stringify(logEntry, null, 2);
|
87
|
-
console.log(outputLog);
|
88
|
-
};
|
89
|
-
exports.default = logger;
|
90
|
-
//# sourceMappingURL=logger.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../utils/lambdaUtils/logger.ts"],"names":[],"mappings":";;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,OAAuB,EAAE,EAAE;IAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,CAAC;IAE7D,MAAM,QAAQ,iCACZ,OAAO,EACP,SAAS,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,EAAE,EACnC,SAAS,EACT,KAAK,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,MAAM,EAC/B,WAAW,EACX,QAAQ,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,EAAE,EACjC,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,EAC7B,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,EAC7B,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,IAC1B,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;QAChB,CAAC,CAAC;YACE,KAAK,EAAE,CAAC,GAAG,EAAE;;gBACX,+BAA+B;gBAC/B,IAAI,OAAO,CAAC,KAAK,YAAY,KAAK,EAAE;oBAClC,wBAAwB;oBACxB,OAAO;wBACL,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI;wBACzB,OAAO,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO;wBAC/B,KAAK,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK;qBAC5B,CAAC;iBACH;qBAAM,IACL,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;oBACjC,OAAO,CAAC,KAAK,KAAK,IAAI,EACtB;oBACA,8CAA8C;oBAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAA4B,CAAC;oBACtD,OAAO;wBACL,IAAI,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,cAAc;wBACtC,OAAO,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,MAAM,CAAC,QAAQ,CAAC;wBAC9C,OAAO,EAAE,QAAQ;qBAClB,CAAC;iBACH;qBAAM;oBACL,sCAAsC;oBACtC,OAAO;wBACL,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;qBAC/B,CAAC;iBACH;YACH,CAAC,CAAC,EAAE;SACL;QACH,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAC;IAEF,oEAAoE;IACpE,MAAM,SAAS,GACb,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|