@akashnetwork/chain-sdk 1.0.0-alpha.33 → 1.0.0-alpha.35

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.
Files changed (34) hide show
  1. package/dist/cjs/generated/protos/akash/provider/v1/status.cjs +19 -2
  2. package/dist/cjs/generated/protos/akash/provider/v1/status.cjs.map +2 -2
  3. package/dist/cjs/sdk/provider/auth/jwt/validateJwtPayload.cjs +5 -5
  4. package/dist/cjs/sdk/provider/auth/jwt/validateJwtPayload.cjs.map +2 -2
  5. package/dist/cjs/sdk/transport/grpc-gateway/createGrpcGatewayTransport.cjs +1 -1
  6. package/dist/cjs/sdk/transport/grpc-gateway/createGrpcGatewayTransport.cjs.map +2 -2
  7. package/dist/cjs/sdl/manifest/generateManifest.cjs +15 -0
  8. package/dist/cjs/sdl/manifest/generateManifest.cjs.map +2 -2
  9. package/dist/cjs/sdl/manifest/reclamationDuration.cjs +34 -0
  10. package/dist/cjs/sdl/manifest/reclamationDuration.cjs.map +7 -0
  11. package/dist/cjs/sdl/validateSDL/validateSDL.cjs +6 -0
  12. package/dist/cjs/sdl/validateSDL/validateSDL.cjs.map +2 -2
  13. package/dist/cjs/sdl/validateSDL/validateSDLInput.cjs +4 -3
  14. package/dist/cjs/sdl/validateSDL/validateSDLInput.cjs.map +2 -2
  15. package/dist/esm/{chunk-W25EJ3NI.js → chunk-MLIW7FIZ.js} +22 -3
  16. package/dist/esm/chunk-MLIW7FIZ.js.map +7 -0
  17. package/dist/esm/{chunk-J7CMFG4J.js → chunk-WBBS4OZV.js} +46 -9
  18. package/dist/esm/chunk-WBBS4OZV.js.map +7 -0
  19. package/dist/esm/generated/protos/index.provider.akash.v1.js +1 -1
  20. package/dist/esm/index.js +2 -2
  21. package/dist/esm/index.web.js +2 -2
  22. package/dist/esm/index.web.js.map +2 -2
  23. package/dist/esm/{service_akash-5RIOE2CY.js → service_akash-LXXUUD6O.js} +3 -2
  24. package/dist/esm/{service_akash-5RIOE2CY.js.map → service_akash-LXXUUD6O.js.map} +1 -1
  25. package/dist/sdl-schema.yaml +3 -3
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/dist/types/generated/protos/akash/provider/v1/status.d.ts +2 -0
  28. package/dist/types/sdk/provider/auth/jwt/validateJwtPayload.d.ts +3 -3
  29. package/dist/types/sdl/manifest/generateManifest.d.ts +2 -0
  30. package/dist/types/sdl/manifest/reclamationDuration.d.ts +11 -0
  31. package/dist/types/sdl/validateSDL/validateSDLInput.d.ts +2 -2
  32. package/package.json +1 -1
  33. package/dist/esm/chunk-J7CMFG4J.js.map +0 -7
  34. package/dist/esm/chunk-W25EJ3NI.js.map +0 -7
