@ludeo/cloud-common 1.2.261 → 1.2.262-beta-yahil-1
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/tsconfig.tsbuildinfo +1 -1
- package/dist/v4/events/ludeocast-agent/detect-artifacts-ended.d.ts +12 -0
- package/dist/v4/events/ludeocast-agent/detect-artifacts-ended.js +52 -0
- package/dist/v4/events/ludeocast-agent/detect-artifacts-ended.js.map +1 -0
- package/dist/v4/events/ludeocast-agent/index.d.ts +2 -0
- package/dist/v4/events/ludeocast-agent/index.js +2 -0
- package/dist/v4/events/ludeocast-agent/index.js.map +1 -1
- package/dist/v4/events/ludeocast-agent/save-artifacts-ended.d.ts +11 -0
- package/dist/v4/events/ludeocast-agent/save-artifacts-ended.js +47 -0
- package/dist/v4/events/ludeocast-agent/save-artifacts-ended.js.map +1 -0
- package/dist/v4/events/site-controller/detect-artifacts.command.d.ts +11 -0
- package/dist/v4/events/site-controller/detect-artifacts.command.js +45 -0
- package/dist/v4/events/site-controller/detect-artifacts.command.js.map +1 -0
- package/dist/v4/events/site-controller/index.d.ts +2 -0
- package/dist/v4/events/site-controller/index.js +2 -0
- package/dist/v4/events/site-controller/index.js.map +1 -1
- package/dist/v4/events/site-controller/save-artifacts.command.d.ts +12 -0
- package/dist/v4/events/site-controller/save-artifacts.command.js +47 -0
- package/dist/v4/events/site-controller/save-artifacts.command.js.map +1 -0
- package/dist/v4/types/site-controller/runtime-artifacts.dto.d.ts +11 -4
- package/dist/v4/types/site-controller/runtime-artifacts.dto.js +36 -10
- package/dist/v4/types/site-controller/runtime-artifacts.dto.js.map +1 -1
- package/package.json +1 -1
- package/src/v4/events/ludeocast-agent/detect-artifacts-ended.ts +38 -0
- package/src/v4/events/ludeocast-agent/index.ts +3 -1
- package/src/v4/events/ludeocast-agent/save-artifacts-ended.ts +32 -0
- package/src/v4/events/site-controller/detect-artifacts.command.ts +37 -0
- package/src/v4/events/site-controller/index.ts +2 -0
- package/src/v4/events/site-controller/save-artifacts.command.ts +30 -0
- package/src/v4/types/site-controller/runtime-artifacts.dto.ts +38 -8
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommandPayload } from '../base/base';
|
|
2
|
+
import { SiteOperationStatus } from '../../types/site-controller';
|
|
3
|
+
export declare class DetectArtifactsEndedPayload extends BaseCommandPayload {
|
|
4
|
+
gameResourceId: string;
|
|
5
|
+
status: SiteOperationStatus;
|
|
6
|
+
reason?: string;
|
|
7
|
+
artifactPrefix: string;
|
|
8
|
+
latestVersion: string;
|
|
9
|
+
artifacts?: Record<string, number>;
|
|
10
|
+
}
|
|
11
|
+
export declare function getDetectArtifactsEndedTopic(machineResourceId: string): string;
|
|
12
|
+
export declare const DETECT_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = "$share/site-controller-group/agent/detect-artifacts-ended/+";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DETECT_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = exports.DetectArtifactsEndedPayload = void 0;
|
|
13
|
+
exports.getDetectArtifactsEndedTopic = getDetectArtifactsEndedTopic;
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const base_1 = require("../base/base");
|
|
16
|
+
const constants_1 = require("../base/constants");
|
|
17
|
+
const site_controller_1 = require("../../types/site-controller");
|
|
18
|
+
const DETECT_ARTIFACTS_ENDED = 'detect-artifacts-ended';
|
|
19
|
+
class DetectArtifactsEndedPayload extends base_1.BaseCommandPayload {
|
|
20
|
+
}
|
|
21
|
+
exports.DetectArtifactsEndedPayload = DetectArtifactsEndedPayload;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsUUID)(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], DetectArtifactsEndedPayload.prototype, "gameResourceId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsEnum)(site_controller_1.SiteOperationStatus),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], DetectArtifactsEndedPayload.prototype, "status", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsString)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], DetectArtifactsEndedPayload.prototype, "reason", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], DetectArtifactsEndedPayload.prototype, "artifactPrefix", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsString)(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], DetectArtifactsEndedPayload.prototype, "latestVersion", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsOptional)(),
|
|
45
|
+
(0, class_validator_1.IsObject)(),
|
|
46
|
+
__metadata("design:type", Object)
|
|
47
|
+
], DetectArtifactsEndedPayload.prototype, "artifacts", void 0);
|
|
48
|
+
function getDetectArtifactsEndedTopic(machineResourceId) {
|
|
49
|
+
return `${constants_1.AGENT_STRING}/${DETECT_ARTIFACTS_ENDED}/${machineResourceId}`;
|
|
50
|
+
}
|
|
51
|
+
exports.DETECT_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = `$share/site-controller-group/${constants_1.AGENT_STRING}/${DETECT_ARTIFACTS_ENDED}/${constants_1.WILDCARD_MQTT_STRING}`;
|
|
52
|
+
//# sourceMappingURL=detect-artifacts-ended.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-artifacts-ended.js","sourceRoot":"","sources":["../../../../src/v4/events/ludeocast-agent/detect-artifacts-ended.ts"],"names":[],"mappings":";;;;;;;;;;;;AAiCA,oEAEC;AAnCD,qDAAiF;AACjF,uCAAkD;AAClD,iDAAuE;AACvE,iEAAkE;AAElE,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAGxD,MAAa,2BAA4B,SAAQ,yBAAkB;CAuBlE;AAvBD,kEAuBC;AArBC;IADC,IAAA,wBAAM,GAAE;;mEACc;AAGvB;IADC,IAAA,wBAAM,EAAC,qCAAmB,CAAC;;2DACA;AAI5B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2DACK;AAIhB;IADC,IAAA,0BAAQ,GAAE;;mEACY;AAIvB;IADC,IAAA,0BAAQ,GAAE;;kEACW;AAKtB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8DACwB;AAGrC,SAAgB,4BAA4B,CAAC,iBAAyB;IACpE,OAAO,GAAG,wBAAY,IAAI,sBAAsB,IAAI,iBAAiB,EAAE,CAAC;AAC1E,CAAC;AAEY,QAAA,wCAAwC,GAAG,gCAAgC,wBAAY,IAAI,sBAAsB,IAAI,gCAAoB,EAAE,CAAC"}
|
|
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./resource-update"), exports);
|
|
18
18
|
__exportStar(require("./export-logs-ended"), exports);
|
|
19
|
+
__exportStar(require("./detect-artifacts-ended"), exports);
|
|
20
|
+
__exportStar(require("./save-artifacts-ended"), exports);
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/events/ludeocast-agent/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/events/ludeocast-agent/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,sDAAoC;AACpC,2DAAyC;AACzC,yDAAuC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommandPayload } from '../base/base';
|
|
2
|
+
import { SiteOperationStatus } from '../../types/site-controller';
|
|
3
|
+
export declare class SaveArtifactsEndedPayload extends BaseCommandPayload {
|
|
4
|
+
gameResourceId: string;
|
|
5
|
+
status: SiteOperationStatus;
|
|
6
|
+
reason?: string;
|
|
7
|
+
artifactPrefix: string;
|
|
8
|
+
latestVersion: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function getSaveArtifactsEndedTopic(machineResourceId: string): string;
|
|
11
|
+
export declare const SAVE_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = "$share/site-controller-group/agent/save-artifacts-ended/+";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SAVE_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = exports.SaveArtifactsEndedPayload = void 0;
|
|
13
|
+
exports.getSaveArtifactsEndedTopic = getSaveArtifactsEndedTopic;
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const base_1 = require("../base/base");
|
|
16
|
+
const constants_1 = require("../base/constants");
|
|
17
|
+
const site_controller_1 = require("../../types/site-controller");
|
|
18
|
+
const SAVE_ARTIFACTS_ENDED = 'save-artifacts-ended';
|
|
19
|
+
class SaveArtifactsEndedPayload extends base_1.BaseCommandPayload {
|
|
20
|
+
}
|
|
21
|
+
exports.SaveArtifactsEndedPayload = SaveArtifactsEndedPayload;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsUUID)(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], SaveArtifactsEndedPayload.prototype, "gameResourceId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsEnum)(site_controller_1.SiteOperationStatus),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], SaveArtifactsEndedPayload.prototype, "status", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsString)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], SaveArtifactsEndedPayload.prototype, "reason", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], SaveArtifactsEndedPayload.prototype, "artifactPrefix", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsString)(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], SaveArtifactsEndedPayload.prototype, "latestVersion", void 0);
|
|
43
|
+
function getSaveArtifactsEndedTopic(machineResourceId) {
|
|
44
|
+
return `${constants_1.AGENT_STRING}/${SAVE_ARTIFACTS_ENDED}/${machineResourceId}`;
|
|
45
|
+
}
|
|
46
|
+
exports.SAVE_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = `$share/site-controller-group/${constants_1.AGENT_STRING}/${SAVE_ARTIFACTS_ENDED}/${constants_1.WILDCARD_MQTT_STRING}`;
|
|
47
|
+
//# sourceMappingURL=save-artifacts-ended.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-artifacts-ended.js","sourceRoot":"","sources":["../../../../src/v4/events/ludeocast-agent/save-artifacts-ended.ts"],"names":[],"mappings":";;;;;;;;;;;;AA2BA,gEAEC;AA7BD,qDAAuE;AACvE,uCAAkD;AAClD,iDAAuE;AACvE,iEAAkE;AAElE,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAGpD,MAAa,yBAA0B,SAAQ,yBAAkB;CAiBhE;AAjBD,8DAiBC;AAfC;IADC,IAAA,wBAAM,GAAE;;iEACc;AAGvB;IADC,IAAA,wBAAM,EAAC,qCAAmB,CAAC;;yDACA;AAI5B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;iEACY;AAIvB;IADC,IAAA,0BAAQ,GAAE;;gEACW;AAGxB,SAAgB,0BAA0B,CAAC,iBAAyB;IAClE,OAAO,GAAG,wBAAY,IAAI,oBAAoB,IAAI,iBAAiB,EAAE,CAAC;AACxE,CAAC;AAEY,QAAA,sCAAsC,GAAG,gCAAgC,wBAAY,IAAI,oBAAoB,IAAI,gCAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand, BaseCommandPayload } from '../base/base';
|
|
2
|
+
export declare class DetectArtifactsCommandPayload extends BaseCommandPayload {
|
|
3
|
+
gameResourceId: string;
|
|
4
|
+
artifactPrefix: string;
|
|
5
|
+
latestVersion: string;
|
|
6
|
+
targetLatestVersion: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class DetectArtifactsCommand extends BaseCommand<DetectArtifactsCommandPayload> {
|
|
9
|
+
payload: DetectArtifactsCommandPayload;
|
|
10
|
+
constructor(payload: DetectArtifactsCommandPayload);
|
|
11
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DetectArtifactsCommand = exports.DetectArtifactsCommandPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const decorators_1 = require("../../../decorators");
|
|
15
|
+
const base_1 = require("../base/base");
|
|
16
|
+
class DetectArtifactsCommandPayload extends base_1.BaseCommandPayload {
|
|
17
|
+
}
|
|
18
|
+
exports.DetectArtifactsCommandPayload = DetectArtifactsCommandPayload;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsUUID)(),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], DetectArtifactsCommandPayload.prototype, "gameResourceId", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], DetectArtifactsCommandPayload.prototype, "artifactPrefix", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], DetectArtifactsCommandPayload.prototype, "latestVersion", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsString)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], DetectArtifactsCommandPayload.prototype, "targetLatestVersion", void 0);
|
|
35
|
+
class DetectArtifactsCommand extends base_1.BaseCommand {
|
|
36
|
+
constructor(payload) {
|
|
37
|
+
super(payload.machineResourceId, 'detect-artifacts', payload);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DetectArtifactsCommand = DetectArtifactsCommand;
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, decorators_1.ValidateNestedType)(() => DetectArtifactsCommandPayload),
|
|
43
|
+
__metadata("design:type", DetectArtifactsCommandPayload)
|
|
44
|
+
], DetectArtifactsCommand.prototype, "payload", void 0);
|
|
45
|
+
//# sourceMappingURL=detect-artifacts.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-artifacts.command.js","sourceRoot":"","sources":["../../../../src/v4/events/site-controller/detect-artifacts.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmD;AACnD,oDAAyD;AACzD,uCAA+D;AAM/D,MAAa,6BAA8B,SAAQ,yBAAkB;CAmBpE;AAnBD,sEAmBC;AAhBC;IADC,IAAA,wBAAM,GAAE;;qEACc;AAOvB;IADC,IAAA,0BAAQ,GAAE;;qEACY;AAIvB;IADC,IAAA,0BAAQ,GAAE;;oEACW;AAItB;IADC,IAAA,0BAAQ,GAAE;;0EACiB;AAG9B,MAAa,sBAAuB,SAAQ,kBAA0C;IAIpF,YAAY,OAAsC;QAChD,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;CACF;AAPD,wDAOC;AALC;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;8BAC/C,6BAA6B;uDAAC"}
|
|
@@ -31,4 +31,6 @@ __exportStar(require("./terminate-game.command"), exports);
|
|
|
31
31
|
__exportStar(require("./start-game.command"), exports);
|
|
32
32
|
__exportStar(require("./shutdown.command"), exports);
|
|
33
33
|
__exportStar(require("./export-logs.command"), exports);
|
|
34
|
+
__exportStar(require("./detect-artifacts.command"), exports);
|
|
35
|
+
__exportStar(require("./save-artifacts.command"), exports);
|
|
34
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/events/site-controller/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,gEAA8C;AAC9C,kEAAgD;AAChD,qEAAmD;AACnD,wEAAsD;AAEtD,gFAA8D;AAC9D,mFAAiE;AACjE,4EAA0D;AAE1D,qEAAmD;AACnD,gEAA8C;AAG9C,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/events/site-controller/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,gEAA8C;AAC9C,kEAAgD;AAChD,qEAAmD;AACnD,wEAAsD;AAEtD,gFAA8D;AAC9D,mFAAiE;AACjE,4EAA0D;AAE1D,qEAAmD;AACnD,gEAA8C;AAG9C,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,wDAAsC;AACtC,6DAA2C;AAC3C,2DAAyC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand, BaseCommandPayload } from '../base/base';
|
|
2
|
+
import { RuntimeArtifactPresignedUploadDto } from '../../types/site-controller/runtime-artifacts.dto';
|
|
3
|
+
export declare class SaveArtifactsCommandPayload extends BaseCommandPayload {
|
|
4
|
+
gameResourceId: string;
|
|
5
|
+
artifactPrefix: string;
|
|
6
|
+
latestVersion: string;
|
|
7
|
+
uploads: RuntimeArtifactPresignedUploadDto[];
|
|
8
|
+
}
|
|
9
|
+
export declare class SaveArtifactsCommand extends BaseCommand<SaveArtifactsCommandPayload> {
|
|
10
|
+
payload: SaveArtifactsCommandPayload;
|
|
11
|
+
constructor(payload: SaveArtifactsCommandPayload);
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SaveArtifactsCommand = exports.SaveArtifactsCommandPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const decorators_1 = require("../../../decorators");
|
|
15
|
+
const base_1 = require("../base/base");
|
|
16
|
+
const runtime_artifacts_dto_1 = require("../../types/site-controller/runtime-artifacts.dto");
|
|
17
|
+
class SaveArtifactsCommandPayload extends base_1.BaseCommandPayload {
|
|
18
|
+
}
|
|
19
|
+
exports.SaveArtifactsCommandPayload = SaveArtifactsCommandPayload;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_validator_1.IsUUID)(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], SaveArtifactsCommandPayload.prototype, "gameResourceId", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], SaveArtifactsCommandPayload.prototype, "artifactPrefix", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], SaveArtifactsCommandPayload.prototype, "latestVersion", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsArray)(),
|
|
34
|
+
(0, decorators_1.ValidateNestedType)(() => runtime_artifacts_dto_1.RuntimeArtifactPresignedUploadDto),
|
|
35
|
+
__metadata("design:type", Array)
|
|
36
|
+
], SaveArtifactsCommandPayload.prototype, "uploads", void 0);
|
|
37
|
+
class SaveArtifactsCommand extends base_1.BaseCommand {
|
|
38
|
+
constructor(payload) {
|
|
39
|
+
super(payload.machineResourceId, 'save-artifacts', payload);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.SaveArtifactsCommand = SaveArtifactsCommand;
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, decorators_1.ValidateNestedType)(() => SaveArtifactsCommandPayload),
|
|
45
|
+
__metadata("design:type", SaveArtifactsCommandPayload)
|
|
46
|
+
], SaveArtifactsCommand.prototype, "payload", void 0);
|
|
47
|
+
//# sourceMappingURL=save-artifacts.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-artifacts.command.js","sourceRoot":"","sources":["../../../../src/v4/events/site-controller/save-artifacts.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA4D;AAC5D,oDAAyD;AACzD,uCAA+D;AAC/D,6FAAsG;AAGtG,MAAa,2BAA4B,SAAQ,yBAAkB;CAclE;AAdD,kEAcC;AAXC;IADC,IAAA,wBAAM,GAAE;;mEACc;AAGvB;IADC,IAAA,0BAAQ,GAAE;;mEACY;AAGvB;IADC,IAAA,0BAAQ,GAAE;;kEACW;AAItB;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,yDAAiC,CAAC;;4DACf;AAG/C,MAAa,oBAAqB,SAAQ,kBAAwC;IAIhF,YAAY,OAAoC;QAC9C,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACF;AAPD,oDAOC;AALC;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC;8BAC7C,2BAA2B;qDAAC"}
|
|
@@ -1,22 +1,29 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class RuntimeArtifactUploadPresignSpecDto {
|
|
2
2
|
key: string;
|
|
3
3
|
contentType?: string;
|
|
4
|
+
metadata?: Record<string, string>;
|
|
4
5
|
}
|
|
5
6
|
export declare class ObjectKeyUrlPair {
|
|
6
7
|
key: string;
|
|
7
8
|
url: string;
|
|
8
9
|
}
|
|
10
|
+
export declare class RuntimeArtifactPresignedUploadDto {
|
|
11
|
+
key: string;
|
|
12
|
+
url: string;
|
|
13
|
+
contentType?: string;
|
|
14
|
+
metadata?: Record<string, string>;
|
|
15
|
+
}
|
|
9
16
|
export declare class RuntimeArtifactsDownloadUrlsRequestDto {
|
|
10
17
|
artifactPrefix: string;
|
|
11
18
|
latestVersion: string;
|
|
12
19
|
}
|
|
13
20
|
export declare class RuntimeArtifactsUploadUrlsRequestDto {
|
|
14
|
-
objects:
|
|
21
|
+
objects: RuntimeArtifactUploadPresignSpecDto[];
|
|
15
22
|
}
|
|
16
23
|
export declare class RuntimeArtifactsDownloadUrlsResponseDto {
|
|
17
24
|
objects: ObjectKeyUrlPair[];
|
|
18
25
|
artifactPrefix: string;
|
|
19
26
|
}
|
|
20
|
-
export declare class
|
|
21
|
-
|
|
27
|
+
export declare class RuntimeArtifactsUploadsResponseDto {
|
|
28
|
+
uploads: RuntimeArtifactPresignedUploadDto[];
|
|
22
29
|
}
|
|
@@ -9,21 +9,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.RuntimeArtifactsUploadsResponseDto = exports.RuntimeArtifactsDownloadUrlsResponseDto = exports.RuntimeArtifactsUploadUrlsRequestDto = exports.RuntimeArtifactsDownloadUrlsRequestDto = exports.RuntimeArtifactPresignedUploadDto = exports.ObjectKeyUrlPair = exports.RuntimeArtifactUploadPresignSpecDto = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const validate_nested_type_decorator_1 = require("../../../decorators/validate-nested-type.decorator");
|
|
15
|
-
class
|
|
15
|
+
class RuntimeArtifactUploadPresignSpecDto {
|
|
16
16
|
}
|
|
17
|
-
exports.
|
|
17
|
+
exports.RuntimeArtifactUploadPresignSpecDto = RuntimeArtifactUploadPresignSpecDto;
|
|
18
18
|
__decorate([
|
|
19
19
|
(0, class_validator_1.IsString)(),
|
|
20
20
|
__metadata("design:type", String)
|
|
21
|
-
],
|
|
21
|
+
], RuntimeArtifactUploadPresignSpecDto.prototype, "key", void 0);
|
|
22
22
|
__decorate([
|
|
23
23
|
(0, class_validator_1.IsOptional)(),
|
|
24
24
|
(0, class_validator_1.IsString)(),
|
|
25
25
|
__metadata("design:type", String)
|
|
26
|
-
],
|
|
26
|
+
], RuntimeArtifactUploadPresignSpecDto.prototype, "contentType", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsObject)(),
|
|
30
|
+
__metadata("design:type", Object)
|
|
31
|
+
], RuntimeArtifactUploadPresignSpecDto.prototype, "metadata", void 0);
|
|
27
32
|
class ObjectKeyUrlPair {
|
|
28
33
|
}
|
|
29
34
|
exports.ObjectKeyUrlPair = ObjectKeyUrlPair;
|
|
@@ -35,6 +40,27 @@ __decorate([
|
|
|
35
40
|
(0, class_validator_1.IsString)(),
|
|
36
41
|
__metadata("design:type", String)
|
|
37
42
|
], ObjectKeyUrlPair.prototype, "url", void 0);
|
|
43
|
+
class RuntimeArtifactPresignedUploadDto {
|
|
44
|
+
}
|
|
45
|
+
exports.RuntimeArtifactPresignedUploadDto = RuntimeArtifactPresignedUploadDto;
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, class_validator_1.IsString)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], RuntimeArtifactPresignedUploadDto.prototype, "key", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, class_validator_1.IsString)(),
|
|
52
|
+
__metadata("design:type", String)
|
|
53
|
+
], RuntimeArtifactPresignedUploadDto.prototype, "url", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, class_validator_1.IsString)(),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], RuntimeArtifactPresignedUploadDto.prototype, "contentType", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, class_validator_1.IsOptional)(),
|
|
61
|
+
(0, class_validator_1.IsObject)(),
|
|
62
|
+
__metadata("design:type", Object)
|
|
63
|
+
], RuntimeArtifactPresignedUploadDto.prototype, "metadata", void 0);
|
|
38
64
|
class RuntimeArtifactsDownloadUrlsRequestDto {
|
|
39
65
|
}
|
|
40
66
|
exports.RuntimeArtifactsDownloadUrlsRequestDto = RuntimeArtifactsDownloadUrlsRequestDto;
|
|
@@ -51,7 +77,7 @@ class RuntimeArtifactsUploadUrlsRequestDto {
|
|
|
51
77
|
exports.RuntimeArtifactsUploadUrlsRequestDto = RuntimeArtifactsUploadUrlsRequestDto;
|
|
52
78
|
__decorate([
|
|
53
79
|
(0, class_validator_1.IsArray)(),
|
|
54
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() =>
|
|
80
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => RuntimeArtifactUploadPresignSpecDto),
|
|
55
81
|
__metadata("design:type", Array)
|
|
56
82
|
], RuntimeArtifactsUploadUrlsRequestDto.prototype, "objects", void 0);
|
|
57
83
|
class RuntimeArtifactsDownloadUrlsResponseDto {
|
|
@@ -66,12 +92,12 @@ __decorate([
|
|
|
66
92
|
(0, class_validator_1.IsString)(),
|
|
67
93
|
__metadata("design:type", String)
|
|
68
94
|
], RuntimeArtifactsDownloadUrlsResponseDto.prototype, "artifactPrefix", void 0);
|
|
69
|
-
class
|
|
95
|
+
class RuntimeArtifactsUploadsResponseDto {
|
|
70
96
|
}
|
|
71
|
-
exports.
|
|
97
|
+
exports.RuntimeArtifactsUploadsResponseDto = RuntimeArtifactsUploadsResponseDto;
|
|
72
98
|
__decorate([
|
|
73
99
|
(0, class_validator_1.IsArray)(),
|
|
74
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() =>
|
|
100
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => RuntimeArtifactPresignedUploadDto),
|
|
75
101
|
__metadata("design:type", Array)
|
|
76
|
-
],
|
|
102
|
+
], RuntimeArtifactsUploadsResponseDto.prototype, "uploads", void 0);
|
|
77
103
|
//# sourceMappingURL=runtime-artifacts.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-artifacts.dto.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/runtime-artifacts.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"runtime-artifacts.dto.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/runtime-artifacts.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0E;AAC1E,uGAAwF;AAMxF,MAAa,mCAAmC;CAa/C;AAbD,kFAaC;AAXC;IADC,IAAA,0BAAQ,GAAE;;gEACC;AAKZ;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wEACU;AAKrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qEACuB;AAIpC,MAAa,gBAAgB;CAM5B;AAND,4CAMC;AAJC;IADC,IAAA,0BAAQ,GAAE;;6CACC;AAGZ;IADC,IAAA,0BAAQ,GAAE;;6CACC;AAMd,MAAa,iCAAiC;CAe7C;AAfD,8EAeC;AAbC;IADC,IAAA,0BAAQ,GAAE;;8DACC;AAGZ;IADC,IAAA,0BAAQ,GAAE;;8DACC;AAKZ;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sEACU;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mEACuB;AAGpC,MAAa,sCAAsC;CAOlD;AAPD,wFAOC;AAJC;IADC,IAAA,0BAAQ,GAAE;;8EACY;AAGvB;IADC,IAAA,0BAAQ,GAAE;;6EACW;AAGxB,MAAa,oCAAoC;CAIhD;AAJD,oFAIC;AADC;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC;;qEACf;AAGjD,MAAa,uCAAuC;CAQnD;AARD,0FAQC;AALC;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;;wEACf;AAI5B;IADC,IAAA,0BAAQ,GAAE;;+EACY;AAGzB,MAAa,kCAAkC;CAI9C;AAJD,gFAIC;AADC;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC;;mEACf"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IsEnum, IsObject, IsOptional, IsString, IsUUID } from 'class-validator';
|
|
2
|
+
import { BaseCommandPayload } from '../base/base';
|
|
3
|
+
import { AGENT_STRING, WILDCARD_MQTT_STRING } from '../base/constants';
|
|
4
|
+
import { SiteOperationStatus } from '../../types/site-controller';
|
|
5
|
+
|
|
6
|
+
const DETECT_ARTIFACTS_ENDED = 'detect-artifacts-ended';
|
|
7
|
+
|
|
8
|
+
/** Agent → site-controller: scan finished after `detect-artifacts` (machine-scoped topic; game-scoped correlation). */
|
|
9
|
+
export class DetectArtifactsEndedPayload extends BaseCommandPayload {
|
|
10
|
+
@IsUUID()
|
|
11
|
+
gameResourceId: string;
|
|
12
|
+
|
|
13
|
+
@IsEnum(SiteOperationStatus)
|
|
14
|
+
status: SiteOperationStatus;
|
|
15
|
+
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsString()
|
|
18
|
+
reason?: string;
|
|
19
|
+
|
|
20
|
+
/** Parent prefix under cache root (echo of `detect-artifacts` command). */
|
|
21
|
+
@IsString()
|
|
22
|
+
artifactPrefix: string;
|
|
23
|
+
|
|
24
|
+
/** Bundle version scanned (echo of `detect-artifacts` command). */
|
|
25
|
+
@IsString()
|
|
26
|
+
latestVersion: string;
|
|
27
|
+
|
|
28
|
+
/** When `status` is success: object key → size in bytes (cache-root layout). */
|
|
29
|
+
@IsOptional()
|
|
30
|
+
@IsObject()
|
|
31
|
+
artifacts?: Record<string, number>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function getDetectArtifactsEndedTopic(machineResourceId: string): string {
|
|
35
|
+
return `${AGENT_STRING}/${DETECT_ARTIFACTS_ENDED}/${machineResourceId}`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const DETECT_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = `$share/site-controller-group/${AGENT_STRING}/${DETECT_ARTIFACTS_ENDED}/${WILDCARD_MQTT_STRING}`;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IsEnum, IsOptional, IsString, IsUUID } from 'class-validator';
|
|
2
|
+
import { BaseCommandPayload } from '../base/base';
|
|
3
|
+
import { AGENT_STRING, WILDCARD_MQTT_STRING } from '../base/constants';
|
|
4
|
+
import { SiteOperationStatus } from '../../types/site-controller';
|
|
5
|
+
|
|
6
|
+
const SAVE_ARTIFACTS_ENDED = 'save-artifacts-ended';
|
|
7
|
+
|
|
8
|
+
/** Agent → site-controller: result of presigned PUT uploads after `save-artifacts` (machine-scoped topic; game-scoped correlation). */
|
|
9
|
+
export class SaveArtifactsEndedPayload extends BaseCommandPayload {
|
|
10
|
+
@IsUUID()
|
|
11
|
+
gameResourceId: string;
|
|
12
|
+
|
|
13
|
+
@IsEnum(SiteOperationStatus)
|
|
14
|
+
status: SiteOperationStatus;
|
|
15
|
+
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsString()
|
|
18
|
+
reason?: string;
|
|
19
|
+
|
|
20
|
+
@IsString()
|
|
21
|
+
artifactPrefix: string;
|
|
22
|
+
|
|
23
|
+
/** Bundle version that was uploaded (matches command `runtimeArtifacts.latestVersion` / target bundle). */
|
|
24
|
+
@IsString()
|
|
25
|
+
latestVersion: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function getSaveArtifactsEndedTopic(machineResourceId: string): string {
|
|
29
|
+
return `${AGENT_STRING}/${SAVE_ARTIFACTS_ENDED}/${machineResourceId}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const SAVE_ARTIFACTS_ENDED_SUBSCRIBE_PATTERN = `$share/site-controller-group/${AGENT_STRING}/${SAVE_ARTIFACTS_ENDED}/${WILDCARD_MQTT_STRING}`;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IsString, IsUUID } from 'class-validator';
|
|
2
|
+
import { ValidateNestedType } from '../../../decorators';
|
|
3
|
+
import { BaseCommand, BaseCommandPayload } from '../base/base';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Ask the agent to scan local runtime-artifact files under
|
|
7
|
+
* `{artifactPrefix}/{latestVersion}` (relative to its cache root; same semantics as MQTT `runtimeArtifacts`).
|
|
8
|
+
*/
|
|
9
|
+
export class DetectArtifactsCommandPayload extends BaseCommandPayload {
|
|
10
|
+
/** Game session this detect pass belongs to (same role as {@link ExportLogsEndedPayload.gameResourceId}). */
|
|
11
|
+
@IsUUID()
|
|
12
|
+
gameResourceId: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Parent prefix under artifact root (excludes `latestVersion`; may include folder segment e.g. `shader-cache/...`
|
|
16
|
+
* — same shape as `{@link RuntimeArtifactsPayload.artifactPrefix}` / adapter responses).
|
|
17
|
+
*/
|
|
18
|
+
@IsString()
|
|
19
|
+
artifactPrefix: string;
|
|
20
|
+
|
|
21
|
+
/** Current bundle version segment to list on disk. */
|
|
22
|
+
@IsString()
|
|
23
|
+
latestVersion: string;
|
|
24
|
+
|
|
25
|
+
/** Registry version site-controller will commit after uploads complete. */
|
|
26
|
+
@IsString()
|
|
27
|
+
targetLatestVersion: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class DetectArtifactsCommand extends BaseCommand<DetectArtifactsCommandPayload> {
|
|
31
|
+
@ValidateNestedType(() => DetectArtifactsCommandPayload)
|
|
32
|
+
payload: DetectArtifactsCommandPayload;
|
|
33
|
+
|
|
34
|
+
constructor(payload: DetectArtifactsCommandPayload) {
|
|
35
|
+
super(payload.machineResourceId, 'detect-artifacts', payload);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { IsArray, IsString, IsUUID } from 'class-validator';
|
|
2
|
+
import { ValidateNestedType } from '../../../decorators';
|
|
3
|
+
import { BaseCommand, BaseCommandPayload } from '../base/base';
|
|
4
|
+
import { RuntimeArtifactPresignedUploadDto } from '../../types/site-controller/runtime-artifacts.dto';
|
|
5
|
+
|
|
6
|
+
/** Machine-scoped PUT pass: `artifactPrefix` + target `latestVersion` + presigned **`uploads`** per object key. */
|
|
7
|
+
export class SaveArtifactsCommandPayload extends BaseCommandPayload {
|
|
8
|
+
/** Game session this upload pass belongs to (parity with `{@link DetectArtifactsCommandPayload.gameResourceId}`). */
|
|
9
|
+
@IsUUID()
|
|
10
|
+
gameResourceId: string;
|
|
11
|
+
|
|
12
|
+
@IsString()
|
|
13
|
+
artifactPrefix: string;
|
|
14
|
+
|
|
15
|
+
@IsString()
|
|
16
|
+
latestVersion: string;
|
|
17
|
+
|
|
18
|
+
@IsArray()
|
|
19
|
+
@ValidateNestedType(() => RuntimeArtifactPresignedUploadDto)
|
|
20
|
+
uploads: RuntimeArtifactPresignedUploadDto[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class SaveArtifactsCommand extends BaseCommand<SaveArtifactsCommandPayload> {
|
|
24
|
+
@ValidateNestedType(() => SaveArtifactsCommandPayload)
|
|
25
|
+
payload: SaveArtifactsCommandPayload;
|
|
26
|
+
|
|
27
|
+
constructor(payload: SaveArtifactsCommandPayload) {
|
|
28
|
+
super(payload.machineResourceId, 'save-artifacts', payload);
|
|
29
|
+
}
|
|
30
|
+
}
|