@ludeo/cloud-common 1.2.256 → 1.2.257-beta-yahil-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.
@@ -11,6 +11,7 @@ export declare class CreateGameResourceRequestPayload<T extends CloudProviderSet
11
11
  machineResourceSettings?: MachineResourceProviderSettings;
12
12
  buildId?: string;
13
13
  gameId?: string;
14
+ gameVersionId?: string;
14
15
  }
15
16
  export declare class CreateGameResourceRequest extends LudeoEvent {
16
17
  static readonly EVENT_NAME = "cloud-pools.create-game-resource-request";
@@ -57,6 +57,11 @@ __decorate([
57
57
  (0, class_validator_1.IsString)(),
58
58
  __metadata("design:type", String)
59
59
  ], CreateGameResourceRequestPayload.prototype, "gameId", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsOptional)(),
62
+ (0, class_validator_1.IsString)(),
63
+ __metadata("design:type", String)
64
+ ], CreateGameResourceRequestPayload.prototype, "gameVersionId", void 0);
60
65
  class CreateGameResourceRequest extends ludeo_event_1.LudeoEvent {
61
66
  constructor(payload, context) {
62
67
  super(CreateGameResourceRequest.EVENT_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"create-game-resource-request.js","sourceRoot":"","sources":["../../../src/v4/events/create-game-resource-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AAEvE,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AACrF,oCAKkB;AAElB,MAAa,gCAAgC;CAgC5C;AAhCD,4EAgCC;AA5BC;IADC,IAAA,wBAAM,GAAE;;wEACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;oEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,+BAAuB,CAAC;;0EACxB;AAGpB;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;uEACO;AAG7B;IADC,IAAA,wBAAM,GAAE;;oEACU;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kEACS;AAGlB;IADC,IAAA,4BAAU,GAAE;;iFAC6C;AAI1D;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iEACM;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gEACK;AAGlB,MAAa,yBAA0B,SAAQ,wBAAU;IAGvD,YACE,OAAyC,EACzC,OAA6B;QAE7B,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,8DAiBC;AAhBiB,oCAAU,GAAG,0CAA0C,CAAC;AAYxE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;0DAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,gCAAgC,CAAC;8BAClD,gCAAgC;0DAAC"}
1
+ {"version":3,"file":"create-game-resource-request.js","sourceRoot":"","sources":["../../../src/v4/events/create-game-resource-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AAEvE,0CAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AACrF,oCAKkB;AAElB,MAAa,gCAAgC;CAoC5C;AApCD,4EAoCC;AAhCC;IADC,IAAA,wBAAM,GAAE;;wEACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;oEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,+BAAuB,CAAC;;0EACxB;AAGpB;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;uEACO;AAG7B;IADC,IAAA,wBAAM,GAAE;;oEACU;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kEACS;AAGlB;IADC,IAAA,4BAAU,GAAE;;iFAC6C;AAI1D;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iEACM;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gEACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uEACY;AAGzB,MAAa,yBAA0B,SAAQ,wBAAU;IAGvD,YACE,OAAyC,EACzC,OAA6B;QAE7B,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,8DAiBC;AAhBiB,oCAAU,GAAG,0CAA0C,CAAC;AAYxE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,+BAAoB,CAAC;8BACtC,+BAAoB;0DAAC;AAG9B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,gCAAgC,CAAC;8BAClD,gCAAgC;0DAAC"}
@@ -146,6 +146,7 @@ export declare enum StreamGroupStatus {
146
146
  export declare class BuildVersionMeta {
147
147
  buildId: string;
148
148
  buildVersion: string;
149
+ gameVersionId?: string;
149
150
  }
150
151
  export declare class RolloutConfig {
151
152
  value?: number;
@@ -172,6 +172,11 @@ __decorate([
172
172
  (0, class_validator_1.IsString)(),
173
173
  __metadata("design:type", String)
174
174
  ], BuildVersionMeta.prototype, "buildVersion", void 0);
175
+ __decorate([
176
+ (0, class_validator_1.IsOptional)(),
177
+ (0, class_validator_1.IsString)(),
178
+ __metadata("design:type", String)
179
+ ], BuildVersionMeta.prototype, "gameVersionId", void 0);
175
180
  class RolloutConfig {
176
181
  }
177
182
  exports.RolloutConfig = RolloutConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/v4/types/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/v4/types/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { LudeoCastV2MachineClass } from "./machine-class";
2
+ export declare enum LudeocastGpuType {
3
+ AMPERE = "ampere",
4
+ BOHR = "bohr",
5
+ T4 = "T4",
6
+ L4 = "L4",
7
+ A10G = "A10G",
8
+ L40S = "L40S",
9
+ RTXPRO6000 = "RTXPRO6000"
10
+ }
11
+ export declare const SPOT_SUFFIX = "-spot";
12
+ export declare const isSpotMachineClass: (machineClass: string) => boolean;
13
+ export declare const stripSpotSuffix: (value: string) => string;
14
+ export declare const MACHINE_CLASS_TO_GPU_TYPE: Record<LudeoCastV2MachineClass, LudeocastGpuType>;
15
+ export declare function getGpuTypeByMachineClass(machineClass: string | LudeoCastV2MachineClass): LudeocastGpuType;
16
+ export declare function tryResolveGpuTypeByMachineClass(machineClass: string | undefined): LudeocastGpuType | undefined;
17
+ export { LudeocastGpuType as LudeocastShaderType };
18
+ export declare const MACHINE_CLASS_TO_SHADER_TYPE: Record<LudeoCastV2MachineClass, LudeocastGpuType>;
19
+ export declare const getShaderTypeByMachineClass: typeof getGpuTypeByMachineClass;
20
+ export declare const tryResolveShaderTypeByMachineClass: typeof tryResolveGpuTypeByMachineClass;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryResolveShaderTypeByMachineClass = exports.getShaderTypeByMachineClass = exports.MACHINE_CLASS_TO_SHADER_TYPE = exports.LudeocastShaderType = exports.MACHINE_CLASS_TO_GPU_TYPE = exports.stripSpotSuffix = exports.isSpotMachineClass = exports.SPOT_SUFFIX = exports.LudeocastGpuType = void 0;
4
+ exports.getGpuTypeByMachineClass = getGpuTypeByMachineClass;
5
+ exports.tryResolveGpuTypeByMachineClass = tryResolveGpuTypeByMachineClass;
6
+ const machine_class_1 = require("./machine-class");
7
+ var LudeocastGpuType;
8
+ (function (LudeocastGpuType) {
9
+ LudeocastGpuType["AMPERE"] = "ampere";
10
+ LudeocastGpuType["BOHR"] = "bohr";
11
+ LudeocastGpuType["T4"] = "T4";
12
+ LudeocastGpuType["L4"] = "L4";
13
+ LudeocastGpuType["A10G"] = "A10G";
14
+ LudeocastGpuType["L40S"] = "L40S";
15
+ LudeocastGpuType["RTXPRO6000"] = "RTXPRO6000";
16
+ })(LudeocastGpuType || (exports.LudeocastShaderType = exports.LudeocastGpuType = LudeocastGpuType = {}));
17
+ exports.SPOT_SUFFIX = "-spot";
18
+ const isSpotMachineClass = (machineClass) => machineClass.endsWith(exports.SPOT_SUFFIX);
19
+ exports.isSpotMachineClass = isSpotMachineClass;
20
+ const stripSpotSuffix = (value) => ((0, exports.isSpotMachineClass)(value) ? value.slice(0, -exports.SPOT_SUFFIX.length) : value);
21
+ exports.stripSpotSuffix = stripSpotSuffix;
22
+ exports.MACHINE_CLASS_TO_GPU_TYPE = {
23
+ [machine_class_1.LudeoCastV2MachineClass.N1_STANDARD_8]: LudeocastGpuType.T4,
24
+ [machine_class_1.LudeoCastV2MachineClass.N1_STANDARD_16]: LudeocastGpuType.T4,
25
+ [machine_class_1.LudeoCastV2MachineClass.G4DN_2XLARGE]: LudeocastGpuType.T4,
26
+ [machine_class_1.LudeoCastV2MachineClass.G4DN_4XLARGE]: LudeocastGpuType.T4,
27
+ [machine_class_1.LudeoCastV2MachineClass.G5_2XLARGE]: LudeocastGpuType.A10G,
28
+ [machine_class_1.LudeoCastV2MachineClass.G5_4XLARGE]: LudeocastGpuType.A10G,
29
+ [machine_class_1.LudeoCastV2MachineClass.G2_STANDARD_16]: LudeocastGpuType.L4,
30
+ [machine_class_1.LudeoCastV2MachineClass.G6_2XLARGE]: LudeocastGpuType.L4,
31
+ [machine_class_1.LudeoCastV2MachineClass.G6_4XLARGE]: LudeocastGpuType.L4,
32
+ [machine_class_1.LudeoCastV2MachineClass.G6E_2XLARGE]: LudeocastGpuType.L40S,
33
+ [machine_class_1.LudeoCastV2MachineClass.G6E_4XLARGE]: LudeocastGpuType.L40S,
34
+ [machine_class_1.LudeoCastV2MachineClass.G7E_2XLARGE]: LudeocastGpuType.RTXPRO6000,
35
+ [machine_class_1.LudeoCastV2MachineClass.G7E_4XLARGE]: LudeocastGpuType.RTXPRO6000,
36
+ [machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_48]: LudeocastGpuType.RTXPRO6000,
37
+ [machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_24]: LudeocastGpuType.RTXPRO6000,
38
+ [machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_12]: LudeocastGpuType.RTXPRO6000,
39
+ [machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_6]: LudeocastGpuType.RTXPRO6000,
40
+ };
41
+ function getGpuTypeByMachineClass(machineClass) {
42
+ const baseMachineClass = (0, exports.stripSpotSuffix)(machineClass);
43
+ const gpuType = exports.MACHINE_CLASS_TO_GPU_TYPE[baseMachineClass];
44
+ if (!gpuType)
45
+ throw new Error(`No GPU type mapping for machine class: ${machineClass}`);
46
+ return gpuType;
47
+ }
48
+ function tryResolveGpuTypeByMachineClass(machineClass) {
49
+ if (!machineClass?.trim())
50
+ return undefined;
51
+ const base = (0, exports.stripSpotSuffix)(machineClass.trim());
52
+ return exports.MACHINE_CLASS_TO_GPU_TYPE[base];
53
+ }
54
+ exports.MACHINE_CLASS_TO_SHADER_TYPE = exports.MACHINE_CLASS_TO_GPU_TYPE;
55
+ exports.getShaderTypeByMachineClass = getGpuTypeByMachineClass;
56
+ exports.tryResolveShaderTypeByMachineClass = tryResolveGpuTypeByMachineClass;
57
+ //# sourceMappingURL=gpu-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpu-type.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/gpu-type.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,4 @@ export * from "./game-creation-response";
5
5
  export * from "./allocation-data";
6
6
  export * from "./machine-provider-settings";
7
7
  export * from "./machine-class";
8
+ export * from "./gpu-type";
@@ -21,4 +21,5 @@ __exportStar(require("./game-creation-response"), exports);
21
21
  __exportStar(require("./allocation-data"), exports);
22
22
  __exportStar(require("./machine-provider-settings"), exports);
23
23
  __exportStar(require("./machine-class"), exports);
24
+ __exportStar(require("./gpu-type"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,sDAAoC;AACpC,iDAA+B;AAC/B,2DAAyC;AACzC,oDAAkC;AAClC,8DAA4C;AAC5C,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,sDAAoC;AACpC,iDAA+B;AAC/B,2DAAyC;AACzC,oDAAkC;AAClC,8DAA4C;AAC5C,kDAAgC;AAChC,6CAA2B"}
@@ -6,11 +6,17 @@ export declare enum MachineMode {
6
6
  ANDROID = "android",
7
7
  PROTON_V2 = "proton-v2"
8
8
  }
9
+ export declare class RuntimeArtifactsPayload {
10
+ latestVersion: string;
11
+ downloadUrl: string;
12
+ }
9
13
  export declare class ProtonGameCreationPayload {
10
14
  exeRelativePath: string;
11
15
  additionalEnvironmentVariables?: Record<string, string>;
12
16
  additionalLaunchArgs?: string[];
13
17
  buildId: string;
18
+ gameVersionId?: string;
19
+ runtimeArtifacts?: RuntimeArtifactsPayload;
14
20
  }
15
21
  export declare class AndroidGameCreationPayload {
16
22
  packageId: string;
@@ -9,14 +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.TerminationType = exports.SiteAdapterFlow = exports.AgentRunMode = exports.GameStatusReason = exports.MachineStatusReason = exports.SiteOperationStatus = exports.AndroidGameCreationPayload = exports.ProtonGameCreationPayload = exports.MachineMode = void 0;
12
+ exports.TerminationType = exports.SiteAdapterFlow = exports.AgentRunMode = exports.GameStatusReason = exports.MachineStatusReason = exports.SiteOperationStatus = exports.AndroidGameCreationPayload = exports.ProtonGameCreationPayload = exports.RuntimeArtifactsPayload = exports.MachineMode = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
+ const decorators_1 = require("../../../decorators");
14
15
  var MachineMode;
15
16
  (function (MachineMode) {
16
17
  MachineMode["PROTON"] = "proton";
17
18
  MachineMode["ANDROID"] = "android";
18
19
  MachineMode["PROTON_V2"] = "proton-v2";
19
20
  })(MachineMode || (exports.MachineMode = MachineMode = {}));
21
+ class RuntimeArtifactsPayload {
22
+ }
23
+ exports.RuntimeArtifactsPayload = RuntimeArtifactsPayload;
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ __metadata("design:type", String)
27
+ ], RuntimeArtifactsPayload.prototype, "latestVersion", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsString)(),
30
+ __metadata("design:type", String)
31
+ ], RuntimeArtifactsPayload.prototype, "downloadUrl", void 0);
20
32
  class ProtonGameCreationPayload {
21
33
  }
22
34
  exports.ProtonGameCreationPayload = ProtonGameCreationPayload;
@@ -35,9 +47,19 @@ __decorate([
35
47
  __metadata("design:type", Array)
36
48
  ], ProtonGameCreationPayload.prototype, "additionalLaunchArgs", void 0);
37
49
  __decorate([
38
- (0, class_validator_1.IsString)(),
50
+ (0, class_validator_1.IsUUID)(),
39
51
  __metadata("design:type", String)
40
52
  ], ProtonGameCreationPayload.prototype, "buildId", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsOptional)(),
55
+ (0, class_validator_1.IsString)(),
56
+ __metadata("design:type", String)
57
+ ], ProtonGameCreationPayload.prototype, "gameVersionId", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsOptional)(),
60
+ (0, decorators_1.ValidateNestedType)(() => RuntimeArtifactsPayload),
61
+ __metadata("design:type", RuntimeArtifactsPayload)
62
+ ], ProtonGameCreationPayload.prototype, "runtimeArtifacts", void 0);
41
63
  class AndroidGameCreationPayload {
42
64
  }
43
65
  exports.AndroidGameCreationPayload = AndroidGameCreationPayload;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/types.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0E;AAK1E,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AACzB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,MAAa,yBAAyB;CAcrC;AAdD,8DAcC;AAZC;IADC,IAAA,0BAAQ,GAAE;;kEACa;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iFAC6C;AAIxD;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;uEACsB;AAGhC;IADC,IAAA,0BAAQ,GAAE;;0DACK;AAGlB,MAAa,0BAA0B;CAOtC;AAPD,gEAOC;AALC;IADC,IAAA,0BAAQ,GAAE;;6DACO;AAIlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kFAC6C;AAO1D,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sCAAe,CAAA;AACjB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAED,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sEAA+C,CAAA;IAC/C,oEAA6C,CAAA;IAC7C,oDAA6B,CAAA;IAC7B,0DAAmC,CAAA;IACnC,8CAAuB,CAAA;AACzB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,qDAAiC,CAAA;IACjC,iDAA6B,CAAA;IAC7B,2CAAuB,CAAA;AACzB,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,6CAA6B,CAAA;AAC/B,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,8CAA2B,CAAA;IAC3B,gCAAa,CAAA;AACf,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;AACjC,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/types.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkF;AAIlF,oDAAyD;AAEzD,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AACzB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAGD,MAAa,uBAAuB;CAOnC;AAPD,0DAOC;AALC;IADC,IAAA,0BAAQ,GAAE;;8DACW;AAItB;IADC,IAAA,0BAAQ,GAAE;;4DACS;AAGtB,MAAa,yBAAyB;CAsBrC;AAtBD,8DAsBC;AApBC;IADC,IAAA,0BAAQ,GAAE;;kEACa;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iFAC6C;AAIxD;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;uEACsB;AAGhC;IADC,IAAA,wBAAM,GAAE;;0DACO;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gEACY;AAIvB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;8BAC/B,uBAAuB;mEAAC;AAG7C,MAAa,0BAA0B;CAOtC;AAPD,gEAOC;AALC;IADC,IAAA,0BAAQ,GAAE;;6DACO;AAIlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kFAC6C;AAO1D,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sCAAe,CAAA;AACjB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAED,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sEAA+C,CAAA;IAC/C,oEAA6C,CAAA;IAC7C,oDAA6B,CAAA;IAC7B,0DAAmC,CAAA;IACnC,8CAAuB,CAAA;AACzB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,qDAAiC,CAAA;IACjC,iDAA6B,CAAA;IAC7B,2CAAuB,CAAA;AACzB,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,6CAA6B,CAAA;AAC/B,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,8CAA2B,CAAA;IAC3B,gCAAa,CAAA;AACf,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;AACjC,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cloud-common",
3
- "version": "1.2.256",
3
+ "version": "1.2.257-beta-yahil-2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Yahil Didi",
@@ -42,6 +42,10 @@ export class CreateGameResourceRequestPayload<
42
42
  @IsOptional()
43
43
  @IsString()
44
44
  gameId?: string;
45
+
46
+ @IsOptional()
47
+ @IsString()
48
+ gameVersionId?: string;
45
49
  }
