@akashnetwork/chain-sdk 1.0.0-alpha.41 → 1.0.0-alpha.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generated/createNodeSDK.cjs +328 -5
- package/dist/cjs/generated/createNodeSDK.cjs.map +2 -2
- package/dist/cjs/generated/createProviderSDK.cjs +36 -19
- package/dist/cjs/generated/createProviderSDK.cjs.map +2 -2
- package/dist/cjs/generated/patches/nodeCustomTypePatches.cjs +6 -0
- package/dist/cjs/generated/patches/nodeCustomTypePatches.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/base/attributes/v1/attribute.cjs +18 -2
- package/dist/cjs/generated/protos/akash/base/attributes/v1/attribute.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/inventory/v1/snapshot.cjs +943 -0
- package/dist/cjs/generated/protos/akash/inventory/v1/snapshot.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/inventory/v1/snapshot_akash.cjs +50 -0
- package/dist/cjs/generated/protos/akash/inventory/v1/snapshot_akash.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/manifest/v2beta3/httpoptions.cjs +159 -2
- package/dist/cjs/generated/protos/akash/manifest/v2beta3/httpoptions.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/market/v1/stats.cjs +248 -0
- package/dist/cjs/generated/protos/akash/market/v1/stats.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/market/v1/types.cjs +6 -0
- package/dist/cjs/generated/protos/akash/market/v1/types.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/market/v1beta5/query.cjs +139 -1
- package/dist/cjs/generated/protos/akash/market/v1beta5/query.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/market/v1beta5/query_akash.cjs +9 -0
- package/dist/cjs/generated/protos/akash/market/v1beta5/query_akash.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/event.cjs +266 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/event.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/genesis.cjs +71 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/genesis.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/maintenance.cjs +417 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/maintenance.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/msg.cjs +321 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/msg.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/params.cjs +96 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/params.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/paramsmsg.cjs +132 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/paramsmsg.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/provider.cjs +88 -1
- package/dist/cjs/generated/protos/akash/provider/v1beta4/provider.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/query.cjs +462 -1
- package/dist/cjs/generated/protos/akash/provider/v1beta4/query.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/query_akash.cjs +36 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/query_akash.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/provider/v1beta4/service_akash.cjs +25 -0
- package/dist/cjs/generated/protos/akash/provider/v1beta4/service_akash.cjs.map +2 -2
- package/dist/cjs/generated/protos/akash/verification/v1/event.cjs +2525 -0
- package/dist/cjs/generated/protos/akash/verification/v1/event.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/genesis.cjs +253 -0
- package/dist/cjs/generated/protos/akash/verification/v1/genesis.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/msg.cjs +2774 -0
- package/dist/cjs/generated/protos/akash/verification/v1/msg.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/params.cjs +1044 -0
- package/dist/cjs/generated/protos/akash/verification/v1/params.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/query.cjs +1559 -0
- package/dist/cjs/generated/protos/akash/verification/v1/query.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/query_akash.cjs +147 -0
- package/dist/cjs/generated/protos/akash/verification/v1/query_akash.cjs.map +7 -0
- package/dist/cjs/{sdl/types.cjs → generated/protos/akash/verification/v1/service.cjs} +3 -3
- package/dist/cjs/generated/protos/akash/verification/v1/service.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/service_akash.cjs +190 -0
- package/dist/cjs/generated/protos/akash/verification/v1/service_akash.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/state.cjs +2018 -0
- package/dist/cjs/generated/protos/akash/verification/v1/state.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/types.cjs +1071 -0
- package/dist/cjs/generated/protos/akash/verification/v1/types.cjs.map +7 -0
- package/dist/cjs/generated/protos/akash/verification/v1/verificationrequirement.cjs +148 -0
- package/dist/cjs/generated/protos/akash/verification/v1/verificationrequirement.cjs.map +7 -0
- package/dist/cjs/generated/protos/index.akash.v1.cjs +166 -25
- package/dist/cjs/generated/protos/index.akash.v1.cjs.map +3 -3
- package/dist/cjs/generated/protos/index.akash.v1beta4.cjs +25 -0
- package/dist/cjs/generated/protos/index.akash.v1beta4.cjs.map +3 -3
- package/dist/cjs/generated/protos/index.akash.v1beta5.cjs +2 -0
- package/dist/cjs/generated/protos/index.akash.v1beta5.cjs.map +2 -2
- package/dist/cjs/generated/protos/index.provider.akash.v1.cjs +9 -0
- package/dist/cjs/generated/protos/index.provider.akash.v1.cjs.map +2 -2
- package/dist/cjs/generated/protos/index.provider.akash.v2beta3.cjs +1 -0
- package/dist/cjs/generated/protos/index.provider.akash.v2beta3.cjs.map +2 -2
- package/dist/cjs/sdl/duration.cjs +44 -0
- package/dist/cjs/sdl/duration.cjs.map +7 -0
- package/dist/cjs/sdl/httpTimeout.cjs +59 -0
- package/dist/cjs/sdl/httpTimeout.cjs.map +7 -0
- package/dist/cjs/sdl/index.cjs +0 -2
- package/dist/cjs/sdl/index.cjs.map +2 -2
- package/dist/cjs/sdl/manifest/generateManifest.cjs +20 -1
- package/dist/cjs/sdl/manifest/generateManifest.cjs.map +2 -2
- package/dist/cjs/sdl/manifest/generateManifestVersion.cjs +11 -0
- package/dist/cjs/sdl/manifest/generateManifestVersion.cjs.map +2 -2
- package/dist/cjs/sdl/manifest/manifestUtils.cjs +10 -2
- package/dist/cjs/sdl/manifest/manifestUtils.cjs.map +2 -2
- package/dist/cjs/sdl/manifest/reclamationDuration.cjs +4 -5
- package/dist/cjs/sdl/manifest/reclamationDuration.cjs.map +3 -3
- package/dist/cjs/sdl/validateSDL/validateSDL.cjs +28 -1
- package/dist/cjs/sdl/validateSDL/validateSDL.cjs.map +2 -2
- package/dist/cjs/sdl/validateSDL/validateSDLInput.cjs +853 -454
- package/dist/cjs/sdl/validateSDL/validateSDLInput.cjs.map +2 -2
- package/dist/esm/chunk-2NPYA3YV.js +1563 -0
- package/dist/esm/chunk-2NPYA3YV.js.map +7 -0
- package/dist/esm/{chunk-4SZHF6SE.js → chunk-3U5XKNEU.js} +3 -3
- package/dist/esm/chunk-474YCD2T.js +356 -0
- package/dist/esm/chunk-474YCD2T.js.map +7 -0
- package/dist/esm/chunk-4CTTYO4O.js +890 -0
- package/dist/esm/chunk-4CTTYO4O.js.map +7 -0
- package/dist/esm/{chunk-IKTMMFJ5.js → chunk-54RECHZZ.js} +2 -2
- package/dist/esm/{chunk-WCUR732W.js → chunk-57534UAR.js} +2 -2
- package/dist/esm/{chunk-UHI2V2WP.js → chunk-5VWXQLXG.js} +1331 -489
- package/dist/esm/chunk-5VWXQLXG.js.map +7 -0
- package/dist/esm/{chunk-B4YVLEG7.js → chunk-7F3NJG67.js} +3 -3
- package/dist/esm/chunk-AIWCRXMP.js +672 -0
- package/dist/esm/chunk-AIWCRXMP.js.map +7 -0
- package/dist/esm/{chunk-XAOERZEY.js → chunk-AKNHD3CM.js} +2 -2
- package/dist/esm/chunk-BI4YL5KH.js +2742 -0
- package/dist/esm/chunk-BI4YL5KH.js.map +7 -0
- package/dist/esm/{chunk-ZGK4PJCD.js → chunk-BQNJHJXY.js} +3 -3
- package/dist/esm/{chunk-YBRE4XNB.js → chunk-CFEWW2ER.js} +2 -2
- package/dist/esm/{chunk-EJQUNX4L.js → chunk-DCLXPAMC.js} +3 -3
- package/dist/esm/{chunk-AR26HCRY.js → chunk-F4IQOYFH.js} +2 -2
- package/dist/esm/{chunk-ENZ3OBCL.js → chunk-F7KT5EX5.js} +2 -2
- package/dist/esm/{chunk-3QS3CMF4.js → chunk-GRGSTKN3.js} +2 -2
- package/dist/esm/{chunk-TTQ36NQ5.js → chunk-HRN6NSO2.js} +2 -2
- package/dist/esm/{chunk-E7KECYS7.js → chunk-IEWLP7PR.js} +7 -1
- package/dist/esm/chunk-IEWLP7PR.js.map +7 -0
- package/dist/esm/chunk-IFKY7FXY.js +484 -0
- package/dist/esm/chunk-IFKY7FXY.js.map +7 -0
- package/dist/esm/chunk-J4CJEGEM.js +3016 -0
- package/dist/esm/chunk-J4CJEGEM.js.map +7 -0
- package/dist/esm/{chunk-N42ATJOO.js → chunk-M5P5LAJJ.js} +2 -2
- package/dist/esm/{chunk-3K7Q5MUF.js → chunk-MIJCN6AD.js} +2 -2
- package/dist/esm/{chunk-OYI3IQIV.js → chunk-NNB5QBR2.js} +2 -2
- package/dist/esm/{chunk-WMSUADX2.js → chunk-OJ54L3XZ.js} +4 -4
- package/dist/esm/{chunk-5ODS4QTF.js → chunk-P64VHYRM.js} +2 -2
- package/dist/esm/{chunk-MFZVOFPX.js → chunk-PAOVIX5L.js} +3 -3
- package/dist/esm/chunk-PEHPXXTS.js +1053 -0
- package/dist/esm/chunk-PEHPXXTS.js.map +7 -0
- package/dist/esm/chunk-PTMMQODC.js +760 -0
- package/dist/esm/chunk-PTMMQODC.js.map +7 -0
- package/dist/esm/{chunk-ZXN75Q55.js → chunk-PWXFQ5FI.js} +3 -3
- package/dist/esm/{chunk-CZGHFBAO.js → chunk-PYD5MY63.js} +131 -9
- package/dist/esm/chunk-PYD5MY63.js.map +7 -0
- package/dist/esm/{chunk-NP4QQMME.js → chunk-RJZ46VHV.js} +2 -2
- package/dist/esm/chunk-SK7LOVVI.js +660 -0
- package/dist/esm/chunk-SK7LOVVI.js.map +7 -0
- package/dist/esm/{chunk-ZRZ6LUI2.js → chunk-TN4W5NLC.js} +7 -1
- package/dist/esm/chunk-TN4W5NLC.js.map +7 -0
- package/dist/esm/chunk-VYCICKFV.js +698 -0
- package/dist/esm/chunk-VYCICKFV.js.map +7 -0
- package/dist/esm/{chunk-4TSICBUM.js → chunk-W3TLZPTC.js} +3 -3
- package/dist/esm/{chunk-M2RS2IFR.js → chunk-WNFIFYG2.js} +2 -2
- package/dist/esm/{chunk-CVX7ZJQR.js → chunk-XP2XNYEA.js} +161 -4
- package/dist/esm/chunk-XP2XNYEA.js.map +7 -0
- package/dist/esm/{chunk-SGDEIQ7L.js → chunk-Y7BVCD32.js} +3 -3
- package/dist/esm/generated/protos/index.akash.v1.js +2988 -77
- package/dist/esm/generated/protos/index.akash.v1.js.map +4 -4
- package/dist/esm/generated/protos/index.akash.v1beta4.js +58 -13
- package/dist/esm/generated/protos/index.akash.v1beta5.js +17 -12
- package/dist/esm/generated/protos/index.akash.v1beta5.js.map +1 -1
- package/dist/esm/generated/protos/index.akash.v2.js +4 -4
- package/dist/esm/generated/protos/index.provider.akash.v1.js +29 -10
- package/dist/esm/generated/protos/index.provider.akash.v2beta3.js +7 -4
- package/dist/esm/index.js +54 -36
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.web.js +14 -13
- package/dist/esm/index.web.js.map +1 -1
- package/dist/esm/{query_akash-I3RPHLVA.js → query_akash-BTYAA6UN.js} +5 -5
- package/dist/esm/{query_akash-QF2LHJQN.js → query_akash-EG43V2QH.js} +4 -4
- package/dist/esm/{query_akash-44SHG3FL.js → query_akash-HCIMNA7T.js} +4 -3
- package/dist/esm/{query_akash-44SHG3FL.js.map → query_akash-HCIMNA7T.js.map} +1 -1
- package/dist/esm/{query_akash-72TFPQBZ.js → query_akash-HN4NCENR.js} +4 -4
- package/dist/esm/query_akash-KU4YCMUU.js +85 -0
- package/dist/esm/query_akash-KU4YCMUU.js.map +7 -0
- package/dist/esm/{query_akash-TZ6F7OO4.js → query_akash-LSGWB5MI.js} +24 -12
- package/dist/esm/query_akash-LSGWB5MI.js.map +7 -0
- package/dist/esm/{query_akash-54EYS6GQ.js → query_akash-SOJJMCBH.js} +8 -7
- package/dist/esm/{query_akash-54EYS6GQ.js.map → query_akash-SOJJMCBH.js.map} +1 -1
- package/dist/esm/{query_akash-EGFDDA4L.js → query_akash-SVNQ4S67.js} +4 -4
- package/dist/esm/query_akash-XYSUQTZC.js +164 -0
- package/dist/esm/query_akash-XYSUQTZC.js.map +7 -0
- package/dist/esm/{service_akash-KRCYHNCN.js → service_akash-3R3TC3PH.js} +4 -3
- package/dist/esm/{service_akash-KRCYHNCN.js.map → service_akash-3R3TC3PH.js.map} +1 -1
- package/dist/esm/{service_akash-CEAZGGZS.js → service_akash-43EJ5RKY.js} +8 -7
- package/dist/esm/{service_akash-CEAZGGZS.js.map → service_akash-43EJ5RKY.js.map} +1 -1
- package/dist/esm/{service_akash-YXSRY4G3.js → service_akash-AXWB3IDG.js} +7 -6
- package/dist/esm/{service_akash-YXSRY4G3.js.map → service_akash-AXWB3IDG.js.map} +1 -1
- package/dist/esm/{service_akash-Z4CR3DWY.js → service_akash-BZTUHKJO.js} +8 -7
- package/dist/esm/{service_akash-Z4CR3DWY.js.map → service_akash-BZTUHKJO.js.map} +1 -1
- package/dist/esm/{service_akash-JQKI2SJP.js → service_akash-HFGWADC2.js} +4 -4
- package/dist/esm/{service_akash-SXXXZL6K.js → service_akash-KAJJV7LX.js} +4 -4
- package/dist/esm/service_akash-KYLB3OP3.js +78 -0
- package/dist/esm/service_akash-KYLB3OP3.js.map +7 -0
- package/dist/esm/service_akash-LJBOWZZG.js +221 -0
- package/dist/esm/service_akash-LJBOWZZG.js.map +7 -0
- package/dist/esm/{service_akash-PFTEVUGK.js → service_akash-QTGRTXLG.js} +4 -4
- package/dist/esm/{service_akash-44MLEMTW.js → service_akash-T36Y5DCD.js} +4 -3
- package/dist/esm/{service_akash-44MLEMTW.js.map → service_akash-T36Y5DCD.js.map} +1 -1
- package/dist/esm/{service_akash-ZITNWRBM.js → service_akash-X4HCN3EG.js} +9 -8
- package/dist/esm/{service_akash-ZITNWRBM.js.map → service_akash-X4HCN3EG.js.map} +1 -1
- package/dist/esm/snapshot_akash-KH5X5W3B.js +41 -0
- package/dist/esm/snapshot_akash-KH5X5W3B.js.map +7 -0
- package/dist/sdl-schema.yaml +84 -8
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/generated/createNodeSDK.d.ts +473 -0
- package/dist/types/generated/createProviderSDK.d.ts +31 -0
- package/dist/types/generated/patches/nodeCustomTypePatches.d.ts +8 -0
- package/dist/types/generated/protos/akash/base/attributes/v1/attribute.d.ts +3 -0
- package/dist/types/generated/protos/akash/inventory/v1/snapshot.d.ts +112 -0
- package/dist/types/generated/protos/akash/inventory/v1/snapshot_akash.d.ts +22 -0
- package/dist/types/generated/protos/akash/manifest/v2beta3/httpoptions.d.ts +35 -0
- package/dist/types/generated/protos/akash/market/v1/stats.d.ts +35 -0
- package/dist/types/generated/protos/akash/market/v1/types.d.ts +5 -3
- package/dist/types/generated/protos/akash/market/v1beta5/query.d.ts +29 -0
- package/dist/types/generated/protos/akash/market/v1beta5/query_akash.d.ts +8 -1
- package/dist/types/generated/protos/akash/provider/v1beta4/event.d.ts +40 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/genesis.d.ts +11 -1
- package/dist/types/generated/protos/akash/provider/v1beta4/maintenance.d.ts +87 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/msg.d.ts +57 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/params.d.ts +17 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/paramsmsg.d.ts +22 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/provider.d.ts +13 -0
- package/dist/types/generated/protos/akash/provider/v1beta4/query.d.ts +93 -1
- package/dist/types/generated/protos/akash/provider/v1beta4/query_akash.d.ts +29 -1
- package/dist/types/generated/protos/akash/provider/v1beta4/service_akash.d.ts +20 -1
- package/dist/types/generated/protos/akash/verification/v1/event.d.ts +339 -0
- package/dist/types/generated/protos/akash/verification/v1/genesis.d.ts +45 -0
- package/dist/types/generated/protos/akash/verification/v1/msg.d.ts +614 -0
- package/dist/types/generated/protos/akash/verification/v1/params.d.ts +147 -0
- package/dist/types/generated/protos/akash/verification/v1/query.d.ts +290 -0
- package/dist/types/generated/protos/akash/verification/v1/query_akash.d.ts +97 -0
- package/dist/types/generated/protos/akash/verification/v1/service.d.ts +1 -0
- package/dist/types/generated/protos/akash/verification/v1/service_akash.d.ts +126 -0
- package/dist/types/generated/protos/akash/verification/v1/state.d.ts +320 -0
- package/dist/types/generated/protos/akash/verification/v1/types.d.ts +348 -0
- package/dist/types/generated/protos/akash/verification/v1/verificationrequirement.d.ts +36 -0
- package/dist/types/generated/protos/index.akash.v1.d.ts +9 -0
- package/dist/types/generated/protos/index.akash.v1beta4.d.ts +7 -4
- package/dist/types/generated/protos/index.akash.v1beta5.d.ts +1 -1
- package/dist/types/generated/protos/index.provider.akash.v1.d.ts +1 -0
- package/dist/types/generated/protos/index.provider.akash.v2beta3.d.ts +1 -1
- package/dist/types/sdk/chain/createChainNodeSDK.d.ts +45 -0
- package/dist/types/sdk/chain/createChainNodeWebSDK.d.ts +45 -0
- package/dist/types/sdl/duration.d.ts +13 -0
- package/dist/types/sdl/httpTimeout.d.ts +10 -0
- package/dist/types/sdl/index.d.ts +0 -1
- package/dist/types/sdl/manifest/reclamationDuration.d.ts +3 -7
- package/dist/types/sdl/validateSDL/validateSDLInput.d.ts +131 -16
- package/package.json +1 -1
- package/dist/cjs/sdl/types.cjs.map +0 -7
- package/dist/esm/chunk-C3WV6GJ6.js +0 -234
- package/dist/esm/chunk-C3WV6GJ6.js.map +0 -7
- package/dist/esm/chunk-CVX7ZJQR.js.map +0 -7
- package/dist/esm/chunk-CZGHFBAO.js.map +0 -7
- package/dist/esm/chunk-E7KECYS7.js.map +0 -7
- package/dist/esm/chunk-IVLF3VVZ.js +0 -364
- package/dist/esm/chunk-IVLF3VVZ.js.map +0 -7
- package/dist/esm/chunk-MV27RM25.js +0 -368
- package/dist/esm/chunk-MV27RM25.js.map +0 -7
- package/dist/esm/chunk-S2CZQ6AM.js +0 -211
- package/dist/esm/chunk-S2CZQ6AM.js.map +0 -7
- package/dist/esm/chunk-SXGU4O34.js +0 -258
- package/dist/esm/chunk-SXGU4O34.js.map +0 -7
- package/dist/esm/chunk-UHI2V2WP.js.map +0 -7
- package/dist/esm/chunk-V42TLXWK.js +0 -177
- package/dist/esm/chunk-V42TLXWK.js.map +0 -7
- package/dist/esm/chunk-ZRZ6LUI2.js.map +0 -7
- package/dist/esm/query_akash-N3FPIXVQ.js +0 -39
- package/dist/esm/query_akash-N3FPIXVQ.js.map +0 -7
- package/dist/esm/query_akash-TZ6F7OO4.js.map +0 -7
- package/dist/esm/service_akash-5AUMDLU5.js +0 -46
- package/dist/esm/service_akash-5AUMDLU5.js.map +0 -7
- package/dist/types/sdl/types.d.ts +0 -305
- /package/dist/esm/{chunk-4SZHF6SE.js.map → chunk-3U5XKNEU.js.map} +0 -0
- /package/dist/esm/{chunk-IKTMMFJ5.js.map → chunk-54RECHZZ.js.map} +0 -0
- /package/dist/esm/{chunk-WCUR732W.js.map → chunk-57534UAR.js.map} +0 -0
- /package/dist/esm/{chunk-B4YVLEG7.js.map → chunk-7F3NJG67.js.map} +0 -0
- /package/dist/esm/{chunk-XAOERZEY.js.map → chunk-AKNHD3CM.js.map} +0 -0
- /package/dist/esm/{chunk-ZGK4PJCD.js.map → chunk-BQNJHJXY.js.map} +0 -0
- /package/dist/esm/{chunk-YBRE4XNB.js.map → chunk-CFEWW2ER.js.map} +0 -0
- /package/dist/esm/{chunk-EJQUNX4L.js.map → chunk-DCLXPAMC.js.map} +0 -0
- /package/dist/esm/{chunk-AR26HCRY.js.map → chunk-F4IQOYFH.js.map} +0 -0
- /package/dist/esm/{chunk-ENZ3OBCL.js.map → chunk-F7KT5EX5.js.map} +0 -0
- /package/dist/esm/{chunk-3QS3CMF4.js.map → chunk-GRGSTKN3.js.map} +0 -0
- /package/dist/esm/{chunk-TTQ36NQ5.js.map → chunk-HRN6NSO2.js.map} +0 -0
- /package/dist/esm/{chunk-N42ATJOO.js.map → chunk-M5P5LAJJ.js.map} +0 -0
- /package/dist/esm/{chunk-3K7Q5MUF.js.map → chunk-MIJCN6AD.js.map} +0 -0
- /package/dist/esm/{chunk-OYI3IQIV.js.map → chunk-NNB5QBR2.js.map} +0 -0
- /package/dist/esm/{chunk-WMSUADX2.js.map → chunk-OJ54L3XZ.js.map} +0 -0
- /package/dist/esm/{chunk-5ODS4QTF.js.map → chunk-P64VHYRM.js.map} +0 -0
- /package/dist/esm/{chunk-MFZVOFPX.js.map → chunk-PAOVIX5L.js.map} +0 -0
- /package/dist/esm/{chunk-ZXN75Q55.js.map → chunk-PWXFQ5FI.js.map} +0 -0
- /package/dist/esm/{chunk-NP4QQMME.js.map → chunk-RJZ46VHV.js.map} +0 -0
- /package/dist/esm/{chunk-4TSICBUM.js.map → chunk-W3TLZPTC.js.map} +0 -0
- /package/dist/esm/{chunk-M2RS2IFR.js.map → chunk-WNFIFYG2.js.map} +0 -0
- /package/dist/esm/{chunk-SGDEIQ7L.js.map → chunk-Y7BVCD32.js.map} +0 -0
- /package/dist/esm/{query_akash-I3RPHLVA.js.map → query_akash-BTYAA6UN.js.map} +0 -0
- /package/dist/esm/{query_akash-QF2LHJQN.js.map → query_akash-EG43V2QH.js.map} +0 -0
- /package/dist/esm/{query_akash-72TFPQBZ.js.map → query_akash-HN4NCENR.js.map} +0 -0
- /package/dist/esm/{query_akash-EGFDDA4L.js.map → query_akash-SVNQ4S67.js.map} +0 -0
- /package/dist/esm/{service_akash-JQKI2SJP.js.map → service_akash-HFGWADC2.js.map} +0 -0
- /package/dist/esm/{service_akash-SXXXZL6K.js.map → service_akash-KAJJV7LX.js.map} +0 -0
- /package/dist/esm/{service_akash-PFTEVUGK.js.map → service_akash-QTGRTXLG.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/sdl/validateSDL/validateSDL.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ErrorMessages, ValidationError, ValidationFunction } from \"../../utils/jsonSchemaValidation.ts\";\nimport { dirname, getErrorLocation, humanizeErrors } from \"../../utils/jsonSchemaValidation.ts\";\nimport { INTERCONNECT_GROUP_AUTO, resolveInterconnectGroup } from \"../manifest/manifestUtils.ts\";\nimport { castArray, stringToBoolean } from \"../utils.ts\";\nimport { schema as validationSDLSchema, type SDLInput, validate as validateSDLInput } from \"./validateSDLInput.ts\";\n\nexport { validationSDLSchema };\nexport type { SDLInput };\n\nconst ERROR_MESSAGES: ErrorMessages = {\n \"#/definitions/storageRamClassMustNotBePersistent\"(error) {\n return `\"ram\" storage${getErrorLocation(dirname(error.instancePath))} cannot be persistent`;\n },\n \"#/definitions/exposeToWithIpEnforcesGlobal\"() {\n return `If an IP is declared, the directive must be declared as global.`;\n },\n // Mirrors the shared schema's `min_window` pattern (`^[1-9][0-9]*(s|m|h)$`).\n // Go stays the lenient layer (`go/sdl/reclamation.go` accepts any `> 0`\n // `time.ParseDuration`), so this is a sanctioned schema-only-stricter rule.\n \"#/properties/reclamation/properties/min_window/pattern\"() {\n return `Reclamation min_window must be a whole number followed by s, m, or h (e.g. \"24h\", \"30m\").`;\n },\n};\n\nexport function validateSDL(sdl: SDLInput): undefined | ValidationError[] {\n validateSDLInput(sdl);\n const schemaErrors = humanizeErrors((validateSDLInput as ValidationFunction).errors, validationSDLSchema, ERROR_MESSAGES);\n if (schemaErrors.length) return schemaErrors;\n\n const validator = new SDLValidator(sdl);\n const errors = validator.validate();\n\n const allErrors = schemaErrors.concat(errors);\n return allErrors.length ? allErrors : undefined;\n}\n\nclass SDLValidator {\n readonly #endpointsUsed = new Set<string>();\n readonly #portsUsed = new Map<string, string>();\n readonly #teeTypeByPlacement = new Map<string, string>();\n readonly #sdl: SDLInput;\n readonly #errors: ValidationError[] = [];\n\n constructor(sdl: SDLInput) {\n this.#sdl = sdl;\n }\n\n validate() {\n if (this.#sdl.services) {\n Object.keys(this.#sdl.services).forEach((serviceName) => {\n this.#validateDeploymentWithRelations(serviceName);\n this.#validateLeaseIP(serviceName);\n });\n }\n\n this.#validateInterconnect();\n this.#validateEndpoints();\n return this.#errors;\n }\n\n #validateDeploymentWithRelations(serviceName: string) {\n const deployment = this.#sdl.deployment[serviceName];\n if (!deployment) {\n this.#errors.push({\n message: `Service \"${serviceName}\" is not defined at \"/deployment\" section.`,\n instancePath: `/deployment`,\n schemaPath: \"#/properties/deployment\",\n keyword: \"required\",\n params: {\n missingProperty: serviceName,\n },\n });\n return;\n }\n\n Object.keys(this.#sdl.deployment[serviceName]).forEach((deploymentName) => {\n this.#validateDeploymentRelations(serviceName, deploymentName);\n this.#validateServiceStorages(serviceName, deploymentName);\n this.#validateStorages(serviceName, deploymentName);\n this.#validateGPU(serviceName, deploymentName);\n this.#validateTEE(serviceName, deploymentName);\n });\n }\n\n #validateDeploymentRelations(serviceName: string, deploymentName: string) {\n const serviceDeployment = this.#sdl.deployment?.[serviceName]?.[deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment?.profile];\n const infra = this.#sdl.profiles?.placement?.[deploymentName];\n\n if (!infra) {\n this.#errors.push({\n message: `The placement \"${deploymentName}\" is not defined in the \"placement\" section.`,\n instancePath: `/profiles/placement`,\n schemaPath: \"#/properties/profiles/properties/placement\",\n keyword: \"required\",\n params: {\n missingProperty: deploymentName,\n },\n });\n }\n\n if (infra && !infra.pricing?.[serviceDeployment?.profile]) {\n this.#errors.push({\n message: `The pricing for the \"${serviceDeployment?.profile}\" profile is not defined in the \"${deploymentName}\" placement.`,\n instancePath: `/profiles/placement/${deploymentName}/pricing`,\n schemaPath: \"#/properties/profiles/properties/placement/additionalProperties/properties/pricing\",\n keyword: \"required\",\n params: {\n missingProperty: serviceDeployment?.profile,\n },\n });\n }\n\n if (!compute) {\n this.#errors.push({\n message: `The compute requirements for the \"${serviceDeployment?.profile}\" profile are not defined in the \"compute\" section.`,\n instancePath: `/profiles/compute`,\n schemaPath: \"#/properties/profiles/properties/compute\",\n keyword: \"required\",\n params: {\n missingProperty: serviceDeployment?.profile,\n },\n });\n }\n }\n\n #validateServiceStorages(serviceName: string, deploymentName: string) {\n const service = this.#sdl.services?.[serviceName];\n const mounts: Record<string, string> = {};\n const serviceDeployment = this.#sdl.deployment[serviceName][deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment.profile];\n const storages = castArray(compute?.resources.storage);\n\n if (!service?.params?.storage) {\n return;\n }\n\n Object.entries(service.params.storage).forEach(([storageName, storage]) => {\n if (!storage) {\n this.#errors.push({\n message: `Storage \"${storageName}\" is not configured.`,\n instancePath: `/services/${serviceName}/params/storage/${storageName}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties\",\n keyword: \"required\",\n params: {\n missingProperty: storageName,\n },\n });\n return;\n }\n const storageNameExists = storages.some(({ name }) => name === storageName);\n if (!storageNameExists) {\n this.#errors.push({\n message: `Service \"${serviceName}\" references non-existing compute volume \"${storageName}\".`,\n instancePath: `/profiles/compute/${serviceDeployment.profile}/resources/storage`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/storage\",\n keyword: \"required\",\n params: {\n missingProperty: storageName,\n },\n });\n return;\n }\n\n const mount = String(storage.mount);\n const volumeName = mounts[mount];\n\n if (volumeName && !storage.mount) {\n this.#errors.push({\n message: \"Multiple root ephemeral storages are not allowed.\",\n instancePath: `/services/${serviceName}/params/storage/${storageName}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: volumeName,\n },\n });\n }\n if (volumeName && storage.mount) {\n this.#errors.push({\n message: `Mount \"${mount}\" already in use by volume \"${volumeName}\".`,\n instancePath: `/services/${serviceName}/params/storage/${storageName}/mount`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties/properties/mount\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: mount,\n },\n });\n }\n\n mounts[mount] = storageName;\n });\n }\n\n #validateStorages(serviceName: string, deploymentName: string) {\n const service = this.#sdl.services?.[serviceName];\n const serviceDeployment = this.#sdl.deployment[serviceName][deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment.profile];\n const storages = castArray(compute?.resources.storage);\n\n storages.forEach((storage) => {\n const persistent = stringToBoolean(storage.attributes?.persistent as string | boolean || false);\n\n if (persistent && !service?.params?.storage?.[storage.name || \"\"]?.mount) {\n this.#errors.push({\n message: `Persistent storage \"${storage.name || \"default\"}\" requires a mount path in /services/${serviceName}/params/storage/${storage.name || \"default\"}/mount.`,\n instancePath: `/services/${serviceName}/params/storage/${storage.name || \"default\"}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties/properties/mount\",\n keyword: \"required\",\n params: {\n missingProperty: \"mount\",\n },\n });\n }\n });\n }\n\n #validateGPU(serviceName: string, deploymentName: string) {\n const deployment = this.#sdl.deployment[serviceName];\n const compute = this.#sdl.profiles?.compute?.[deployment[deploymentName]?.profile];\n const gpu = compute?.resources.gpu;\n if (!gpu) return;\n\n const hasUnits = gpu.units !== undefined && gpu.units !== 0;\n const hasAttributes = typeof gpu.attributes !== \"undefined\";\n const hasVendor = hasAttributes && typeof gpu.attributes?.vendor !== \"undefined\";\n\n const profile = deployment[deploymentName]?.profile;\n const gpuPath = `/profiles/compute/${profile}/resources/gpu`;\n\n if (!hasUnits && hasAttributes) {\n this.#errors.push({\n message: \"GPU must not have attributes if units is 0.\",\n instancePath: `${gpuPath}/attributes`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: \"attributes\",\n },\n });\n }\n if (hasUnits && !hasAttributes) {\n this.#errors.push({\n message: \"GPU must have attributes if units is not 0.\",\n instancePath: gpuPath,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu\",\n keyword: \"required\",\n params: {\n missingProperty: \"attributes\",\n },\n });\n }\n if (hasUnits && !hasVendor) {\n this.#errors.push({\n message: \"GPU must specify a vendor if units is not 0.\",\n instancePath: `${gpuPath}/attributes`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/vendor\",\n keyword: \"required\",\n params: {\n missingProperty: \"vendor\",\n },\n });\n }\n\n // Note: the units==0 + interconnect/interconnect_group case is already rejected by\n // the schema-level rule `gpuAttributesRequireUnitsGt0` \u2014 it requires\n // units > 0 whenever any attribute (including interconnect / interconnect_group) is\n // present. So we don't need a duplicate semantic check here. The\n // Go parser (go/sdl/gpu.go) carries its own parse-time check because\n // YAML decoding has no schema layer above it.\n }\n\n // Mirror the Go-side validateInterconnect in go/sdl/v2.go. The TS\n // SDK enforces the same cross-field rules so tenants using\n // @akashnetwork/chain-sdk get the same fail-fast feedback as Go CLI\n // users (the chain doesn't validate SDL semantics). See\n // docs/sdl-interconnect-spec.md for the spec.\n //\n // 1. Any opt-in (implicit `[]` or explicit `{ group: <name> }`)\n // requires the placement to require\n // capabilities/gpu-interconnect=\"true\".\n // 2. The reserved name `auto` may not be written explicitly under\n // `interconnect: { group: ... }`. (Rule 2 is enforced at the\n // schema level via the JSON-schema oneOf, but checked here too\n // for a friendlier error message.)\n // 3. Within one placement, no mixing of implicit and explicit\n // opt-in forms \u2014 either every service uses `[]` or every service\n // uses a `{ group: ... }`.\n // 4. (Schema-level) `gpu.units == 0` with any interconnect opt-in\n // is rejected.\n #validateInterconnect() {\n const profiles = this.#sdl.profiles?.compute;\n const placements = this.#sdl.profiles?.placement;\n if (!profiles) return;\n\n // Rule 2: tenants cannot write `group: auto` under the explicit\n // mapping form. The JSON schema's `oneOf` already rules this out at\n // the structural level when the value is bare, but we surface a\n // friendly error here.\n for (const [profileName, compute] of Object.entries(profiles)) {\n const gpu = compute?.resources?.gpu;\n if (!gpu || gpu.units === 0 || gpu.units === undefined) continue;\n const ic = gpu.attributes?.interconnect;\n if (ic && typeof ic === \"object\" && !Array.isArray(ic) && (ic as { group?: unknown }).group === INTERCONNECT_GROUP_AUTO) {\n this.#errors.push({\n message: `Compute profile \"${profileName}\" uses gpu.attributes.interconnect.group=\"${INTERCONNECT_GROUP_AUTO}\", which is reserved (the parser auto-assigns it to \"interconnect: []\" resources). Pick a different group name.`,\n instancePath: `/profiles/compute/${profileName}/resources/gpu/attributes/interconnect/group`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/interconnect\",\n keyword: \"const\",\n params: { allowedValue: `non-${INTERCONNECT_GROUP_AUTO}` },\n });\n }\n }\n\n // Rules 1 + 3 are per-placement. Walk every (service, placement) and\n // capture which profile each service uses and whether it opted into\n // interconnect (implicit, explicit, or not at all).\n interface profileUsage {\n profileName: string;\n serviceName: string;\n group: string; // \"\" if non-interconnect, INTERCONNECT_GROUP_AUTO for implicit, else explicit name\n }\n const usagesByPlacement = new Map<string, profileUsage[]>();\n\n for (const [serviceName, perPlacement] of Object.entries(this.#sdl.deployment ?? {})) {\n for (const [placementName, svcdepl] of Object.entries(perPlacement ?? {})) {\n const compute = profiles[svcdepl.profile];\n if (!compute) continue;\n const gpu = compute.resources?.gpu;\n const usage: profileUsage = {\n profileName: svcdepl.profile,\n serviceName,\n group: \"\",\n };\n if (gpu && gpu.units !== 0 && gpu.units !== undefined) {\n usage.group = resolveInterconnectGroup(gpu.attributes?.interconnect);\n }\n\n const bucket = usagesByPlacement.get(placementName) ?? [];\n bucket.push(usage);\n usagesByPlacement.set(placementName, bucket);\n\n // Rule 1: any interconnect opt-in must be deployed under a\n // placement whose attributes require capabilities/gpu-interconnect=true.\n if (usage.group !== \"\") {\n const placement = placements?.[placementName];\n const attrs = (placement?.attributes ?? {}) as Record<string, unknown>;\n const capability = attrs[\"capabilities/gpu-interconnect\"];\n const requiresInterconnect = capability === \"true\" || capability === true;\n if (!requiresInterconnect) {\n this.#errors.push({\n message: `Service \"${serviceName}\" uses interconnect profile \"${svcdepl.profile}\" under placement \"${placementName}\" but placement does not require capabilities/gpu-interconnect=true.`,\n instancePath: `/profiles/placement/${placementName}/attributes`,\n schemaPath: \"#/properties/profiles/properties/placement/additionalProperties/properties/attributes\",\n keyword: \"required\",\n params: { missingProperty: \"capabilities/gpu-interconnect\" },\n });\n }\n }\n }\n }\n\n // Rule 3: within one placement, no mixing of implicit (`auto`) and\n // explicit (named) opt-ins. Either form alone is fine; combining\n // them is the failure mode this rule catches.\n for (const [placementName, usages] of usagesByPlacement.entries()) {\n let firstImplicit: string | undefined;\n let firstExplicit: string | undefined;\n for (const u of usages) {\n if (u.group === \"\") continue;\n if (u.group === INTERCONNECT_GROUP_AUTO) {\n firstImplicit ??= u.profileName;\n } else {\n firstExplicit ??= u.profileName;\n }\n }\n if (firstImplicit !== undefined && firstExplicit !== undefined) {\n this.#errors.push({\n message: `Placement \"${placementName}\" mixes implicit \"interconnect: []\" (profile \"${firstImplicit}\") and explicit \"interconnect: { group: ... }\" (profile \"${firstExplicit}\"); use one form across the placement.`,\n instancePath: `/profiles/compute/${firstImplicit}/resources/gpu/attributes/interconnect`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/interconnect\",\n keyword: \"oneOf\",\n params: { passingSchemas: [] },\n });\n }\n }\n }\n\n // Mirrors Go's TEE rules from `buildGroups` (go/sdl/groupBuilder_v2.go:58-83,\n // groupBuilder_v2_1.go:59-84). Two checks, both on `deploymentName` (the\n // placement-group name):\n // 1. `validateTEEWithGPU` \u2014 the `cpu-gpu` type requires GPU resources on the\n // resolved compute profile (`cpu`/absent need none).\n // 2. `errTEETypeMismatch` \u2014 a placementg diff group may carry only one tee type,\n // since `generateManifest` projects it as a single `tee/type` requirement\n // attribute. Detecting the conflict here (the validation layer) means\n // standalone `validateSDL` callers catch it, and `generateManifest` can\n // project unconditionally.\n // Unsupported tee values are rejected structurally by the input schema (`tee`\n // enum in validateSDLInput.ts) before this runs.\n #validateTEE(serviceName: string, deploymentName: string) {\n const tee = this.#sdl.services?.[serviceName]?.params?.tee;\n if (!tee) return;\n\n if (tee === \"cpu-gpu\") {\n const profile = this.#sdl.deployment[serviceName]?.[deploymentName]?.profile;\n const gpu = this.#sdl.profiles?.compute?.[profile]?.resources.gpu;\n const hasGpu = gpu?.units !== undefined && gpu.units !== 0;\n\n if (!hasGpu) {\n this.#errors.push({\n message: `Service \"${serviceName}\" tee type requires gpu resources.`,\n instancePath: `/services/${serviceName}/params/tee`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/tee\",\n keyword: \"required\",\n params: {\n missingProperty: \"gpu\",\n },\n });\n }\n }\n\n const existing = this.#teeTypeByPlacement.get(deploymentName);\n if (existing === undefined) {\n this.#teeTypeByPlacement.set(deploymentName, tee);\n } else if (existing !== tee) {\n this.#errors.push({\n message: `conflicting tee types in placement group \"${deploymentName}\": \"${existing}\" and \"${tee}\"`,\n instancePath: `/services/${serviceName}/params/tee`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/tee\",\n keyword: \"tee\",\n params: {},\n });\n }\n }\n\n #validateLeaseIP(serviceName: string) {\n this.#sdl.services?.[serviceName]?.expose?.forEach((expose, exposeIndex) => {\n const proto = expose.proto?.toUpperCase() || \"TCP\";\n\n expose.to?.forEach((to, toIndex) => {\n if (to.ip?.length) {\n const toPath = `/services/${serviceName}/expose/${exposeIndex}/to/${toIndex}`;\n\n if (!to.global) {\n this.#errors.push({\n message: `If an IP is declared, the directive must be declared as global.`,\n instancePath: `${toPath}/global`,\n schemaPath: \"#/definitions/exposeToWithIpEnforcesGlobal/then/properties/global/const\",\n keyword: \"const\",\n params: {\n allowedValue: true,\n },\n });\n }\n if (!this.#sdl.endpoints?.[to.ip]) {\n this.#errors.push({\n message: `Unknown endpoint \"${to.ip}\" for service \"${serviceName}\". Add it to the \"endpoints\" section.`,\n instancePath: `/endpoints/${to.ip}`,\n schemaPath: \"#/properties/endpoints\",\n keyword: \"required\",\n params: {\n missingProperty: to.ip,\n },\n });\n }\n\n this.#endpointsUsed.add(to.ip);\n\n const externalPort = expose.as ?? expose.port;\n const portKey = `${to.ip}-${externalPort}-${proto}`;\n const otherServiceName = this.#portsUsed.get(portKey);\n\n if (this.#portsUsed.has(portKey)) {\n this.#errors.push({\n message: `IP endpoint \"${to.ip}\" port ${externalPort} protocol ${proto} already in use by service \"${otherServiceName}\".`,\n instancePath: `${toPath}/ip`,\n schemaPath: \"#/properties/services/additionalProperties/properties/expose/items/properties/to/items\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: portKey,\n },\n });\n }\n this.#portsUsed.set(portKey, serviceName);\n }\n });\n });\n }\n\n #validateEndpoints() {\n if (!this.#sdl.endpoints) return;\n\n Object.keys(this.#sdl.endpoints).forEach((endpoint) => {\n if (!this.#endpointsUsed.has(endpoint)) {\n this.#errors.push({\n message: `Endpoint \"${endpoint}\" declared but never used.`,\n instancePath: `/endpoints/${endpoint}`,\n schemaPath: \"#/properties/endpoints\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: endpoint,\n },\n });\n }\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import type { ErrorMessages, ValidationError, ValidationFunction } from \"../../utils/jsonSchemaValidation.ts\";\nimport { dirname, getErrorLocation, humanizeErrors } from \"../../utils/jsonSchemaValidation.ts\";\nimport { MAX_HTTP_TIMEOUT_MILLISECONDS, parseHTTPTimeout } from \"../httpTimeout.ts\";\nimport { INTERCONNECT_GROUP_AUTO, resolveInterconnectGroup } from \"../manifest/manifestUtils.ts\";\nimport { castArray, stringToBoolean } from \"../utils.ts\";\nimport { schema as validationSDLSchema, type SDLInput, validate as validateSDLInput } from \"./validateSDLInput.ts\";\n\nexport { validationSDLSchema };\nexport type { SDLInput };\n\nconst ERROR_MESSAGES: ErrorMessages = {\n \"#/definitions/storageRamClassMustNotBePersistent\"(error) {\n return `\"ram\" storage${getErrorLocation(dirname(error.instancePath))} cannot be persistent`;\n },\n \"#/definitions/exposeToWithIpEnforcesGlobal\"() {\n return `If an IP is declared, the directive must be declared as global.`;\n },\n // Mirrors the shared schema's `min_window` pattern (`^[1-9][0-9]*(s|m|h)$`).\n // Go stays the lenient layer (`go/sdl/reclamation.go` accepts any `> 0`\n // `time.ParseDuration`), so this is a sanctioned schema-only-stricter rule.\n \"#/properties/reclamation/properties/min_window/pattern\"() {\n return `Reclamation min_window must be a whole number followed by s, m, or h (e.g. \"24h\", \"30m\").`;\n },\n};\n\nexport function validateSDL(sdl: SDLInput): undefined | ValidationError[] {\n validateSDLInput(sdl);\n const schemaErrors = humanizeErrors((validateSDLInput as ValidationFunction).errors, validationSDLSchema, ERROR_MESSAGES);\n if (schemaErrors.length) return schemaErrors;\n\n const validator = new SDLValidator(sdl);\n const errors = validator.validate();\n\n const allErrors = schemaErrors.concat(errors);\n return allErrors.length ? allErrors : undefined;\n}\n\nclass SDLValidator {\n readonly #endpointsUsed = new Set<string>();\n readonly #portsUsed = new Map<string, string>();\n readonly #teeTypeByPlacement = new Map<string, string>();\n readonly #sdl: SDLInput;\n readonly #errors: ValidationError[] = [];\n\n constructor(sdl: SDLInput) {\n this.#sdl = sdl;\n }\n\n validate() {\n if (this.#sdl.services) {\n Object.keys(this.#sdl.services).forEach((serviceName) => {\n this.#validateDeploymentWithRelations(serviceName);\n this.#validateLeaseIP(serviceName);\n this.#validateHTTPTimeoutRanges(serviceName);\n });\n }\n\n this.#validateInterconnect();\n this.#validateEndpoints();\n return this.#errors;\n }\n\n // JSON Schema caps numeric values, but its string pattern cannot enforce the\n // maximum after unit conversion. For example, \"1194h\" matches the pattern.\n #validateHTTPTimeoutRanges(serviceName: string) {\n const exposes = this.#sdl.services[serviceName]?.expose ?? [];\n for (const [exposeIndex, expose] of exposes.entries()) {\n const options = expose.http_options;\n if (!options) continue;\n\n for (const field of [\"read_timeout\", \"send_timeout\"] as const) {\n const value = options[field];\n if (value === undefined) continue;\n\n const result = parseHTTPTimeout(value);\n if (result.ok) continue;\n\n this.#errors.push({\n message: `HTTP ${field.replace(\"_\", \" \")} ${result.message}.`,\n instancePath: `/services/${serviceName}/expose/${exposeIndex}/http_options/${field}`,\n schemaPath: \"#/definitions/httpTimeout/maximum\",\n keyword: \"maximum\",\n params: {\n comparison: \"<=\",\n limit: MAX_HTTP_TIMEOUT_MILLISECONDS,\n },\n });\n }\n }\n }\n\n #validateDeploymentWithRelations(serviceName: string) {\n const deployment = this.#sdl.deployment[serviceName];\n if (!deployment) {\n this.#errors.push({\n message: `Service \"${serviceName}\" is not defined at \"/deployment\" section.`,\n instancePath: `/deployment`,\n schemaPath: \"#/properties/deployment\",\n keyword: \"required\",\n params: {\n missingProperty: serviceName,\n },\n });\n return;\n }\n\n Object.keys(this.#sdl.deployment[serviceName]).forEach((deploymentName) => {\n this.#validateDeploymentRelations(serviceName, deploymentName);\n this.#validateServiceStorages(serviceName, deploymentName);\n this.#validateStorages(serviceName, deploymentName);\n this.#validateGPU(serviceName, deploymentName);\n this.#validateTEE(serviceName, deploymentName);\n });\n }\n\n #validateDeploymentRelations(serviceName: string, deploymentName: string) {\n const serviceDeployment = this.#sdl.deployment?.[serviceName]?.[deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment?.profile];\n const infra = this.#sdl.profiles?.placement?.[deploymentName];\n\n if (!infra) {\n this.#errors.push({\n message: `The placement \"${deploymentName}\" is not defined in the \"placement\" section.`,\n instancePath: `/profiles/placement`,\n schemaPath: \"#/properties/profiles/properties/placement\",\n keyword: \"required\",\n params: {\n missingProperty: deploymentName,\n },\n });\n }\n\n if (infra && !infra.pricing?.[serviceDeployment?.profile]) {\n this.#errors.push({\n message: `The pricing for the \"${serviceDeployment?.profile}\" profile is not defined in the \"${deploymentName}\" placement.`,\n instancePath: `/profiles/placement/${deploymentName}/pricing`,\n schemaPath: \"#/properties/profiles/properties/placement/additionalProperties/properties/pricing\",\n keyword: \"required\",\n params: {\n missingProperty: serviceDeployment?.profile,\n },\n });\n }\n\n if (!compute) {\n this.#errors.push({\n message: `The compute requirements for the \"${serviceDeployment?.profile}\" profile are not defined in the \"compute\" section.`,\n instancePath: `/profiles/compute`,\n schemaPath: \"#/properties/profiles/properties/compute\",\n keyword: \"required\",\n params: {\n missingProperty: serviceDeployment?.profile,\n },\n });\n }\n }\n\n #validateServiceStorages(serviceName: string, deploymentName: string) {\n const service = this.#sdl.services?.[serviceName];\n const mounts: Record<string, string> = {};\n const serviceDeployment = this.#sdl.deployment[serviceName][deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment.profile];\n const storages = castArray(compute?.resources.storage);\n\n if (!service?.params?.storage) {\n return;\n }\n\n Object.entries(service.params.storage).forEach(([storageName, storage]) => {\n if (!storage) {\n this.#errors.push({\n message: `Storage \"${storageName}\" is not configured.`,\n instancePath: `/services/${serviceName}/params/storage/${storageName}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties\",\n keyword: \"required\",\n params: {\n missingProperty: storageName,\n },\n });\n return;\n }\n const storageNameExists = storages.some(({ name }) => name === storageName);\n if (!storageNameExists) {\n this.#errors.push({\n message: `Service \"${serviceName}\" references non-existing compute volume \"${storageName}\".`,\n instancePath: `/profiles/compute/${serviceDeployment.profile}/resources/storage`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/storage\",\n keyword: \"required\",\n params: {\n missingProperty: storageName,\n },\n });\n return;\n }\n\n const mount = String(storage.mount);\n const volumeName = mounts[mount];\n\n if (volumeName && !storage.mount) {\n this.#errors.push({\n message: \"Multiple root ephemeral storages are not allowed.\",\n instancePath: `/services/${serviceName}/params/storage/${storageName}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: volumeName,\n },\n });\n }\n if (volumeName && storage.mount) {\n this.#errors.push({\n message: `Mount \"${mount}\" already in use by volume \"${volumeName}\".`,\n instancePath: `/services/${serviceName}/params/storage/${storageName}/mount`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties/properties/mount\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: mount,\n },\n });\n }\n\n mounts[mount] = storageName;\n });\n }\n\n #validateStorages(serviceName: string, deploymentName: string) {\n const service = this.#sdl.services?.[serviceName];\n const serviceDeployment = this.#sdl.deployment[serviceName][deploymentName];\n const compute = this.#sdl.profiles?.compute?.[serviceDeployment.profile];\n const storages = castArray(compute?.resources.storage);\n\n storages.forEach((storage) => {\n const persistent = stringToBoolean(storage.attributes?.persistent as string | boolean || false);\n\n if (persistent && !service?.params?.storage?.[storage.name || \"\"]?.mount) {\n this.#errors.push({\n message: `Persistent storage \"${storage.name || \"default\"}\" requires a mount path in /services/${serviceName}/params/storage/${storage.name || \"default\"}/mount.`,\n instancePath: `/services/${serviceName}/params/storage/${storage.name || \"default\"}`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/storage/additionalProperties/properties/mount\",\n keyword: \"required\",\n params: {\n missingProperty: \"mount\",\n },\n });\n }\n });\n }\n\n #validateGPU(serviceName: string, deploymentName: string) {\n const deployment = this.#sdl.deployment[serviceName];\n const compute = this.#sdl.profiles?.compute?.[deployment[deploymentName]?.profile];\n const gpu = compute?.resources.gpu;\n if (!gpu) return;\n\n const hasUnits = gpu.units !== undefined && gpu.units !== 0;\n const hasAttributes = typeof gpu.attributes !== \"undefined\";\n const hasVendor = hasAttributes && typeof gpu.attributes?.vendor !== \"undefined\";\n\n const profile = deployment[deploymentName]?.profile;\n const gpuPath = `/profiles/compute/${profile}/resources/gpu`;\n\n if (!hasUnits && hasAttributes) {\n this.#errors.push({\n message: \"GPU must not have attributes if units is 0.\",\n instancePath: `${gpuPath}/attributes`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: \"attributes\",\n },\n });\n }\n if (hasUnits && !hasAttributes) {\n this.#errors.push({\n message: \"GPU must have attributes if units is not 0.\",\n instancePath: gpuPath,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu\",\n keyword: \"required\",\n params: {\n missingProperty: \"attributes\",\n },\n });\n }\n if (hasUnits && !hasVendor) {\n this.#errors.push({\n message: \"GPU must specify a vendor if units is not 0.\",\n instancePath: `${gpuPath}/attributes`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/vendor\",\n keyword: \"required\",\n params: {\n missingProperty: \"vendor\",\n },\n });\n }\n\n // Note: the units==0 + interconnect/interconnect_group case is already rejected by\n // the schema-level rule `gpuAttributesRequireUnitsGt0` \u2014 it requires\n // units > 0 whenever any attribute (including interconnect / interconnect_group) is\n // present. So we don't need a duplicate semantic check here. The\n // Go parser (go/sdl/gpu.go) carries its own parse-time check because\n // YAML decoding has no schema layer above it.\n }\n\n // Mirror the Go-side validateInterconnect in go/sdl/v2.go. The TS\n // SDK enforces the same cross-field rules so tenants using\n // @akashnetwork/chain-sdk get the same fail-fast feedback as Go CLI\n // users (the chain doesn't validate SDL semantics). See\n // docs/sdl-interconnect-spec.md for the spec.\n //\n // 1. Any opt-in (implicit `[]` or explicit `{ group: <name> }`)\n // requires the placement to require\n // capabilities/gpu-interconnect=\"true\".\n // 2. The reserved name `auto` may not be written explicitly under\n // `interconnect: { group: ... }`. (Rule 2 is enforced at the\n // schema level via the JSON-schema oneOf, but checked here too\n // for a friendlier error message.)\n // 3. Within one placement, no mixing of implicit and explicit\n // opt-in forms \u2014 either every service uses `[]` or every service\n // uses a `{ group: ... }`.\n // 4. (Schema-level) `gpu.units == 0` with any interconnect opt-in\n // is rejected.\n #validateInterconnect() {\n const profiles = this.#sdl.profiles?.compute;\n const placements = this.#sdl.profiles?.placement;\n if (!profiles) return;\n\n // Rule 2: tenants cannot write `group: auto` under the explicit\n // mapping form. The JSON schema's `oneOf` already rules this out at\n // the structural level when the value is bare, but we surface a\n // friendly error here.\n for (const [profileName, compute] of Object.entries(profiles)) {\n const gpu = compute?.resources?.gpu;\n if (!gpu || gpu.units === 0 || gpu.units === undefined) continue;\n const ic = gpu.attributes?.interconnect;\n if (ic && typeof ic === \"object\" && !Array.isArray(ic) && (ic as { group?: unknown }).group === INTERCONNECT_GROUP_AUTO) {\n this.#errors.push({\n message: `Compute profile \"${profileName}\" uses gpu.attributes.interconnect.group=\"${INTERCONNECT_GROUP_AUTO}\", which is reserved (the parser auto-assigns it to \"interconnect: []\" resources). Pick a different group name.`,\n instancePath: `/profiles/compute/${profileName}/resources/gpu/attributes/interconnect/group`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/interconnect\",\n keyword: \"const\",\n params: { allowedValue: `non-${INTERCONNECT_GROUP_AUTO}` },\n });\n }\n }\n\n // Rules 1 + 3 are per-placement. Walk every (service, placement) and\n // capture which profile each service uses and whether it opted into\n // interconnect (implicit, explicit, or not at all).\n interface profileUsage {\n profileName: string;\n serviceName: string;\n group: string; // \"\" if non-interconnect, INTERCONNECT_GROUP_AUTO for implicit, else explicit name\n }\n const usagesByPlacement = new Map<string, profileUsage[]>();\n\n for (const [serviceName, perPlacement] of Object.entries(this.#sdl.deployment ?? {})) {\n for (const [placementName, svcdepl] of Object.entries(perPlacement ?? {})) {\n const compute = profiles[svcdepl.profile];\n if (!compute) continue;\n const gpu = compute.resources?.gpu;\n const usage: profileUsage = {\n profileName: svcdepl.profile,\n serviceName,\n group: \"\",\n };\n if (gpu && gpu.units !== 0 && gpu.units !== undefined) {\n usage.group = resolveInterconnectGroup(gpu.attributes?.interconnect);\n }\n\n const bucket = usagesByPlacement.get(placementName) ?? [];\n bucket.push(usage);\n usagesByPlacement.set(placementName, bucket);\n\n // Rule 1: any interconnect opt-in must be deployed under a\n // placement whose attributes require capabilities/gpu-interconnect=true.\n if (usage.group !== \"\") {\n const placement = placements?.[placementName];\n const attrs = (placement?.attributes ?? {}) as Record<string, unknown>;\n const capability = attrs[\"capabilities/gpu-interconnect\"];\n const requiresInterconnect = capability === \"true\" || capability === true;\n if (!requiresInterconnect) {\n this.#errors.push({\n message: `Service \"${serviceName}\" uses interconnect profile \"${svcdepl.profile}\" under placement \"${placementName}\" but placement does not require capabilities/gpu-interconnect=true.`,\n instancePath: `/profiles/placement/${placementName}/attributes`,\n schemaPath: \"#/properties/profiles/properties/placement/additionalProperties/properties/attributes\",\n keyword: \"required\",\n params: { missingProperty: \"capabilities/gpu-interconnect\" },\n });\n }\n }\n }\n }\n\n // Rule 3: within one placement, no mixing of implicit (`auto`) and\n // explicit (named) opt-ins. Either form alone is fine; combining\n // them is the failure mode this rule catches.\n for (const [placementName, usages] of usagesByPlacement.entries()) {\n let firstImplicit: string | undefined;\n let firstExplicit: string | undefined;\n for (const u of usages) {\n if (u.group === \"\") continue;\n if (u.group === INTERCONNECT_GROUP_AUTO) {\n firstImplicit ??= u.profileName;\n } else {\n firstExplicit ??= u.profileName;\n }\n }\n if (firstImplicit !== undefined && firstExplicit !== undefined) {\n this.#errors.push({\n message: `Placement \"${placementName}\" mixes implicit \"interconnect: []\" (profile \"${firstImplicit}\") and explicit \"interconnect: { group: ... }\" (profile \"${firstExplicit}\"); use one form across the placement.`,\n instancePath: `/profiles/compute/${firstImplicit}/resources/gpu/attributes/interconnect`,\n schemaPath: \"#/properties/profiles/properties/compute/additionalProperties/properties/resources/properties/gpu/properties/attributes/properties/interconnect\",\n keyword: \"oneOf\",\n params: { passingSchemas: [] },\n });\n }\n }\n }\n\n // Mirrors Go's TEE rules from `buildGroups` (go/sdl/groupBuilder_v2.go:58-83,\n // groupBuilder_v2_1.go:59-84). Two checks, both on `deploymentName` (the\n // placement-group name):\n // 1. `validateTEEWithGPU` \u2014 the `cpu-gpu` type requires GPU resources on the\n // resolved compute profile (`cpu`/absent need none).\n // 2. `errTEETypeMismatch` \u2014 a placementg diff group may carry only one tee type,\n // since `generateManifest` projects it as a single `tee/type` requirement\n // attribute. Detecting the conflict here (the validation layer) means\n // standalone `validateSDL` callers catch it, and `generateManifest` can\n // project unconditionally.\n // Unsupported tee values are rejected structurally by the input schema (`tee`\n // enum in validateSDLInput.ts) before this runs.\n #validateTEE(serviceName: string, deploymentName: string) {\n const tee = this.#sdl.services?.[serviceName]?.params?.tee;\n if (!tee) return;\n\n if (tee === \"cpu-gpu\") {\n const profile = this.#sdl.deployment[serviceName]?.[deploymentName]?.profile;\n const gpu = this.#sdl.profiles?.compute?.[profile]?.resources.gpu;\n const hasGpu = gpu?.units !== undefined && gpu.units !== 0;\n\n if (!hasGpu) {\n this.#errors.push({\n message: `Service \"${serviceName}\" tee type requires gpu resources.`,\n instancePath: `/services/${serviceName}/params/tee`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/tee\",\n keyword: \"required\",\n params: {\n missingProperty: \"gpu\",\n },\n });\n }\n }\n\n const existing = this.#teeTypeByPlacement.get(deploymentName);\n if (existing === undefined) {\n this.#teeTypeByPlacement.set(deploymentName, tee);\n } else if (existing !== tee) {\n this.#errors.push({\n message: `conflicting tee types in placement group \"${deploymentName}\": \"${existing}\" and \"${tee}\"`,\n instancePath: `/services/${serviceName}/params/tee`,\n schemaPath: \"#/properties/services/additionalProperties/properties/params/properties/tee\",\n keyword: \"tee\",\n params: {},\n });\n }\n }\n\n #validateLeaseIP(serviceName: string) {\n this.#sdl.services?.[serviceName]?.expose?.forEach((expose, exposeIndex) => {\n const proto = expose.proto?.toUpperCase() || \"TCP\";\n\n expose.to?.forEach((to, toIndex) => {\n if (to.ip?.length) {\n const toPath = `/services/${serviceName}/expose/${exposeIndex}/to/${toIndex}`;\n\n if (!to.global) {\n this.#errors.push({\n message: `If an IP is declared, the directive must be declared as global.`,\n instancePath: `${toPath}/global`,\n schemaPath: \"#/definitions/exposeToWithIpEnforcesGlobal/then/properties/global/const\",\n keyword: \"const\",\n params: {\n allowedValue: true,\n },\n });\n }\n if (!this.#sdl.endpoints?.[to.ip]) {\n this.#errors.push({\n message: `Unknown endpoint \"${to.ip}\" for service \"${serviceName}\". Add it to the \"endpoints\" section.`,\n instancePath: `/endpoints/${to.ip}`,\n schemaPath: \"#/properties/endpoints\",\n keyword: \"required\",\n params: {\n missingProperty: to.ip,\n },\n });\n }\n\n this.#endpointsUsed.add(to.ip);\n\n const externalPort = expose.as ?? expose.port;\n const portKey = `${to.ip}-${externalPort}-${proto}`;\n const otherServiceName = this.#portsUsed.get(portKey);\n\n if (this.#portsUsed.has(portKey)) {\n this.#errors.push({\n message: `IP endpoint \"${to.ip}\" port ${externalPort} protocol ${proto} already in use by service \"${otherServiceName}\".`,\n instancePath: `${toPath}/ip`,\n schemaPath: \"#/properties/services/additionalProperties/properties/expose/items/properties/to/items\",\n keyword: \"uniqueItems\",\n params: {\n duplicate: portKey,\n },\n });\n }\n this.#portsUsed.set(portKey, serviceName);\n }\n });\n });\n }\n\n #validateEndpoints() {\n if (!this.#sdl.endpoints) return;\n\n Object.keys(this.#sdl.endpoints).forEach((endpoint) => {\n if (!this.#endpointsUsed.has(endpoint)) {\n this.#errors.push({\n message: `Endpoint \"${endpoint}\" declared but never used.`,\n instancePath: `/endpoints/${endpoint}`,\n schemaPath: \"#/properties/endpoints\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: endpoint,\n },\n });\n }\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["validationSDLSchema", "validateSDLInput", "validationSDLSchema"]
|
|
7
7
|
}
|