@ludeo/cloud-common 1.1.9 → 1.1.11
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/v3/contexts/getCloudContextType.d.ts +1 -1
- package/dist/v3/events/index.d.ts +1 -0
- package/dist/v3/events/index.js +1 -0
- package/dist/v3/events/index.js.map +1 -1
- package/dist/v3/events/prepare-cloud-machine-auth.d.ts +15 -0
- package/dist/v3/events/{game-created-response.js → prepare-cloud-machine-auth.js} +24 -24
- package/dist/v3/events/prepare-cloud-machine-auth.js.map +1 -0
- package/dist/v3/events/token-required.event.d.ts +25 -0
- package/dist/v3/events/token-required.event.js +86 -0
- package/dist/v3/events/token-required.event.js.map +1 -0
- package/package.json +1 -1
- package/src/v3/events/index.ts +1 -0
- package/src/v3/events/prepare-cloud-machine-auth.ts +38 -0
- package/src/v3/events/token-required.event.ts +61 -0
- package/dist/v3/events/game-allocated-response.d.ts +0 -14
- package/dist/v3/events/game-allocated-response.js +0 -50
- package/dist/v3/events/game-allocated-response.js.map +0 -1
- package/dist/v3/events/game-created-response.d.ts +0 -15
- package/dist/v3/events/game-created-response.js.map +0 -1
- package/dist/v3/events/game-terminated-response.d.ts +0 -12
- package/dist/v3/events/game-terminated-response.js +0 -45
- package/dist/v3/events/game-terminated-response.js.map +0 -1
- package/dist/v3/events/machine-created-response.d.ts +0 -12
- package/dist/v3/events/machine-created-response.js +0 -45
- package/dist/v3/events/machine-created-response.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { TypeHelpOptions } from "class-transformer";
|
|
2
2
|
import { CloudPoolContext } from "./cloud-pool-context";
|
|
3
3
|
import { CloudSessionContext } from "./cloud-session-context";
|
|
4
|
-
export declare const getCloudContextType: ({ object }: TypeHelpOptions) => typeof
|
|
4
|
+
export declare const getCloudContextType: ({ object }: TypeHelpOptions) => typeof CloudSessionContext | typeof CloudPoolContext;
|
package/dist/v3/events/index.js
CHANGED
|
@@ -41,4 +41,5 @@ __exportStar(require("./terminate-machine-resource-batch-request"), exports);
|
|
|
41
41
|
__exportStar(require("./terminate-machines-request"), exports);
|
|
42
42
|
__exportStar(require("./swap-cloud-user-request"), exports);
|
|
43
43
|
__exportStar(require("./swap-cloud-user-request-failed"), exports);
|
|
44
|
+
__exportStar(require("./prepare-cloud-machine-auth"), exports);
|
|
44
45
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,mEAAiD;AACjD,6DAA2C;AAC3C,iEAA+C;AAC/C,yDAAuC;AACvC,0EAAwD;AACxD,4DAA0C;AAC1C,+DAA6C;AAC7C,qEAAmD;AACnD,6EAA2D;AAC3D,mEAAiD;AACjD,2EAAyD;AACzD,sEAAoD;AACpD,8EAA4D;AAC5D,+DAA6C;AAC7C,uEAAqD;AACrD,iEAA+C;AAC/C,yEAAuD;AACvD,sEAAoD;AACpD,8EAA4D;AAC5D,mDAAiC;AACjC,oEAAkD;AAClD,4DAA0C;AAC1C,6EAA2D;AAC3D,+DAA6C;AAC7C,4DAA0C;AAC1C,mEAAiD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,mEAAiD;AACjD,6DAA2C;AAC3C,iEAA+C;AAC/C,yDAAuC;AACvC,0EAAwD;AACxD,4DAA0C;AAC1C,+DAA6C;AAC7C,qEAAmD;AACnD,6EAA2D;AAC3D,mEAAiD;AACjD,2EAAyD;AACzD,sEAAoD;AACpD,8EAA4D;AAC5D,+DAA6C;AAC7C,uEAAqD;AACrD,iEAA+C;AAC/C,yEAAuD;AACvD,sEAAoD;AACpD,8EAA4D;AAC5D,mDAAiC;AACjC,oEAAkD;AAClD,4DAA0C;AAC1C,6EAA2D;AAC3D,+DAA6C;AAC7C,4DAA0C;AAC1C,mEAAiD;AACjD,+DAA6C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { V3 } from "@ludeo/cloud-common";
|
|
2
|
+
import { LudeoEvent } from "../../infra";
|
|
3
|
+
import { CloudResourceContext } from "../contexts";
|
|
4
|
+
export declare class PrepareCloudMachineAuthPayload {
|
|
5
|
+
cloudUserId: string;
|
|
6
|
+
authTokenId: string;
|
|
7
|
+
resourceId: string;
|
|
8
|
+
context: V3.Contexts.CloudResourceContext;
|
|
9
|
+
}
|
|
10
|
+
export declare class PrepareCloudMachineAuth extends LudeoEvent {
|
|
11
|
+
static readonly EVENT_NAME = "cloud-pools.prepare-cloud-machine-auth";
|
|
12
|
+
constructor(payload: PrepareCloudMachineAuthPayload, context: CloudResourceContext);
|
|
13
|
+
payload: PrepareCloudMachineAuthPayload;
|
|
14
|
+
context: CloudResourceContext;
|
|
15
|
+
}
|
|
@@ -9,46 +9,46 @@ 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.PrepareCloudMachineAuth = exports.PrepareCloudMachineAuthPayload = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
|
-
const contexts_1 = require("../contexts");
|
|
15
|
-
const ludeo_event_1 = require("../../infra/ludeo-event");
|
|
16
14
|
const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
|
|
17
|
-
const
|
|
18
|
-
|
|
15
|
+
const cloud_common_1 = require("@ludeo/cloud-common");
|
|
16
|
+
const infra_1 = require("../../infra");
|
|
17
|
+
const contexts_1 = require("../contexts");
|
|
18
|
+
class PrepareCloudMachineAuthPayload {
|
|
19
19
|
}
|
|
20
|
-
exports.
|
|
20
|
+
exports.PrepareCloudMachineAuthPayload = PrepareCloudMachineAuthPayload;
|
|
21
21
|
__decorate([
|
|
22
22
|
(0, class_validator_1.IsUUID)(),
|
|
23
23
|
__metadata("design:type", String)
|
|
24
|
-
],
|
|
24
|
+
], PrepareCloudMachineAuthPayload.prototype, "cloudUserId", void 0);
|
|
25
25
|
__decorate([
|
|
26
26
|
(0, class_validator_1.IsUUID)(),
|
|
27
27
|
__metadata("design:type", String)
|
|
28
|
-
],
|
|
28
|
+
], PrepareCloudMachineAuthPayload.prototype, "authTokenId", void 0);
|
|
29
29
|
__decorate([
|
|
30
|
-
(0,
|
|
31
|
-
__metadata("design:type", Object)
|
|
32
|
-
], GameCreatedResponsePayload.prototype, "providerSettings", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
(0, class_validator_1.IsEnum)(types_1.CloudProvider),
|
|
30
|
+
(0, class_validator_1.IsUUID)(),
|
|
35
31
|
__metadata("design:type", String)
|
|
36
|
-
],
|
|
37
|
-
|
|
32
|
+
], PrepareCloudMachineAuthPayload.prototype, "resourceId", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => cloud_common_1.V3.Contexts.CloudResourceContext),
|
|
35
|
+
__metadata("design:type", cloud_common_1.V3.Contexts.CloudResourceContext)
|
|
36
|
+
], PrepareCloudMachineAuthPayload.prototype, "context", void 0);
|
|
37
|
+
class PrepareCloudMachineAuth extends infra_1.LudeoEvent {
|
|
38
38
|
constructor(payload, context) {
|
|
39
|
-
super(
|
|
39
|
+
super(PrepareCloudMachineAuth.EVENT_NAME);
|
|
40
40
|
this.payload = payload;
|
|
41
41
|
this.context = context;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
exports.
|
|
45
|
-
|
|
44
|
+
exports.PrepareCloudMachineAuth = PrepareCloudMachineAuth;
|
|
45
|
+
PrepareCloudMachineAuth.EVENT_NAME = "cloud-pools.prepare-cloud-machine-auth";
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => PrepareCloudMachineAuthPayload),
|
|
48
|
+
__metadata("design:type", PrepareCloudMachineAuthPayload)
|
|
49
|
+
], PrepareCloudMachineAuth.prototype, "payload", void 0);
|
|
46
50
|
__decorate([
|
|
47
51
|
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => contexts_1.CloudResourceContext),
|
|
48
52
|
__metadata("design:type", contexts_1.CloudResourceContext)
|
|
49
|
-
],
|
|
50
|
-
|
|
51
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => GameCreatedResponsePayload),
|
|
52
|
-
__metadata("design:type", GameCreatedResponsePayload)
|
|
53
|
-
], GameCreatedResponse.prototype, "payload", void 0);
|
|
54
|
-
//# sourceMappingURL=game-created-response.js.map
|
|
53
|
+
], PrepareCloudMachineAuth.prototype, "context", void 0);
|
|
54
|
+
//# sourceMappingURL=prepare-cloud-machine-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-cloud-machine-auth.js","sourceRoot":"","sources":["../../../src/v3/events/prepare-cloud-machine-auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AACzC,oGAAqF;AACrF,sDAAyC;AACzC,uCAAyC;AACzC,0CAAmD;AAEnD,MAAa,8BAA8B;CAY1C;AAZD,wEAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;mEACW;AAGpB;IADC,IAAA,wBAAM,GAAE;;mEACW;AAGpB;IADC,IAAA,wBAAM,GAAE;;kEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,iBAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;8BAClD,iBAAE,CAAC,QAAQ,CAAC,oBAAoB;+DAAC;AAG5C,MAAa,uBAAwB,SAAQ,kBAAU;IAGrD,YACE,OAAuC,EACvC,OAA6B;QAE7B,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,0DAiBC;AAhBiB,kCAAU,GAAG,wCAAwC,CAAC;AAYtE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC;8BAChD,8BAA8B;wDAAC;AAGxC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;wDAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
2
|
+
export declare class TokenRequiredConnectionDetails {
|
|
3
|
+
resourceId: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class TokenRequiredEventData {
|
|
6
|
+
defaultUser: string;
|
|
7
|
+
authSource: string;
|
|
8
|
+
connectionDetails: TokenRequiredConnectionDetails;
|
|
9
|
+
authToken: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class TokenRequiredEventPayload {
|
|
12
|
+
id: string;
|
|
13
|
+
type: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
expireAt: number;
|
|
16
|
+
quota: number;
|
|
17
|
+
isUnique: boolean;
|
|
18
|
+
data: TokenRequiredEventData;
|
|
19
|
+
}
|
|
20
|
+
export declare class TokenRequired extends LudeoEvent {
|
|
21
|
+
static readonly EVENT_NAME = "tokens.token-required";
|
|
22
|
+
payload: TokenRequiredEventPayload;
|
|
23
|
+
context?: never;
|
|
24
|
+
constructor(payload: TokenRequiredEventPayload, context?: never);
|
|
25
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
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.TokenRequired = exports.TokenRequiredEventPayload = exports.TokenRequiredEventData = exports.TokenRequiredConnectionDetails = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const ludeo_event_1 = require("../../infra/ludeo-event");
|
|
15
|
+
const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
|
|
16
|
+
class TokenRequiredConnectionDetails {
|
|
17
|
+
}
|
|
18
|
+
exports.TokenRequiredConnectionDetails = TokenRequiredConnectionDetails;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsString)(),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], TokenRequiredConnectionDetails.prototype, "resourceId", void 0);
|
|
23
|
+
class TokenRequiredEventData {
|
|
24
|
+
}
|
|
25
|
+
exports.TokenRequiredEventData = TokenRequiredEventData;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsString)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], TokenRequiredEventData.prototype, "defaultUser", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsString)(),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], TokenRequiredEventData.prototype, "authSource", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => TokenRequiredConnectionDetails),
|
|
36
|
+
__metadata("design:type", TokenRequiredConnectionDetails)
|
|
37
|
+
], TokenRequiredEventData.prototype, "connectionDetails", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], TokenRequiredEventData.prototype, "authToken", void 0);
|
|
42
|
+
class TokenRequiredEventPayload {
|
|
43
|
+
}
|
|
44
|
+
exports.TokenRequiredEventPayload = TokenRequiredEventPayload;
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.IsString)(),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], TokenRequiredEventPayload.prototype, "id", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_validator_1.IsString)(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], TokenRequiredEventPayload.prototype, "type", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_validator_1.IsString)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], TokenRequiredEventPayload.prototype, "userId", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_validator_1.IsNumber)(),
|
|
59
|
+
__metadata("design:type", Number)
|
|
60
|
+
], TokenRequiredEventPayload.prototype, "expireAt", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, class_validator_1.IsNumber)(),
|
|
63
|
+
__metadata("design:type", Number)
|
|
64
|
+
], TokenRequiredEventPayload.prototype, "quota", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_validator_1.IsBoolean)(),
|
|
67
|
+
__metadata("design:type", Boolean)
|
|
68
|
+
], TokenRequiredEventPayload.prototype, "isUnique", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => TokenRequiredEventData),
|
|
71
|
+
__metadata("design:type", TokenRequiredEventData)
|
|
72
|
+
], TokenRequiredEventPayload.prototype, "data", void 0);
|
|
73
|
+
class TokenRequired extends ludeo_event_1.LudeoEvent {
|
|
74
|
+
constructor(payload, context) {
|
|
75
|
+
super(TokenRequired.EVENT_NAME);
|
|
76
|
+
this.payload = payload;
|
|
77
|
+
this.context = context;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.TokenRequired = TokenRequired;
|
|
81
|
+
TokenRequired.EVENT_NAME = "tokens.token-required";
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => TokenRequiredEventPayload),
|
|
84
|
+
__metadata("design:type", TokenRequiredEventPayload)
|
|
85
|
+
], TokenRequired.prototype, "payload", void 0);
|
|
86
|
+
//# sourceMappingURL=token-required.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-required.event.js","sourceRoot":"","sources":["../../../src/v3/events/token-required.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAgE;AAEhE,yDAAqD;AACrD,oGAAqF;AAErF,MAAa,8BAA8B;CAG1C;AAHD,wEAGC;AADC;IADC,IAAA,0BAAQ,GAAE;;kEACQ;AAGrB,MAAa,sBAAsB;CAYlC;AAZD,wDAYC;AAVC;IADC,IAAA,0BAAQ,GAAE;;2DACS;AAGpB;IADC,IAAA,0BAAQ,GAAE;;0DACQ;AAGnB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC;8BACtC,8BAA8B;iEAAC;AAGlD;IADC,IAAA,0BAAQ,GAAE;;yDACO;AAGpB,MAAa,yBAAyB;CAqBrC;AArBD,8DAqBC;AAnBC;IADC,IAAA,0BAAQ,GAAE;;qDACA;AAGX;IADC,IAAA,0BAAQ,GAAE;;uDACE;AAGb;IADC,IAAA,0BAAQ,GAAE;;yDACI;AAGf;IADC,IAAA,0BAAQ,GAAE;;2DACM;AAGjB;IADC,IAAA,0BAAQ,GAAE;;wDACG;AAGd;IADC,IAAA,2BAAS,GAAE;;2DACM;AAGlB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;8BAC3C,sBAAsB;uDAAC;AAG/B,MAAa,aAAc,SAAQ,wBAAU;IAQ3C,YAAY,OAAkC,EAAE,OAAe;QAC7D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAZH,sCAaC;AAZiB,wBAAU,GAAG,uBAAuB,CAAC;AAGrD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;8BAC3C,yBAAyB;8CAAC"}
|
package/package.json
CHANGED
package/src/v3/events/index.ts
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IsUUID } from "class-validator";
|
|
2
|
+
import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { V3 } from "@ludeo/cloud-common";
|
|
4
|
+
import { LudeoEvent } from "../../infra";
|
|
5
|
+
import { CloudResourceContext } from "../contexts";
|
|
6
|
+
|
|
7
|
+
export class PrepareCloudMachineAuthPayload {
|
|
8
|
+
@IsUUID()
|
|
9
|
+
cloudUserId: string;
|
|
10
|
+
|
|
11
|
+
@IsUUID()
|
|
12
|
+
authTokenId: string;
|
|
13
|
+
|
|
14
|
+
@IsUUID()
|
|
15
|
+
resourceId: string;
|
|
16
|
+
|
|
17
|
+
@ValidateNestedType(() => V3.Contexts.CloudResourceContext)
|
|
18
|
+
context: V3.Contexts.CloudResourceContext;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class PrepareCloudMachineAuth extends LudeoEvent {
|
|
22
|
+
static readonly EVENT_NAME = "cloud-pools.prepare-cloud-machine-auth";
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
payload: PrepareCloudMachineAuthPayload,
|
|
26
|
+
context: CloudResourceContext,
|
|
27
|
+
) {
|
|
28
|
+
super(PrepareCloudMachineAuth.EVENT_NAME);
|
|
29
|
+
this.payload = payload;
|
|
30
|
+
this.context = context;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@ValidateNestedType(() => PrepareCloudMachineAuthPayload)
|
|
34
|
+
payload: PrepareCloudMachineAuthPayload;
|
|
35
|
+
|
|
36
|
+
@ValidateNestedType(() => CloudResourceContext)
|
|
37
|
+
context: CloudResourceContext;
|
|
38
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IsBoolean, IsNumber, IsString } from "class-validator";
|
|
2
|
+
|
|
3
|
+
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
4
|
+
import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
|
|
5
|
+
|
|
6
|
+
export class TokenRequiredConnectionDetails {
|
|
7
|
+
@IsString()
|
|
8
|
+
resourceId: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class TokenRequiredEventData {
|
|
12
|
+
@IsString()
|
|
13
|
+
defaultUser: string;
|
|
14
|
+
|
|
15
|
+
@IsString()
|
|
16
|
+
authSource: string;
|
|
17
|
+
|
|
18
|
+
@ValidateNestedType(() => TokenRequiredConnectionDetails)
|
|
19
|
+
connectionDetails: TokenRequiredConnectionDetails;
|
|
20
|
+
|
|
21
|
+
@IsString()
|
|
22
|
+
authToken: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class TokenRequiredEventPayload {
|
|
26
|
+
@IsString()
|
|
27
|
+
id: string;
|
|
28
|
+
|
|
29
|
+
@IsString()
|
|
30
|
+
type: string;
|
|
31
|
+
|
|
32
|
+
@IsString()
|
|
33
|
+
userId: string;
|
|
34
|
+
|
|
35
|
+
@IsNumber()
|
|
36
|
+
expireAt: number;
|
|
37
|
+
|
|
38
|
+
@IsNumber()
|
|
39
|
+
quota: number;
|
|
40
|
+
|
|
41
|
+
@IsBoolean()
|
|
42
|
+
isUnique: boolean;
|
|
43
|
+
|
|
44
|
+
@ValidateNestedType(() => TokenRequiredEventData)
|
|
45
|
+
data: TokenRequiredEventData;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class TokenRequired extends LudeoEvent {
|
|
49
|
+
static readonly EVENT_NAME = "tokens.token-required";
|
|
50
|
+
|
|
51
|
+
@ValidateNestedType(() => TokenRequiredEventPayload)
|
|
52
|
+
payload: TokenRequiredEventPayload;
|
|
53
|
+
|
|
54
|
+
context?: never;
|
|
55
|
+
|
|
56
|
+
constructor(payload: TokenRequiredEventPayload, context?: never) {
|
|
57
|
+
super(TokenRequired.EVENT_NAME);
|
|
58
|
+
this.payload = payload;
|
|
59
|
+
this.context = context;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CloudResourceContext } from "../contexts";
|
|
2
|
-
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
3
|
-
import { CloudProviderAllocationData } from "../types";
|
|
4
|
-
export declare class GameAllocatedResponsePayload {
|
|
5
|
-
gameResourceId: string;
|
|
6
|
-
gamePoolId: string;
|
|
7
|
-
allocationData: CloudProviderAllocationData;
|
|
8
|
-
}
|
|
9
|
-
export declare class GameAllocatedResponse extends LudeoEvent {
|
|
10
|
-
static readonly EVENT_NAME = "cloud-resources.game-allocated-response";
|
|
11
|
-
constructor(payload: GameAllocatedResponsePayload, context: CloudResourceContext);
|
|
12
|
-
context: CloudResourceContext;
|
|
13
|
-
payload: GameAllocatedResponsePayload;
|
|
14
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
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.GameAllocatedResponse = exports.GameAllocatedResponsePayload = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
const contexts_1 = require("../contexts");
|
|
15
|
-
const ludeo_event_1 = require("../../infra/ludeo-event");
|
|
16
|
-
const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
|
|
17
|
-
const types_1 = require("../types");
|
|
18
|
-
class GameAllocatedResponsePayload {
|
|
19
|
-
}
|
|
20
|
-
exports.GameAllocatedResponsePayload = GameAllocatedResponsePayload;
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, class_validator_1.IsUUID)(),
|
|
23
|
-
__metadata("design:type", String)
|
|
24
|
-
], GameAllocatedResponsePayload.prototype, "gameResourceId", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, class_validator_1.IsUUID)(),
|
|
27
|
-
__metadata("design:type", String)
|
|
28
|
-
], GameAllocatedResponsePayload.prototype, "gamePoolId", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => types_1.AwsAllocationData),
|
|
31
|
-
__metadata("design:type", Object)
|
|
32
|
-
], GameAllocatedResponsePayload.prototype, "allocationData", void 0);
|
|
33
|
-
class GameAllocatedResponse extends ludeo_event_1.LudeoEvent {
|
|
34
|
-
constructor(payload, context) {
|
|
35
|
-
super(GameAllocatedResponse.EVENT_NAME);
|
|
36
|
-
this.payload = payload;
|
|
37
|
-
this.context = context;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.GameAllocatedResponse = GameAllocatedResponse;
|
|
41
|
-
GameAllocatedResponse.EVENT_NAME = "cloud-resources.game-allocated-response";
|
|
42
|
-
__decorate([
|
|
43
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => contexts_1.CloudResourceContext),
|
|
44
|
-
__metadata("design:type", contexts_1.CloudResourceContext)
|
|
45
|
-
], GameAllocatedResponse.prototype, "context", void 0);
|
|
46
|
-
__decorate([
|
|
47
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => GameAllocatedResponsePayload),
|
|
48
|
-
__metadata("design:type", GameAllocatedResponsePayload)
|
|
49
|
-
], GameAllocatedResponse.prototype, "payload", void 0);
|
|
50
|
-
//# sourceMappingURL=game-allocated-response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game-allocated-response.js","sourceRoot":"","sources":["../../../src/v3/events/game-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AACrF,oCAA0E;AAE1E,MAAa,4BAA4B;CASxC;AATD,oEASC;AAPC;IADC,IAAA,wBAAM,GAAE;;oEACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;gEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;oEACA;AAG9C,MAAa,qBAAsB,SAAQ,wBAAU;IAGnD,YACE,OAAqC,EACrC,OAA6B;QAE7B,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,sDAiBC;AAhBiB,gCAAU,GAAG,yCAAyC,CAAC;AAYvE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;sDAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC;8BAC9C,4BAA4B;sDAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CloudResourceContext } from "../contexts";
|
|
2
|
-
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
3
|
-
import { CloudProviderSettings, CloudProvider } from "../types";
|
|
4
|
-
export declare class GameCreatedResponsePayload {
|
|
5
|
-
gameResourceId: string;
|
|
6
|
-
gamePoolId: string;
|
|
7
|
-
providerSettings: CloudProviderSettings;
|
|
8
|
-
cloudProvider: CloudProvider;
|
|
9
|
-
}
|
|
10
|
-
export declare class GameCreatedResponse extends LudeoEvent {
|
|
11
|
-
static readonly EVENT_NAME = "cloud-resources.game-created-response";
|
|
12
|
-
constructor(payload: GameCreatedResponsePayload, context: CloudResourceContext);
|
|
13
|
-
context: CloudResourceContext;
|
|
14
|
-
payload: GameCreatedResponsePayload;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game-created-response.js","sourceRoot":"","sources":["../../../src/v3/events/game-created-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAiD;AAEjD,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AACrF,oCAIkB;AAElB,MAAa,0BAA0B;CAYtC;AAZD,gEAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;kEACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;8DACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,2BAAmB,CAAC;;oEACN;AAGxC;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;iEACO;AAG/B,MAAa,mBAAoB,SAAQ,wBAAU;IAGjD,YACE,OAAmC,EACnC,OAA6B;QAE7B,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,kDAiBC;AAhBiB,8BAAU,GAAG,uCAAuC,CAAC;AAYrE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;oDAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC;8BAC5C,0BAA0B;oDAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { CloudResourceContext } from "../contexts";
|
|
2
|
-
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
3
|
-
export declare class GameTerminatedResponsePayload {
|
|
4
|
-
gameResourceId: string;
|
|
5
|
-
gamePoolId: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class GameTerminatedResponse extends LudeoEvent {
|
|
8
|
-
static readonly EVENT_NAME = "cloud-resources.game-terminated-response";
|
|
9
|
-
constructor(payload: GameTerminatedResponsePayload, context: CloudResourceContext);
|
|
10
|
-
context: CloudResourceContext;
|
|
11
|
-
payload: GameTerminatedResponsePayload;
|
|
12
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
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.GameTerminatedResponse = exports.GameTerminatedResponsePayload = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
const contexts_1 = require("../contexts");
|
|
15
|
-
const ludeo_event_1 = require("../../infra/ludeo-event");
|
|
16
|
-
const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
|
|
17
|
-
class GameTerminatedResponsePayload {
|
|
18
|
-
}
|
|
19
|
-
exports.GameTerminatedResponsePayload = GameTerminatedResponsePayload;
|
|
20
|
-
__decorate([
|
|
21
|
-
(0, class_validator_1.IsUUID)(),
|
|
22
|
-
__metadata("design:type", String)
|
|
23
|
-
], GameTerminatedResponsePayload.prototype, "gameResourceId", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
(0, class_validator_1.IsUUID)(),
|
|
26
|
-
__metadata("design:type", String)
|
|
27
|
-
], GameTerminatedResponsePayload.prototype, "gamePoolId", void 0);
|
|
28
|
-
class GameTerminatedResponse extends ludeo_event_1.LudeoEvent {
|
|
29
|
-
constructor(payload, context) {
|
|
30
|
-
super(GameTerminatedResponse.EVENT_NAME);
|
|
31
|
-
this.payload = payload;
|
|
32
|
-
this.context = context;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.GameTerminatedResponse = GameTerminatedResponse;
|
|
36
|
-
GameTerminatedResponse.EVENT_NAME = "cloud-resources.game-terminated-response";
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => contexts_1.CloudResourceContext),
|
|
39
|
-
__metadata("design:type", contexts_1.CloudResourceContext)
|
|
40
|
-
], GameTerminatedResponse.prototype, "context", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => GameTerminatedResponsePayload),
|
|
43
|
-
__metadata("design:type", GameTerminatedResponsePayload)
|
|
44
|
-
], GameTerminatedResponse.prototype, "payload", void 0);
|
|
45
|
-
//# sourceMappingURL=game-terminated-response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game-terminated-response.js","sourceRoot":"","sources":["../../../src/v3/events/game-terminated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AAErF,MAAa,6BAA6B;CAMzC;AAND,sEAMC;AAJC;IADC,IAAA,wBAAM,GAAE;;qEACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;iEACU;AAGrB,MAAa,sBAAuB,SAAQ,wBAAU;IAGpD,YACE,OAAsC,EACtC,OAA6B;QAE7B,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,wDAiBC;AAhBiB,iCAAU,GAAG,0CAA0C,CAAC;AAYxE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;uDAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;8BAC/C,6BAA6B;uDAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { CloudResourceContext } from "../contexts";
|
|
2
|
-
import { LudeoEvent } from "../../infra/ludeo-event";
|
|
3
|
-
export declare class MachineCreatedResponsePayload {
|
|
4
|
-
machineResourceId: string;
|
|
5
|
-
machinePoolId: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class MachineCreatedResponse extends LudeoEvent {
|
|
8
|
-
static readonly EVENT_NAME = "cloud-resources.machine-created-response";
|
|
9
|
-
constructor(payload: MachineCreatedResponsePayload, context: CloudResourceContext);
|
|
10
|
-
context: CloudResourceContext;
|
|
11
|
-
payload: MachineCreatedResponsePayload;
|
|
12
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
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.MachineCreatedResponse = exports.MachineCreatedResponsePayload = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
const contexts_1 = require("../contexts");
|
|
15
|
-
const ludeo_event_1 = require("../../infra/ludeo-event");
|
|
16
|
-
const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
|
|
17
|
-
class MachineCreatedResponsePayload {
|
|
18
|
-
}
|
|
19
|
-
exports.MachineCreatedResponsePayload = MachineCreatedResponsePayload;
|
|
20
|
-
__decorate([
|
|
21
|
-
(0, class_validator_1.IsUUID)(),
|
|
22
|
-
__metadata("design:type", String)
|
|
23
|
-
], MachineCreatedResponsePayload.prototype, "machineResourceId", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
(0, class_validator_1.IsUUID)(),
|
|
26
|
-
__metadata("design:type", String)
|
|
27
|
-
], MachineCreatedResponsePayload.prototype, "machinePoolId", void 0);
|
|
28
|
-
class MachineCreatedResponse extends ludeo_event_1.LudeoEvent {
|
|
29
|
-
constructor(payload, context) {
|
|
30
|
-
super(MachineCreatedResponse.EVENT_NAME);
|
|
31
|
-
this.payload = payload;
|
|
32
|
-
this.context = context;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.MachineCreatedResponse = MachineCreatedResponse;
|
|
36
|
-
MachineCreatedResponse.EVENT_NAME = "cloud-resources.machine-created-response";
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => contexts_1.CloudResourceContext),
|
|
39
|
-
__metadata("design:type", contexts_1.CloudResourceContext)
|
|
40
|
-
], MachineCreatedResponse.prototype, "context", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => MachineCreatedResponsePayload),
|
|
43
|
-
__metadata("design:type", MachineCreatedResponsePayload)
|
|
44
|
-
], MachineCreatedResponse.prototype, "payload", void 0);
|
|
45
|
-
//# sourceMappingURL=machine-created-response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"machine-created-response.js","sourceRoot":"","sources":["../../../src/v3/events/machine-created-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AAErF,MAAa,6BAA6B;CAMzC;AAND,sEAMC;AAJC;IADC,IAAA,wBAAM,GAAE;;wEACiB;AAG1B;IADC,IAAA,wBAAM,GAAE;;oEACa;AAGxB,MAAa,sBAAuB,SAAQ,wBAAU;IAGpD,YACE,OAAsC,EACtC,OAA6B;QAE7B,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,wDAiBC;AAhBiB,iCAAU,GAAG,0CAA0C,CAAC;AAYxE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;uDAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;8BAC/C,6BAA6B;uDAAC"}
|