46
50
 
47
51
  export class CreateGameResourceRequest extends LudeoEvent {
@@ -204,6 +204,10 @@ export class BuildVersionMeta {
204
204
 
205
205
  @IsString()
206
206
  buildVersion: string;
207
+
208
+ @IsOptional()
209
+ @IsString()
210
+ gameVersionId?: string;
207
211
  }
208
212
 
209
213
  export class RolloutConfig {
@@ -0,0 +1,69 @@
1
+ import { LudeoCastV2MachineClass } from "./machine-class";
2
+
3
+ export enum LudeocastGpuType {
4
+ AMPERE = "ampere",
5
+ BOHR = "bohr",
6
+ T4 = "T4",
7
+ L4 = "L4",
8
+ A10G = "A10G",
9
+ L40S = "L40S",
10
+ RTXPRO6000 = "RTXPRO6000",
11
+ }
12
+
13
+ export const SPOT_SUFFIX = "-spot";
14
+
15
+ export const isSpotMachineClass = (machineClass: string): boolean => machineClass.endsWith(SPOT_SUFFIX);
16
+
17
+ export const stripSpotSuffix = (value: string): string => (isSpotMachineClass(value) ? value.slice(0, -SPOT_SUFFIX.length) : value);
18
+
19
+ /** Canonical machine-class → gpu-type map (ludeocast pool agent / site-controller Redis & S3). */
20
+ export const MACHINE_CLASS_TO_GPU_TYPE: Record<LudeoCastV2MachineClass, LudeocastGpuType> = {
21
+ // NVIDIA T4 (Turing)
22
+ [LudeoCastV2MachineClass.N1_STANDARD_8]: LudeocastGpuType.T4,
23
+ [LudeoCastV2MachineClass.N1_STANDARD_16]: LudeocastGpuType.T4,
24
+ [LudeoCastV2MachineClass.G4DN_2XLARGE]: LudeocastGpuType.T4,
25
+ [LudeoCastV2MachineClass.G4DN_4XLARGE]: LudeocastGpuType.T4,
26
+ // NVIDIA A10G (Ampere)
27
+ [LudeoCastV2MachineClass.G5_2XLARGE]: LudeocastGpuType.A10G,
28
+ [LudeoCastV2MachineClass.G5_4XLARGE]: LudeocastGpuType.A10G,
29
+ // NVIDIA L4 (Ada Lovelace)
30
+ [LudeoCastV2MachineClass.G2_STANDARD_16]: LudeocastGpuType.L4,
31
+ [LudeoCastV2MachineClass.G6_2XLARGE]: LudeocastGpuType.L4,
32
+ [LudeoCastV2MachineClass.G6_4XLARGE]: LudeocastGpuType.L4,
33
+ // NVIDIA L40S (Ada Lovelace)
34
+ [LudeoCastV2MachineClass.G6E_2XLARGE]: LudeocastGpuType.L40S,
35
+ [LudeoCastV2MachineClass.G6E_4XLARGE]: LudeocastGpuType.L40S,
36
+ // NVIDIA RTX PRO 6000 Blackwell Server Edition
37
+ [LudeoCastV2MachineClass.G7E_2XLARGE]: LudeocastGpuType.RTXPRO6000,
38
+ [LudeoCastV2MachineClass.G7E_4XLARGE]: LudeocastGpuType.RTXPRO6000,
39
+ [LudeoCastV2MachineClass.G4_STANDARD_48]: LudeocastGpuType.RTXPRO6000,
40
+ [LudeoCastV2MachineClass.G4_STANDARD_24]: LudeocastGpuType.RTXPRO6000,
41
+ [LudeoCastV2MachineClass.G4_STANDARD_12]: LudeocastGpuType.RTXPRO6000,
42
+ [LudeoCastV2MachineClass.G4_STANDARD_6]: LudeocastGpuType.RTXPRO6000,
43
+ };
44
+
45
+ export function getGpuTypeByMachineClass(machineClass: string | LudeoCastV2MachineClass): LudeocastGpuType {
46
+ const baseMachineClass = stripSpotSuffix(machineClass as string) as LudeoCastV2MachineClass;
47
+ const gpuType = MACHINE_CLASS_TO_GPU_TYPE[baseMachineClass];
48
+ if (!gpuType) throw new Error(`No GPU type mapping for machine class: ${machineClass}`);
49
+ return gpuType;
50
+ }
51
+
52
+ /** For callers using raw pool `machineClass` strings (e.g. site-controller Redis / S3 path segments). */
53
+ export function tryResolveGpuTypeByMachineClass(machineClass: string | undefined): LudeocastGpuType | undefined {
54
+ if (!machineClass?.trim()) return undefined;
55
+ const base = stripSpotSuffix(machineClass.trim()) as LudeoCastV2MachineClass;
56
+ return MACHINE_CLASS_TO_GPU_TYPE[base];
57
+ }
58
+
59
+ /** @deprecated Use {@link LudeocastGpuType} */
60
+ export { LudeocastGpuType as LudeocastShaderType };
61
+
62
+ /** @deprecated Use {@link MACHINE_CLASS_TO_GPU_TYPE} */
63
+ export const MACHINE_CLASS_TO_SHADER_TYPE = MACHINE_CLASS_TO_GPU_TYPE;
64
+
65
+ /** @deprecated Use {@link getGpuTypeByMachineClass} */
66
+ export const getShaderTypeByMachineClass = getGpuTypeByMachineClass;
67
+
68
+ /** @deprecated Use {@link tryResolveGpuTypeByMachineClass} */
69
+ export const tryResolveShaderTypeByMachineClass = tryResolveGpuTypeByMachineClass;
@@ -5,3 +5,4 @@ export * from "./game-creation-response";
5
5
  export * from "./allocation-data";
6
6
  export * from "./machine-provider-settings";
7
7
  export * from "./machine-class";
8
+ export * from "./gpu-type";
@@ -1,7 +1,8 @@
1
- import { IsString, IsOptional, IsObject, IsArray } from "class-validator";
1
+ import { IsString, IsOptional, IsObject, IsArray, IsUUID } from "class-validator";
2
2
  import { LudeocastV2Distributions } from "../build";
3
3
  import { MachineResourceSettings } from "../pools";
4
4
  import { LudeoCastV2MachineResourceProviderSettings } from "../cloud";
5
+ import { ValidateNestedType } from "../../../decorators";
5
6
 
6
7
  export enum MachineMode {
7
8
  PROTON = "proton",
@@ -9,6 +10,16 @@ export enum MachineMode {
9
10
  PROTON_V2 = "proton-v2",
10
11
  }
11
12
 
13
+ /** Shader / runtime artifact bundle (site-controller may fill when ENABLE_RUNTIME_ARTIFACTS is true). */
14
+ export class RuntimeArtifactsPayload {
15
+ @IsString()
16
+ latestVersion: string;
17
+
18
+ /** Presigned GET URL for the `.tar.gz` artifact tree. */
19
+ @IsString()
20
+ downloadUrl: string;
21
+ }
22
+
12
23
  export class ProtonGameCreationPayload {
13
24
  @IsString()
14
25
  exeRelativePath: string;
@@ -21,8 +32,16 @@ export class ProtonGameCreationPayload {
21
32
  @IsArray()
22
33
  additionalLaunchArgs?: string[];
23
34
 
24
- @IsString()
35
+ @IsUUID()
25
36
  buildId: string;
37
+
38
+ @IsOptional()
39
+ @IsString()
40
+ gameVersionId?: string;
41
+
42
+ @IsOptional()
43
+ @ValidateNestedType(() => RuntimeArtifactsPayload)
44
+ runtimeArtifacts?: RuntimeArtifactsPayload;
26
45
  }
27
46
 
28
47
  export class AndroidGameCreationPayload {