@ledgerhq/device-management-kit 0.11.1 → 0.12.0

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 (127) hide show
  1. package/lib/cjs/package.json +45 -40
  2. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  3. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  4. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  5. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  6. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +1 -1
  7. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +1 -1
  8. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  9. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  10. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -1
  11. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +1 -1
  12. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  13. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  14. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -1
  15. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +1 -1
  16. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  17. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +2 -2
  18. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  19. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +2 -2
  20. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  21. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  22. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  23. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  24. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  25. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  26. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  27. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  28. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  29. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  30. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  31. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  32. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  33. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  34. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  35. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  36. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  37. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  38. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  39. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  40. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  41. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  42. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  43. package/lib/cjs/src/internal/crypto/CryptoService.js +2 -0
  44. package/lib/cjs/src/internal/crypto/CryptoService.js.map +7 -0
  45. package/lib/cjs/src/internal/crypto/NobleCryptoService.js +2 -0
  46. package/lib/cjs/src/internal/crypto/NobleCryptoService.js.map +7 -0
  47. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +2 -0
  48. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  49. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  50. package/lib/esm/package.json +45 -40
  51. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  52. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  53. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  54. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  55. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  56. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  57. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  58. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  59. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  60. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +3 -3
  61. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  62. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +3 -3
  63. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  64. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  65. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  66. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  67. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  68. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  69. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  70. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  71. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  72. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  73. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  74. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  75. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  76. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  77. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  78. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  79. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  80. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  81. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  82. package/lib/esm/src/internal/crypto/CryptoService.js +1 -0
  83. package/lib/esm/src/internal/crypto/CryptoService.js.map +7 -0
  84. package/lib/esm/src/internal/crypto/NobleCryptoService.js +2 -0
  85. package/lib/esm/src/internal/crypto/NobleCryptoService.js.map +7 -0
  86. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +2 -0
  87. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  88. package/lib/types/src/api/device-action/os/Errors.d.ts +5 -0
  89. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  90. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -1
  91. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +1 -0
  92. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -1
  93. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -1
  94. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +3 -2
  95. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -1
  96. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -1
  97. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +1 -0
  98. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -1
  99. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +2 -2
  100. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -1
  101. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  102. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +1 -0
  103. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  104. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  105. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +1 -0
  106. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  107. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  108. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +1 -0
  109. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  110. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  111. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +1 -0
  112. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  113. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +4 -0
  114. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  115. package/lib/types/src/api/secure-channel/task/types.d.ts +7 -0
  116. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  117. package/lib/types/src/api/secure-channel/utils.d.ts +18 -1
  118. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  119. package/lib/types/src/internal/crypto/CryptoService.d.ts +12 -0
  120. package/lib/types/src/internal/crypto/CryptoService.d.ts.map +1 -0
  121. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts +8 -0
  122. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts.map +1 -0
  123. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +2 -0
  124. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +1 -0
  125. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +1 -1
  126. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  127. package/package.json +34 -29
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(e,r)=>{for(var o in r)i(e,o,{get:r[o],enumerable:!0})},n=(e,r,o,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of a(r))!s.call(e,t)&&t!==o&&i(e,t,{get:()=>r[t],enumerable:!(p=y(r,t))||p.enumerable});return e};var l=e=>n(i({},"__esModule",{value:!0}),e);var C={};c(C,{NobleCryptoService:()=>v});module.exports=l(C);var m=require("@noble/hashes/sha3");class v{sha3_256(r){return(0,m.sha3_256)(r)}}0&&(module.exports={NobleCryptoService});
2
+ //# sourceMappingURL=NobleCryptoService.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/crypto/NobleCryptoService.ts"],
4
+ "sourcesContent": ["import { sha3_256 } from \"@noble/hashes/sha3\";\n\nimport { type CryptoService } from \"./CryptoService\";\n\n/**\n * Noble implementation of the crypto service\n */\nexport class NobleCryptoService implements CryptoService {\n sha3_256(data: Uint8Array): Uint8Array {\n return sha3_256(data);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyB,8BAOlB,MAAMF,CAA4C,CACvD,SAASG,EAA8B,CACrC,SAAO,YAASA,CAAI,CACtB,CACF",
6
+ "names": ["NobleCryptoService_exports", "__export", "NobleCryptoService", "__toCommonJS", "import_sha3", "data"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./NobleCryptoService");describe("NobleCryptoService",()=>{let x;beforeEach(()=>{x=new e.NobleCryptoService}),describe("sha3_256",()=>{it("should compute SHA3-256 hash",()=>{const r=new Uint8Array([1,2,3,4]),c=x.sha3_256(r);expect(c).toStrictEqual(new Uint8Array([150,109,189,203,208,224,52,143,170,28,203,206,90,98,184,231,59,13,8,149,93,102,109,184,34,67,179,3,217,189,149,2]))})})});
2
+ //# sourceMappingURL=NobleCryptoService.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/crypto/NobleCryptoService.test.ts"],
4
+ "sourcesContent": ["import { NobleCryptoService } from \"./NobleCryptoService\";\n\ndescribe(\"NobleCryptoService\", () => {\n let cryptoService: NobleCryptoService;\n\n beforeEach(() => {\n cryptoService = new NobleCryptoService();\n });\n\n describe(\"sha3_256\", () => {\n it(\"should compute SHA3-256 hash\", () => {\n const input = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n const hash = cryptoService.sha3_256(input);\n\n expect(hash).toStrictEqual(\n new Uint8Array([\n 0x96, 0x6d, 0xbd, 0xcb, 0xd0, 0xe0, 0x34, 0x8f, 0xaa, 0x1c, 0xcb,\n 0xce, 0x5a, 0x62, 0xb8, 0xe7, 0x3b, 0x0d, 0x08, 0x95, 0x5d, 0x66,\n 0x6d, 0xb8, 0x22, 0x43, 0xb3, 0x03, 0xd9, 0xbd, 0x95, 0x02,\n ]),\n );\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,gCAEnC,SAAS,qBAAsB,IAAM,CACnC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAgB,IAAI,oBACtB,CAAC,EAED,SAAS,WAAY,IAAM,CACzB,GAAG,+BAAgC,IAAM,CACvC,MAAMC,EAAQ,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EAC/CC,EAAOF,EAAc,SAASC,CAAK,EAEzC,OAAOC,CAAI,EAAE,cACX,IAAI,WAAW,CACb,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAC5D,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,GAAM,IAC5D,IAAM,IAAM,GAAM,GAAM,IAAM,EAAM,IAAM,IAAM,IAAM,CACxD,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_NobleCryptoService", "cryptoService", "input", "hash"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/data/ManagerApiDataSource.ts"],
4
- "sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID, and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available for a given current firmware, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
4
+ "sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available for a given current firmware, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ManagerApiDataSource_exports", "__toCommonJS"]
7
7
  }
@@ -1,63 +1,68 @@
1
1
  {
2
- "name": "@ledgerhq/device-management-kit",
3
- "version": "0.11.1",
4
- "private": false,
5
- "license": "Apache-2.0",
2
+ "dependencies": {
3
+ "@noble/hashes": "^1.8.0",
4
+ "@sentry/minimal": "catalog:",
5
+ "axios": "catalog:",
6
+ "inversify": "catalog:",
7
+ "isomorphic-ws": "catalog:",
8
+ "purify-ts": "catalog:",
9
+ "reflect-metadata": "catalog:",
10
+ "semver": "catalog:",
11
+ "url": "catalog:",
12
+ "uuid": "catalog:",
13
+ "ws": "catalog:",
14
+ "xstate": "catalog:"
15
+ },
16
+ "devDependencies": {
17
+ "@ledgerhq/eslint-config-dsdk": "workspace:^",
18
+ "@ledgerhq/ldmk-tool": "workspace:^",
19
+ "@ledgerhq/prettier-config-dsdk": "workspace:^",
20
+ "@ledgerhq/tsconfig-dsdk": "workspace:^",
21
+ "@ledgerhq/vitest-config-dmk": "workspace:^",
22
+ "@statelyai/inspect": "catalog:",
23
+ "@types/semver": "catalog:",
24
+ "@types/uuid": "catalog:",
25
+ "@types/ws": "catalog:",
26
+ "rxjs": "catalog:",
27
+ "ts-node": "catalog:"
28
+ },
6
29
  "exports": {
7
30
  ".": {
8
- "types": "./lib/types/index.d.ts",
9
31
  "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
32
+ "require": "./lib/cjs/index.js",
33
+ "types": "./lib/types/index.d.ts"
11
34
  }
12
35
  },
13
36
  "files": [
14
37
  "./lib",
15
38
  "package.json"
16
39
  ],
40
+ "license": "Apache-2.0",
41
+ "name": "@ledgerhq/device-management-kit",
42
+ "peerDependencies": {
43
+ "rxjs": "catalog:"
44
+ },
45
+ "private": false,
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
49
+ },
17
50
  "scripts": {
18
- "prebuild": "rimraf lib",
19
51
  "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
20
52
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
21
- "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
22
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
23
53
  "lint": "eslint",
24
54
  "lint:fix": "pnpm lint --fix",
55
+ "module:create": "pnpm hygen core-module with-prompt",
25
56
  "postpack": "find . -name '*.tgz' -exec cp {} ../../dist/ \\; ",
57
+ "prebuild": "rimraf lib",
26
58
  "prettier": "prettier . --check",
27
59
  "prettier:fix": "prettier . --write",
28
60
  "test": "vitest run",
29
- "test:watch": "vitest",
30
61
  "test:coverage": "vitest run --coverage",
62
+ "test:watch": "vitest",
31
63
  "typecheck": "tsc --noEmit",
32
- "module:create": "pnpm hygen core-module with-prompt"
33
- },
34
- "dependencies": {
35
- "@sentry/minimal": "catalog:",
36
- "axios": "catalog:",
37
- "inversify": "catalog:",
38
- "isomorphic-ws": "catalog:",
39
- "purify-ts": "catalog:",
40
- "reflect-metadata": "catalog:",
41
- "semver": "catalog:",
42
- "url": "catalog:",
43
- "uuid": "catalog:",
44
- "ws": "catalog:",
45
- "xstate": "catalog:"
46
- },
47
- "peerDependencies": {
48
- "rxjs": "catalog:"
64
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
65
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
49
66
  },
50
- "devDependencies": {
51
- "@ledgerhq/ldmk-tool": "workspace:*",
52
- "@ledgerhq/eslint-config-dsdk": "workspace:*",
53
- "@ledgerhq/prettier-config-dsdk": "workspace:*",
54
- "@ledgerhq/tsconfig-dsdk": "workspace:*",
55
- "@ledgerhq/vitest-config-dmk": "workspace:*",
56
- "@statelyai/inspect": "catalog:",
57
- "@types/semver": "catalog:",
58
- "@types/uuid": "catalog:",
59
- "@types/ws": "catalog:",
60
- "rxjs": "catalog:",
61
- "ts-node": "catalog:"
62
- }
67
+ "version": "0.12.0"
63
68
  }