@@ -12,6 +12,9 @@ import {
12
12
  import {
13
13
  DecCoin
14
14
  } from "./chunk-Q5FYTXCV.js";
15
+ import {
16
+ Duration
17
+ } from "./chunk-IN3L4YRD.js";
15
18
  import {
16
19
  Timestamp,
17
20
  fromJsonTimestamp,
@@ -657,7 +660,8 @@ function createBaseStatus() {
657
660
  bidEngine: void 0,
658
661
  manifest: void 0,
659
662
  publicHostnames: [],
660
- timestamp: void 0
663
+ timestamp: void 0,
664
+ reclamationWindow: void 0
661
665
  };
662
666
  }
663
667
  var Status = {
@@ -681,6 +685,9 @@ var Status = {
681
685
  if (message.timestamp !== void 0) {
682
686
  Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).join();
683
687
  }
688
+ if (message.reclamationWindow !== void 0) {
689
+ Duration.encode(message.reclamationWindow, writer.uint32(58).fork()).join();
690
+ }
684
691
  return writer;
685
692
  },
686
693
  decode(input, length) {
@@ -732,6 +739,13 @@ var Status = {
732
739
  message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
733
740
  continue;
734
741
  }
742
+ case 7: {
743
+ if (tag !== 58) {
744
+ break;
745
+ }
746
+ message.reclamationWindow = Duration.decode(reader, reader.uint32());
747
+ continue;
748
+ }
735
749
  }
736
750
  if ((tag & 7) === 4 || tag === 0) {
737
751
  break;
@@ -747,7 +761,8 @@ var Status = {
747
761
  bidEngine: isSet(object.bid_engine) ? BidEngineStatus.fromJSON(object.bid_engine) : void 0,
748
762
  manifest: isSet(object.manifest) ? ManifestStatus.fromJSON(object.manifest) : void 0,
749
763
  publicHostnames: globalThis.Array.isArray(object?.public_hostnames) ? object.public_hostnames.map((e) => globalThis.String(e)) : [],
750
- timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0
764
+ timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0,
765
+ reclamationWindow: isSet(object.reclamation_window) ? Duration.fromJSON(object.reclamation_window) : void 0
751
766
  };
752
767
  },
753
768
  toJSON(message) {
@@ -770,6 +785,9 @@ var Status = {
770
785
  if (message.timestamp !== void 0) {
771
786
  obj.timestamp = message.timestamp.toISOString();
772
787
  }
788
+ if (message.reclamationWindow !== void 0) {
789
+ obj.reclamation_window = Duration.toJSON(message.reclamationWindow);
790
+ }
773
791
  return obj;
774
792
  },
775
793
  fromPartial(object) {
@@ -780,6 +798,7 @@ var Status = {
780
798
  message.manifest = object.manifest !== void 0 && object.manifest !== null ? ManifestStatus.fromPartial(object.manifest) : void 0;
781
799
  message.publicHostnames = object.publicHostnames?.map((e) => e) || [];
782
800
  message.timestamp = object.timestamp ?? void 0;
801
+ message.reclamationWindow = object.reclamationWindow !== void 0 && object.reclamationWindow !== null ? Duration.fromPartial(object.reclamationWindow) : void 0;
783
802
  return message;
784
803
  }
785
804
  };
@@ -962,4 +981,4 @@ export {
962
981
  BidScreeningRequest,
963
982
  BidScreeningResponse
964
983
  };
965
- //# sourceMappingURL=chunk-W25EJ3NI.js.map
984
+ //# sourceMappingURL=chunk-MLIW7FIZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/generated/protos/akash/provider/v1/status.ts", "../../src/generated/protos/akash/provider/v1/validation.ts"],
4
+ "sourcesContent": ["import { toTimestamp, fromTimestamp, fromJsonTimestamp, numberToLong, isObject, isSet } from \"../../../../../encoding/typeEncodingHelpers.ts\"\nimport type { DeepPartial, MessageFns } from \"../../../../../encoding/typeEncodingHelpers.ts\"\n// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.11.8\n// protoc unknown\n// source: akash/provider/v1/status.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport Long from \"long\";\nimport { Duration } from \"../../../google/protobuf/duration.ts\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp.ts\";\nimport { Quantity } from \"../../../k8s.io/apimachinery/pkg/api/resource/generated.ts\";\nimport { Cluster } from \"../../inventory/v1/cluster.ts\";\nimport { ResourcePair } from \"../../inventory/v1/resourcepair.ts\";\n\n/** ResourceMetrics */\nexport interface ResourcesMetric {\n cpu: Quantity | undefined;\n memory: Quantity | undefined;\n gpu: Quantity | undefined;\n ephemeralStorage: Quantity | undefined;\n storage: { [key: string]: Quantity };\n}\n\nexport interface ResourcesMetric_StorageEntry {\n key: string;\n value: Quantity | undefined;\n}\n\n/** Leases */\nexport interface Leases {\n active: number;\n}\n\n/** ReservationsMetric */\nexport interface ReservationsMetric {\n count: number;\n resources: ResourcesMetric | undefined;\n}\n\n/** Reservations */\nexport interface Reservations {\n pending: ReservationsMetric | undefined;\n active: ReservationsMetric | undefined;\n}\n\n/** Inventory */\nexport interface Inventory {\n cluster: Cluster | undefined;\n reservations: Reservations | undefined;\n leasedIp: ResourcePair | undefined;\n}\n\n/** ClusterStatus */\nexport interface ClusterStatus {\n leases: Leases | undefined;\n inventory: Inventory | undefined;\n}\n\n/** BidEngineStatus */\nexport interface BidEngineStatus {\n orders: number;\n}\n\n/** ManifestStatus */\nexport interface ManifestStatus {\n deployments: number;\n}\n\n/** Status */\nexport interface Status {\n errors: string[];\n cluster: ClusterStatus | undefined;\n bidEngine: BidEngineStatus | undefined;\n manifest: ManifestStatus | undefined;\n publicHostnames: string[];\n timestamp: Date | undefined;\n reclamationWindow: Duration | undefined;\n}\n\nfunction createBaseResourcesMetric(): ResourcesMetric {\n return { cpu: undefined, memory: undefined, gpu: undefined, ephemeralStorage: undefined, storage: {} };\n}\n\nexport const ResourcesMetric: MessageFns<ResourcesMetric, \"akash.provider.v1.ResourcesMetric\"> = {\n $type: \"akash.provider.v1.ResourcesMetric\" as const,\n\n encode(message: ResourcesMetric, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.cpu !== undefined) {\n Quantity.encode(message.cpu, writer.uint32(10).fork()).join();\n }\n if (message.memory !== undefined) {\n Quantity.encode(message.memory, writer.uint32(18).fork()).join();\n }\n if (message.gpu !== undefined) {\n Quantity.encode(message.gpu, writer.uint32(26).fork()).join();\n }\n if (message.ephemeralStorage !== undefined) {\n Quantity.encode(message.ephemeralStorage, writer.uint32(34).fork()).join();\n }\n globalThis.Object.entries(message.storage).forEach(([key, value]: [string, Quantity]) => {\n ResourcesMetric_StorageEntry.encode({ key: key as any, value }, writer.uint32(42).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResourcesMetric {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResourcesMetric();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.cpu = Quantity.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.memory = Quantity.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.gpu = Quantity.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.ephemeralStorage = Quantity.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n const entry5 = ResourcesMetric_StorageEntry.decode(reader, reader.uint32());\n if (entry5.value !== undefined) {\n message.storage[entry5.key] = entry5.value;\n }\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResourcesMetric {\n return {\n cpu: isSet(object.cpu) ? Quantity.fromJSON(object.cpu) : undefined,\n memory: isSet(object.memory) ? Quantity.fromJSON(object.memory) : undefined,\n gpu: isSet(object.gpu) ? Quantity.fromJSON(object.gpu) : undefined,\n ephemeralStorage: isSet(object.ephemeral_storage) ? Quantity.fromJSON(object.ephemeral_storage) : undefined,\n storage: isObject(object.storage)\n ? (globalThis.Object.entries(object.storage) as [string, any][]).reduce(\n (acc: { [key: string]: Quantity }, [key, value]: [string, any]) => {\n acc[key] = Quantity.fromJSON(value);\n return acc;\n },\n {},\n )\n : {},\n };\n },\n\n toJSON(message: ResourcesMetric): unknown {\n const obj: any = {};\n if (message.cpu !== undefined) {\n obj.cpu = Quantity.toJSON(message.cpu);\n }\n if (message.memory !== undefined) {\n obj.memory = Quantity.toJSON(message.memory);\n }\n if (message.gpu !== undefined) {\n obj.gpu = Quantity.toJSON(message.gpu);\n }\n if (message.ephemeralStorage !== undefined) {\n obj.ephemeral_storage = Quantity.toJSON(message.ephemeralStorage);\n }\n if (message.storage) {\n const entries = globalThis.Object.entries(message.storage) as [string, Quantity][];\n if (entries.length > 0) {\n obj.storage = {};\n entries.forEach(([k, v]) => {\n obj.storage[k] = Quantity.toJSON(v);\n });\n }\n }\n return obj;\n },\n fromPartial(object: DeepPartial<ResourcesMetric>): ResourcesMetric {\n const message = createBaseResourcesMetric();\n message.cpu = (object.cpu !== undefined && object.cpu !== null) ? Quantity.fromPartial(object.cpu) : undefined;\n message.memory = (object.memory !== undefined && object.memory !== null)\n ? Quantity.fromPartial(object.memory)\n : undefined;\n message.gpu = (object.gpu !== undefined && object.gpu !== null) ? Quantity.fromPartial(object.gpu) : undefined;\n message.ephemeralStorage = (object.ephemeralStorage !== undefined && object.ephemeralStorage !== null)\n ? Quantity.fromPartial(object.ephemeralStorage)\n : undefined;\n message.storage = (globalThis.Object.entries(object.storage ?? {}) as [string, Quantity][]).reduce(\n (acc: { [key: string]: Quantity }, [key, value]: [string, Quantity]) => {\n if (value !== undefined) {\n acc[key] = Quantity.fromPartial(value);\n }\n return acc;\n },\n {},\n );\n return message;\n },\n};\n\nfunction createBaseResourcesMetric_StorageEntry(): ResourcesMetric_StorageEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const ResourcesMetric_StorageEntry: MessageFns<\n ResourcesMetric_StorageEntry,\n \"akash.provider.v1.ResourcesMetric.StorageEntry\"\n> = {\n $type: \"akash.provider.v1.ResourcesMetric.StorageEntry\" as const,\n\n encode(message: ResourcesMetric_StorageEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n Quantity.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResourcesMetric_StorageEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResourcesMetric_StorageEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = Quantity.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResourcesMetric_StorageEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? Quantity.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: ResourcesMetric_StorageEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = Quantity.toJSON(message.value);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<ResourcesMetric_StorageEntry>): ResourcesMetric_StorageEntry {\n const message = createBaseResourcesMetric_StorageEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? Quantity.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseLeases(): Leases {\n return { active: 0 };\n}\n\nexport const Leases: MessageFns<Leases, \"akash.provider.v1.Leases\"> = {\n $type: \"akash.provider.v1.Leases\" as const,\n\n encode(message: Leases, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.active !== 0) {\n writer.uint32(8).uint32(message.active);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Leases {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLeases();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.active = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Leases {\n return { active: isSet(object.active) ? globalThis.Number(object.active) : 0 };\n },\n\n toJSON(message: Leases): unknown {\n const obj: any = {};\n if (message.active !== 0) {\n obj.active = Math.round(message.active);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<Leases>): Leases {\n const message = createBaseLeases();\n message.active = object.active ?? 0;\n return message;\n },\n};\n\nfunction createBaseReservationsMetric(): ReservationsMetric {\n return { count: 0, resources: undefined };\n}\n\nexport const ReservationsMetric: MessageFns<ReservationsMetric, \"akash.provider.v1.ReservationsMetric\"> = {\n $type: \"akash.provider.v1.ReservationsMetric\" as const,\n\n encode(message: ReservationsMetric, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.count !== 0) {\n writer.uint32(8).uint32(message.count);\n }\n if (message.resources !== undefined) {\n ResourcesMetric.encode(message.resources, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ReservationsMetric {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseReservationsMetric();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.count = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.resources = ResourcesMetric.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ReservationsMetric {\n return {\n count: isSet(object.count) ? globalThis.Number(object.count) : 0,\n resources: isSet(object.resources) ? ResourcesMetric.fromJSON(object.resources) : undefined,\n };\n },\n\n toJSON(message: ReservationsMetric): unknown {\n const obj: any = {};\n if (message.count !== 0) {\n obj.count = Math.round(message.count);\n }\n if (message.resources !== undefined) {\n obj.resources = ResourcesMetric.toJSON(message.resources);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<ReservationsMetric>): ReservationsMetric {\n const message = createBaseReservationsMetric();\n message.count = object.count ?? 0;\n message.resources = (object.resources !== undefined && object.resources !== null)\n ? ResourcesMetric.fromPartial(object.resources)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseReservations(): Reservations {\n return { pending: undefined, active: undefined };\n}\n\nexport const Reservations: MessageFns<Reservations, \"akash.provider.v1.Reservations\"> = {\n $type: \"akash.provider.v1.Reservations\" as const,\n\n encode(message: Reservations, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pending !== undefined) {\n ReservationsMetric.encode(message.pending, writer.uint32(10).fork()).join();\n }\n if (message.active !== undefined) {\n ReservationsMetric.encode(message.active, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Reservations {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseReservations();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pending = ReservationsMetric.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.active = ReservationsMetric.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Reservations {\n return {\n pending: isSet(object.pending) ? ReservationsMetric.fromJSON(object.pending) : undefined,\n active: isSet(object.active) ? ReservationsMetric.fromJSON(object.active) : undefined,\n };\n },\n\n toJSON(message: Reservations): unknown {\n const obj: any = {};\n if (message.pending !== undefined) {\n obj.pending = ReservationsMetric.toJSON(message.pending);\n }\n if (message.active !== undefined) {\n obj.active = ReservationsMetric.toJSON(message.active);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<Reservations>): Reservations {\n const message = createBaseReservations();\n message.pending = (object.pending !== undefined && object.pending !== null)\n ? ReservationsMetric.fromPartial(object.pending)\n : undefined;\n message.active = (object.active !== undefined && object.active !== null)\n ? ReservationsMetric.fromPartial(object.active)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseInventory(): Inventory {\n return { cluster: undefined, reservations: undefined, leasedIp: undefined };\n}\n\nexport const Inventory: MessageFns<Inventory, \"akash.provider.v1.Inventory\"> = {\n $type: \"akash.provider.v1.Inventory\" as const,\n\n encode(message: Inventory, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.cluster !== undefined) {\n Cluster.encode(message.cluster, writer.uint32(10).fork()).join();\n }\n if (message.reservations !== undefined) {\n Reservations.encode(message.reservations, writer.uint32(18).fork()).join();\n }\n if (message.leasedIp !== undefined) {\n ResourcePair.encode(message.leasedIp, writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Inventory {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInventory();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.cluster = Cluster.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.reservations = Reservations.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.leasedIp = ResourcePair.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Inventory {\n return {\n cluster: isSet(object.cluster) ? Cluster.fromJSON(object.cluster) : undefined,\n reservations: isSet(object.reservations) ? Reservations.fromJSON(object.reservations) : undefined,\n leasedIp: isSet(object.leased_ip) ? ResourcePair.fromJSON(object.leased_ip) : undefined,\n };\n },\n\n toJSON(message: Inventory): unknown {\n const obj: any = {};\n if (message.cluster !== undefined) {\n obj.cluster = Cluster.toJSON(message.cluster);\n }\n if (message.reservations !== undefined) {\n obj.reservations = Reservations.toJSON(message.reservations);\n }\n if (message.leasedIp !== undefined) {\n obj.leased_ip = ResourcePair.toJSON(message.leasedIp);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<Inventory>): Inventory {\n const message = createBaseInventory();\n message.cluster = (object.cluster !== undefined && object.cluster !== null)\n ? Cluster.fromPartial(object.cluster)\n : undefined;\n message.reservations = (object.reservations !== undefined && object.reservations !== null)\n ? Reservations.fromPartial(object.reservations)\n : undefined;\n message.leasedIp = (object.leasedIp !== undefined && object.leasedIp !== null)\n ? ResourcePair.fromPartial(object.leasedIp)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseClusterStatus(): ClusterStatus {\n return { leases: undefined, inventory: undefined };\n}\n\nexport const ClusterStatus: MessageFns<ClusterStatus, \"akash.provider.v1.ClusterStatus\"> = {\n $type: \"akash.provider.v1.ClusterStatus\" as const,\n\n encode(message: ClusterStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.leases !== undefined) {\n Leases.encode(message.leases, writer.uint32(10).fork()).join();\n }\n if (message.inventory !== undefined) {\n Inventory.encode(message.inventory, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ClusterStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClusterStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.leases = Leases.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.inventory = Inventory.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ClusterStatus {\n return {\n leases: isSet(object.leases) ? Leases.fromJSON(object.leases) : undefined,\n inventory: isSet(object.inventory) ? Inventory.fromJSON(object.inventory) : undefined,\n };\n },\n\n toJSON(message: ClusterStatus): unknown {\n const obj: any = {};\n if (message.leases !== undefined) {\n obj.leases = Leases.toJSON(message.leases);\n }\n if (message.inventory !== undefined) {\n obj.inventory = Inventory.toJSON(message.inventory);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<ClusterStatus>): ClusterStatus {\n const message = createBaseClusterStatus();\n message.leases = (object.leases !== undefined && object.leases !== null)\n ? Leases.fromPartial(object.leases)\n : undefined;\n message.inventory = (object.inventory !== undefined && object.inventory !== null)\n ? Inventory.fromPartial(object.inventory)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseBidEngineStatus(): BidEngineStatus {\n return { orders: 0 };\n}\n\nexport const BidEngineStatus: MessageFns<BidEngineStatus, \"akash.provider.v1.BidEngineStatus\"> = {\n $type: \"akash.provider.v1.BidEngineStatus\" as const,\n\n encode(message: BidEngineStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.orders !== 0) {\n writer.uint32(8).uint32(message.orders);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BidEngineStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBidEngineStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.orders = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BidEngineStatus {\n return { orders: isSet(object.orders) ? globalThis.Number(object.orders) : 0 };\n },\n\n toJSON(message: BidEngineStatus): unknown {\n const obj: any = {};\n if (message.orders !== 0) {\n obj.orders = Math.round(message.orders);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<BidEngineStatus>): BidEngineStatus {\n const message = createBaseBidEngineStatus();\n message.orders = object.orders ?? 0;\n return message;\n },\n};\n\nfunction createBaseManifestStatus(): ManifestStatus {\n return { deployments: 0 };\n}\n\nexport const ManifestStatus: MessageFns<ManifestStatus, \"akash.provider.v1.ManifestStatus\"> = {\n $type: \"akash.provider.v1.ManifestStatus\" as const,\n\n encode(message: ManifestStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.deployments !== 0) {\n writer.uint32(8).uint32(message.deployments);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ManifestStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseManifestStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.deployments = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ManifestStatus {\n return { deployments: isSet(object.deployments) ? globalThis.Number(object.deployments) : 0 };\n },\n\n toJSON(message: ManifestStatus): unknown {\n const obj: any = {};\n if (message.deployments !== 0) {\n obj.deployments = Math.round(message.deployments);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<ManifestStatus>): ManifestStatus {\n const message = createBaseManifestStatus();\n message.deployments = object.deployments ?? 0;\n return message;\n },\n};\n\nfunction createBaseStatus(): Status {\n return {\n errors: [],\n cluster: undefined,\n bidEngine: undefined,\n manifest: undefined,\n publicHostnames: [],\n timestamp: undefined,\n reclamationWindow: undefined,\n };\n}\n\nexport const Status: MessageFns<Status, \"akash.provider.v1.Status\"> = {\n $type: \"akash.provider.v1.Status\" as const,\n\n encode(message: Status, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.errors) {\n writer.uint32(10).string(v!);\n }\n if (message.cluster !== undefined) {\n ClusterStatus.encode(message.cluster, writer.uint32(18).fork()).join();\n }\n if (message.bidEngine !== undefined) {\n BidEngineStatus.encode(message.bidEngine, writer.uint32(26).fork()).join();\n }\n if (message.manifest !== undefined) {\n ManifestStatus.encode(message.manifest, writer.uint32(34).fork()).join();\n }\n for (const v of message.publicHostnames) {\n writer.uint32(42).string(v!);\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).join();\n }\n if (message.reclamationWindow !== undefined) {\n Duration.encode(message.reclamationWindow, writer.uint32(58).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Status {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.errors.push(reader.string());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.cluster = ClusterStatus.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.bidEngine = BidEngineStatus.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.manifest = ManifestStatus.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.publicHostnames.push(reader.string());\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.reclamationWindow = Duration.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Status {\n return {\n errors: globalThis.Array.isArray(object?.errors) ? object.errors.map((e: any) => globalThis.String(e)) : [],\n cluster: isSet(object.cluster) ? ClusterStatus.fromJSON(object.cluster) : undefined,\n bidEngine: isSet(object.bid_engine) ? BidEngineStatus.fromJSON(object.bid_engine) : undefined,\n manifest: isSet(object.manifest) ? ManifestStatus.fromJSON(object.manifest) : undefined,\n publicHostnames: globalThis.Array.isArray(object?.public_hostnames)\n ? object.public_hostnames.map((e: any) => globalThis.String(e))\n : [],\n timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,\n reclamationWindow: isSet(object.reclamation_window) ? Duration.fromJSON(object.reclamation_window) : undefined,\n };\n },\n\n toJSON(message: Status): unknown {\n const obj: any = {};\n if (message.errors?.length) {\n obj.errors = message.errors;\n }\n if (message.cluster !== undefined) {\n obj.cluster = ClusterStatus.toJSON(message.cluster);\n }\n if (message.bidEngine !== undefined) {\n obj.bid_engine = BidEngineStatus.toJSON(message.bidEngine);\n }\n if (message.manifest !== undefined) {\n obj.manifest = ManifestStatus.toJSON(message.manifest);\n }\n if (message.publicHostnames?.length) {\n obj.public_hostnames = message.publicHostnames;\n }\n if (message.timestamp !== undefined) {\n obj.timestamp = message.timestamp.toISOString();\n }\n if (message.reclamationWindow !== undefined) {\n obj.reclamation_window = Duration.toJSON(message.reclamationWindow);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<Status>): Status {\n const message = createBaseStatus();\n message.errors = object.errors?.map((e) => e) || [];\n message.cluster = (object.cluster !== undefined && object.cluster !== null)\n ? ClusterStatus.fromPartial(object.cluster)\n : undefined;\n message.bidEngine = (object.bidEngine !== undefined && object.bidEngine !== null)\n ? BidEngineStatus.fromPartial(object.bidEngine)\n : undefined;\n message.manifest = (object.manifest !== undefined && object.manifest !== null)\n ? ManifestStatus.fromPartial(object.manifest)\n : undefined;\n message.publicHostnames = object.publicHostnames?.map((e) => e) || [];\n message.timestamp = object.timestamp ?? undefined;\n message.reclamationWindow = (object.reclamationWindow !== undefined && object.reclamationWindow !== null)\n ? Duration.fromPartial(object.reclamationWindow)\n : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\ntype _unused_DeepPartial<T> = T extends Builtin ? T\n : T extends Long ? string | number | Long : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction _unused_toTimestamp(date: Date): Timestamp {\n const seconds = numberToLong(Math.trunc(date.getTime() / 1_000));\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction _unused_fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds.toNumber() || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction _unused_fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction _unused_numberToLong(number: number) {\n return Long.fromNumber(number);\n}\n\nfunction _unused_isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction _unused_isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\ninterface _unused_MessageFns<T, V extends string> {\n readonly $type: V;\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create(base?: DeepPartial<T>): T;\n fromPartial(object: DeepPartial<T>): T;\n}\n", "import { isSet } from \"../../../../../encoding/typeEncodingHelpers.ts\"\nimport type { DeepPartial, MessageFns } from \"../../../../../encoding/typeEncodingHelpers.ts\"\n// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.11.8\n// protoc unknown\n// source: akash/provider/v1/validation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport Long from \"long\";\nimport { DecCoin } from \"../../../cosmos/base/v1beta1/coin.ts\";\nimport { GroupSpec } from \"../../deployment/v1beta4/groupspec.ts\";\nimport { ResourceOffer } from \"../../market/v1beta5/resourcesoffer.ts\";\n\n/**\n * BidScreeningRequest represents a request to screen a deployment group\n * specification for bid eligibility against the provider's capabilities.\n */\nexport interface BidScreeningRequest {\n /** GroupSpec is the deployment group specification to screen for bid eligibility. */\n groupSpec:\n | GroupSpec\n | undefined;\n /** Hostnames is the list of hostnames requested by the deployment. */\n hostnames: string[];\n}\n\n/**\n * BidScreeningResponse represents the result of screening a deployment group\n * specification for bid eligibility against the provider's capabilities.\n */\nexport interface BidScreeningResponse {\n /** Passed indicates whether the deployment group passed bid screening. */\n passed: boolean;\n /** Reasons contains explanations when screening fails. */\n reasons: string[];\n /** ResourceOffers contains the provider's resource offers for the screened group, one per service in the GroupSpec. */\n resourceOffers: ResourceOffer[];\n /** Price is the minimum bid price for the screened group. */\n price: DecCoin | undefined;\n}\n\nfunction createBaseBidScreeningRequest(): BidScreeningRequest {\n return { groupSpec: undefined, hostnames: [] };\n}\n\nexport const BidScreeningRequest: MessageFns<BidScreeningRequest, \"akash.provider.v1.BidScreeningRequest\"> = {\n $type: \"akash.provider.v1.BidScreeningRequest\" as const,\n\n encode(message: BidScreeningRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.groupSpec !== undefined) {\n GroupSpec.encode(message.groupSpec, writer.uint32(10).fork()).join();\n }\n for (const v of message.hostnames) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BidScreeningRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBidScreeningRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.groupSpec = GroupSpec.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.hostnames.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BidScreeningRequest {\n return {\n groupSpec: isSet(object.group_spec) ? GroupSpec.fromJSON(object.group_spec) : undefined,\n hostnames: globalThis.Array.isArray(object?.hostnames)\n ? object.hostnames.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: BidScreeningRequest): unknown {\n const obj: any = {};\n if (message.groupSpec !== undefined) {\n obj.group_spec = GroupSpec.toJSON(message.groupSpec);\n }\n if (message.hostnames?.length) {\n obj.hostnames = message.hostnames;\n }\n return obj;\n },\n fromPartial(object: DeepPartial<BidScreeningRequest>): BidScreeningRequest {\n const message = createBaseBidScreeningRequest();\n message.groupSpec = (object.groupSpec !== undefined && object.groupSpec !== null)\n ? GroupSpec.fromPartial(object.groupSpec)\n : undefined;\n message.hostnames = object.hostnames?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseBidScreeningResponse(): BidScreeningResponse {\n return { passed: false, reasons: [], resourceOffers: [], price: undefined };\n}\n\nexport const BidScreeningResponse: MessageFns<BidScreeningResponse, \"akash.provider.v1.BidScreeningResponse\"> = {\n $type: \"akash.provider.v1.BidScreeningResponse\" as const,\n\n encode(message: BidScreeningResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.passed !== false) {\n writer.uint32(8).bool(message.passed);\n }\n for (const v of message.reasons) {\n writer.uint32(18).string(v!);\n }\n for (const v of message.resourceOffers) {\n ResourceOffer.encode(v!, writer.uint32(26).fork()).join();\n }\n if (message.price !== undefined) {\n DecCoin.encode(message.price, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BidScreeningResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBidScreeningResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.passed = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.reasons.push(reader.string());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.resourceOffers.push(ResourceOffer.decode(reader, reader.uint32()));\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.price = DecCoin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BidScreeningResponse {\n return {\n passed: isSet(object.passed) ? globalThis.Boolean(object.passed) : false,\n reasons: globalThis.Array.isArray(object?.reasons) ? object.reasons.map((e: any) => globalThis.String(e)) : [],\n resourceOffers: globalThis.Array.isArray(object?.resource_offers)\n ? object.resource_offers.map((e: any) => ResourceOffer.fromJSON(e))\n : [],\n price: isSet(object.price) ? DecCoin.fromJSON(object.price) : undefined,\n };\n },\n\n toJSON(message: BidScreeningResponse): unknown {\n const obj: any = {};\n if (message.passed !== false) {\n obj.passed = message.passed;\n }\n if (message.reasons?.length) {\n obj.reasons = message.reasons;\n }\n if (message.resourceOffers?.length) {\n obj.resource_offers = message.resourceOffers.map((e) => ResourceOffer.toJSON(e));\n }\n if (message.price !== undefined) {\n obj.price = DecCoin.toJSON(message.price);\n }\n return obj;\n },\n fromPartial(object: DeepPartial<BidScreeningResponse>): BidScreeningResponse {\n const message = createBaseBidScreeningResponse();\n message.passed = object.passed ?? false;\n message.reasons = object.reasons?.map((e) => e) || [];\n message.resourceOffers = object.resourceOffers?.map((e) => ResourceOffer.fromPartial(e)) || [];\n message.price = (object.price !== undefined && object.price !== null)\n ? DecCoin.fromPartial(object.price)\n : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\ntype _unused_DeepPartial<T> = T extends Builtin ? T\n : T extends Long ? string | number | Long : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction _unused_isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\ninterface _unused_MessageFns<T, V extends string> {\n readonly $type: V;\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create(base?: DeepPartial<T>): T;\n fromPartial(object: DeepPartial<T>): T;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["BinaryReader", "BinaryWriter", "BinaryWriter", "BinaryReader"]
7
+ }
@@ -22,10 +22,16 @@ import {
22
22
  Resources,
23
23
  Storage
24
24
  } from "./chunk-L6TIQSD3.js";
25
+ import {
26
+ DeploymentReclamation
27
+ } from "./chunk-6GGMFH42.js";
25
28
  import {
26
29
  PlacementRequirements,
27
30
  SignedBy
28
31
  } from "./chunk-RRAUGNCU.js";
32
+ import {
33
+ Duration
34
+ } from "./chunk-IN3L4YRD.js";
29
35
  import {
30
36
  __privateAdd,
31
37
  __privateGet,
@@ -64,7 +70,7 @@ var require_ucs2length = __commonJS({
64
70
  }
65
71
  });
66
72
  var validate = validate27;
67
- var schema28 = { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "description": "Schema for Akash Stack Definition Language (SDL) YAML input files.\n\nNote: This schema validates structure only. Semantic validations (cross-references,\nunused endpoints, profile references, etc.) are performed at runtime by the Go parser.\nSee README.md for details.\n", "definitions": { "stringArrayOrNull": { "description": "String array or null value (used for command args and env vars)", "oneOf": [{ "items": { "type": "string" }, "type": "array" }, { "type": "null" }] }, "portNumber": { "description": "Valid TCP/UDP port number (1-65535)", "type": "integer", "minimum": 1, "maximum": 65535 }, "httpErrorCode": { "description": "HTTP error codes for proxy retry logic", "enum": ["error", "timeout", "500", "502", "503", "504", "403", "404", "429", "off"], "type": "string" }, "priceCoin": { "description": "Price definition with amount and denomination", "additionalProperties": false, "properties": { "amount": { "oneOf": [{ "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Positive number as string" }, { "type": "number", "minimum": 0, "description": "Positive number" }] }, "denom": { "enum": ["uakt", "uact"], "type": "string" } }, "required": ["denom", "amount"], "type": "object" }, "storageRamClassMustNotBePersistent": { "description": "RAM storage class must not have persistent=true", "not": { "properties": { "class": { "const": "ram" }, "persistent": { "oneOf": [{ "const": true }, { "const": "true" }] } }, "required": ["class", "persistent"] } }, "storageNonRamClassRequiresPersistent": { "description": "Non-RAM storage classes (beta1, beta2, beta3, default) require persistent=true", "if": { "properties": { "class": { "enum": ["beta1", "beta2", "beta3", "default"] } }, "required": ["class"] }, "then": { "properties": { "persistent": { "oneOf": [{ "const": true }, { "const": "true" }] } }, "required": ["persistent"] } }, "storageAttributesValidation": { "description": "Storage attributes validation:\n1. RAM class must not be persistent\n2. Non-RAM classes (beta1, beta2, beta3, default) require persistent=true\n", "additionalProperties": false, "properties": { "class": { "type": "string" }, "persistent": { "oneOf": [{ "type": "boolean" }, { "type": "string" }] } }, "allOf": [{ "$ref": "#/definitions/storageRamClassMustNotBePersistent" }, { "$ref": "#/definitions/storageNonRamClassRequiresPersistent" }], "required": ["class", "persistent"], "type": "object" }, "storageVolume": { "description": "Storage volume definition with size and optional attributes", "additionalProperties": false, "properties": { "attributes": { "$ref": "#/definitions/storageAttributesValidation" }, "name": { "type": "string" }, "size": { "type": "string" } }, "required": ["size"], "type": "object" }, "absolutePath": { "description": "Absolute filesystem path starting with /", "type": "string", "minLength": 1, "pattern": "^/" }, "gpuUnitsGt0RequiresAttributes": { "description": "GPU units > 0 requires attributes to be present", "if": { "properties": { "units": { "oneOf": [{ "type": "number", "exclusiveMinimum": 0 }, { "type": "string", "not": { "pattern": "^0+(\\.0+)?$" } }] } }, "required": ["units"] }, "then": { "required": ["attributes"] } }, "gpuAttributesRequireUnitsGt0": { "description": "GPU attributes present requires units > 0", "if": { "required": ["attributes"] }, "then": { "properties": { "units": { "oneOf": [{ "type": "number", "exclusiveMinimum": 0 }, { "type": "string", "not": { "pattern": "^0+(\\.0+)?$" } }] } }, "required": ["units"] } }, "exposeToWithIpEnforcesGlobal": { "description": "Expose to with IP enforces global", "if": { "properties": { "ip": { "type": "string", "minLength": 1 } }, "required": ["ip"] }, "then": { "properties": { "global": { "const": true } }, "required": ["global"] } } }, "properties": { "deployment": { "additionalProperties": { "additionalProperties": { "additionalProperties": false, "properties": { "count": { "minimum": 1, "type": "integer" }, "profile": { "type": "string" } }, "required": ["profile", "count"], "type": "object" }, "type": "object" }, "type": "object" }, "endpoints": { "additionalProperties": false, "patternProperties": { "^[a-z]+[-_0-9a-z]+$": { "additionalProperties": false, "properties": { "kind": { "enum": ["ip"], "type": "string" } }, "required": ["kind"], "type": "object" } }, "type": "object" }, "include": { "description": "Optional list of files to include", "items": { "type": "string" }, "type": "array" }, "profiles": { "additionalProperties": false, "properties": { "compute": { "additionalProperties": { "additionalProperties": false, "properties": { "resources": { "additionalProperties": false, "properties": { "cpu": { "additionalProperties": false, "properties": { "attributes": { "type": "object" }, "units": { "oneOf": [{ "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?[a-zA-Z]*$", "not": { "pattern": "^0+(\\.0+)?m?$" } }, { "type": "number", "exclusiveMinimum": 0 }] } }, "required": ["units"], "type": "object" }, "gpu": { "description": "GPU resource specification.\n- units defaults to 0 if omitted\n- Bidirectional validation: units > 0 requires attributes, and attributes require units > 0\n", "additionalProperties": false, "properties": { "attributes": { "additionalProperties": false, "properties": { "vendor": { "additionalProperties": false, "minProperties": 1, "properties": { "nvidia": { "oneOf": [{ "type": "array", "items": { "additionalProperties": false, "properties": { "interface": { "enum": ["pcie", "sxm"], "type": "string" }, "model": { "type": "string" }, "ram": { "type": "string" } }, "type": "object" } }, { "type": "null" }] } }, "type": "object" } }, "type": "object" }, "units": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "allOf": [{ "$ref": "#/definitions/gpuUnitsGt0RequiresAttributes" }, { "$ref": "#/definitions/gpuAttributesRequireUnitsGt0" }], "type": "object" }, "memory": { "additionalProperties": false, "properties": { "size": { "type": "string" } }, "required": ["size"], "type": "object" }, "storage": { "oneOf": [{ "$ref": "#/definitions/storageVolume" }, { "items": { "$ref": "#/definitions/storageVolume" }, "type": "array" }] } }, "required": ["cpu", "memory", "storage"], "type": "object" } }, "required": ["resources"], "type": "object" }, "type": "object" }, "placement": { "additionalProperties": { "additionalProperties": false, "properties": { "attributes": { "type": "object" }, "pricing": { "additionalProperties": { "$ref": "#/definitions/priceCoin" }, "type": "object" }, "signedBy": { "additionalProperties": false, "properties": { "allOf": { "items": { "type": "string" }, "type": "array" }, "anyOf": { "items": { "type": "string" }, "type": "array" } }, "type": "object" } }, "required": ["pricing"], "type": "object" }, "type": "object" } }, "required": ["compute", "placement"], "type": "object" }, "services": { "additionalProperties": { "properties": { "args": { "$ref": "#/definitions/stringArrayOrNull" }, "command": { "$ref": "#/definitions/stringArrayOrNull" }, "credentials": { "additionalProperties": false, "properties": { "email": { "type": "string", "minLength": 5 }, "host": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 6 }, "username": { "type": "string", "minLength": 1 } }, "required": ["host", "username", "password"], "type": "object" }, "dependencies": { "items": { "additionalProperties": false, "properties": { "service": { "type": "string" } }, "type": "object" }, "type": "array" }, "env": { "$ref": "#/definitions/stringArrayOrNull" }, "expose": { "oneOf": [{ "type": "array", "items": { "additionalProperties": false, "properties": { "accept": { "items": { "type": "string" }, "type": "array" }, "as": { "$ref": "#/definitions/portNumber" }, "http_options": { "additionalProperties": false, "properties": { "max_body_size": { "type": "integer", "minimum": 0, "maximum": 104857600, "description": "Maximum body size in bytes (max 100 MB)" }, "next_cases": { "oneOf": [{ "type": "array", "items": { "$ref": "#/definitions/httpErrorCode" }, "contains": { "const": "off" }, "maxItems": 1, "minItems": 1 }, { "type": "array", "items": { "$ref": "#/definitions/httpErrorCode" }, "not": { "contains": { "const": "off" } } }] }, "next_timeout": { "type": "integer", "minimum": 0 }, "next_tries": { "type": "integer", "minimum": 0 }, "read_timeout": { "type": "integer", "minimum": 0, "maximum": 6e4, "description": "Read timeout in milliseconds (max 60 seconds)" }, "send_timeout": { "type": "integer", "minimum": 0, "maximum": 6e4, "description": "Send timeout in milliseconds (max 60 seconds)" } }, "type": "object" }, "port": { "$ref": "#/definitions/portNumber" }, "proto": { "enum": ["TCP", "UDP", "tcp", "udp"], "type": "string" }, "to": { "items": { "additionalProperties": false, "properties": { "global": { "type": "boolean" }, "ip": { "minLength": 1, "type": "string" }, "service": { "type": "string" } }, "allOf": [{ "$ref": "#/definitions/exposeToWithIpEnforcesGlobal" }], "type": "object" }, "type": "array" } }, "required": ["port"], "type": "object" } }, { "type": "null" }] }, "image": { "type": "string", "minLength": 1 }, "params": { "additionalProperties": false, "properties": { "storage": { "additionalProperties": { "additionalProperties": false, "properties": { "mount": { "$ref": "#/definitions/absolutePath" }, "readOnly": { "type": "boolean" } }, "type": "object" }, "type": "object" }, "permissions": { "additionalProperties": false, "properties": { "read": { "items": { "type": "string", "enum": ["deployment", "logs", "events"] }, "type": "array" } }, "type": "object" } }, "type": "object" } }, "required": ["image"], "type": "object", "additionalProperties": false }, "type": "object" }, "reclamation": { "description": "Deployment-level reclamation requirements (optional). When set, providers must offer a reclamation window meeting or exceeding the specified minimum to bid on this deployment.", "additionalProperties": false, "properties": { "min_window": { "type": "string", "description": 'Minimum reclamation window duration the tenant requires. Go duration format (e.g. "1h", "24h", "720h").', "minLength": 1 } }, "required": ["min_window"], "type": "object" }, "version": { "description": "SDL version", "enum": ["2.0", "2.1"], "type": "string" } }, "required": ["version", "services", "profiles", "deployment"], "title": "Akash SDL Input Schema", "type": "object" };
73
+ var schema28 = { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "description": "Schema for Akash Stack Definition Language (SDL) YAML input files.\n\nNote: This schema validates structure only. Semantic validations (cross-references,\nunused endpoints, profile references, etc.) are performed at runtime by the Go parser.\nSee README.md for details.\n", "definitions": { "stringArrayOrNull": { "description": "String array or null value (used for command args and env vars)", "oneOf": [{ "items": { "type": "string" }, "type": "array" }, { "type": "null" }] }, "portNumber": { "description": "Valid TCP/UDP port number (1-65535)", "type": "integer", "minimum": 1, "maximum": 65535 }, "httpErrorCode": { "description": "HTTP error codes for proxy retry logic", "enum": ["error", "timeout", "500", "502", "503", "504", "403", "404", "429", "off"], "type": "string" }, "priceCoin": { "description": "Price definition with amount and denomination", "additionalProperties": false, "properties": { "amount": { "oneOf": [{ "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Positive number as string" }, { "type": "number", "minimum": 0, "description": "Positive number" }] }, "denom": { "enum": ["uakt", "uact"], "type": "string" } }, "required": ["denom", "amount"], "type": "object" }, "storageRamClassMustNotBePersistent": { "description": "RAM storage class must not have persistent=true", "not": { "properties": { "class": { "const": "ram" }, "persistent": { "oneOf": [{ "const": true }, { "const": "true" }] } }, "required": ["class", "persistent"] } }, "storageNonRamClassRequiresPersistent": { "description": "Non-RAM storage classes (beta1, beta2, beta3, default) require persistent=true", "if": { "properties": { "class": { "enum": ["beta1", "beta2", "beta3", "default"] } }, "required": ["class"] }, "then": { "properties": { "persistent": { "oneOf": [{ "const": true }, { "const": "true" }] } }, "required": ["persistent"] } }, "storageAttributesValidation": { "description": "Storage attributes validation:\n1. RAM class must not be persistent\n2. Non-RAM classes (beta1, beta2, beta3, default) require persistent=true\n", "additionalProperties": false, "properties": { "class": { "type": "string" }, "persistent": { "oneOf": [{ "type": "boolean" }, { "type": "string" }] } }, "allOf": [{ "$ref": "#/definitions/storageRamClassMustNotBePersistent" }, { "$ref": "#/definitions/storageNonRamClassRequiresPersistent" }], "required": ["class", "persistent"], "type": "object" }, "storageVolume": { "description": "Storage volume definition with size and optional attributes", "additionalProperties": false, "properties": { "attributes": { "$ref": "#/definitions/storageAttributesValidation" }, "name": { "type": "string" }, "size": { "type": "string" } }, "required": ["size"], "type": "object" }, "absolutePath": { "description": "Absolute filesystem path starting with /", "type": "string", "minLength": 1, "pattern": "^/" }, "gpuUnitsGt0RequiresAttributes": { "description": "GPU units > 0 requires attributes to be present", "if": { "properties": { "units": { "oneOf": [{ "type": "number", "exclusiveMinimum": 0 }, { "type": "string", "not": { "pattern": "^0+(\\.0+)?$" } }] } }, "required": ["units"] }, "then": { "required": ["attributes"] } }, "gpuAttributesRequireUnitsGt0": { "description": "GPU attributes present requires units > 0", "if": { "required": ["attributes"] }, "then": { "properties": { "units": { "oneOf": [{ "type": "number", "exclusiveMinimum": 0 }, { "type": "string", "not": { "pattern": "^0+(\\.0+)?$" } }] } }, "required": ["units"] } }, "exposeToWithIpEnforcesGlobal": { "description": "Expose to with IP enforces global", "if": { "properties": { "ip": { "type": "string", "minLength": 1 } }, "required": ["ip"] }, "then": { "properties": { "global": { "const": true } }, "required": ["global"] } } }, "properties": { "deployment": { "additionalProperties": { "additionalProperties": { "additionalProperties": false, "properties": { "count": { "minimum": 1, "type": "integer" }, "profile": { "type": "string" } }, "required": ["profile", "count"], "type": "object" }, "type": "object" }, "type": "object" }, "endpoints": { "additionalProperties": false, "patternProperties": { "^[a-z]+[-_0-9a-z]+$": { "additionalProperties": false, "properties": { "kind": { "enum": ["ip"], "type": "string" } }, "required": ["kind"], "type": "object" } }, "type": "object" }, "include": { "description": "Optional list of files to include", "items": { "type": "string" }, "type": "array" }, "profiles": { "additionalProperties": false, "properties": { "compute": { "additionalProperties": { "additionalProperties": false, "properties": { "resources": { "additionalProperties": false, "properties": { "cpu": { "additionalProperties": false, "properties": { "attributes": { "type": "object" }, "units": { "oneOf": [{ "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?[a-zA-Z]*$", "not": { "pattern": "^0+(\\.0+)?m?$" } }, { "type": "number", "exclusiveMinimum": 0 }] } }, "required": ["units"], "type": "object" }, "gpu": { "description": "GPU resource specification.\n- units defaults to 0 if omitted\n- Bidirectional validation: units > 0 requires attributes, and attributes require units > 0\n", "additionalProperties": false, "properties": { "attributes": { "additionalProperties": false, "properties": { "vendor": { "additionalProperties": false, "minProperties": 1, "properties": { "nvidia": { "oneOf": [{ "type": "array", "items": { "additionalProperties": false, "properties": { "interface": { "enum": ["pcie", "sxm"], "type": "string" }, "model": { "type": "string" }, "ram": { "type": "string" } }, "type": "object" } }, { "type": "null" }] } }, "type": "object" } }, "type": "object" }, "units": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "allOf": [{ "$ref": "#/definitions/gpuUnitsGt0RequiresAttributes" }, { "$ref": "#/definitions/gpuAttributesRequireUnitsGt0" }], "type": "object" }, "memory": { "additionalProperties": false, "properties": { "size": { "type": "string" } }, "required": ["size"], "type": "object" }, "storage": { "oneOf": [{ "$ref": "#/definitions/storageVolume" }, { "items": { "$ref": "#/definitions/storageVolume" }, "type": "array" }] } }, "required": ["cpu", "memory", "storage"], "type": "object" } }, "required": ["resources"], "type": "object" }, "type": "object" }, "placement": { "additionalProperties": { "additionalProperties": false, "properties": { "attributes": { "type": "object" }, "pricing": { "additionalProperties": { "$ref": "#/definitions/priceCoin" }, "type": "object" }, "signedBy": { "additionalProperties": false, "properties": { "allOf": { "items": { "type": "string" }, "type": "array" }, "anyOf": { "items": { "type": "string" }, "type": "array" } }, "type": "object" } }, "required": ["pricing"], "type": "object" }, "type": "object" } }, "required": ["compute", "placement"], "type": "object" }, "services": { "additionalProperties": { "properties": { "args": { "$ref": "#/definitions/stringArrayOrNull" }, "command": { "$ref": "#/definitions/stringArrayOrNull" }, "credentials": { "additionalProperties": false, "properties": { "email": { "type": "string", "minLength": 5 }, "host": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 6 }, "username": { "type": "string", "minLength": 1 } }, "required": ["host", "username", "password"], "type": "object" }, "dependencies": { "items": { "additionalProperties": false, "properties": { "service": { "type": "string" } }, "type": "object" }, "type": "array" }, "env": { "$ref": "#/definitions/stringArrayOrNull" }, "expose": { "oneOf": [{ "type": "array", "items": { "additionalProperties": false, "properties": { "accept": { "items": { "type": "string" }, "type": "array" }, "as": { "$ref": "#/definitions/portNumber" }, "http_options": { "additionalProperties": false, "properties": { "max_body_size": { "type": "integer", "minimum": 0, "maximum": 104857600, "description": "Maximum body size in bytes (max 100 MB)" }, "next_cases": { "oneOf": [{ "type": "array", "items": { "$ref": "#/definitions/httpErrorCode" }, "contains": { "const": "off" }, "maxItems": 1, "minItems": 1 }, { "type": "array", "items": { "$ref": "#/definitions/httpErrorCode" }, "not": { "contains": { "const": "off" } } }] }, "next_timeout": { "type": "integer", "minimum": 0 }, "next_tries": { "type": "integer", "minimum": 0 }, "read_timeout": { "type": "integer", "minimum": 0, "maximum": 6e4, "description": "Read timeout in milliseconds (max 60 seconds)" }, "send_timeout": { "type": "integer", "minimum": 0, "maximum": 6e4, "description": "Send timeout in milliseconds (max 60 seconds)" } }, "type": "object" }, "port": { "$ref": "#/definitions/portNumber" }, "proto": { "enum": ["TCP", "UDP", "tcp", "udp"], "type": "string" }, "to": { "items": { "additionalProperties": false, "properties": { "global": { "type": "boolean" }, "ip": { "minLength": 1, "type": "string" }, "service": { "type": "string" } }, "allOf": [{ "$ref": "#/definitions/exposeToWithIpEnforcesGlobal" }], "type": "object" }, "type": "array" } }, "required": ["port"], "type": "object" } }, { "type": "null" }] }, "image": { "type": "string", "minLength": 1 }, "params": { "additionalProperties": false, "properties": { "storage": { "additionalProperties": { "additionalProperties": false, "properties": { "mount": { "$ref": "#/definitions/absolutePath" }, "readOnly": { "type": "boolean" } }, "type": "object" }, "type": "object" }, "permissions": { "additionalProperties": false, "properties": { "read": { "items": { "type": "string", "enum": ["deployment", "logs", "events"] }, "type": "array" } }, "type": "object" } }, "type": "object" } }, "required": ["image"], "type": "object", "additionalProperties": false }, "type": "object" }, "reclamation": { "description": "Deployment-level reclamation requirements (optional). When set, providers must offer a reclamation window meeting or exceeding the specified minimum to bid on this deployment.", "additionalProperties": false, "properties": { "min_window": { "type": "string", "pattern": "^[1-9][0-9]*(s|m|h)$", "description": 'Minimum reclamation window the tenant requires, as a whole number followed by a unit (s, m, or h). E.g. "1h", "24h", "720h".' } }, "required": ["min_window"], "type": "object" }, "version": { "description": "SDL version", "enum": ["2.0", "2.1"], "type": "string" } }, "required": ["version", "services", "profiles", "deployment"], "title": "Akash SDL Input Schema", "type": "object" };
68
74
  var schema35 = { "description": "Price definition with amount and denomination", "additionalProperties": false, "properties": { "amount": { "oneOf": [{ "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Positive number as string" }, { "type": "number", "minimum": 0, "description": "Positive number" }] }, "denom": { "enum": ["uakt", "uact"], "type": "string" } }, "required": ["denom", "amount"], "type": "object" };
69
75
  var schema40 = { "description": "HTTP error codes for proxy retry logic", "enum": ["error", "timeout", "500", "502", "503", "504", "403", "404", "429", "off"], "type": "string" };
70
76
  var pattern4 = new RegExp("^[a-z]+[-_0-9a-z]+$", "u");
@@ -73,6 +79,7 @@ var pattern7 = new RegExp("^[0-9]+(\\.[0-9]+)?[a-zA-Z]*$", "u");
73
79
  var pattern8 = new RegExp("^0+(\\.0+)?$", "u");
74
80
  var pattern10 = new RegExp("^[0-9]+(\\.[0-9]+)?$", "u");
75
81
  var pattern11 = new RegExp("^/", "u");
82
+ var pattern12 = new RegExp("^[1-9][0-9]*(s|m|h)$", "u");
76
83
  function validate29(data, { instancePath = "", parentData, parentDataProperty, rootData = data } = {}) {
77
84
  let vErrors = null;
78
85
  let errors = 0;
@@ -3421,8 +3428,8 @@ function validate27(data, { instancePath = "", parentData, parentDataProperty, r
3421
3428
  if (data94.min_window !== void 0) {
3422
3429
  let data95 = data94.min_window;
3423
3430
  if (typeof data95 === "string") {
3424
- if (func2(data95) < 1) {
3425
- const err222 = { instancePath: instancePath + "/reclamation/min_window", schemaPath: "#/properties/reclamation/properties/min_window/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
3431
+ if (!pattern12.test(data95)) {
3432
+ const err222 = { instancePath: instancePath + "/reclamation/min_window", schemaPath: "#/properties/reclamation/properties/min_window/pattern", keyword: "pattern", params: { pattern: "^[1-9][0-9]*(s|m|h)$" }, message: 'must match pattern "^[1-9][0-9]*(s|m|h)$"' };
3426
3433
  if (vErrors === null) {
3427
3434
  vErrors = [err222];
3428
3435
  } else {
@@ -3612,6 +3619,12 @@ var ERROR_MESSAGES = {
3612
3619
  },
3613
3620
  "#/definitions/exposeToWithIpEnforcesGlobal"() {
3614
3621
  return `If an IP is declared, the directive must be declared as global.`;
3622
+ },
3623
+ // Mirrors the shared schema's `min_window` pattern (`^[1-9][0-9]*(s|m|h)$`).
3624
+ // Go stays the lenient layer (`go/sdl/reclamation.go` accepts any `> 0`
3625
+ // `time.ParseDuration`), so this is a sanctioned schema-only-stricter rule.
3626
+ "#/properties/reclamation/properties/min_window/pattern"() {
3627
+ return `Reclamation min_window must be a whole number followed by s, m, or h (e.g. "24h", "30m").`;
3615
3628
  }
3616
3629
  };
3617
3630
  function validateSDL(sdl) {
@@ -4042,6 +4055,17 @@ function buildResourceAttributes(attributes) {
4042
4055
  return Object.keys(attributes).sort((a, b) => a.localeCompare(b)).map((key) => ({ key, value: String(attributes[key]) }));
4043
4056
  }
4044
4057
 
4058
+ // src/sdl/manifest/reclamationDuration.ts
4059
+ var UNIT_SECONDS = { s: 1n, m: 60n, h: 3600n };
4060
+ function minWindowToDuration(value) {
4061
+ const unitSeconds = UNIT_SECONDS[value.at(-1) ?? ""];
4062
+ const amount = Number(value.slice(0, -1));
4063
+ if (unitSeconds === void 0 || !Number.isInteger(amount) || amount <= 0) {
4064
+ throw new Error(`invalid reclamation min_window "${value}"`);
4065
+ }
4066
+ return Duration.fromPartial({ seconds: (BigInt(amount) * unitSeconds).toString(), nanos: 0 });
4067
+ }
4068
+
4045
4069
  // src/sdl/manifest/generateManifest.ts
4046
4070
  function generateManifest(sdl) {
4047
4071
  const errors = validateSDL(sdl);
@@ -4126,7 +4150,20 @@ function generateManifest(sdl) {
4126
4150
  const sortedGroupNames = [...groupsMap.keys()].sort();
4127
4151
  let groups;
4128
4152
  let groupSpecs;
4153
+ let reclamation;
4129
4154
  const manifest = {
4155
+ // reclamation is a `MsgCreateDeployment` field, not a manifest group, and is
4156
+ // not needed in every call — so it's lazy like `groups`/`groupSpecs`.
4157
+ // `validateSDL` (run above) already guaranteed `min_window` is valid, so
4158
+ // `minWindowToDuration` never throws here.
4159
+ get reclamation() {
4160
+ if (sdl.reclamation && !reclamation) {
4161
+ reclamation = DeploymentReclamation.fromPartial({
4162
+ minWindow: minWindowToDuration(sdl.reclamation.min_window)
4163
+ });
4164
+ }
4165
+ return reclamation;
4166
+ },
4130
4167
  get groups() {
4131
4168
  groups ?? (groups = sortedGroupNames.map((placementName) => {
4132
4169
  const deployments = deploymentsByPlacement.get(placementName);
@@ -4590,10 +4627,10 @@ var require_ucs2length2 = __commonJS2({
4590
4627
  }
4591
4628
  });
4592
4629
  var validate2 = validate10;
4593
- var schema11 = { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/akash-network/chain-sdk/refs/heads/main/specs/jwt-schema.json", "title": "Akash JWT Schema", "description": "JSON Schema for JWT used in the Akash Provider API.", "type": "object", "additionalProperties": false, "required": ["iss", "iat", "exp", "nbf", "version", "leases"], "properties": { "iss": { "$ref": "#/definitions/akash-address", "description": "Akash address of the lease(s) owner, e.g., akash1abcd... (44 characters)" }, "iat": { "type": "integer", "minimum": 0, "description": "Token issuance timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be <= exp and >= nbf." }, "nbf": { "type": "integer", "minimum": 0, "description": "Not valid before timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be <= iat." }, "exp": { "type": "integer", "minimum": 0, "description": "Expiration timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be >= iat." }, "jti": { "type": "string", "minLength": 1, "description": "Unique identifier for the JWT, used to prevent token reuse." }, "version": { "type": "string", "enum": ["v1"], "description": "Version of the JWT specification (currently fixed at v1)." }, "leases": { "$ref": "#/definitions/leases" } }, "definitions": { "akash-address": { "type": "string", "pattern": "^akash1[a-z0-9]{38}$" }, "action-scope": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": ["send-manifest", "get-manifest", "logs", "shell", "events", "status", "restart", "hostname-migrate", "ip-migrate"] } }, "leases": { "type": "object", "description": "Access level for the lease: 'full' for unrestricted access to all actions, 'scoped' for specific actions across all provider leases, 'granular' for provider-specific permissions.", "oneOf": [{ "$ref": "#/definitions/leases-full" }, { "$ref": "#/definitions/leases-scoped" }, { "$ref": "#/definitions/leases-granular" }] }, "leases-full": { "type": "object", "additionalProperties": false, "required": ["access"], "properties": { "access": { "const": "full", "description": "Unrestricted access to all actions on all leases." } } }, "leases-scoped": { "type": "object", "additionalProperties": false, "required": ["access", "scope"], "properties": { "access": { "const": "scoped", "description": "Specific actions across all provider leases." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Global list of permitted actions across all owned leases (no duplicates)." } } }, "leases-granular": { "type": "object", "additionalProperties": false, "required": ["access", "permissions"], "properties": { "access": { "const": "granular", "description": "Provider-specific permissions." }, "permissions": { "type": "array", "description": "Defines provider-specific permissions. The provider address must be unique across all permissions entries.", "minItems": 1, "items": { "$ref": "#/definitions/lease-permission" } } } }, "lease-permission": { "type": "object", "description": "Provider-level access: 'full' for all actions, 'scoped' for specific actions across all provider leases, 'granular' for deployment-specific actions.", "oneOf": [{ "$ref": "#/definitions/lease-permission-full" }, { "$ref": "#/definitions/lease-permission-scoped" }, { "$ref": "#/definitions/lease-permission-granular" }] }, "lease-permission-full": { "type": "object", "additionalProperties": false, "required": ["provider", "access"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "full", "description": "Full access to all actions on this provider's leases." } } }, "lease-permission-scoped": { "type": "object", "additionalProperties": false, "required": ["provider", "access", "scope"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "scoped", "description": "Specific actions across all this provider's leases." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Provider-level list of permitted actions (no duplicates)." } } }, "lease-permission-granular": { "type": "object", "additionalProperties": false, "required": ["provider", "access", "deployments"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "granular", "description": "Deployment-specific actions." }, "deployments": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/lease-permission-deployment" } } } }, "lease-permission-deployment": { "type": "object", "additionalProperties": false, "required": ["dseq", "scope", "services"], "properties": { "dseq": { "type": "integer", "minimum": 1, "description": "Deployment sequence number." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Deployment-level list of permitted actions (no duplicates)." }, "gseq": { "type": "integer", "minimum": 0, "description": "Group sequence number (requires dseq)." }, "oseq": { "type": "integer", "minimum": 0, "description": "Order sequence number (requires dseq and gseq)." }, "services": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 }, "description": "List of service names (requires dseq)." } }, "dependencies": { "oseq": ["gseq"] } } } };
4630
+ var schema11 = { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/akash-network/chain-sdk/refs/heads/main/specs/jwt-schema.json", "title": "Akash JWT Schema", "description": "JSON Schema for JWT used in the Akash Provider API.", "type": "object", "additionalProperties": false, "required": ["iss", "iat", "exp", "nbf", "version", "leases"], "properties": { "iss": { "$ref": "#/definitions/akash-address", "description": "Akash address of the lease(s) owner, e.g., akash1abcd... (44 characters)" }, "iat": { "type": "integer", "minimum": 0, "description": "Token issuance timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be <= exp and >= nbf." }, "nbf": { "type": "integer", "minimum": 0, "description": "Not valid before timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be <= iat." }, "exp": { "type": "integer", "minimum": 0, "description": "Expiration timestamp as Unix time (seconds since 1970-01-01T00:00:00Z). Should be >= iat." }, "jti": { "type": "string", "minLength": 1, "description": "Unique identifier for the JWT, used to prevent token reuse." }, "version": { "type": "string", "enum": ["v1"], "description": "Version of the JWT specification (currently fixed at v1)." }, "leases": { "$ref": "#/definitions/leases" } }, "definitions": { "akash-address": { "type": "string", "pattern": "^akash1[a-z0-9]{38}$" }, "action-scope": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": ["send-manifest", "get-manifest", "logs", "shell", "events", "status", "restart", "hostname-migrate", "ip-migrate", "attestation"] } }, "leases": { "type": "object", "description": "Access level for the lease: 'full' for unrestricted access to all actions, 'scoped' for specific actions across all provider leases, 'granular' for provider-specific permissions.", "oneOf": [{ "$ref": "#/definitions/leases-full" }, { "$ref": "#/definitions/leases-scoped" }, { "$ref": "#/definitions/leases-granular" }] }, "leases-full": { "type": "object", "additionalProperties": false, "required": ["access"], "properties": { "access": { "const": "full", "description": "Unrestricted access to all actions on all leases." } } }, "leases-scoped": { "type": "object", "additionalProperties": false, "required": ["access", "scope"], "properties": { "access": { "const": "scoped", "description": "Specific actions across all provider leases." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Global list of permitted actions across all owned leases (no duplicates)." } } }, "leases-granular": { "type": "object", "additionalProperties": false, "required": ["access", "permissions"], "properties": { "access": { "const": "granular", "description": "Provider-specific permissions." }, "permissions": { "type": "array", "description": "Defines provider-specific permissions. The provider address must be unique across all permissions entries.", "minItems": 1, "items": { "$ref": "#/definitions/lease-permission" } } } }, "lease-permission": { "type": "object", "description": "Provider-level access: 'full' for all actions, 'scoped' for specific actions across all provider leases, 'granular' for deployment-specific actions.", "oneOf": [{ "$ref": "#/definitions/lease-permission-full" }, { "$ref": "#/definitions/lease-permission-scoped" }, { "$ref": "#/definitions/lease-permission-granular" }] }, "lease-permission-full": { "type": "object", "additionalProperties": false, "required": ["provider", "access"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "full", "description": "Full access to all actions on this provider's leases." } } }, "lease-permission-scoped": { "type": "object", "additionalProperties": false, "required": ["provider", "access", "scope"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "scoped", "description": "Specific actions across all this provider's leases." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Provider-level list of permitted actions (no duplicates)." } } }, "lease-permission-granular": { "type": "object", "additionalProperties": false, "required": ["provider", "access", "deployments"], "properties": { "provider": { "$ref": "#/definitions/akash-address", "description": "Provider address, e.g., akash1xyz... (44 characters)." }, "access": { "const": "granular", "description": "Deployment-specific actions." }, "deployments": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/lease-permission-deployment" } } } }, "lease-permission-deployment": { "type": "object", "additionalProperties": false, "required": ["dseq", "scope", "services"], "properties": { "dseq": { "type": "integer", "minimum": 1, "description": "Deployment sequence number." }, "scope": { "$ref": "#/definitions/action-scope", "description": "Deployment-level list of permitted actions (no duplicates)." }, "gseq": { "type": "integer", "minimum": 0, "description": "Group sequence number (requires dseq)." }, "oseq": { "type": "integer", "minimum": 0, "description": "Order sequence number (requires dseq and gseq)." }, "services": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 }, "description": "List of service names (requires dseq)." } }, "dependencies": { "oseq": ["gseq"] } } } };
4594
4631
  var pattern0 = new RegExp("^akash1[a-z0-9]{38}$", "u");
4595
4632
  var func22 = require_ucs2length2().default;
4596
- var schema16 = { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": ["send-manifest", "get-manifest", "logs", "shell", "events", "status", "restart", "hostname-migrate", "ip-migrate"] } };
4633
+ var schema16 = { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": ["send-manifest", "get-manifest", "logs", "shell", "events", "status", "restart", "hostname-migrate", "ip-migrate", "attestation"] } };
4597
4634
  function validate12(data, { instancePath = "", parentData, parentDataProperty, rootData = data } = {}) {
4598
4635
  let vErrors = null;
4599
4636
  let errors = 0;
@@ -4662,7 +4699,7 @@ function validate12(data, { instancePath = "", parentData, parentDataProperty, r
4662
4699
  }
4663
4700
  errors++;
4664
4701
  }
4665
- if (!(data2 === "send-manifest" || data2 === "get-manifest" || data2 === "logs" || data2 === "shell" || data2 === "events" || data2 === "status" || data2 === "restart" || data2 === "hostname-migrate" || data2 === "ip-migrate")) {
4702
+ if (!(data2 === "send-manifest" || data2 === "get-manifest" || data2 === "logs" || data2 === "shell" || data2 === "events" || data2 === "status" || data2 === "restart" || data2 === "hostname-migrate" || data2 === "ip-migrate" || data2 === "attestation")) {
4666
4703
  const err6 = { instancePath: instancePath + "/scope/" + i0, schemaPath: "#/definitions/action-scope/items/enum", keyword: "enum", params: { allowedValues: schema16.items.enum }, message: "must be equal to one of the allowed values" };
4667
4704
  if (vErrors === null) {
4668
4705
  vErrors = [err6];
@@ -4894,7 +4931,7 @@ function validate18(data, { instancePath = "", parentData, parentDataProperty, r
4894
4931
  }
4895
4932
  errors++;
4896
4933
  }
4897
- if (!(data3 === "send-manifest" || data3 === "get-manifest" || data3 === "logs" || data3 === "shell" || data3 === "events" || data3 === "status" || data3 === "restart" || data3 === "hostname-migrate" || data3 === "ip-migrate")) {
4934
+ if (!(data3 === "send-manifest" || data3 === "get-manifest" || data3 === "logs" || data3 === "shell" || data3 === "events" || data3 === "status" || data3 === "restart" || data3 === "hostname-migrate" || data3 === "ip-migrate" || data3 === "attestation")) {
4898
4935
  const err9 = { instancePath: instancePath + "/scope/" + i0, schemaPath: "#/definitions/action-scope/items/enum", keyword: "enum", params: { allowedValues: schema16.items.enum }, message: "must be equal to one of the allowed values" };
4899
4936
  if (vErrors === null) {
4900
4937
  vErrors = [err9];
@@ -5054,7 +5091,7 @@ function validate21(data, { instancePath = "", parentData, parentDataProperty, r
5054
5091
  }
5055
5092
  errors++;
5056
5093
  }
5057
- if (!(data2 === "send-manifest" || data2 === "get-manifest" || data2 === "logs" || data2 === "shell" || data2 === "events" || data2 === "status" || data2 === "restart" || data2 === "hostname-migrate" || data2 === "ip-migrate")) {
5094
+ if (!(data2 === "send-manifest" || data2 === "get-manifest" || data2 === "logs" || data2 === "shell" || data2 === "events" || data2 === "status" || data2 === "restart" || data2 === "hostname-migrate" || data2 === "ip-migrate" || data2 === "attestation")) {
5058
5095
  const err9 = { instancePath: instancePath + "/scope/" + i0, schemaPath: "#/definitions/action-scope/items/enum", keyword: "enum", params: { allowedValues: schema16.items.enum }, message: "must be equal to one of the allowed values" };
5059
5096
  if (vErrors === null) {
5060
5097
  vErrors = [err9];
@@ -9071,4 +9108,4 @@ export {
9071
9108
  isRetryEnabled,
9072
9109
  createTxTransport
9073
9110
  };
9074
- //# sourceMappingURL=chunk-J7CMFG4J.js.map
9111
+ //# sourceMappingURL=chunk-WBBS4OZV.js.map