@firestone-hs/content-craetor-input 0.0.2

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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Reference
2
+
3
+ Used this project as template: https://github.com/alukach/aws-sam-typescript-boilerplate
@@ -0,0 +1,2 @@
1
+ export * from './data-model';
2
+ export * from './input-model';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./data-model"), exports);
18
+ __exportStar(require("./input-model"), exports);
19
+ //# sourceMappingURL=_public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_public-api.js","sourceRoot":"","sources":["../src/_public-api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B","sourcesContent":["export * from './data-model';\r\nexport * from './input-model';\r\n"]}
@@ -0,0 +1,31 @@
1
+ import { TribeList } from './input-model';
2
+ export interface BgsCompAdvice {
3
+ readonly compId: string;
4
+ readonly name?: string;
5
+ readonly needAnyTribeCombinaisonInLobby: readonly TribeList[];
6
+ readonly difficulty: 'EASY' | 'MEDIUM' | 'HARD';
7
+ readonly powerLevel: 'LOW' | 'MEDIUM' | 'HIGH';
8
+ readonly cards: BgsCompCardAdvice[];
9
+ readonly tips: BgsCompTip[];
10
+ }
11
+ export interface BgsCompCardAdvice {
12
+ readonly cardId: string;
13
+ readonly name?: string;
14
+ readonly status: 'CORE' | 'ADDON';
15
+ readonly tips: BgsCompCardTip[];
16
+ }
17
+ export interface BgsCompTip {
18
+ readonly author: string;
19
+ readonly date: string;
20
+ readonly patchNumber: number;
21
+ readonly language: string;
22
+ readonly tip: string;
23
+ readonly whenToCommit: string;
24
+ }
25
+ export interface BgsCompCardTip {
26
+ readonly author: string;
27
+ readonly date: string;
28
+ readonly patchNumber: number;
29
+ readonly language: string;
30
+ readonly tip: string;
31
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-model.js","sourceRoot":"","sources":["../src/data-model.ts"],"names":[],"mappings":"","sourcesContent":["import { TribeList } from './input-model';\r\n\r\nexport interface BgsCompAdvice {\r\n\treadonly compId: string;\r\n\treadonly name?: string;\r\n\treadonly needAnyTribeCombinaisonInLobby: readonly TribeList[];\r\n\treadonly difficulty: 'EASY' | 'MEDIUM' | 'HARD';\r\n\treadonly powerLevel: 'LOW' | 'MEDIUM' | 'HIGH';\r\n\treadonly cards: BgsCompCardAdvice[];\r\n\treadonly tips: BgsCompTip[];\r\n}\r\nexport interface BgsCompCardAdvice {\r\n\treadonly cardId: string;\r\n\treadonly name?: string;\r\n\treadonly status: 'CORE' | 'ADDON';\r\n\treadonly tips: BgsCompCardTip[];\r\n}\r\nexport interface BgsCompTip {\r\n\treadonly author: string;\r\n\treadonly date: string;\r\n\treadonly patchNumber: number;\r\n\treadonly language: string;\r\n\treadonly tip: string;\r\n\treadonly whenToCommit: string;\r\n}\r\nexport interface BgsCompCardTip {\r\n\treadonly author: string;\r\n\treadonly date: string;\r\n\treadonly patchNumber: number;\r\n\treadonly language: string;\r\n\treadonly tip: string;\r\n}\r\n"]}
@@ -0,0 +1,36 @@
1
+ export interface Input {
2
+ readonly type: 'bgs-trinkets' | 'bgs-heroes';
3
+ readonly author: string;
4
+ readonly data: readonly InputCard[];
5
+ }
6
+ export interface InputCard {
7
+ readonly cardId: string;
8
+ readonly patchNumber: number;
9
+ readonly date: string;
10
+ readonly tip: string;
11
+ }
12
+ export interface BgsCompsInput {
13
+ readonly author: string;
14
+ readonly compositions: readonly BgsCompInput[];
15
+ }
16
+ export interface BgsCompInput {
17
+ readonly compId: string;
18
+ readonly name: string;
19
+ readonly tribes: readonly TribeList[];
20
+ readonly difficulty: 'EASY' | 'MEDIUM' | 'HARD';
21
+ readonly powerLevel: 'LOW' | 'MEDIUM' | 'HIGH';
22
+ readonly patchNumber: number;
23
+ readonly date: string;
24
+ readonly tip: string;
25
+ readonly whenToCommit: string;
26
+ readonly cards: readonly BgsCompCardInput[];
27
+ }
28
+ export type TribeList = readonly string[];
29
+ export interface BgsCompCardInput {
30
+ readonly cardId: string;
31
+ readonly cardName: string;
32
+ readonly patchNumber: number;
33
+ readonly date: string;
34
+ readonly status: 'CORE' | 'ADDON';
35
+ readonly tip: string;
36
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=input-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-model.js","sourceRoot":"","sources":["../src/input-model.ts"],"names":[],"mappings":"","sourcesContent":["export interface Input {\r\n\treadonly type: 'bgs-trinkets' | 'bgs-heroes';\r\n\treadonly author: string;\r\n\treadonly data: readonly InputCard[];\r\n}\r\n\r\nexport interface InputCard {\r\n\treadonly cardId: string;\r\n\treadonly patchNumber: number;\r\n\treadonly date: string;\r\n\treadonly tip: string;\r\n}\r\n\r\nexport interface BgsCompsInput {\r\n\treadonly author: string;\r\n\treadonly compositions: readonly BgsCompInput[];\r\n}\r\n\r\nexport interface BgsCompInput {\r\n\treadonly compId: string;\r\n\treadonly name: string;\r\n\treadonly tribes: readonly TribeList[];\r\n\treadonly difficulty: 'EASY' | 'MEDIUM' | 'HARD';\r\n\treadonly powerLevel: 'LOW' | 'MEDIUM' | 'HIGH';\r\n\treadonly patchNumber: number;\r\n\treadonly date: string;\r\n\treadonly tip: string;\r\n\treadonly whenToCommit: string;\r\n\treadonly cards: readonly BgsCompCardInput[];\r\n}\r\n\r\n// Tribes that need to be together in the lobby for the comp to work\r\nexport type TribeList = readonly string[];\r\n\r\nexport interface BgsCompCardInput {\r\n\treadonly cardId: string;\r\n\treadonly cardName: string;\r\n\treadonly patchNumber: number;\r\n\treadonly date: string;\r\n\treadonly status: 'CORE' | 'ADDON';\r\n\treadonly tip: string;\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: (event: any, context: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aws_lambda_utils_1 = require("@firestone-hs/aws-lambda-utils");
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const bgs_comps_1 = require("./types/bgs-comps");
6
+ let allCards;
7
+ exports.default = async (event, context) => {
8
+ const events = event.Records
9
+ .map((event) => JSON.parse(event.body))
10
+ .reduce((a, b) => a.concat(b), []);
11
+ if (!allCards?.getCards()?.length) {
12
+ allCards = new reference_data_1.AllCardsService();
13
+ await allCards.initializeCardsDb();
14
+ }
15
+ const bgPatch = await (0, aws_lambda_utils_1.getLastBattlegroundsPatch)();
16
+ console.log('bg patch', bgPatch);
17
+ for (const input of events) {
18
+ await (0, bgs_comps_1.processBgsComps)(input, bgPatch, allCards);
19
+ }
20
+ const response = {
21
+ statusCode: 200,
22
+ isBase64Encoded: false,
23
+ body: null,
24
+ };
25
+ return response;
26
+ };
27
+ //# sourceMappingURL=process-save-bgs-comp-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-save-bgs-comp-input.js","sourceRoot":"","sources":["../src/process-save-bgs-comp-input.ts"],"names":[],"mappings":";;AACA,qEAA2E;AAC3E,iEAA+D;AAE/D,iDAAoD;AAEpD,IAAI,QAAyB,CAAC;AAE9B,kBAAe,KAAK,EAAE,KAAK,EAAE,OAAO,EAAgB,EAAE;IACrD,MAAM,MAAM,GAA8B,KAAK,CAAC,OAAiB;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE;QAClC,QAAQ,GAAG,IAAI,gCAAe,EAAE,CAAC;QACjC,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;KACnC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,4CAAyB,GAAE,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC3B,MAAM,IAAA,2BAAe,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;KAChD;IAED,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,IAAI;KACV,CAAC;IACF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { getLastBattlegroundsPatch } from '@firestone-hs/aws-lambda-utils';\r\nimport { AllCardsService } from '@firestone-hs/reference-data';\r\nimport { BgsCompsInput } from './input-model';\r\nimport { processBgsComps } from './types/bgs-comps';\r\n\r\nlet allCards: AllCardsService;\r\n\r\nexport default async (event, context): Promise<any> => {\r\n\tconst events: readonly BgsCompsInput[] = (event.Records as any[])\r\n\t\t.map((event) => JSON.parse(event.body))\r\n\t\t.reduce((a, b) => a.concat(b), []);\r\n\r\n\tif (!allCards?.getCards()?.length) {\r\n\t\tallCards = new AllCardsService();\r\n\t\tawait allCards.initializeCardsDb();\r\n\t}\r\n\r\n\tconst bgPatch = await getLastBattlegroundsPatch();\r\n\tconsole.log('bg patch', bgPatch);\r\n\tfor (const input of events) {\r\n\t\tawait processBgsComps(input, bgPatch, allCards);\r\n\t}\r\n\r\n\tconst response = {\r\n\t\tstatusCode: 200,\r\n\t\tisBase64Encoded: false,\r\n\t\tbody: null,\r\n\t};\r\n\treturn response;\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: (event: any, context: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aws_lambda_utils_1 = require("@firestone-hs/aws-lambda-utils");
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const bgs_heroes_1 = require("./types/bgs-heroes");
6
+ const trinkets_1 = require("./types/trinkets");
7
+ let allCards;
8
+ exports.default = async (event, context) => {
9
+ const events = event.Records
10
+ .map((event) => JSON.parse(event.body))
11
+ .reduce((a, b) => a.concat(b), []);
12
+ if (!allCards?.getCards()?.length) {
13
+ allCards = new reference_data_1.AllCardsService();
14
+ await allCards.initializeCardsDb();
15
+ }
16
+ const bgPatch = await (0, aws_lambda_utils_1.getLastBattlegroundsPatch)();
17
+ console.log('bg patch', bgPatch);
18
+ for (const input of events) {
19
+ await processInput(input, bgPatch, allCards);
20
+ }
21
+ const response = {
22
+ statusCode: 200,
23
+ isBase64Encoded: false,
24
+ body: null,
25
+ };
26
+ return response;
27
+ };
28
+ const processInput = async (input, bgPatch, allCards) => {
29
+ console.log('processing input', input.type, input.author);
30
+ switch (input.type) {
31
+ case 'bgs-trinkets':
32
+ return (0, trinkets_1.processBgsTrinket)(input, bgPatch, allCards);
33
+ case 'bgs-heroes':
34
+ return (0, bgs_heroes_1.processBgsHero)(input, bgPatch, allCards);
35
+ }
36
+ };
37
+ //# sourceMappingURL=process-save-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-save-input.js","sourceRoot":"","sources":["../src/process-save-input.ts"],"names":[],"mappings":";;AACA,qEAAsF;AACtF,iEAA+D;AAE/D,mDAAoD;AACpD,+CAAqD;AAErD,IAAI,QAAyB,CAAC;AAE9B,kBAAe,KAAK,EAAE,KAAK,EAAE,OAAO,EAAgB,EAAE;IACrD,MAAM,MAAM,GAAsB,KAAK,CAAC,OAAiB;SACvD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE;QAClC,QAAQ,GAAG,IAAI,gCAAe,EAAE,CAAC;QACjC,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;KACnC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,4CAAyB,GAAE,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC3B,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;KAC7C;IAED,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,IAAI;KACV,CAAC;IACF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,KAAY,EAAE,OAAkB,EAAE,QAAyB,EAAE,EAAE;IAC1F,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,QAAQ,KAAK,CAAC,IAAI,EAAE;QACnB,KAAK,cAAc;YAClB,OAAO,IAAA,4BAAiB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,KAAK,YAAY;YAChB,OAAO,IAAA,2BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;KACjD;AACF,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { getLastBattlegroundsPatch, PatchInfo } from '@firestone-hs/aws-lambda-utils';\r\nimport { AllCardsService } from '@firestone-hs/reference-data';\r\nimport { Input } from './input-model';\r\nimport { processBgsHero } from './types/bgs-heroes';\r\nimport { processBgsTrinket } from './types/trinkets';\r\n\r\nlet allCards: AllCardsService;\r\n\r\nexport default async (event, context): Promise<any> => {\r\n\tconst events: readonly Input[] = (event.Records as any[])\r\n\t\t.map((event) => JSON.parse(event.body))\r\n\t\t.reduce((a, b) => a.concat(b), []);\r\n\r\n\tif (!allCards?.getCards()?.length) {\r\n\t\tallCards = new AllCardsService();\r\n\t\tawait allCards.initializeCardsDb();\r\n\t}\r\n\r\n\tconst bgPatch = await getLastBattlegroundsPatch();\r\n\tconsole.log('bg patch', bgPatch);\r\n\tfor (const input of events) {\r\n\t\tawait processInput(input, bgPatch, allCards);\r\n\t}\r\n\r\n\tconst response = {\r\n\t\tstatusCode: 200,\r\n\t\tisBase64Encoded: false,\r\n\t\tbody: null,\r\n\t};\r\n\treturn response;\r\n};\r\n\r\nconst processInput = async (input: Input, bgPatch: PatchInfo, allCards: AllCardsService) => {\r\n\tconsole.log('processing input', input.type, input.author);\r\n\tswitch (input.type) {\r\n\t\tcase 'bgs-trinkets':\r\n\t\t\treturn processBgsTrinket(input, bgPatch, allCards);\r\n\t\tcase 'bgs-heroes':\r\n\t\t\treturn processBgsHero(input, bgPatch, allCards);\r\n\t}\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: (event: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aws_lambda_utils_1 = require("@firestone-hs/aws-lambda-utils");
4
+ const sqs = new aws_lambda_utils_1.Sqs();
5
+ exports.default = async (event) => {
6
+ const headers = {
7
+ 'Access-Control-Allow-Headers': 'Accept,Accept-Language,Content-Language,Content-Type,Authorization,x-correlation-id,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
8
+ 'Access-Control-Expose-Headers': 'x-my-header-out',
9
+ 'Access-Control-Allow-Methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',
10
+ 'Access-Control-Allow-Origin': event.headers?.Origin || event.headers?.origin || '*',
11
+ };
12
+ if (!event.body) {
13
+ const response = {
14
+ statusCode: 200,
15
+ body: null,
16
+ headers: headers,
17
+ };
18
+ return response;
19
+ }
20
+ const input = JSON.parse(event.body);
21
+ console.debug('received event', input);
22
+ await sqs.sendMessageToQueue(input, process.env.SQS_BGS_COMP_URL);
23
+ return {
24
+ statusCode: 200,
25
+ headers: headers,
26
+ body: '',
27
+ };
28
+ };
29
+ //# sourceMappingURL=start-save-bgs-comp-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-save-bgs-comp-input.js","sourceRoot":"","sources":["../src/start-save-bgs-comp-input.ts"],"names":[],"mappings":";;AAAA,qEAAqD;AAGrD,MAAM,GAAG,GAAG,IAAI,sBAAG,EAAE,CAAC;AAEtB,kBAAe,KAAK,EAAE,KAAK,EAAgB,EAAE;IAC5C,MAAM,OAAO,GAAG;QACf,8BAA8B,EAC7B,6IAA6I;QAC9I,+BAA+B,EAAE,iBAAiB;QAClD,8BAA8B,EAAE,wCAAwC;QACxE,6BAA6B,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG;KACpF,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAChB,MAAM,QAAQ,GAAG;YAChB,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;SAChB,CAAC;QACF,OAAO,QAAQ,CAAC;KAChB;IAED,MAAM,KAAK,GAAiB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClE,OAAO;QACN,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,EAAE;KACR,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { Sqs } from '@firestone-hs/aws-lambda-utils';\r\nimport { BgsCompInput } from './input-model';\r\n\r\nconst sqs = new Sqs();\r\n\r\nexport default async (event): Promise<any> => {\r\n\tconst headers = {\r\n\t\t'Access-Control-Allow-Headers':\r\n\t\t\t'Accept,Accept-Language,Content-Language,Content-Type,Authorization,x-correlation-id,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',\r\n\t\t'Access-Control-Expose-Headers': 'x-my-header-out',\r\n\t\t'Access-Control-Allow-Methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',\r\n\t\t'Access-Control-Allow-Origin': event.headers?.Origin || event.headers?.origin || '*',\r\n\t};\r\n\t// Preflight\r\n\tif (!event.body) {\r\n\t\tconst response = {\r\n\t\t\tstatusCode: 200,\r\n\t\t\tbody: null,\r\n\t\t\theaders: headers,\r\n\t\t};\r\n\t\treturn response;\r\n\t}\r\n\r\n\tconst input: BgsCompInput = JSON.parse(event.body);\r\n\tconsole.debug('received event', input);\r\n\tawait sqs.sendMessageToQueue(input, process.env.SQS_BGS_COMP_URL);\r\n\treturn {\r\n\t\tstatusCode: 200,\r\n\t\theaders: headers,\r\n\t\tbody: '',\r\n\t};\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: (event: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aws_lambda_utils_1 = require("@firestone-hs/aws-lambda-utils");
4
+ const sqs = new aws_lambda_utils_1.Sqs();
5
+ exports.default = async (event) => {
6
+ const headers = {
7
+ 'Access-Control-Allow-Headers': 'Accept,Accept-Language,Content-Language,Content-Type,Authorization,x-correlation-id,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
8
+ 'Access-Control-Expose-Headers': 'x-my-header-out',
9
+ 'Access-Control-Allow-Methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',
10
+ 'Access-Control-Allow-Origin': event.headers?.Origin || event.headers?.origin || '*',
11
+ };
12
+ if (!event.body) {
13
+ const response = {
14
+ statusCode: 200,
15
+ body: null,
16
+ headers: headers,
17
+ };
18
+ return response;
19
+ }
20
+ const input = JSON.parse(event.body);
21
+ console.debug('received event', input);
22
+ await sqs.sendMessageToQueue(input, process.env.SQS_URL);
23
+ return {
24
+ statusCode: 200,
25
+ headers: headers,
26
+ body: '',
27
+ };
28
+ };
29
+ //# sourceMappingURL=start-save-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-save-input.js","sourceRoot":"","sources":["../src/start-save-input.ts"],"names":[],"mappings":";;AAAA,qEAAqD;AAGrD,MAAM,GAAG,GAAG,IAAI,sBAAG,EAAE,CAAC;AAEtB,kBAAe,KAAK,EAAE,KAAK,EAAgB,EAAE;IAC5C,MAAM,OAAO,GAAG;QACf,8BAA8B,EAC7B,6IAA6I;QAC9I,+BAA+B,EAAE,iBAAiB;QAClD,8BAA8B,EAAE,wCAAwC;QACxE,6BAA6B,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG;KACpF,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAChB,MAAM,QAAQ,GAAG;YAChB,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;SAChB,CAAC;QACF,OAAO,QAAQ,CAAC;KAChB;IAED,MAAM,KAAK,GAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO;QACN,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,EAAE;KACR,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { Sqs } from '@firestone-hs/aws-lambda-utils';\r\nimport { Input } from './input-model';\r\n\r\nconst sqs = new Sqs();\r\n\r\nexport default async (event): Promise<any> => {\r\n\tconst headers = {\r\n\t\t'Access-Control-Allow-Headers':\r\n\t\t\t'Accept,Accept-Language,Content-Language,Content-Type,Authorization,x-correlation-id,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',\r\n\t\t'Access-Control-Expose-Headers': 'x-my-header-out',\r\n\t\t'Access-Control-Allow-Methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',\r\n\t\t'Access-Control-Allow-Origin': event.headers?.Origin || event.headers?.origin || '*',\r\n\t};\r\n\t// Preflight\r\n\tif (!event.body) {\r\n\t\tconst response = {\r\n\t\t\tstatusCode: 200,\r\n\t\t\tbody: null,\r\n\t\t\theaders: headers,\r\n\t\t};\r\n\t\treturn response;\r\n\t}\r\n\r\n\tconst input: Input = JSON.parse(event.body);\r\n\tconsole.debug('received event', input);\r\n\tawait sqs.sendMessageToQueue(input, process.env.SQS_URL);\r\n\treturn {\r\n\t\tstatusCode: 200,\r\n\t\theaders: headers,\r\n\t\tbody: '',\r\n\t};\r\n};\r\n"]}
@@ -0,0 +1,4 @@
1
+ import { PatchInfo } from '@firestone-hs/aws-lambda-utils';
2
+ import { AllCardsService } from '@firestone-hs/reference-data';
3
+ import { BgsCompsInput } from '../input-model';
4
+ export declare const processBgsComps: (input: BgsCompsInput, bgPatch: PatchInfo, allCards: AllCardsService) => Promise<void>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processBgsComps = void 0;
4
+ const aws_lambda_utils_1 = require("@firestone-hs/aws-lambda-utils");
5
+ const zlib_1 = require("zlib");
6
+ const utils_1 = require("../utils");
7
+ const bucket = 'static.zerotoheroes.com';
8
+ const fileKey = 'hearthstone/data/battlegrounds-strategies/bgs-comps-strategies.gz.json';
9
+ const processBgsComps = async (input, bgPatch, allCards) => {
10
+ const author = input.author;
11
+ console.debug('processing', author);
12
+ const result = await loadExistingInfo();
13
+ for (const inputComp of input.compositions) {
14
+ const comp = updateComp(inputComp, result, author);
15
+ for (const card of inputComp.cards) {
16
+ updateCompCard(card, comp, author);
17
+ }
18
+ }
19
+ console.debug('built aggregated tips', result);
20
+ await saveInfo(result);
21
+ console.debug('saved aggregated tips');
22
+ };
23
+ exports.processBgsComps = processBgsComps;
24
+ const updateCompCard = (inputCard, comp, author) => {
25
+ let existingCard = comp.cards.find((t) => t.cardId === inputCard.cardId);
26
+ if (!existingCard) {
27
+ existingCard = {
28
+ cardId: inputCard.cardId,
29
+ name: inputCard.cardName,
30
+ tips: [],
31
+ };
32
+ comp.cards.push(existingCard);
33
+ }
34
+ existingCard.status = inputCard.status;
35
+ if (!!inputCard.tip?.length) {
36
+ let existingTip = existingCard.tips.find((t) => t.author === author);
37
+ if (!existingTip) {
38
+ existingTip = {
39
+ author: author,
40
+ language: 'enUS',
41
+ };
42
+ }
43
+ if (!(0, utils_1.deepEqual)(existingTip.tip, inputCard.tip)) {
44
+ existingTip.tip = inputCard.tip;
45
+ existingTip.date = new Date().toISOString().substring(0, 10);
46
+ existingTip.patchNumber = inputCard.patchNumber;
47
+ }
48
+ }
49
+ else {
50
+ existingCard.tips = existingCard.tips.filter((t) => t.author !== author);
51
+ }
52
+ };
53
+ const updateComp = (inputComp, result, author) => {
54
+ let existingComp = result.find((t) => t.compId === inputComp.compId);
55
+ if (!existingComp) {
56
+ existingComp = {
57
+ compId: inputComp.compId,
58
+ name: inputComp.name,
59
+ cards: [],
60
+ difficulty: inputComp.difficulty,
61
+ powerLevel: inputComp.powerLevel,
62
+ needAnyTribeCombinaisonInLobby: inputComp.tribes,
63
+ tips: [],
64
+ };
65
+ result.push(existingComp);
66
+ }
67
+ if (!!inputComp.tip?.length) {
68
+ let existingTip = existingComp.tips.find((t) => t.author === author);
69
+ if (!existingTip) {
70
+ existingTip = {
71
+ author: author,
72
+ language: 'enUS',
73
+ };
74
+ existingComp.tips.push(existingTip);
75
+ }
76
+ if (!(0, utils_1.deepEqual)(existingTip.tip, inputComp.tip) &&
77
+ !(0, utils_1.deepEqual)(existingTip.whenToCommit, inputComp.whenToCommit)) {
78
+ existingTip.tip = inputComp.tip;
79
+ existingTip.whenToCommit = inputComp.whenToCommit;
80
+ existingTip.date = new Date().toISOString().substring(0, 10);
81
+ existingTip.patchNumber = inputComp.patchNumber;
82
+ }
83
+ }
84
+ else {
85
+ existingComp.tips = existingComp.tips.filter((t) => t.author !== author);
86
+ }
87
+ return existingComp;
88
+ };
89
+ const loadExistingInfo = async () => {
90
+ const s3 = new aws_lambda_utils_1.S3();
91
+ const asString = await s3.readGzipContent(bucket, fileKey, 5);
92
+ if (!asString) {
93
+ return [];
94
+ }
95
+ return JSON.parse(asString);
96
+ };
97
+ const saveInfo = async (info) => {
98
+ const s3 = new aws_lambda_utils_1.S3();
99
+ await s3.writeFile((0, zlib_1.gzipSync)(JSON.stringify(info)), bucket, fileKey, 'application/json', 'gzip');
100
+ };
101
+ //# sourceMappingURL=bgs-comps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bgs-comps.js","sourceRoot":"","sources":["../../src/types/bgs-comps.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-extra-boolean-cast */\r\nimport { PatchInfo, S3 } from '@firestone-hs/aws-lambda-utils';\r\nimport { AllCardsService } from '@firestone-hs/reference-data';\r\nimport { gzipSync } from 'zlib';\r\nimport { BgsCompAdvice, BgsCompCardAdvice, BgsCompCardTip, BgsCompTip } from '../data-model';\r\nimport { BgsCompCardInput, BgsCompInput, BgsCompsInput } from '../input-model';\r\nimport { deepEqual, Mutable } from '../utils';\r\n\r\nconst bucket = 'static.zerotoheroes.com';\r\nconst fileKey = 'hearthstone/data/battlegrounds-strategies/bgs-comps-strategies.gz.json';\r\n\r\nexport const processBgsComps = async (input: BgsCompsInput, bgPatch: PatchInfo, allCards: AllCardsService) => {\r\n\tconst author = input.author;\r\n\tconsole.debug('processing', author);\r\n\tconst result = await loadExistingInfo();\r\n\r\n\tfor (const inputComp of input.compositions) {\r\n\t\tconst comp = updateComp(inputComp, result, author);\r\n\t\tfor (const card of inputComp.cards) {\r\n\t\t\tupdateCompCard(card, comp, author);\r\n\t\t}\r\n\t}\r\n\r\n\tconsole.debug('built aggregated tips', result);\r\n\tawait saveInfo(result);\r\n\tconsole.debug('saved aggregated tips');\r\n};\r\n\r\nconst updateCompCard = (inputCard: BgsCompCardInput, comp: MutableBgsCompAdvice, author: string): void => {\r\n\tlet existingCard: Mutable<BgsCompCardAdvice> = comp.cards.find((t) => t.cardId === inputCard.cardId);\r\n\tif (!existingCard) {\r\n\t\texistingCard = {\r\n\t\t\tcardId: inputCard.cardId,\r\n\t\t\tname: inputCard.cardName,\r\n\t\t\ttips: [],\r\n\t\t} as BgsCompCardAdvice;\r\n\t\tcomp.cards.push(existingCard);\r\n\t}\r\n\texistingCard.status = inputCard.status;\r\n\r\n\tif (!!inputCard.tip?.length) {\r\n\t\tlet existingTip: Mutable<BgsCompCardTip> = existingCard.tips.find((t) => t.author === author);\r\n\t\tif (!existingTip) {\r\n\t\t\texistingTip = {\r\n\t\t\t\tauthor: author,\r\n\t\t\t\tlanguage: 'enUS',\r\n\t\t\t} as BgsCompTip;\r\n\t\t}\r\n\t\tif (!deepEqual(existingTip.tip, inputCard.tip)) {\r\n\t\t\texistingTip.tip = inputCard.tip;\r\n\t\t\texistingTip.date = new Date().toISOString().substring(0, 10);\r\n\t\t\texistingTip.patchNumber = inputCard.patchNumber;\r\n\t\t}\r\n\t} else {\r\n\t\texistingCard.tips = existingCard.tips.filter((t) => t.author !== author);\r\n\t}\r\n};\r\n\r\nconst updateComp = (inputComp: BgsCompInput, result: MutableBgsCompAdvice[], author: string): MutableBgsCompAdvice => {\r\n\tlet existingComp = result.find((t) => t.compId === inputComp.compId);\r\n\tif (!existingComp) {\r\n\t\texistingComp = {\r\n\t\t\tcompId: inputComp.compId,\r\n\t\t\tname: inputComp.name,\r\n\t\t\tcards: [],\r\n\t\t\tdifficulty: inputComp.difficulty,\r\n\t\t\tpowerLevel: inputComp.powerLevel,\r\n\t\t\tneedAnyTribeCombinaisonInLobby: inputComp.tribes,\r\n\t\t\ttips: [],\r\n\t\t};\r\n\t\tresult.push(existingComp);\r\n\t}\r\n\r\n\tif (!!inputComp.tip?.length) {\r\n\t\tlet existingTip: Mutable<BgsCompTip> = existingComp.tips.find((t) => t.author === author);\r\n\t\tif (!existingTip) {\r\n\t\t\texistingTip = {\r\n\t\t\t\tauthor: author,\r\n\t\t\t\tlanguage: 'enUS',\r\n\t\t\t} as BgsCompTip;\r\n\t\t\texistingComp.tips.push(existingTip);\r\n\t\t}\r\n\t\tif (\r\n\t\t\t!deepEqual(existingTip.tip, inputComp.tip) &&\r\n\t\t\t!deepEqual(existingTip.whenToCommit, inputComp.whenToCommit)\r\n\t\t) {\r\n\t\t\texistingTip.tip = inputComp.tip;\r\n\t\t\texistingTip.whenToCommit = inputComp.whenToCommit;\r\n\t\t\texistingTip.date = new Date().toISOString().substring(0, 10);\r\n\t\t\texistingTip.patchNumber = inputComp.patchNumber;\r\n\t\t}\r\n\t} else {\r\n\t\texistingComp.tips = existingComp.tips.filter((t) => t.author !== author);\r\n\t}\r\n\treturn existingComp;\r\n};\r\n\r\nconst loadExistingInfo = async (): Promise<MutableBgsCompAdvice[]> => {\r\n\tconst s3 = new S3();\r\n\t// console.debug('created s3');\r\n\tconst asString = await s3.readGzipContent(bucket, fileKey, 5);\r\n\t// console.debug('loaded existing info', asString?.length);\r\n\tif (!asString) {\r\n\t\treturn [];\r\n\t}\r\n\treturn JSON.parse(asString);\r\n};\r\n\r\nconst saveInfo = async (info: readonly BgsCompAdvice[]) => {\r\n\tconst s3 = new S3();\r\n\tawait s3.writeFile(gzipSync(JSON.stringify(info)), bucket, fileKey, 'application/json', 'gzip');\r\n};\r\n\r\ntype MutableBgsCompAdvice = Mutable<BgsCompAdvice>;\r\n"]}
@@ -0,0 +1,4 @@
1
+ import { PatchInfo } from '@firestone-hs/aws-lambda-utils';
2
+ import { AllCardsService } from '@firestone-hs/reference-data';
3
+ import { Input } from '../input-model';
4
+ export declare const processBgsHero: (input: Input, bgPatch: PatchInfo, allCards: AllCardsService) => Promise<void>;