@@ -1,2 +1,2 @@
1
- class n{_tag="DeviceNotOnboardedError";originalError;constructor(r){this.originalError=new Error(r??"Device not onboarded.")}}class e{_tag="DeviceLockedError";originalError;constructor(r){this.originalError=new Error(r??"Device locked.")}}class t{_tag="UnsupportedFirmwareDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class i{_tag="RefusedByUserDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class a{_tag="AppAlreadyInstalledDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class s{_tag="OutOfMemoryDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class E{_tag="UnknownDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}export{a as AppAlreadyInstalledDAError,e as DeviceLockedError,n as DeviceNotOnboardedError,s as OutOfMemoryDAError,i as RefusedByUserDAError,E as UnknownDAError,t as UnsupportedFirmwareDAError};
1
+ class n{_tag="DeviceNotOnboardedError";originalError;constructor(r){this.originalError=new Error(r??"Device not onboarded.")}}class e{_tag="DeviceLockedError";originalError;constructor(r){this.originalError=new Error(r??"Device locked.")}}class t{_tag="UnsupportedFirmwareDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class i{_tag="RefusedByUserDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class a{_tag="AppAlreadyInstalledDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class l{_tag="OutOfMemoryDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class s{_tag="UnknownDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class E{_tag="UnsupportedApplicationDAError";originalError;constructor(r){this.originalError=new Error(r??"Application currently not supported.")}}export{a as AppAlreadyInstalledDAError,e as DeviceLockedError,n as DeviceNotOnboardedError,l as OutOfMemoryDAError,i as RefusedByUserDAError,s as UnknownDAError,E as UnsupportedApplicationDAError,t as UnsupportedFirmwareDAError};
2
2
  //# sourceMappingURL=Errors.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/device-action/os/Errors.ts"],
4
- "sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport class DeviceNotOnboardedError implements DmkError {\n readonly _tag = \"DeviceNotOnboardedError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Device not onboarded.\");\n }\n}\n\nexport class DeviceLockedError implements DmkError {\n readonly _tag = \"DeviceLockedError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Device locked.\");\n }\n}\n\nexport class UnsupportedFirmwareDAError implements DmkError {\n readonly _tag = \"UnsupportedFirmwareDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class RefusedByUserDAError implements DmkError {\n readonly _tag = \"RefusedByUserDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class AppAlreadyInstalledDAError implements DmkError {\n readonly _tag = \"AppAlreadyInstalledDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class OutOfMemoryDAError implements DmkError {\n readonly _tag = \"OutOfMemoryDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class UnknownDAError implements DmkError {\n readonly _tag = \"UnknownDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n"],
5
- "mappings": "AAEO,MAAMA,CAA4C,CAC9C,KAAO,0BACP,cAET,YAAYC,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,uBAAuB,CACnE,CACF,CAEO,MAAMC,CAAsC,CACxC,KAAO,oBACP,cAET,YAAYD,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAME,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYF,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMG,CAAyC,CAC3C,KAAO,uBACP,cAET,YAAYH,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMI,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYJ,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMK,CAAuC,CACzC,KAAO,qBACP,cAET,YAAYL,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMM,CAAmC,CACrC,KAAO,iBACP,cAET,YAAYN,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF",
6
- "names": ["DeviceNotOnboardedError", "message", "DeviceLockedError", "UnsupportedFirmwareDAError", "RefusedByUserDAError", "AppAlreadyInstalledDAError", "OutOfMemoryDAError", "UnknownDAError"]
4
+ "sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport class DeviceNotOnboardedError implements DmkError {\n readonly _tag = \"DeviceNotOnboardedError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Device not onboarded.\");\n }\n}\n\nexport class DeviceLockedError implements DmkError {\n readonly _tag = \"DeviceLockedError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Device locked.\");\n }\n}\n\nexport class UnsupportedFirmwareDAError implements DmkError {\n readonly _tag = \"UnsupportedFirmwareDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class RefusedByUserDAError implements DmkError {\n readonly _tag = \"RefusedByUserDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class AppAlreadyInstalledDAError implements DmkError {\n readonly _tag = \"AppAlreadyInstalledDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class OutOfMemoryDAError implements DmkError {\n readonly _tag = \"OutOfMemoryDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class UnknownDAError implements DmkError {\n readonly _tag = \"UnknownDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unknown error.\");\n }\n}\n\nexport class UnsupportedApplicationDAError implements DmkError {\n readonly _tag = \"UnsupportedApplicationDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(\n message ?? \"Application currently not supported.\",\n );\n }\n}\n"],
5
+ "mappings": "AAEO,MAAMA,CAA4C,CAC9C,KAAO,0BACP,cAET,YAAYC,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,uBAAuB,CACnE,CACF,CAEO,MAAMC,CAAsC,CACxC,KAAO,oBACP,cAET,YAAYD,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAME,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYF,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMG,CAAyC,CAC3C,KAAO,uBACP,cAET,YAAYH,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMI,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYJ,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMK,CAAuC,CACzC,KAAO,qBACP,cAET,YAAYL,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMM,CAAmC,CACrC,KAAO,iBACP,cAET,YAAYN,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMO,CAAkD,CACpD,KAAO,gCACP,cAET,YAAYP,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MACvBA,GAAW,sCACb,CACF,CACF",
6
+ "names": ["DeviceNotOnboardedError", "message", "DeviceLockedError", "UnsupportedFirmwareDAError", "RefusedByUserDAError", "AppAlreadyInstalledDAError", "OutOfMemoryDAError", "UnknownDAError", "UnsupportedApplicationDAError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as C,Right as x}from"purify-ts";import{assign as r,fromObservable as V,fromPromise as c,setup as G}from"xstate";import{isSuccessCommandResult as f}from"../../../command/model/CommandResult";import{UserInteractionRequired as i}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as I}from"../../../device-action/os/Const";import{GoToDashboardDeviceAction as E}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{ListAppsDeviceAction as F}from"../../../device-action/os/ListApps/ListAppsDeviceAction";import{GetApplicationsMetadataTask as U}from"../../../device-action/task/GetApplicationsMetadataTask";import{GetFirmwareMetadataTask as k}from"../../../device-action/task/GetFirmwareMetadataTask";import{XStateDeviceAction as T}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as o}from"../../../device-session/DeviceSessionState";import{installedAppResultGuard as L}from"../../../secure-channel/device-action/ListInstalledApps/types";import{ConnectToSecureChannelTask as R}from"../../../secure-channel/task/ConnectToSecureChannelTask";import{SecureChannelEventType as s}from"../../../secure-channel/task/types";class Y extends T{makeStateMachine(n){const{getDeviceMetadata:u,getFirmwareMetadata:d,getApplicationsMetadata:m,listAppsSecureChannel:g}=this.extractDependencies(n),t=this.input.unlockTimeout??I,l=new E({input:{unlockTimeout:t}}).makeStateMachine(n),p=new F({input:{unlockTimeout:t}}).makeStateMachine(n);return G({types:{input:{unlockTimeout:t},context:{},output:{}},actors:{goToDashboard:l,getDeviceMetadata:c(u),getFirmwareMetadata:c(d),getApplicationsMetadata:c(m),listApps:p,listAppsSecureChannel:V(g)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasMetadata:({context:e})=>e._internalState.firmwareVersion!==null&&e._internalState.firmwareUpdateContext!==null&&e._internalState.customImage!==null&&e._internalState.applications!==null&&e._internalState.applicationsUpdates!==null&&e._internalState.installedLanguages!==null&&e._internalState.catalog!==null,forceUpdate:({context:e})=>!!e.input.forceUpdate,useSecureChannel:({context:e})=>!!e.input.useSecureChannel},actions:{assignErrorFromEvent:r({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GetDeviceMetadataDeviceAction",initial:"DeviceReady",context:e=>({input:{useSecureChannel:e.input.useSecureChannel,forceUpdate:e.input.forceUpdate,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None},_internalState:{error:null,deviceVersion:null,firmware:null,firmwareVersion:null,firmwareUpdateContext:null,customImage:null,installedApps:null,applications:null,applicationsUpdates:null,installedLanguages:null,catalog:null}}),states:{DeviceReady:{always:[{target:"GoToDashboard",guard:"forceUpdate"},{target:"GetDeviceMetadataFromContext"}]},GetDeviceMetadataFromContext:{invoke:{src:"getDeviceMetadata",onDone:{target:"GetDeviceMetadataFromContextResultCheck",actions:r({_internalState:e=>e.event.output===null?e.context._internalState:{...e.context._internalState,firmwareVersion:e.event.output.firmwareVersion,firmwareUpdateContext:e.event.output.firmwareUpdateContext,customImage:e.event.output.customImage,applications:e.event.output.applications,applicationsUpdates:e.event.output.applicationsUpdates,installedLanguages:e.event.output.installedLanguages,catalog:e.event.output.catalog}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetDeviceMetadataFromContextResultCheck:{always:[{target:"Success",guard:"hasMetadata"},{target:"GoToDashboard"}]},GoToDashboard:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"dashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:r({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:r({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetFirmwareMetadata"}]},GetFirmwareMetadata:{invoke:{src:"getFirmwareMetadata",onDone:{target:"GetFirmwareMetadataResultCheck",actions:r({_internalState:e=>{if(f(e.event.output)){const a=n.getDeviceSessionState();return a.sessionStateType!==o.Connected&&n.setDeviceSessionState({...a,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}),{...e.context._internalState,deviceVersion:e.event.output.data.deviceVersion,firmware:e.event.output.data.firmware,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetFirmwareMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{guard:"useSecureChannel",target:"ListAppsSecureChannel"},{target:"ListApps"}]},ListAppsSecureChannel:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"listAppsSecureChannel",src:"listAppsSecureChannel",input:e=>({firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion}),onSnapshot:{actions:r({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case s.PermissionRequested:return{requiredUserInteraction:i.AllowSecureConnection};case s.PermissionGranted:{const a=n.getDeviceSessionState();return a.sessionStateType!==o.Connected&&n.setDeviceSessionState({...a,isSecureConnectionAllowed:!0}),{requiredUserInteraction:i.None}}default:return{...e.context.intermediateValue}}},_internalState:e=>{if(e.event.snapshot.context?.type===s.Error)return{...e.context._internalState,error:e.event.snapshot.context.error.mapDAErrors()};if(e.event.snapshot.context?.type===s.Result){if(L(e.event.snapshot.context.payload))return{...e.context._internalState,installedApps:e.event.snapshot.context.payload.map(a=>({name:a.name,hash:a.hash,hashCode:a.hash_code_data}))};throw new Error(`Invalid result ${JSON.stringify(e.event.snapshot.context.payload)}`)}return{...e.context._internalState}}})},onDone:{target:"ListAppsCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListApps:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"listApps",src:"listApps",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:r({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"ListAppsCheck",actions:r({_internalState:e=>e.event.output.isLeft()?{...e.context._internalState,error:e.event.output.extract()}:{...e.context._internalState,installedApps:e.event.output.unsafeCoerce().map(a=>({name:a.appName,hash:a.appFullHash,hashCode:a.appCodeHash}))}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetApplicationsMetadata"}]},GetApplicationsMetadata:{invoke:{src:"getApplicationsMetadata",input:e=>({deviceVersion:e.context._internalState.deviceVersion,firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion,installedApps:e.context._internalState.installedApps}),onDone:{target:"GetApplicationsMetadataResultCheck",actions:r({_internalState:e=>{if(f(e.event.output)){const a=n.getDeviceSessionState();return a.sessionStateType!==o.Connected&&n.setDeviceSessionState({...a,installedApps:e.event.output.data.applications,appsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}),{...e.context._internalState,applications:e.event.output.data.applications,applicationsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetApplicationsMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:a}=e,{error:v,firmwareVersion:S,firmwareUpdateContext:w,customImage:h,applications:D,applicationsUpdates:M,installedLanguages:y,catalog:A}=a._internalState;return v?C(v):x({firmwareVersion:S,firmwareUpdateContext:w,customImage:h,applications:D,applicationsUpdates:M,installedLanguages:y,catalog:A})}})}extractDependencies(n){return{getDeviceMetadata:async()=>{const t=n.getDeviceSessionState();return t.sessionStateType===o.Connected||t.firmwareVersion?.metadata===void 0||t.firmwareUpdateContext===void 0||t.customImage===void 0||t.installedApps.length===0||t.appsUpdates===void 0||t.installedLanguages===void 0||t.catalog===void 0?null:{firmwareVersion:t.firmwareVersion,firmwareUpdateContext:t.firmwareUpdateContext,customImage:t.customImage,applications:t.installedApps,applicationsUpdates:t.appsUpdates,installedLanguages:t.installedLanguages,catalog:t.catalog}},getFirmwareMetadata:async()=>new k(n).run(),getApplicationsMetadata:async t=>new U(n,{deviceVersion:t.input.deviceVersion,firmware:t.input.firmware,firmwareVersion:t.input.firmwareVersion,installedApps:t.input.installedApps}).run(),listAppsSecureChannel:t=>{const{firmware:l,firmwareVersion:p}=t.input,e=n.getSecureChannelService().listInstalledApps(p.metadata,l);return new R(n,{connection:e}).run()}}}}export{Y as GetDeviceMetadataDeviceAction};
1
+ import{Left as C,Right as x}from"purify-ts";import{assign as r,fromObservable as V,fromPromise as c,setup as I}from"xstate";import{isSuccessCommandResult as f}from"../../../command/model/CommandResult";import{UserInteractionRequired as i}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as G}from"../../../device-action/os/Const";import{GoToDashboardDeviceAction as E}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{ListAppsDeviceAction as F}from"../../../device-action/os/ListApps/ListAppsDeviceAction";import{GetApplicationsMetadataTask as U}from"../../../device-action/task/GetApplicationsMetadataTask";import{GetFirmwareMetadataTask as k}from"../../../device-action/task/GetFirmwareMetadataTask";import{XStateDeviceAction as T}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as s}from"../../../device-session/DeviceSessionState";import{installedAppResultGuard as L}from"../../../secure-channel/device-action/ListInstalledApps/types";import{ConnectToSecureChannelTask as R}from"../../../secure-channel/task/ConnectToSecureChannelTask";import{SecureChannelEventType as o}from"../../../secure-channel/task/types";class Y extends T{makeStateMachine(n){const{getDeviceMetadata:u,getFirmwareMetadata:d,getApplicationsMetadata:m,listAppsSecureChannel:g}=this.extractDependencies(n),t=this.input.unlockTimeout??G,l=new E({input:{unlockTimeout:t}}).makeStateMachine(n),p=new F({input:{unlockTimeout:t}}).makeStateMachine(n);return I({types:{input:{unlockTimeout:t},context:{},output:{}},actors:{goToDashboard:l,getDeviceMetadata:c(u),getFirmwareMetadata:c(d),getApplicationsMetadata:c(m),listApps:p,listAppsSecureChannel:V(g)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasMetadata:({context:e})=>e._internalState.firmwareVersion!==null&&e._internalState.firmwareUpdateContext!==null&&e._internalState.customImage!==null&&e._internalState.applications!==null&&e._internalState.applicationsUpdates!==null&&e._internalState.installedLanguages!==null&&e._internalState.catalog!==null,forceUpdate:({context:e})=>!!e.input.forceUpdate,useSecureChannel:({context:e})=>!!e.input.useSecureChannel},actions:{assignErrorFromEvent:r({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GetDeviceMetadataDeviceAction",initial:"DeviceReady",context:e=>({input:{useSecureChannel:e.input.useSecureChannel,forceUpdate:e.input.forceUpdate,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None},_internalState:{error:null,deviceVersion:null,firmware:null,firmwareVersion:null,firmwareUpdateContext:null,customImage:null,installedApps:null,applications:null,applicationsUpdates:null,installedLanguages:null,catalog:null}}),states:{DeviceReady:{always:[{target:"GoToDashboard",guard:"forceUpdate"},{target:"GetDeviceMetadataFromContext"}]},GetDeviceMetadataFromContext:{invoke:{src:"getDeviceMetadata",onDone:{target:"GetDeviceMetadataFromContextResultCheck",actions:r({_internalState:e=>e.event.output===null?e.context._internalState:{...e.context._internalState,firmwareVersion:e.event.output.firmwareVersion,firmwareUpdateContext:e.event.output.firmwareUpdateContext,customImage:e.event.output.customImage,applications:e.event.output.applications,applicationsUpdates:e.event.output.applicationsUpdates,installedLanguages:e.event.output.installedLanguages,catalog:e.event.output.catalog}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetDeviceMetadataFromContextResultCheck:{always:[{target:"Success",guard:"hasMetadata"},{target:"GoToDashboard"}]},GoToDashboard:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"dashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:r({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:r({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetFirmwareMetadata"}]},GetFirmwareMetadata:{invoke:{src:"getFirmwareMetadata",onDone:{target:"GetFirmwareMetadataResultCheck",actions:r({_internalState:e=>{if(f(e.event.output)){const a=n.getDeviceSessionState();return a.sessionStateType!==s.Connected&&n.setDeviceSessionState({...a,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}),{...e.context._internalState,deviceVersion:e.event.output.data.deviceVersion,firmware:e.event.output.data.firmware,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetFirmwareMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{guard:"useSecureChannel",target:"ListAppsSecureChannel"},{target:"ListApps"}]},ListAppsSecureChannel:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"listAppsSecureChannel",src:"listAppsSecureChannel",input:e=>({firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion}),onSnapshot:{actions:r({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case o.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case o.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:i.AllowSecureConnection};case o.PermissionGranted:{const a=n.getDeviceSessionState();return a.sessionStateType!==s.Connected&&n.setDeviceSessionState({...a,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:i.None}}default:return{...e.context.intermediateValue}}},_internalState:e=>{if(e.event.snapshot.context?.type===o.Error)return{...e.context._internalState,error:e.event.snapshot.context.error.mapDAErrors()};if(e.event.snapshot.context?.type===o.Result){if(L(e.event.snapshot.context.payload))return{...e.context._internalState,installedApps:e.event.snapshot.context.payload.map(a=>({name:a.name,hash:a.hash,hashCode:a.hash_code_data}))};throw new Error(`Invalid result ${JSON.stringify(e.event.snapshot.context.payload)}`)}return{...e.context._internalState}}})},onDone:{target:"ListAppsCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListApps:{exit:r({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"listApps",src:"listApps",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:r({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"ListAppsCheck",actions:r({_internalState:e=>e.event.output.isLeft()?{...e.context._internalState,error:e.event.output.extract()}:{...e.context._internalState,installedApps:e.event.output.unsafeCoerce().map(a=>({name:a.appName,hash:a.appFullHash,hashCode:a.appCodeHash}))}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetApplicationsMetadata"}]},GetApplicationsMetadata:{invoke:{src:"getApplicationsMetadata",input:e=>({deviceVersion:e.context._internalState.deviceVersion,firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion,installedApps:e.context._internalState.installedApps}),onDone:{target:"GetApplicationsMetadataResultCheck",actions:r({_internalState:e=>{if(f(e.event.output)){const a=n.getDeviceSessionState();return a.sessionStateType!==s.Connected&&n.setDeviceSessionState({...a,installedApps:e.event.output.data.applications,appsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}),{...e.context._internalState,applications:e.event.output.data.applications,applicationsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetApplicationsMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:a}=e,{error:v,firmwareVersion:S,firmwareUpdateContext:w,customImage:h,applications:D,applicationsUpdates:M,installedLanguages:y,catalog:A}=a._internalState;return v?C(v):x({firmwareVersion:S,firmwareUpdateContext:w,customImage:h,applications:D,applicationsUpdates:M,installedLanguages:y,catalog:A})}})}extractDependencies(n){return{getDeviceMetadata:()=>{const t=n.getDeviceSessionState();return t.sessionStateType===s.Connected||t.firmwareVersion?.metadata===void 0||t.firmwareUpdateContext===void 0||t.customImage===void 0||t.installedApps.length===0||t.appsUpdates===void 0||t.installedLanguages===void 0||t.catalog===void 0?Promise.resolve(null):Promise.resolve({firmwareVersion:t.firmwareVersion,firmwareUpdateContext:t.firmwareUpdateContext,customImage:t.customImage,applications:t.installedApps,applicationsUpdates:t.appsUpdates,installedLanguages:t.installedLanguages,catalog:t.catalog})},getFirmwareMetadata:async()=>new k(n).run(),getApplicationsMetadata:async t=>new U(n,{deviceVersion:t.input.deviceVersion,firmware:t.input.firmware,firmwareVersion:t.input.firmwareVersion,installedApps:t.input.installedApps}).run(),listAppsSecureChannel:t=>{const{firmware:l,firmwareVersion:p}=t.input,e=n.getSecureChannelService().listInstalledApps(p.metadata,l);return new R(n,{connection:e}).run()}}}}export{Y as GetDeviceMetadataDeviceAction};
2
2
  //# sourceMappingURL=GetDeviceMetadataDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { DEFAULT_UNLOCK_TIMEOUT_MS } from \"@api/device-action/os/Const\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport {\n GetApplicationsMetadataTask,\n type GetApplicationsMetadataTaskResult,\n type InstalledApp,\n} from \"@api/device-action/task/GetApplicationsMetadataTask\";\nimport {\n GetFirmwareMetadataTask,\n type GetFirmwareMetadataTaskResult,\n} from \"@api/device-action/task/GetFirmwareMetadataTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport {\n type Catalog,\n type CustomImage,\n DeviceSessionStateType,\n type FirmwareUpdateContext,\n type FirmwareVersion,\n type InstalledLanguagePackage,\n} from \"@api/device-session/DeviceSessionState\";\nimport { installedAppResultGuard } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\n\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAInput,\n type GetDeviceMetadataDAIntermediateValue,\n type GetDeviceMetadataDAOutput,\n} from \"./types\";\n\ntype GetDeviceMetadataMachineInternalState = {\n readonly error: GetDeviceMetadataDAError | null;\n readonly deviceVersion: DeviceVersion | null;\n readonly firmware: FinalFirmware | null;\n readonly firmwareVersion: FirmwareVersion | null;\n readonly firmwareUpdateContext: FirmwareUpdateContext | null;\n readonly customImage: CustomImage | null;\n readonly installedApps: InstalledApp[] | null;\n readonly applications: Application[] | null;\n readonly applicationsUpdates: Application[] | null;\n readonly installedLanguages: InstalledLanguagePackage[] | null;\n readonly catalog: Catalog | null;\n};\n\nexport type GetDeviceMetadataFromContextTaskResult = {\n readonly firmwareVersion: FirmwareVersion;\n readonly firmwareUpdateContext: FirmwareUpdateContext;\n readonly customImage: CustomImage;\n readonly applications: Application[];\n readonly applicationsUpdates: Application[];\n readonly installedLanguages: InstalledLanguagePackage[];\n readonly catalog: Catalog;\n} | null;\n\nexport type MachineDependencies = {\n readonly getDeviceMetadata: () => Promise<GetDeviceMetadataFromContextTaskResult>;\n readonly getFirmwareMetadata: () => Promise<GetFirmwareMetadataTaskResult>;\n readonly getApplicationsMetadata: (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) => Promise<GetApplicationsMetadataTaskResult>;\n readonly listAppsSecureChannel: (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceMetadataDeviceAction extends XStateDeviceAction<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n >;\n\n const {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const goToDashboardMachine = new GoToDashboardDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n const listAppsMachine = new ListAppsDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n goToDashboard: goToDashboardMachine,\n getDeviceMetadata: fromPromise(getDeviceMetadata),\n getFirmwareMetadata: fromPromise(getFirmwareMetadata),\n getApplicationsMetadata: fromPromise(getApplicationsMetadata),\n listApps: listAppsMachine,\n listAppsSecureChannel: fromObservable(listAppsSecureChannel),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasMetadata: ({ context }) =>\n context._internalState.firmwareVersion !== null &&\n context._internalState.firmwareUpdateContext !== null &&\n context._internalState.customImage !== null &&\n context._internalState.applications !== null &&\n context._internalState.applicationsUpdates !== null &&\n context._internalState.installedLanguages !== null &&\n context._internalState.catalog !== null,\n forceUpdate: ({ context }) => Boolean(context.input.forceUpdate),\n useSecureChannel: ({ context }) =>\n Boolean(context.input.useSecureChannel),\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"GetDeviceMetadataDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n useSecureChannel: _.input.useSecureChannel,\n forceUpdate: _.input.forceUpdate,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n deviceVersion: null,\n firmware: null,\n firmwareVersion: null,\n firmwareUpdateContext: null,\n customImage: null,\n installedApps: null,\n applications: null,\n applicationsUpdates: null,\n installedLanguages: null,\n catalog: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"GoToDashboard\",\n guard: \"forceUpdate\",\n },\n {\n target: \"GetDeviceMetadataFromContext\",\n },\n ],\n },\n GetDeviceMetadataFromContext: {\n invoke: {\n src: \"getDeviceMetadata\",\n onDone: {\n target: \"GetDeviceMetadataFromContextResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output === null) {\n return _.context._internalState;\n } else {\n return {\n ..._.context._internalState,\n firmwareVersion: _.event.output.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.firmwareUpdateContext,\n customImage: _.event.output.customImage,\n applications: _.event.output.applications,\n applicationsUpdates: _.event.output.applicationsUpdates,\n installedLanguages: _.event.output.installedLanguages,\n catalog: _.event.output.catalog,\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetDeviceMetadataFromContextResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"hasMetadata\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"dashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GoToDashboardCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetFirmwareMetadata\",\n },\n ],\n },\n GetFirmwareMetadata: {\n invoke: {\n src: \"getFirmwareMetadata\",\n onDone: {\n target: \"GetFirmwareMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n });\n }\n return {\n ..._.context._internalState,\n deviceVersion: _.event.output.data.deviceVersion,\n firmware: _.event.output.data.firmware,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetFirmwareMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"useSecureChannel\",\n target: \"ListAppsSecureChannel\",\n },\n {\n target: \"ListApps\",\n },\n ],\n },\n ListAppsSecureChannel: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listAppsSecureChannel\",\n src: \"listAppsSecureChannel\",\n input: (_) => ({\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.PermissionRequested: {\n return {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n default:\n return {\n ..._.context.intermediateValue,\n };\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error: _.event.snapshot.context.error.mapDAErrors(),\n };\n } else if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Result\n ) {\n if (\n installedAppResultGuard(_.event.snapshot.context.payload)\n ) {\n return {\n ..._.context._internalState,\n installedApps: _.event.snapshot.context.payload.map(\n (app) => ({\n name: app.name,\n hash: app.hash,\n hashCode: app.hash_code_data,\n }),\n ),\n };\n }\n throw new Error(\n `Invalid result ${JSON.stringify(_.event.snapshot.context.payload)}`,\n );\n }\n return { ..._.context._internalState };\n },\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListApps: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listApps\",\n src: \"listApps\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output.isLeft()) {\n return {\n ..._.context._internalState,\n error: _.event.output.extract(),\n };\n } else {\n return {\n ..._.context._internalState,\n installedApps: _.event.output\n .unsafeCoerce()\n .map((app) => ({\n name: app.appName,\n hash: app.appFullHash,\n hashCode: app.appCodeHash,\n })),\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListAppsCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetApplicationsMetadata\",\n },\n ],\n },\n GetApplicationsMetadata: {\n invoke: {\n src: \"getApplicationsMetadata\",\n input: (_) => ({\n deviceVersion: _.context._internalState.deviceVersion!,\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n installedApps: _.context._internalState.installedApps!,\n }),\n onDone: {\n target: \"GetApplicationsMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n installedApps: _.event.output.data.applications,\n appsUpdates: _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n });\n }\n return {\n ..._.context._internalState,\n applications: _.event.output.data.applications,\n applicationsUpdates:\n _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetApplicationsMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const {\n error,\n firmwareVersion,\n firmwareUpdateContext,\n customImage,\n applications,\n applicationsUpdates,\n installedLanguages,\n catalog,\n } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right({\n firmwareVersion: firmwareVersion!,\n firmwareUpdateContext: firmwareUpdateContext!,\n customImage: customImage!,\n applications: applications!,\n applicationsUpdates: applicationsUpdates!,\n installedLanguages: installedLanguages!,\n catalog: catalog!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getDeviceMetadata = async () => {\n const deviceState = internalApi.getDeviceSessionState();\n if (deviceState.sessionStateType === DeviceSessionStateType.Connected) {\n return null;\n }\n if (\n deviceState.firmwareVersion?.metadata === undefined ||\n deviceState.firmwareUpdateContext === undefined ||\n deviceState.customImage === undefined ||\n deviceState.installedApps.length === 0 ||\n deviceState.appsUpdates === undefined ||\n deviceState.installedLanguages === undefined ||\n deviceState.catalog === undefined\n ) {\n return null;\n }\n return {\n firmwareVersion: deviceState.firmwareVersion,\n firmwareUpdateContext: deviceState.firmwareUpdateContext,\n customImage: deviceState.customImage,\n applications: deviceState.installedApps,\n applicationsUpdates: deviceState.appsUpdates,\n installedLanguages: deviceState.installedLanguages,\n catalog: deviceState.catalog,\n };\n };\n\n const getFirmwareMetadata = async () =>\n new GetFirmwareMetadataTask(internalApi).run();\n\n const getApplicationsMetadata = async (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) =>\n new GetApplicationsMetadataTask(internalApi, {\n deviceVersion: arg0.input.deviceVersion,\n firmware: arg0.input.firmware,\n firmwareVersion: arg0.input.firmwareVersion,\n installedApps: arg0.input.installedApps,\n }).run();\n\n const listAppsSecureChannel = (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => {\n const { firmware, firmwareVersion } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .listInstalledApps(firmwareVersion.metadata!, firmware);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { DEFAULT_UNLOCK_TIMEOUT_MS } from \"@api/device-action/os/Const\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport {\n GetApplicationsMetadataTask,\n type GetApplicationsMetadataTaskResult,\n type InstalledApp,\n} from \"@api/device-action/task/GetApplicationsMetadataTask\";\nimport {\n GetFirmwareMetadataTask,\n type GetFirmwareMetadataTaskResult,\n} from \"@api/device-action/task/GetFirmwareMetadataTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport {\n type Catalog,\n type CustomImage,\n DeviceSessionStateType,\n type FirmwareUpdateContext,\n type FirmwareVersion,\n type InstalledLanguagePackage,\n} from \"@api/device-session/DeviceSessionState\";\nimport { installedAppResultGuard } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\n\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAInput,\n type GetDeviceMetadataDAIntermediateValue,\n type GetDeviceMetadataDAOutput,\n} from \"./types\";\n\ntype GetDeviceMetadataMachineInternalState = {\n readonly error: GetDeviceMetadataDAError | null;\n readonly deviceVersion: DeviceVersion | null;\n readonly firmware: FinalFirmware | null;\n readonly firmwareVersion: FirmwareVersion | null;\n readonly firmwareUpdateContext: FirmwareUpdateContext | null;\n readonly customImage: CustomImage | null;\n readonly installedApps: InstalledApp[] | null;\n readonly applications: Application[] | null;\n readonly applicationsUpdates: Application[] | null;\n readonly installedLanguages: InstalledLanguagePackage[] | null;\n readonly catalog: Catalog | null;\n};\n\nexport type GetDeviceMetadataFromContextTaskResult = {\n readonly firmwareVersion: FirmwareVersion;\n readonly firmwareUpdateContext: FirmwareUpdateContext;\n readonly customImage: CustomImage;\n readonly applications: Application[];\n readonly applicationsUpdates: Application[];\n readonly installedLanguages: InstalledLanguagePackage[];\n readonly catalog: Catalog;\n} | null;\n\nexport type MachineDependencies = {\n readonly getDeviceMetadata: () => Promise<GetDeviceMetadataFromContextTaskResult>;\n readonly getFirmwareMetadata: () => Promise<GetFirmwareMetadataTaskResult>;\n readonly getApplicationsMetadata: (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) => Promise<GetApplicationsMetadataTaskResult>;\n readonly listAppsSecureChannel: (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceMetadataDeviceAction extends XStateDeviceAction<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n >;\n\n const {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const goToDashboardMachine = new GoToDashboardDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n const listAppsMachine = new ListAppsDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n goToDashboard: goToDashboardMachine,\n getDeviceMetadata: fromPromise(getDeviceMetadata),\n getFirmwareMetadata: fromPromise(getFirmwareMetadata),\n getApplicationsMetadata: fromPromise(getApplicationsMetadata),\n listApps: listAppsMachine,\n listAppsSecureChannel: fromObservable(listAppsSecureChannel),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasMetadata: ({ context }) =>\n context._internalState.firmwareVersion !== null &&\n context._internalState.firmwareUpdateContext !== null &&\n context._internalState.customImage !== null &&\n context._internalState.applications !== null &&\n context._internalState.applicationsUpdates !== null &&\n context._internalState.installedLanguages !== null &&\n context._internalState.catalog !== null,\n forceUpdate: ({ context }) => Boolean(context.input.forceUpdate),\n useSecureChannel: ({ context }) =>\n Boolean(context.input.useSecureChannel),\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"GetDeviceMetadataDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n useSecureChannel: _.input.useSecureChannel,\n forceUpdate: _.input.forceUpdate,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n deviceVersion: null,\n firmware: null,\n firmwareVersion: null,\n firmwareUpdateContext: null,\n customImage: null,\n installedApps: null,\n applications: null,\n applicationsUpdates: null,\n installedLanguages: null,\n catalog: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"GoToDashboard\",\n guard: \"forceUpdate\",\n },\n {\n target: \"GetDeviceMetadataFromContext\",\n },\n ],\n },\n GetDeviceMetadataFromContext: {\n invoke: {\n src: \"getDeviceMetadata\",\n onDone: {\n target: \"GetDeviceMetadataFromContextResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output === null) {\n return _.context._internalState;\n } else {\n return {\n ..._.context._internalState,\n firmwareVersion: _.event.output.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.firmwareUpdateContext,\n customImage: _.event.output.customImage,\n applications: _.event.output.applications,\n applicationsUpdates: _.event.output.applicationsUpdates,\n installedLanguages: _.event.output.installedLanguages,\n catalog: _.event.output.catalog,\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetDeviceMetadataFromContextResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"hasMetadata\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"dashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GoToDashboardCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetFirmwareMetadata\",\n },\n ],\n },\n GetFirmwareMetadata: {\n invoke: {\n src: \"getFirmwareMetadata\",\n onDone: {\n target: \"GetFirmwareMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n });\n }\n return {\n ..._.context._internalState,\n deviceVersion: _.event.output.data.deviceVersion,\n firmware: _.event.output.data.firmware,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetFirmwareMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"useSecureChannel\",\n target: \"ListAppsSecureChannel\",\n },\n {\n target: \"ListApps\",\n },\n ],\n },\n ListAppsSecureChannel: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listAppsSecureChannel\",\n src: \"listAppsSecureChannel\",\n input: (_) => ({\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.DeviceId: {\n return {\n ..._.context.intermediateValue,\n deviceId: _.event.snapshot.context.payload.deviceId,\n };\n }\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n default:\n return {\n ..._.context.intermediateValue,\n };\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error: _.event.snapshot.context.error.mapDAErrors(),\n };\n } else if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Result\n ) {\n if (\n installedAppResultGuard(_.event.snapshot.context.payload)\n ) {\n return {\n ..._.context._internalState,\n installedApps: _.event.snapshot.context.payload.map(\n (app) => ({\n name: app.name,\n hash: app.hash,\n hashCode: app.hash_code_data,\n }),\n ),\n };\n }\n throw new Error(\n `Invalid result ${JSON.stringify(_.event.snapshot.context.payload)}`,\n );\n }\n return { ..._.context._internalState };\n },\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListApps: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listApps\",\n src: \"listApps\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output.isLeft()) {\n return {\n ..._.context._internalState,\n error: _.event.output.extract(),\n };\n } else {\n return {\n ..._.context._internalState,\n installedApps: _.event.output\n .unsafeCoerce()\n .map((app) => ({\n name: app.appName,\n hash: app.appFullHash,\n hashCode: app.appCodeHash,\n })),\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListAppsCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetApplicationsMetadata\",\n },\n ],\n },\n GetApplicationsMetadata: {\n invoke: {\n src: \"getApplicationsMetadata\",\n input: (_) => ({\n deviceVersion: _.context._internalState.deviceVersion!,\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n installedApps: _.context._internalState.installedApps!,\n }),\n onDone: {\n target: \"GetApplicationsMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n installedApps: _.event.output.data.applications,\n appsUpdates: _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n });\n }\n return {\n ..._.context._internalState,\n applications: _.event.output.data.applications,\n applicationsUpdates:\n _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetApplicationsMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const {\n error,\n firmwareVersion,\n firmwareUpdateContext,\n customImage,\n applications,\n applicationsUpdates,\n installedLanguages,\n catalog,\n } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right({\n firmwareVersion: firmwareVersion!,\n firmwareUpdateContext: firmwareUpdateContext!,\n customImage: customImage!,\n applications: applications!,\n applicationsUpdates: applicationsUpdates!,\n installedLanguages: installedLanguages!,\n catalog: catalog!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getDeviceMetadata = () => {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType === DeviceSessionStateType.Connected ||\n deviceState.firmwareVersion?.metadata === undefined ||\n deviceState.firmwareUpdateContext === undefined ||\n deviceState.customImage === undefined ||\n deviceState.installedApps.length === 0 ||\n deviceState.appsUpdates === undefined ||\n deviceState.installedLanguages === undefined ||\n deviceState.catalog === undefined\n ) {\n return Promise.resolve(null);\n }\n return Promise.resolve({\n firmwareVersion: deviceState.firmwareVersion,\n firmwareUpdateContext: deviceState.firmwareUpdateContext,\n customImage: deviceState.customImage,\n applications: deviceState.installedApps,\n applicationsUpdates: deviceState.appsUpdates,\n installedLanguages: deviceState.installedLanguages,\n catalog: deviceState.catalog,\n });\n };\n\n const getFirmwareMetadata = async () =>\n new GetFirmwareMetadataTask(internalApi).run();\n\n const getApplicationsMetadata = async (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) =>\n new GetApplicationsMetadataTask(internalApi, {\n deviceVersion: arg0.input.deviceVersion,\n firmware: arg0.input.firmware,\n firmwareVersion: arg0.input.firmwareVersion,\n installedApps: arg0.input.installedApps,\n }).run();\n\n const listAppsSecureChannel = (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => {\n const { firmware, firmwareVersion } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .listInstalledApps(firmwareVersion.metadata!, firmware);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Left", "Right", "assign", "fromObservable", "fromPromise", "setup", "isSuccessCommandResult", "UserInteractionRequired", "DEFAULT_UNLOCK_TIMEOUT_MS", "GoToDashboardDeviceAction", "ListAppsDeviceAction", "GetApplicationsMetadataTask", "GetFirmwareMetadataTask", "XStateDeviceAction", "DeviceSessionStateType", "installedAppResultGuard", "ConnectToSecureChannelTask", "SecureChannelEventType", "GetDeviceMetadataDeviceAction", "internalApi", "getDeviceMetadata", "getFirmwareMetadata", "getApplicationsMetadata", "listAppsSecureChannel", "unlockTimeout", "goToDashboardMachine", "listAppsMachine", "context", "_", "error", "deviceState", "app", "args", "firmwareVersion", "firmwareUpdateContext", "customImage", "applications", "applicationsUpdates", "installedLanguages", "catalog", "arg0", "firmware", "connection"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as h,Right as y}from"purify-ts";import{assign as a,fromObservable as S,fromPromise as A,setup as g}from"xstate";import{UserInteractionRequired as i}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as x}from"../../../device-action/os/Const";import{OutOfMemoryDAError as O}from"../../../device-action/os/Errors";import{GetDeviceMetadataDeviceAction as D}from"../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction";import{GoToDashboardDeviceAction as f}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{BuildAppsInstallPlanTask as v}from"../../../device-action/task/BuildAppsInstallPlanTask";import{PredictOutOfMemoryTask as M}from"../../../device-action/task/PredictOutOfMemoryTask";import{XStateDeviceAction as P}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as I}from"../../../device-session/DeviceSessionState";import{ConnectToSecureChannelTask as E}from"../../../secure-channel/task/ConnectToSecureChannelTask";import{SecureChannelEventType as o}from"../../../secure-channel/task/types";class K extends P{makeStateMachine(e){const{buildInstallPlan:c,predictOutOfMemory:u,installApp:d}=this.extractDependencies(e),r=this.input.unlockTimeout??x,l=new D({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(e),s=new f({input:{unlockTimeout:r}}).makeStateMachine(e);return g({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:l,buildInstallPlan:A(c),predictOutOfMemory:A(u),goToDashboard:s,installApp:S(d)},guards:{hasError:({context:t})=>t._internalState.error!==null,hasInstallPlan:t=>t.context.intermediateValue.installPlan!==null,hasMoreApps:t=>t.context._internalState.currentIndex<t.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:a({_internalState:t=>({...t.context._internalState,error:t.event.error})}),nextAppIndex:a({_internalState:t=>({...t.context._internalState,currentIndex:t.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const t=e.getDeviceSessionState();t.sessionStateType!==I.Connected&&e.setDeviceSessionState({...t,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{applications:t.input.applications,allowMissingApplication:t.input.allowMissingApplication,unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:t=>({unlockTimeout:t.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:t.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:a({_internalState:t=>t.event.output.caseOf({Right:n=>({...t.context._internalState,osVersion:n.firmwareVersion.metadata}),Left:n=>({...t.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},UpdateDeviceMetadataCheck:{always:[{target:"Error",guard:"hasError"},{target:"Success",guard:"hasInstallPlan"},{target:"BuildInstallPlan"}]},BuildInstallPlan:{invoke:{src:"buildInstallPlan",input:t=>({applications:t.context.input.applications,allowMissingApplication:t.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:a({_internalState:t=>"error"in t.event.output?{...t.context._internalState,error:t.event.output.error}:t.context._internalState,intermediateValue:t=>"error"in t.event.output?t.context.intermediateValue:{...t.context.intermediateValue,installPlan:{installPlan:t.event.output.installPlan,alreadyInstalled:t.event.output.alreadyInstalled,missingApplications:t.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:t=>({installPlan:t.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:a({_internalState:t=>"error"in t.event.output?{...t.context._internalState,error:t.event.output.error}:t.event.output.outOfMemory?{...t.context._internalState,error:new O("Not enough memory for those applications")}:t.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:t.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:a({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:n=>({...t.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"installApp",src:"installApp",input:t=>({osVersion:t.context._internalState.osVersion,application:t.context.intermediateValue.installPlan.installPlan[t.context._internalState.currentIndex]}),onSnapshot:{actions:a({intermediateValue:t=>{switch(t.event.snapshot.context?.type){case o.PermissionRequested:return{...t.context.intermediateValue,requiredUserInteraction:i.AllowSecureConnection};case o.PermissionGranted:{const n=e.getDeviceSessionState();return n.sessionStateType!==I.Connected&&e.setDeviceSessionState({...n,isSecureConnectionAllowed:!0}),{...t.context.intermediateValue,requiredUserInteraction:i.None}}case o.Progress:return{...t.context.intermediateValue,installPlan:{...t.context.intermediateValue.installPlan,currentIndex:t.context._internalState.currentIndex,currentProgress:t.event.snapshot.context.payload.progress}};default:return t.context.intermediateValue}},_internalState:t=>t.event.snapshot.context?.type===o.Error?{...t.context._internalState,error:t.event.snapshot.context.error.mapInstallDAErrors()}:t.context._internalState})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>{const{context:n}=t,{error:m}=n._internalState,{installPlan:p}=n.intermediateValue;return m?h(m):y({successfullyInstalled:p.installPlan,alreadyInstalled:p.alreadyInstalled,missingApplications:p.missingApplications})}})}extractDependencies(e){return{buildInstallPlan:async r=>new v(e,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run(),predictOutOfMemory:async r=>new M(e,{installPlan:r.input.installPlan}).run(),installApp:r=>{const{osVersion:l,application:s}=r.input,t=e.getSecureChannelService().installApp(l,s);return new E(e,{connection:t}).run()}}}}export{K as InstallOrUpdateAppsDeviceAction};
1
+ import{Left as h,Right as S}from"purify-ts";import{assign as a,fromObservable as x,fromPromise as I,setup as y}from"xstate";import{UserInteractionRequired as i}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as g}from"../../../device-action/os/Const";import{OutOfMemoryDAError as v}from"../../../device-action/os/Errors";import{GetDeviceMetadataDeviceAction as O}from"../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction";import{GoToDashboardDeviceAction as D}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{BuildAppsInstallPlanTask as f}from"../../../device-action/task/BuildAppsInstallPlanTask";import{PredictOutOfMemoryTask as M}from"../../../device-action/task/PredictOutOfMemoryTask";import{XStateDeviceAction as P}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as A}from"../../../device-session/DeviceSessionState";import{ConnectToSecureChannelTask as E}from"../../../secure-channel/task/ConnectToSecureChannelTask";import{SecureChannelEventType as o}from"../../../secure-channel/task/types";class K extends P{makeStateMachine(t){const{buildInstallPlan:c,predictOutOfMemory:u,installApp:d}=this.extractDependencies(t),r=this.input.unlockTimeout??g,l=new O({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(t),s=new D({input:{unlockTimeout:r}}).makeStateMachine(t);return y({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:l,buildInstallPlan:I(c),predictOutOfMemory:I(u),goToDashboard:s,installApp:x(d)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasInstallPlan:e=>e.context.intermediateValue.installPlan!==null,hasMoreApps:e=>e.context._internalState.currentIndex<e.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:a({_internalState:e=>({...e.context._internalState,error:e.event.error})}),nextAppIndex:a({_internalState:e=>({...e.context._internalState,currentIndex:e.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const e=t.getDeviceSessionState();e.sessionStateType!==A.Connected&&t.setDeviceSessionState({...e,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:e=>({input:{applications:e.input.applications,allowMissingApplication:e.input.allowMissingApplication,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:e=>({unlockTimeout:e.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction,deviceId:e.event.snapshot.context.intermediateValue.deviceId??e.context.intermediateValue.deviceId})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:a({_internalState:e=>e.event.output.caseOf({Right:n=>({...e.context._internalState,osVersion:n.firmwareVersion.metadata}),Left:n=>({...e.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},UpdateDeviceMetadataCheck:{always:[{target:"Error",guard:"hasError"},{target:"Success",guard:"hasInstallPlan"},{target:"BuildInstallPlan"}]},BuildInstallPlan:{invoke:{src:"buildInstallPlan",input:e=>({applications:e.context.input.applications,allowMissingApplication:e.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:a({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.context._internalState,intermediateValue:e=>"error"in e.event.output?e.context.intermediateValue:{...e.context.intermediateValue,installPlan:{installPlan:e.event.output.installPlan,alreadyInstalled:e.event.output.alreadyInstalled,missingApplications:e.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:e=>({installPlan:e.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:a({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.event.output.outOfMemory?{...e.context._internalState,error:new v("Not enough memory for those applications")}:e.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:a({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:n=>({...e.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"installApp",src:"installApp",input:e=>({osVersion:e.context._internalState.osVersion,application:e.context.intermediateValue.installPlan.installPlan[e.context._internalState.currentIndex]}),onSnapshot:{actions:a({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case o.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case o.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:i.AllowSecureConnection};case o.PermissionGranted:{const n=t.getDeviceSessionState();return n.sessionStateType!==A.Connected&&t.setDeviceSessionState({...n,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:i.None}}case o.Progress:return{...e.context.intermediateValue,installPlan:{...e.context.intermediateValue.installPlan,currentIndex:e.context._internalState.currentIndex,currentProgress:e.event.snapshot.context.payload.progress}};default:return e.context.intermediateValue}},_internalState:e=>e.event.snapshot.context?.type===o.Error?{...e.context._internalState,error:e.event.snapshot.context.error.mapInstallDAErrors()}:e.context._internalState})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:n}=e,{error:m}=n._internalState,{installPlan:p}=n.intermediateValue;return m?h(m):S({successfullyInstalled:p.installPlan,alreadyInstalled:p.alreadyInstalled,missingApplications:p.missingApplications})}})}extractDependencies(t){return{buildInstallPlan:r=>Promise.resolve(new f(t,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run()),predictOutOfMemory:r=>Promise.resolve(new M(t,{installPlan:r.input.installPlan}).run()),installApp:r=>{const{osVersion:l,application:s}=r.input,e=t.getSecureChannelService().installApp(l,s);return new E(t,{connection:e}).run()}}}}export{K as InstallOrUpdateAppsDeviceAction};
2
2
  //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.js.map