@ledgerhq/device-management-kit 1.3.0 → 1.4.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 (95) hide show
  1. package/lib/cjs/package.json +1 -1
  2. package/lib/cjs/src/api/Error.js +1 -1
  3. package/lib/cjs/src/api/Error.js.map +3 -3
  4. package/lib/cjs/src/api/command/model/CommandResult.js +1 -1
  5. package/lib/cjs/src/api/command/model/CommandResult.js.map +2 -2
  6. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.js +2 -0
  7. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.js.map +7 -0
  8. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js +2 -0
  9. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js.map +7 -0
  10. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  11. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  12. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  13. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.js +2 -0
  14. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.js.map +7 -0
  15. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +2 -0
  16. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +7 -0
  17. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/types.js +2 -0
  18. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/types.js.map +7 -0
  19. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.js +2 -0
  20. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.js.map +7 -0
  21. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js +9 -0
  22. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +7 -0
  23. package/lib/cjs/src/api/index.js +1 -1
  24. package/lib/cjs/src/api/index.js.map +3 -3
  25. package/lib/cjs/src/api/network/DmkNetworkClient.js +1 -1
  26. package/lib/cjs/src/api/network/DmkNetworkClient.js.map +2 -2
  27. package/lib/cjs/src/api/network/DmkNetworkClient.test.js +1 -1
  28. package/lib/cjs/src/api/network/DmkNetworkClient.test.js.map +2 -2
  29. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.js +1 -1
  30. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.js.map +3 -3
  31. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js +1 -1
  32. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js.map +3 -3
  33. package/lib/cjs/src/api/types.js +1 -1
  34. package/lib/cjs/src/api/types.js.map +1 -1
  35. package/lib/esm/package.json +1 -1
  36. package/lib/esm/src/api/Error.js +1 -1
  37. package/lib/esm/src/api/Error.js.map +3 -3
  38. package/lib/esm/src/api/command/model/CommandResult.js.map +2 -2
  39. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.js +2 -0
  40. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.js.map +7 -0
  41. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js +2 -0
  42. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js.map +7 -0
  43. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  44. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  45. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  46. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.js +2 -0
  47. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.js.map +7 -0
  48. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +2 -0
  49. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +7 -0
  50. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/types.js +2 -0
  51. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/types.js.map +7 -0
  52. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.js +2 -0
  53. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.js.map +7 -0
  54. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js +9 -0
  55. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +7 -0
  56. package/lib/esm/src/api/index.js +1 -1
  57. package/lib/esm/src/api/index.js.map +3 -3
  58. package/lib/esm/src/api/network/DmkNetworkClient.js +1 -1
  59. package/lib/esm/src/api/network/DmkNetworkClient.js.map +2 -2
  60. package/lib/esm/src/api/network/DmkNetworkClient.test.js +1 -1
  61. package/lib/esm/src/api/network/DmkNetworkClient.test.js.map +2 -2
  62. package/lib/esm/src/api/network/DmkNetworkClientHelpers.js +1 -1
  63. package/lib/esm/src/api/network/DmkNetworkClientHelpers.js.map +3 -3
  64. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js +1 -1
  65. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js.map +3 -3
  66. package/lib/types/src/api/Error.d.ts +5 -0
  67. package/lib/types/src/api/Error.d.ts.map +1 -1
  68. package/lib/types/src/api/command/model/CommandResult.d.ts +2 -2
  69. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  70. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.d.ts +24 -0
  71. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.d.ts.map +1 -0
  72. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts +2 -0
  73. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts.map +1 -0
  74. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +1 -1
  75. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -1
  76. package/lib/types/src/api/device-action/os/Errors.d.ts +20 -0
  77. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  78. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.d.ts +23 -0
  79. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.d.ts.map +1 -0
  80. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts +2 -0
  81. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts.map +1 -0
  82. package/lib/types/src/api/device-action/os/InstallLanguagePackage/types.d.ts +27 -0
  83. package/lib/types/src/api/device-action/os/InstallLanguagePackage/types.d.ts.map +1 -0
  84. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.d.ts +19 -0
  85. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.d.ts.map +1 -0
  86. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts +2 -0
  87. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts.map +1 -0
  88. package/lib/types/src/api/index.d.ts +4 -1
  89. package/lib/types/src/api/index.d.ts.map +1 -1
  90. package/lib/types/src/api/network/DmkNetworkClientHelpers.d.ts +21 -0
  91. package/lib/types/src/api/network/DmkNetworkClientHelpers.d.ts.map +1 -1
  92. package/lib/types/src/api/types.d.ts +1 -0
  93. package/lib/types/src/api/types.d.ts.map +1 -1
  94. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  95. package/package.json +4 -4
@@ -63,5 +63,5 @@
63
63
  "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
64
64
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
65
65
  },
66
- "version": "1.3.0"
66
+ "version": "1.4.0"
67
67
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var t=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var n in r)s(e,n,{get:r[n],enumerable:!0})},E=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of c(r))!t.call(e,o)&&o!==n&&s(e,o,{get:()=>r[o],enumerable:!(i=a(r,o))||i.enumerable});return e};var d=e=>E(s({},"__esModule",{value:!0}),e);var m={};g(m,{DeviceBusyError:()=>h,DeviceExchangeError:()=>l,UnknownDeviceExchangeError:()=>p});module.exports=d(m);class l{_tag;originalError;errorCode;message;constructor({tag:r,errorCode:n,originalError:i,message:o}){this._tag=r,this.originalError=i,this.errorCode=n,this.message=o??"An error occured during device exchange."}}class p{_tag="UnknownDeviceExchangeError";originalError;message;constructor(r){this.originalError=r,this.message="Unexpected device exchange error happened."}}class h{_tag="DeviceBusyError";originalError;constructor(r){this.originalError=r??new Error("Device is busy, please try again later")}}0&&(module.exports={DeviceBusyError,DeviceExchangeError,UnknownDeviceExchangeError});
1
+ "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var n in r)a(e,n,{get:r[n],enumerable:!0})},E=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of t(r))!c.call(e,o)&&o!==n&&a(e,o,{get:()=>r[o],enumerable:!(i=s(r,o))||i.enumerable});return e};var d=e=>E(a({},"__esModule",{value:!0}),e);var h={};g(h,{DeviceBusyError:()=>m,DeviceExchangeError:()=>l,InvalidArgumentError:()=>y,UnknownDeviceExchangeError:()=>p});module.exports=d(h);class l{_tag;originalError;errorCode;message;constructor({tag:r,errorCode:n,originalError:i,message:o}){this._tag=r,this.originalError=i,this.errorCode=n,this.message=o??"An error occured during device exchange."}}class p{_tag="UnknownDeviceExchangeError";originalError;message;constructor(r){this.originalError=r,this.message="Unexpected device exchange error happened."}}class m{_tag="DeviceBusyError";originalError;constructor(r){this.originalError=r??new Error("Device is busy, please try again later")}}class y{_tag="InvalidArgumentError";originalError;constructor(r){this.originalError=new Error(r??"Invalid argument.")}}0&&(module.exports={DeviceBusyError,DeviceExchangeError,InvalidArgumentError,UnknownDeviceExchangeError});
2
2
  //# sourceMappingURL=Error.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/Error.ts"],
4
- "sourcesContent": ["export interface DmkError {\n readonly _tag: string;\n readonly originalError?: unknown;\n message?: string;\n}\n\nexport type DeviceExchangeErrorArgs<SpecificErrorCodes> = {\n tag: string;\n originalError?: unknown;\n errorCode: SpecificErrorCodes;\n message: string;\n};\n\nexport type CommandErrorArgs<SpecificErrorCodes> = Omit<\n DeviceExchangeErrorArgs<SpecificErrorCodes>,\n \"tag\"\n>;\n\nexport abstract class DeviceExchangeError<SpecificErrorCodes = void> {\n readonly _tag: string;\n readonly originalError?: unknown;\n readonly errorCode: SpecificErrorCodes;\n readonly message: string;\n\n protected constructor({\n tag,\n errorCode,\n originalError,\n message,\n }: DeviceExchangeErrorArgs<SpecificErrorCodes>) {\n this._tag = tag;\n this.originalError = originalError;\n this.errorCode = errorCode;\n this.message = message ?? \"An error occured during device exchange.\";\n }\n}\n\nexport class UnknownDeviceExchangeError implements DmkError {\n readonly _tag = \"UnknownDeviceExchangeError\";\n readonly originalError?: unknown;\n readonly message: string;\n\n constructor(originalError?: unknown) {\n this.originalError = originalError;\n this.message = \"Unexpected device exchange error happened.\";\n }\n}\n\nexport class DeviceBusyError implements DmkError {\n readonly _tag = \"DeviceBusyError\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError =\n originalError ?? new Error(\"Device is busy, please try again later\");\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,wBAAAC,EAAA,+BAAAC,IAAA,eAAAC,EAAAL,GAkBO,MAAeG,CAA+C,CAC1D,KACA,cACA,UACA,QAEC,YAAY,CACpB,IAAAG,EACA,UAAAC,EACA,cAAAC,EACA,QAAAC,CACF,EAAgD,CAC9C,KAAK,KAAOH,EACZ,KAAK,cAAgBE,EACrB,KAAK,UAAYD,EACjB,KAAK,QAAUE,GAAW,0CAC5B,CACF,CAEO,MAAML,CAA+C,CACjD,KAAO,6BACP,cACA,QAET,YAAYI,EAAyB,CACnC,KAAK,cAAgBA,EACrB,KAAK,QAAU,4CACjB,CACF,CAEO,MAAMN,CAAoC,CACtC,KAAO,kBAChB,cAEA,YAAYM,EAAuB,CACjC,KAAK,cACHA,GAAiB,IAAI,MAAM,wCAAwC,CACvE,CACF",
6
- "names": ["Error_exports", "__export", "DeviceBusyError", "DeviceExchangeError", "UnknownDeviceExchangeError", "__toCommonJS", "tag", "errorCode", "originalError", "message"]
4
+ "sourcesContent": ["export interface DmkError {\n readonly _tag: string;\n readonly originalError?: unknown;\n message?: string;\n}\n\nexport type DeviceExchangeErrorArgs<SpecificErrorCodes> = {\n tag: string;\n originalError?: unknown;\n errorCode: SpecificErrorCodes;\n message: string;\n};\n\nexport type CommandErrorArgs<SpecificErrorCodes> = Omit<\n DeviceExchangeErrorArgs<SpecificErrorCodes>,\n \"tag\"\n>;\n\nexport abstract class DeviceExchangeError<SpecificErrorCodes = void> {\n readonly _tag: string;\n readonly originalError?: unknown;\n readonly errorCode: SpecificErrorCodes;\n readonly message: string;\n\n protected constructor({\n tag,\n errorCode,\n originalError,\n message,\n }: DeviceExchangeErrorArgs<SpecificErrorCodes>) {\n this._tag = tag;\n this.originalError = originalError;\n this.errorCode = errorCode;\n this.message = message ?? \"An error occured during device exchange.\";\n }\n}\n\nexport class UnknownDeviceExchangeError implements DmkError {\n readonly _tag = \"UnknownDeviceExchangeError\";\n readonly originalError?: unknown;\n readonly message: string;\n\n constructor(originalError?: unknown) {\n this.originalError = originalError;\n this.message = \"Unexpected device exchange error happened.\";\n }\n}\n\nexport class DeviceBusyError implements DmkError {\n readonly _tag = \"DeviceBusyError\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError =\n originalError ?? new Error(\"Device is busy, please try again later\");\n }\n}\n\nexport class InvalidArgumentError implements DmkError {\n readonly _tag = \"InvalidArgumentError\";\n readonly originalError: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Invalid argument.\");\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,wBAAAC,EAAA,yBAAAC,EAAA,+BAAAC,IAAA,eAAAC,EAAAN,GAkBO,MAAeG,CAA+C,CAC1D,KACA,cACA,UACA,QAEC,YAAY,CACpB,IAAAI,EACA,UAAAC,EACA,cAAAC,EACA,QAAAC,CACF,EAAgD,CAC9C,KAAK,KAAOH,EACZ,KAAK,cAAgBE,EACrB,KAAK,UAAYD,EACjB,KAAK,QAAUE,GAAW,0CAC5B,CACF,CAEO,MAAML,CAA+C,CACjD,KAAO,6BACP,cACA,QAET,YAAYI,EAAyB,CACnC,KAAK,cAAgBA,EACrB,KAAK,QAAU,4CACjB,CACF,CAEO,MAAMP,CAAoC,CACtC,KAAO,kBAChB,cAEA,YAAYO,EAAuB,CACjC,KAAK,cACHA,GAAiB,IAAI,MAAM,wCAAwC,CACvE,CACF,CAEO,MAAML,CAAyC,CAC3C,KAAO,uBACP,cAET,YAAYM,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,mBAAmB,CAC/D,CACF",
6
+ "names": ["Error_exports", "__export", "DeviceBusyError", "DeviceExchangeError", "InvalidArgumentError", "UnknownDeviceExchangeError", "__toCommonJS", "tag", "errorCode", "originalError", "message"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var c=(o,r)=>{for(var a in r)m(o,a,{get:r[a],enumerable:!0})},u=(o,r,a,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of i(r))!n.call(o,t)&&t!==a&&m(o,t,{get:()=>r[t],enumerable:!(s=d(r,t))||s.enumerable});return o};var p=o=>u(m({},"__esModule",{value:!0}),o);var C={};c(C,{CommandResultFactory:()=>E,CommandResultStatus:()=>e.DmkResultStatus,isSuccessCommandResult:()=>l});module.exports=p(C);var e=require("../../model/DmkResult");function E({data:o,error:r}){return r!==void 0?(0,e.DmkResultFactory)({error:r}):(0,e.DmkResultFactory)({data:o})}function l(o){return(0,e.isSuccessDmkResult)(o)}0&&(module.exports={CommandResultFactory,CommandResultStatus,isSuccessCommandResult});
1
+ "use strict";var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var a in r)m(o,a,{get:r[a],enumerable:!0})},c=(o,r,a,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of i(r))!n.call(o,t)&&t!==a&&m(o,t,{get:()=>r[t],enumerable:!(s=d(r,t))||s.enumerable});return o};var E=o=>c(m({},"__esModule",{value:!0}),o);var C={};u(C,{CommandResultFactory:()=>l,CommandResultStatus:()=>e.DmkResultStatus,isSuccessCommandResult:()=>p});module.exports=E(C);var e=require("../../model/DmkResult");function l({data:o,error:r}){return r!==void 0?(0,e.DmkResultFactory)({error:r}):(0,e.DmkResultFactory)({data:o})}function p(o){return(0,e.isSuccessDmkResult)(o)}0&&(module.exports={CommandResultFactory,CommandResultStatus,isSuccessCommandResult});
2
2
  //# sourceMappingURL=CommandResult.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/model/CommandResult.ts"],
4
- "sourcesContent": ["import type {\n InvalidResponseFormatError,\n InvalidStatusWordError,\n} from \"@api/command/Errors\";\nimport type { GlobalCommandErrorStatusCode } from \"@api/command/utils/GlobalCommandError\";\nimport type {\n DeviceExchangeError,\n UnknownDeviceExchangeError,\n} from \"@api/Error\";\nimport type {\n DmkErrorResult,\n DmkResult,\n DmkSuccessResult,\n} from \"@api/model/DmkResult\";\nimport {\n DmkResultFactory,\n DmkResultStatus,\n isSuccessDmkResult,\n} from \"@api/model/DmkResult\";\n\nexport { DmkResultStatus as CommandResultStatus };\ntype CommandError<SpecificErrorCodes = void> =\n | DeviceExchangeError<SpecificErrorCodes | GlobalCommandErrorStatusCode>\n | InvalidResponseFormatError\n | InvalidStatusWordError\n | UnknownDeviceExchangeError;\n\nexport type CommandSuccessResult<Data> = DmkSuccessResult<Data>;\nexport type CommandErrorResult<SpecificErrorCodes = void> = DmkErrorResult<\n CommandError<SpecificErrorCodes>\n>;\nexport type CommandResult<Data, SpecificErrorCodes = void> = DmkResult<\n Data,\n CommandError<SpecificErrorCodes>\n>;\n\nexport function CommandResultFactory<Data, SpecificErrorCodes = void>({\n data,\n error,\n}:\n | { data: Data; error?: undefined }\n | {\n data?: undefined;\n error: CommandError<SpecificErrorCodes>;\n }): CommandResult<Data, SpecificErrorCodes> {\n if (error !== undefined) {\n return DmkResultFactory({\n error,\n });\n }\n\n return DmkResultFactory({\n data,\n });\n}\n\nexport function isSuccessCommandResult<Data, StatusCode>(\n result: CommandResult<Data, StatusCode>,\n): result is CommandSuccessResult<Data> {\n return isSuccessDmkResult(result);\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,qEAAAC,IAAA,eAAAC,EAAAJ,GAcA,IAAAK,EAIO,gCAkBA,SAASC,EAAsD,CACpE,KAAAC,EACA,MAAAC,CACF,EAKgD,CAC9C,OAAIA,IAAU,UACL,oBAAiB,CACtB,MAAAA,CACF,CAAC,KAGI,oBAAiB,CACtB,KAAAD,CACF,CAAC,CACH,CAEO,SAASE,EACdC,EACsC,CACtC,SAAO,sBAAmBA,CAAM,CAClC",
4
+ "sourcesContent": ["import type {\n InvalidResponseFormatError,\n InvalidStatusWordError,\n} from \"@api/command/Errors\";\nimport type { GlobalCommandErrorStatusCode } from \"@api/command/utils/GlobalCommandError\";\nimport type {\n DeviceExchangeError,\n InvalidArgumentError,\n UnknownDeviceExchangeError,\n} from \"@api/Error\";\nimport type {\n DmkErrorResult,\n DmkResult,\n DmkSuccessResult,\n} from \"@api/model/DmkResult\";\nimport {\n DmkResultFactory,\n DmkResultStatus,\n isSuccessDmkResult,\n} from \"@api/model/DmkResult\";\n\nexport { DmkResultStatus as CommandResultStatus };\ntype CommandError<SpecificErrorCodes = void> =\n | DeviceExchangeError<SpecificErrorCodes | GlobalCommandErrorStatusCode>\n | InvalidResponseFormatError\n | InvalidStatusWordError\n | InvalidArgumentError\n | UnknownDeviceExchangeError;\n\nexport type CommandSuccessResult<Data> = DmkSuccessResult<Data>;\nexport type CommandErrorResult<SpecificErrorCodes = void> = DmkErrorResult<\n CommandError<SpecificErrorCodes>\n>;\nexport type CommandResult<Data, SpecificErrorCodes = void> = DmkResult<\n Data,\n CommandError<SpecificErrorCodes>\n>;\n\nexport function CommandResultFactory<Data, SpecificErrorCodes = void>({\n data,\n error,\n}:\n | { data: Data; error?: undefined }\n | {\n data?: undefined;\n error: CommandError<SpecificErrorCodes>;\n }): CommandResult<Data, SpecificErrorCodes> {\n if (error !== undefined) {\n return DmkResultFactory({\n error,\n });\n }\n\n return DmkResultFactory({\n data,\n });\n}\n\nexport function isSuccessCommandResult<Data, StatusCode>(\n result: CommandResult<Data, StatusCode>,\n): result is CommandSuccessResult<Data> {\n return isSuccessDmkResult(result);\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,qEAAAC,IAAA,eAAAC,EAAAJ,GAeA,IAAAK,EAIO,gCAmBA,SAASC,EAAsD,CACpE,KAAAC,EACA,MAAAC,CACF,EAKgD,CAC9C,OAAIA,IAAU,UACL,oBAAiB,CACtB,MAAAA,CACF,CAAC,KAGI,oBAAiB,CACtB,KAAAD,CACF,CAAC,CACH,CAEO,SAASE,EACdC,EACsC,CACtC,SAAO,sBAAmBA,CAAM,CAClC",
6
6
  "names": ["CommandResult_exports", "__export", "CommandResultFactory", "isSuccessCommandResult", "__toCommonJS", "import_DmkResult", "CommandResultFactory", "data", "error", "isSuccessCommandResult", "result"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var P=(r,e)=>{for(var a in e)m(r,a,{get:e[a],enumerable:!0})},L=(r,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of A(e))!E.call(r,t)&&t!==a&&m(r,t,{get:()=>e[t],enumerable:!(o=i(e,t))||o.enumerable});return r};var k=r=>L(m({},"__esModule",{value:!0}),r);var y={};P(y,{DeleteLanguagePackCommand:()=>D,DeleteLanguagePackCommandError:()=>C});module.exports=k(y);var s=require("../../apdu/utils/ApduBuilder"),g=require("../../apdu/utils/ApduParser"),n=require("../../command/model/CommandResult"),u=require("../../command/utils/CommandErrors"),l=require("../../command/utils/CommandUtils"),p=require("../../command/utils/GlobalCommandError"),c=require("../../Error");const d={"681a":{message:"Invalid LANG_ID value."}};class C extends c.DeviceExchangeError{constructor({message:e,errorCode:a}){super({message:e,errorCode:a,tag:"DeleteLanguagePackCommandError"})}}class D{constructor(e){this.args=e}name="deleteLanguagePack";getApdu(){const e={cla:224,ins:51,p1:this.args.languagePackageId,p2:0};return new s.ApduBuilder(e).build()}parseResponse(e){const a=new g.ApduParser(e);if(!l.CommandUtils.isSuccessResponse(e)){const o=a.encodeToHexaString(e.statusCode);return(0,u.isCommandErrorCode)(o,d)?(0,n.CommandResultFactory)({error:new C({...d[o],errorCode:o})}):(0,n.CommandResultFactory)({error:p.GlobalCommandErrorHandler.handle(e)})}return(0,n.CommandResultFactory)({data:void 0})}}0&&(module.exports={DeleteLanguagePackCommand,DeleteLanguagePackCommandError});
2
+ //# sourceMappingURL=DeleteLanguagePackCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/os/DeleteLanguagePackCommand.ts"],
4
+ "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\n\nexport type DeleteLanguagePackCommandArgs = {\n readonly languagePackageId: number;\n};\n\nexport type DeleteLanguagePackErrorCodes = \"681a\";\n\nconst DELETE_LANGUAGE_PACK_ERRORS: CommandErrors<DeleteLanguagePackErrorCodes> =\n {\n \"681a\": { message: \"Invalid LANG_ID value.\" },\n };\n\nexport type DeleteLanguagePackCommandResult = CommandResult<\n void,\n DeleteLanguagePackErrorCodes\n>;\n\nexport class DeleteLanguagePackCommandError extends DeviceExchangeError<DeleteLanguagePackErrorCodes> {\n constructor({\n message,\n errorCode,\n }: CommandErrorArgs<DeleteLanguagePackErrorCodes>) {\n super({ message, errorCode, tag: \"DeleteLanguagePackCommandError\" });\n }\n}\n\n/**\n * Delete installed language package by languagePackageId or delete all language packages if languagePackageId = 0xFF.\n */\nexport class DeleteLanguagePackCommand\n implements\n Command<void, DeleteLanguagePackCommandArgs, DeleteLanguagePackErrorCodes>\n{\n readonly name = \"deleteLanguagePack\";\n\n constructor(private readonly args: DeleteLanguagePackCommandArgs) {}\n\n getApdu(): Apdu {\n const apduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x33,\n p1: this.args.languagePackageId,\n p2: 0x00,\n };\n return new ApduBuilder(apduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): DeleteLanguagePackCommandResult {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, DELETE_LANGUAGE_PACK_ERRORS)) {\n return CommandResultFactory({\n error: new DeleteLanguagePackCommandError({\n ...DELETE_LANGUAGE_PACK_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n return CommandResultFactory({\n data: undefined,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,EAAA,mCAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAQ3D,MAAMC,EACJ,CACE,OAAQ,CAAE,QAAS,wBAAyB,CAC9C,EAOK,MAAMT,UAAuC,qBAAkD,CACpG,YAAY,CACV,QAAAU,EACA,UAAAC,CACF,EAAmD,CACjD,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,gCAAiC,CAAC,CACrE,CACF,CAKO,MAAMZ,CAGb,CAGE,YAA6Ba,EAAqC,CAArC,UAAAA,CAAsC,CAF1D,KAAO,qBAIhB,SAAgB,CACd,MAAMC,EAA4B,CAChC,IAAK,IACL,IAAK,GACL,GAAI,KAAK,KAAK,kBACd,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAQ,EAAE,MAAM,CACzC,CAEA,cAAcC,EAA6D,CACzE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMH,EAAYI,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBH,EAAWF,CAA2B,KACpD,wBAAqB,CAC1B,MAAO,IAAIT,EAA+B,CACxC,GAAGS,EAA4BE,CAAS,EACxC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOG,CAAY,CACtD,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,CACH,CACF",
6
+ "names": ["DeleteLanguagePackCommand_exports", "__export", "DeleteLanguagePackCommand", "DeleteLanguagePackCommandError", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_CommandResult", "import_CommandErrors", "import_CommandUtils", "import_GlobalCommandError", "import_Error", "DELETE_LANGUAGE_PACK_ERRORS", "message", "errorCode", "args", "apduArgs", "apduResponse", "parser"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("../../command/model/CommandResult"),n=require("../../command/os/DeleteLanguagePackCommand"),o=require("../../device-session/ApduResponse");const u=new Uint8Array([224,51,1,0,0]),c=new Uint8Array([224,51,255,0,0]);describe("DeleteLanguagePackCommand",()=>{let a;beforeEach(()=>{a=new n.DeleteLanguagePackCommand({languagePackageId:1})}),describe("name",()=>{it("should be 'deleteLanguagePack'",()=>{expect(a.name).toBe("deleteLanguagePack")})}),it("should return the correct APDU for languagePackageId 1",()=>{const e=a.getApdu();expect(e.getRawApdu()).toStrictEqual(u)}),it("should return the correct APDU for languagePackageId 0xFF",()=>{a=new n.DeleteLanguagePackCommand({languagePackageId:255});const e=a.getApdu();expect(e.getRawApdu()).toStrictEqual(c)}),it("should parse success response",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])}),t=a.parseResponse(e);expect(t).toStrictEqual((0,r.CommandResultFactory)({data:void 0}))}),it("should parse error response",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([110,1]),data:new Uint8Array([])}),t=a.parseResponse(e);expect(t.status).toBe(r.CommandResultStatus.Error)}),it("should map 0x681A to DeleteLanguagePackCommandError",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([104,26]),data:new Uint8Array([])}),t=a.parseResponse(e);if(expect(t.status).toBe(r.CommandResultStatus.Error),t.status===r.CommandResultStatus.Error){const{error:s}=t;expect(s).toBeInstanceOf(n.DeleteLanguagePackCommandError),expect(s.errorCode).toBe("681a"),expect(s.message).toBe("Invalid LANG_ID value.")}})});
2
+ //# sourceMappingURL=DeleteLanguagePackCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/os/DeleteLanguagePackCommand.test.ts"],
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n CommandResultStatus,\n} from \"@api/command/model/CommandResult\";\nimport {\n DeleteLanguagePackCommand,\n DeleteLanguagePackCommandError,\n} from \"@api/command/os/DeleteLanguagePackCommand\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nconst DELETE_LANGUAGE_PACK_APDU_ID_1 = new Uint8Array([\n 0xe0, 0x33, 0x01, 0x00, 0x00,\n]);\n\nconst DELETE_ALL_LANGUAGE_PACKS = new Uint8Array([\n 0xe0, 0x33, 0xff, 0x00, 0x00,\n]);\n\ndescribe(\"DeleteLanguagePackCommand\", () => {\n let command: DeleteLanguagePackCommand;\n\n beforeEach(() => {\n command = new DeleteLanguagePackCommand({ languagePackageId: 1 });\n });\n\n describe(\"name\", () => {\n it(\"should be 'deleteLanguagePack'\", () => {\n expect(command.name).toBe(\"deleteLanguagePack\");\n });\n });\n\n it(\"should return the correct APDU for languagePackageId 1\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(DELETE_LANGUAGE_PACK_APDU_ID_1);\n });\n\n it(\"should return the correct APDU for languagePackageId 0xFF\", () => {\n command = new DeleteLanguagePackCommand({ languagePackageId: 0xff });\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(DELETE_ALL_LANGUAGE_PACKS);\n });\n\n it(\"should parse success response\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n const result = command.parseResponse(response);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: undefined,\n }),\n );\n });\n\n it(\"should parse error response\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x6e, 0x01]),\n data: new Uint8Array([]),\n });\n const result = command.parseResponse(response);\n expect(result.status).toBe(CommandResultStatus.Error);\n });\n\n it(\"should map 0x681A to DeleteLanguagePackCommandError\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x68, 0x1a]),\n data: new Uint8Array([]),\n });\n const result = command.parseResponse(response);\n expect(result.status).toBe(CommandResultStatus.Error);\n if (result.status === CommandResultStatus.Error) {\n const { error } = result;\n expect(error).toBeInstanceOf(DeleteLanguagePackCommandError);\n expect((error as DeleteLanguagePackCommandError).errorCode).toBe(\"681a\");\n expect((error as DeleteLanguagePackCommandError).message).toBe(\n \"Invalid LANG_ID value.\",\n );\n }\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,4CACPC,EAGO,qDACPC,EAA6B,4CAE7B,MAAMC,EAAiC,IAAI,WAAW,CACpD,IAAM,GAAM,EAAM,EAAM,CAC1B,CAAC,EAEKC,EAA4B,IAAI,WAAW,CAC/C,IAAM,GAAM,IAAM,EAAM,CAC1B,CAAC,EAED,SAAS,4BAA6B,IAAM,CAC1C,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,4BAA0B,CAAE,kBAAmB,CAAE,CAAC,CAClE,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,iCAAkC,IAAM,CACzC,OAAOA,EAAQ,IAAI,EAAE,KAAK,oBAAoB,CAChD,CAAC,CACH,CAAC,EAED,GAAG,yDAA0D,IAAM,CACjE,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcH,CAA8B,CACxE,CAAC,EAED,GAAG,4DAA6D,IAAM,CACpEE,EAAU,IAAI,4BAA0B,CAAE,kBAAmB,GAAK,CAAC,EACnE,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcF,CAAyB,CACnE,CAAC,EAED,GAAG,gCAAiC,IAAM,CACxC,MAAMG,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAC7C,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,MACR,CAAC,CACH,CACF,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMD,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAC7C,OAAOC,EAAO,MAAM,EAAE,KAAK,sBAAoB,KAAK,CACtD,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMD,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,EAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAE7C,GADA,OAAOC,EAAO,MAAM,EAAE,KAAK,sBAAoB,KAAK,EAChDA,EAAO,SAAW,sBAAoB,MAAO,CAC/C,KAAM,CAAE,MAAAC,CAAM,EAAID,EAClB,OAAOC,CAAK,EAAE,eAAe,gCAA8B,EAC3D,OAAQA,EAAyC,SAAS,EAAE,KAAK,MAAM,EACvE,OAAQA,EAAyC,OAAO,EAAE,KACxD,wBACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_CommandResult", "import_DeleteLanguagePackCommand", "import_ApduResponse", "DELETE_LANGUAGE_PACK_APDU_ID_1", "DELETE_ALL_LANGUAGE_PACKS", "command", "apdu", "response", "result", "error"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/ListLanguagePackCommand.ts"],
4
- "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\nimport { bufferToHexaString } from \"@api/utils/HexaString\";\n\nexport type ListLanguagePackCommandArgs = {\n readonly firstChunk: boolean;\n};\n\nexport type ListLanguagePackResponse =\n | {\n readonly id: number;\n readonly size: number;\n }\n | undefined;\n\nexport type ListLanguagePackErrorCodes = \"662d\";\n\nconst LANGUAGE_PACK_ERRORS: CommandErrors<ListLanguagePackErrorCodes> = {\n \"662d\": {\n message:\n \"Invalid LIST_ARG, first command must be sent with P1_LIST_LANGUAGE_PACKS_FIRST.\",\n },\n};\n\nexport type ListLanguagePackCommandResult = CommandResult<\n ListLanguagePackResponse,\n ListLanguagePackErrorCodes\n>;\n\nexport class ListLanguagePackCommandError extends DeviceExchangeError<ListLanguagePackErrorCodes> {\n constructor({\n message,\n errorCode,\n }: CommandErrorArgs<ListLanguagePackErrorCodes>) {\n super({ message, errorCode, tag: \"ListLanguagePackCommandError\" });\n }\n}\n\nexport class ListLanguagePackCommand\n implements\n Command<\n ListLanguagePackResponse,\n ListLanguagePackCommandArgs,\n ListLanguagePackErrorCodes\n >\n{\n readonly name = \"listLanguagePack\";\n\n constructor(private args: ListLanguagePackCommandArgs) {}\n\n getApdu(): Apdu {\n const apduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x34,\n p1: this.args.firstChunk ? 0x00 : 0x01,\n p2: 0x00,\n };\n return new ApduBuilder(apduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): ListLanguagePackCommandResult {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, LANGUAGE_PACK_ERRORS)) {\n return CommandResultFactory({\n error: new ListLanguagePackCommandError({\n ...LANGUAGE_PACK_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n const tlvVersion = parser.extract8BitUInt();\n if (tlvVersion === undefined) {\n // No more language package\n return CommandResultFactory({\n data: undefined,\n });\n }\n\n parser.extract8BitUInt(); // total length\n const idBuffer = parser.extractFieldLVEncoded();\n if (idBuffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Failed to get language pack id\"),\n });\n }\n\n const sizeBuffer = parser.extractFieldLVEncoded();\n if (sizeBuffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Failed to get language pack size\"),\n });\n }\n\n const id = parseInt(bufferToHexaString(idBuffer), 16);\n const size = parseInt(bufferToHexaString(sizeBuffer), 16);\n return CommandResultFactory({\n data: { id, size },\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,iCAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAAuC,+BACvCC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAC3DC,EAAmC,iCAenC,MAAMC,EAAkE,CACtE,OAAQ,CACN,QACE,iFACJ,CACF,EAOO,MAAMX,UAAqC,qBAAgD,CAChG,YAAY,CACV,QAAAY,EACA,UAAAC,CACF,EAAiD,CAC/C,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,8BAA+B,CAAC,CACnE,CACF,CAEO,MAAMd,CAOb,CAGE,YAAoBe,EAAmC,CAAnC,UAAAA,CAAoC,CAF/C,KAAO,mBAIhB,SAAgB,CACd,MAAMC,EAA4B,CAChC,IAAK,IACL,IAAK,GACL,GAAI,KAAK,KAAK,WAAa,EAAO,EAClC,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAQ,EAAE,MAAM,CACzC,CAEA,cAAcC,EAA2D,CACvE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMH,EAAYI,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBH,EAAWF,CAAoB,KAC7C,wBAAqB,CAC1B,MAAO,IAAIX,EAA6B,CACtC,GAAGW,EAAqBE,CAAS,EACjC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOG,CAAY,CACtD,CAAC,CACH,CAGA,GADmBC,EAAO,gBAAgB,IACvB,OAEjB,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,EAGHA,EAAO,gBAAgB,EACvB,MAAMC,EAAWD,EAAO,sBAAsB,EAC9C,GAAIC,IAAa,OACf,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,gCAAgC,CACpE,CAAC,EAGH,MAAMC,EAAaF,EAAO,sBAAsB,EAChD,GAAIE,IAAe,OACjB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,kCAAkC,CACtE,CAAC,EAGH,MAAMC,EAAK,YAAS,sBAAmBF,CAAQ,EAAG,EAAE,EAC9CG,EAAO,YAAS,sBAAmBF,CAAU,EAAG,EAAE,EACxD,SAAO,wBAAqB,CAC1B,KAAM,CAAE,GAAAC,EAAI,KAAAC,CAAK,CACnB,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\nimport { bufferToHexaString } from \"@api/utils/HexaString\";\n\nexport type ListLanguagePackCommandArgs = {\n readonly firstChunk: boolean;\n};\n\nexport type ListLanguagePackResponse =\n | {\n readonly id: number;\n readonly size: number;\n }\n | undefined;\n\nexport type ListLanguagePackErrorCodes = \"662d\";\n\nconst LANGUAGE_PACK_ERRORS: CommandErrors<ListLanguagePackErrorCodes> = {\n \"662d\": {\n message:\n \"Invalid LIST_ARG, first command must be sent with P1_LIST_LANGUAGE_PACKS_FIRST.\",\n },\n};\n\nexport type ListLanguagePackCommandResult = CommandResult<\n ListLanguagePackResponse,\n ListLanguagePackErrorCodes\n>;\n\nexport class ListLanguagePackCommandError extends DeviceExchangeError<ListLanguagePackErrorCodes> {\n constructor({\n message,\n errorCode,\n }: CommandErrorArgs<ListLanguagePackErrorCodes>) {\n super({ message, errorCode, tag: \"ListLanguagePackCommandError\" });\n }\n}\n\nexport class ListLanguagePackCommand\n implements\n Command<\n ListLanguagePackResponse,\n ListLanguagePackCommandArgs,\n ListLanguagePackErrorCodes\n >\n{\n readonly name = \"listLanguagePack\";\n\n constructor(private readonly args: ListLanguagePackCommandArgs) {}\n\n getApdu(): Apdu {\n const apduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x34,\n p1: this.args.firstChunk ? 0x00 : 0x01,\n p2: 0x00,\n };\n return new ApduBuilder(apduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): ListLanguagePackCommandResult {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, LANGUAGE_PACK_ERRORS)) {\n return CommandResultFactory({\n error: new ListLanguagePackCommandError({\n ...LANGUAGE_PACK_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n const tlvVersion = parser.extract8BitUInt();\n if (tlvVersion === undefined) {\n // No more language package\n return CommandResultFactory({\n data: undefined,\n });\n }\n\n parser.extract8BitUInt(); // total length\n const idBuffer = parser.extractFieldLVEncoded();\n if (idBuffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Failed to get language pack id\"),\n });\n }\n\n const sizeBuffer = parser.extractFieldLVEncoded();\n if (sizeBuffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Failed to get language pack size\"),\n });\n }\n\n const id = parseInt(bufferToHexaString(idBuffer), 16);\n const size = parseInt(bufferToHexaString(sizeBuffer), 16);\n return CommandResultFactory({\n data: { id, size },\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,iCAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAAuC,+BACvCC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAC3DC,EAAmC,iCAenC,MAAMC,EAAkE,CACtE,OAAQ,CACN,QACE,iFACJ,CACF,EAOO,MAAMX,UAAqC,qBAAgD,CAChG,YAAY,CACV,QAAAY,EACA,UAAAC,CACF,EAAiD,CAC/C,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,8BAA+B,CAAC,CACnE,CACF,CAEO,MAAMd,CAOb,CAGE,YAA6Be,EAAmC,CAAnC,UAAAA,CAAoC,CAFxD,KAAO,mBAIhB,SAAgB,CACd,MAAMC,EAA4B,CAChC,IAAK,IACL,IAAK,GACL,GAAI,KAAK,KAAK,WAAa,EAAO,EAClC,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAQ,EAAE,MAAM,CACzC,CAEA,cAAcC,EAA2D,CACvE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMH,EAAYI,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBH,EAAWF,CAAoB,KAC7C,wBAAqB,CAC1B,MAAO,IAAIX,EAA6B,CACtC,GAAGW,EAAqBE,CAAS,EACjC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOG,CAAY,CACtD,CAAC,CACH,CAGA,GADmBC,EAAO,gBAAgB,IACvB,OAEjB,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,EAGHA,EAAO,gBAAgB,EACvB,MAAMC,EAAWD,EAAO,sBAAsB,EAC9C,GAAIC,IAAa,OACf,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,gCAAgC,CACpE,CAAC,EAGH,MAAMC,EAAaF,EAAO,sBAAsB,EAChD,GAAIE,IAAe,OACjB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,kCAAkC,CACtE,CAAC,EAGH,MAAMC,EAAK,YAAS,sBAAmBF,CAAQ,EAAG,EAAE,EAC9CG,EAAO,YAAS,sBAAmBF,CAAU,EAAG,EAAE,EACxD,SAAO,wBAAqB,CAC1B,KAAM,CAAE,GAAAC,EAAI,KAAAC,CAAK,CACnB,CAAC,CACH,CACF",
6
6
  "names": ["ListLanguagePackCommand_exports", "__export", "ListLanguagePackCommand", "ListLanguagePackCommandError", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_Errors", "import_CommandResult", "import_CommandErrors", "import_CommandUtils", "import_GlobalCommandError", "import_Error", "import_HexaString", "LANGUAGE_PACK_ERRORS", "message", "errorCode", "args", "apduArgs", "apduResponse", "parser", "idBuffer", "sizeBuffer", "id", "size"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var E=(o,r)=>{for(var e in r)t(o,e,{get:r[e],enumerable:!0})},p=(o,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of l(r))!s.call(o,n)&&n!==e&&t(o,n,{get:()=>r[n],enumerable:!(i=a(r,n))||i.enumerable});return o};var c=o=>p(t({},"__esModule",{value:!0}),o);var w={};E(w,{AppAlreadyInstalledDAError:()=>y,DeviceLockedError:()=>g,DeviceNotOnboardedError:()=>d,OutOfMemoryDAError:()=>k,RefusedByUserDAError:()=>D,UnknownDAError:()=>A,UnsupportedApplicationDAError:()=>u,UnsupportedFirmwareDAError:()=>m});module.exports=c(w);class d{_tag="DeviceNotOnboardedError";originalError;constructor(r){this.originalError=new Error(r??"Device not onboarded.")}}class g{_tag="DeviceLockedError";originalError;constructor(r){this.originalError=new Error(r??"Device locked.")}}class m{_tag="UnsupportedFirmwareDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class D{_tag="RefusedByUserDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class y{_tag="AppAlreadyInstalledDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class k{_tag="OutOfMemoryDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class A{_tag="UnknownDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class u{_tag="UnsupportedApplicationDAError";originalError;constructor(r){this.originalError=new Error(r??"Application currently not supported.")}}0&&(module.exports={AppAlreadyInstalledDAError,DeviceLockedError,DeviceNotOnboardedError,OutOfMemoryDAError,RefusedByUserDAError,UnknownDAError,UnsupportedApplicationDAError,UnsupportedFirmwareDAError});
1
+ "use strict";var a=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var E=(o,r)=>{for(var e in r)a(o,e,{get:r[e],enumerable:!0})},g=(o,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of s(r))!l.call(o,n)&&n!==e&&a(o,n,{get:()=>r[n],enumerable:!(i=t(r,n))||i.enumerable});return o};var c=o=>g(a({},"__esModule",{value:!0}),o);var _={};E(_,{AppAlreadyInstalledDAError:()=>k,DeleteLanguagePackDAError:()=>h,DeviceLockedError:()=>d,DeviceNotOnboardedError:()=>p,MissingLanguagePackageDAError:()=>U,MissingLanguagePackagesForOSDAError:()=>w,NetworkDAError:()=>x,OutOfMemoryDAError:()=>y,RefusedByUserDAError:()=>m,UnknownDAError:()=>u,UnsupportedApplicationDAError:()=>A,UnsupportedFirmwareDAError:()=>D});module.exports=c(_);class p{_tag="DeviceNotOnboardedError";originalError;constructor(r){this.originalError=new Error(r??"Device not onboarded.")}}class d{_tag="DeviceLockedError";originalError;constructor(r){this.originalError=new Error(r??"Device locked.")}}class D{_tag="UnsupportedFirmwareDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class m{_tag="RefusedByUserDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class k{_tag="AppAlreadyInstalledDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class y{_tag="OutOfMemoryDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class u{_tag="UnknownDAError";originalError;constructor(r){this.originalError=new Error(r??"Unknown error.")}}class A{_tag="UnsupportedApplicationDAError";originalError;constructor(r){this.originalError=new Error(r??"Application currently not supported.")}}class w{_tag="MissingLanguagePackagesForOSDAError";originalError;constructor(r){this.originalError=new Error(r??"Missing Language Packages for OS DAError.")}}class U{_tag="MissingLanguagePackageDAError";originalError;constructor(r){this.originalError=new Error(r??"Missing Language Package DAError.")}}class h{_tag="DeleteLanguagePackDAError";originalError;constructor(r){this.originalError=new Error(r??"Delete language pack failed.")}}class x{_tag="NetworkDAError";originalError;constructor(r){this.originalError=new Error(r??"Network error.")}}0&&(module.exports={AppAlreadyInstalledDAError,DeleteLanguagePackDAError,DeviceLockedError,DeviceNotOnboardedError,MissingLanguagePackageDAError,MissingLanguagePackagesForOSDAError,NetworkDAError,OutOfMemoryDAError,RefusedByUserDAError,UnknownDAError,UnsupportedApplicationDAError,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\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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,sBAAAC,EAAA,4BAAAC,EAAA,uBAAAC,EAAA,yBAAAC,EAAA,mBAAAC,EAAA,kCAAAC,EAAA,+BAAAC,IAAA,eAAAC,EAAAV,GAEO,MAAMI,CAA4C,CAC9C,KAAO,0BACP,cAET,YAAYO,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,uBAAuB,CACnE,CACF,CAEO,MAAMR,CAAsC,CACxC,KAAO,oBACP,cAET,YAAYQ,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMF,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYE,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAML,CAAyC,CAC3C,KAAO,uBACP,cAET,YAAYK,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMT,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYS,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMN,CAAuC,CACzC,KAAO,qBACP,cAET,YAAYM,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMJ,CAAmC,CACrC,KAAO,iBACP,cAET,YAAYI,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMH,CAAkD,CACpD,KAAO,gCACP,cAET,YAAYG,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MACvBA,GAAW,sCACb,CACF,CACF",
6
- "names": ["Errors_exports", "__export", "AppAlreadyInstalledDAError", "DeviceLockedError", "DeviceNotOnboardedError", "OutOfMemoryDAError", "RefusedByUserDAError", "UnknownDAError", "UnsupportedApplicationDAError", "UnsupportedFirmwareDAError", "__toCommonJS", "message"]
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\nexport class MissingLanguagePackagesForOSDAError implements DmkError {\n readonly _tag = \"MissingLanguagePackagesForOSDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(\n message ?? \"Missing Language Packages for OS DAError.\",\n );\n }\n}\n\nexport class MissingLanguagePackageDAError implements DmkError {\n readonly _tag = \"MissingLanguagePackageDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(\n message ?? \"Missing Language Package DAError.\",\n );\n }\n}\n\nexport class DeleteLanguagePackDAError implements DmkError {\n readonly _tag = \"DeleteLanguagePackDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Delete language pack failed.\");\n }\n}\n\nexport class NetworkDAError implements DmkError {\n readonly _tag = \"NetworkDAError\";\n readonly originalError?: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Network error.\");\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,8BAAAC,EAAA,sBAAAC,EAAA,4BAAAC,EAAA,kCAAAC,EAAA,wCAAAC,EAAA,mBAAAC,EAAA,uBAAAC,EAAA,yBAAAC,EAAA,mBAAAC,EAAA,kCAAAC,EAAA,+BAAAC,IAAA,eAAAC,EAAAd,GAEO,MAAMK,CAA4C,CAC9C,KAAO,0BACP,cAET,YAAYU,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,uBAAuB,CACnE,CACF,CAEO,MAAMX,CAAsC,CACxC,KAAO,oBACP,cAET,YAAYW,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMF,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYE,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAML,CAAyC,CAC3C,KAAO,uBACP,cAET,YAAYK,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMb,CAA+C,CACjD,KAAO,6BACP,cAET,YAAYa,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMN,CAAuC,CACzC,KAAO,qBACP,cAET,YAAYM,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMJ,CAAmC,CACrC,KAAO,iBACP,cAET,YAAYI,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF,CAEO,MAAMH,CAAkD,CACpD,KAAO,gCACP,cAET,YAAYG,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MACvBA,GAAW,sCACb,CACF,CACF,CAEO,MAAMR,CAAwD,CAC1D,KAAO,sCACP,cAET,YAAYQ,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MACvBA,GAAW,2CACb,CACF,CACF,CAEO,MAAMT,CAAkD,CACpD,KAAO,gCACP,cAET,YAAYS,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MACvBA,GAAW,mCACb,CACF,CACF,CAEO,MAAMZ,CAA8C,CAChD,KAAO,4BACP,cAET,YAAYY,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,8BAA8B,CAC1E,CACF,CAEO,MAAMP,CAAmC,CACrC,KAAO,iBACP,cAET,YAAYO,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,gBAAgB,CAC5D,CACF",
6
+ "names": ["Errors_exports", "__export", "AppAlreadyInstalledDAError", "DeleteLanguagePackDAError", "DeviceLockedError", "DeviceNotOnboardedError", "MissingLanguagePackageDAError", "MissingLanguagePackagesForOSDAError", "NetworkDAError", "OutOfMemoryDAError", "RefusedByUserDAError", "UnknownDAError", "UnsupportedApplicationDAError", "UnsupportedFirmwareDAError", "__toCommonJS", "message"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var L=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var U=(r,a)=>{for(var g in a)L(r,g,{get:a[g],enumerable:!0})},O=(r,a,g,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of G(a))!_.call(r,s)&&s!==g&&L(r,s,{get:()=>a[s],enumerable:!(c=T(a,s))||c.enumerable});return r};var R=r=>O(L({},"__esModule",{value:!0}),r);var b={};U(b,{InstallLanguagePackageDeviceAction:()=>w});module.exports=R(b);var p=require("purify-ts"),t=require("xstate"),I=require("../../../command/model/CommandResult"),m=require("../../../command/os/DeleteLanguagePackCommand"),P=require("../../../device-action/model/UserInteractionRequired"),E=require("../../../device-action/os/Const"),u=require("../../../device-action/os/Errors"),S=require("../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction"),h=require("../../../device-action/os/GetDeviceMetadata/types"),A=require("../../../device-action/task/InstallLanguagePackageTask"),f=require("../../../device-action/xstate-utils/XStateDeviceAction"),y=require("./types");class w extends f.XStateDeviceAction{makeStateMachine(a){const{deleteCurrentLanguagePack:g,installLanguagePack:c}=this.extractDependencies(a),s=this.input.unlockTimeout??E.DEFAULT_UNLOCK_TIMEOUT_MS,d=this.input.language,{None:k}=P.UserInteractionRequired,{DEVICE_READY:v,GET_DEVICE_METADATA:M,DELETE_CURRENT_LANGUAGE_PACK:C,INSTALL_LANGUAGE_PACK:x}=y.installLanguagePackageDAStateStep,V=new S.GetDeviceMetadataDeviceAction({input:{unlockTimeout:s}}).makeStateMachine(a);return(0,t.setup)({types:{input:{unlockTimeout:s,language:d},context:{},output:{}},actors:{getDeviceMetadata:V,deleteCurrentLanguagePack:(0,t.fromPromise)(g),installLanguagePack:(0,t.fromObservable)(({input:e})=>c(e.apduInstallUrl))},guards:{isDefaultLanguage:({context:e})=>e.input.language==="english",hasError:({context:e})=>e._internalState.error!==null,shouldSkipInstall:({context:e})=>e._internalState.shouldSkipInstall},actions:{assignErrorFromEvent:(0,t.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error,shouldSkipInstall:!1})}),assignGetDeviceMetadataSnapshot:(0,t.assign)({intermediateValue:e=>{const n=e.event.snapshot.context.intermediateValue;return n.step===h.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA?{...n,step:M}:n}}),assignGetDeviceMetadataDone:(0,t.assign)({_internalState:e=>e.event.output.caseOf({Right:n=>{const i=n.catalog.languagePackages;if(!i)return{...e.context._internalState,error:new u.MissingLanguagePackagesForOSDAError(`Language packages not found for OS ${n?.firmwareVersion?.os}.`)};const o=i.find(D=>D.language===d);return o?(n.installedLanguages??[]).map(({id:D})=>D).includes(o.languagePackageId)?{...e.context._internalState,shouldSkipInstall:!0}:{...e.context._internalState,languagePackage:o}:{...e.context._internalState,error:new u.MissingLanguagePackageDAError(`Language package not found for ${d}.`)}},Left:n=>({...e.context._internalState,error:n})})}),assignDeleteCurrentLanguagePackSnapshot:(0,t.assign)({intermediateValue:e=>({requiredUserInteraction:k,step:C})}),assignDeleteCurrentLanguagePackDone:(0,t.assign)({_internalState:e=>{const l=e.event.output;return(0,I.isSuccessCommandResult)(l)?e.context._internalState:{...e.context._internalState,error:new u.DeleteLanguagePackDAError("message"in l.error?l.error.message:"Delete language pack failed.")}}}),assignInstallLanguagePackSnapshot:(0,t.assign)({intermediateValue:e=>{const n=e.event.snapshot.context,i=e.context,o="progress"in i.intermediateValue?i.intermediateValue.progress??0:0;return{requiredUserInteraction:k,step:x,progress:n?.type==="progress"?n.progress:o}}})}}).createMachine({id:"InstallLanguagePackageDeviceAction",initial:"CheckRequestedLanguage",context:e=>({input:{unlockTimeout:e.input.unlockTimeout,language:e.input.language},intermediateValue:{requiredUserInteraction:k,step:v,progress:0},_internalState:{error:null,languagePackage:null,shouldSkipInstall:!1}}),states:{CheckRequestedLanguage:{always:[{guard:"isDefaultLanguage",target:"DeleteCurrentLanguagePack"},{target:"GetDeviceMetadata"}]},GetDeviceMetadata:{invoke:{id:"GetDeviceMetadata",src:"getDeviceMetadata",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout,forceUpdate:!0,useSecureChannel:!0}),onSnapshot:{actions:"assignGetDeviceMetadataSnapshot"},onDone:{target:"LanguagePackCheck",actions:"assignGetDeviceMetadataDone"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},LanguagePackCheck:{always:[{guard:"hasError",target:"Error"},{guard:"shouldSkipInstall",target:"Success"},{target:"DeleteCurrentLanguagePack"}]},DeleteCurrentLanguagePack:{invoke:{id:"DeleteCurrentLanguagePack",src:"deleteCurrentLanguagePack",onSnapshot:{actions:"assignDeleteCurrentLanguagePackSnapshot"},onDone:{target:"DeleteCurrentLanguagePackResultCheck",actions:"assignDeleteCurrentLanguagePackDone"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},DeleteCurrentLanguagePackResultCheck:{always:[{guard:"hasError",target:"Error"},{guard:"isDefaultLanguage",target:"Success"},{target:"InstallLanguagePack"}]},InstallLanguagePack:{invoke:{id:"InstallLanguagePack",src:"installLanguagePack",input:({context:e})=>({apduInstallUrl:e._internalState.languagePackage.apduInstallUrl}),onSnapshot:{actions:"assignInstallLanguagePackSnapshot"},onDone:{target:"Success"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Success:{type:"final"},Error:{type:"final"}},output:e=>e.context._internalState.error!==null?(0,p.Left)(e.context._internalState.error):(0,p.Right)(void 0)})}extractDependencies(a){return{deleteCurrentLanguagePack:()=>a.sendCommand(new m.DeleteLanguagePackCommand({languagePackageId:255})),installLanguagePack:g=>new A.InstallLanguagePackageTask(a,{apduInstallUrl:g}).run()}}}0&&(module.exports={InstallLanguagePackageDeviceAction});
2
+ //# sourceMappingURL=InstallLanguagePackageDeviceAction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.ts"],
4
+ "sourcesContent": ["import { type Either, 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 {\n DeleteLanguagePackCommand,\n type DeleteLanguagePackCommandResult,\n} from \"@api/command/os/DeleteLanguagePackCommand\";\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 {\n DeleteLanguagePackDAError,\n MissingLanguagePackageDAError,\n MissingLanguagePackagesForOSDAError,\n} from \"@api/device-action/os/Errors\";\nimport { GetDeviceMetadataDeviceAction } from \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\";\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAIntermediateValue,\n type GetDeviceMetadataDAOutput,\n getDeviceMetadataDAStateStep,\n} from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport {\n type InstallLanguagePackageEvent,\n InstallLanguagePackageTask,\n} from \"@api/device-action/task/InstallLanguagePackageTask\";\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 { type LanguagePackage } from \"@internal/manager-api/model/Language\";\n\nimport {\n type InstallLanguagePackageDAError,\n type InstallLanguagePackageDAInput,\n type InstallLanguagePackageDAIntermediateValue,\n type InstallLanguagePackageDAOutput,\n installLanguagePackageDAStateStep,\n} from \"./types\";\n\ntype InstallLanguagePackageMachineInternalState = {\n readonly error: InstallLanguagePackageDAError | null;\n readonly languagePackage: LanguagePackage | null;\n readonly shouldSkipInstall: boolean;\n};\n\nexport type MachineDependencies = {\n readonly deleteCurrentLanguagePack: () => Promise<DeleteLanguagePackCommandResult>;\n readonly installLanguagePack: (\n apduInstallUrl: string,\n ) => Observable<InstallLanguagePackageEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class InstallLanguagePackageDeviceAction extends XStateDeviceAction<\n InstallLanguagePackageDAOutput,\n InstallLanguagePackageDAInput,\n InstallLanguagePackageDAError,\n InstallLanguagePackageDAIntermediateValue,\n InstallLanguagePackageMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n InstallLanguagePackageDAOutput,\n InstallLanguagePackageDAInput,\n InstallLanguagePackageDAError,\n InstallLanguagePackageDAIntermediateValue,\n InstallLanguagePackageMachineInternalState\n > {\n type types = StateMachineTypes<\n InstallLanguagePackageDAOutput,\n InstallLanguagePackageDAInput,\n InstallLanguagePackageDAError,\n InstallLanguagePackageDAIntermediateValue,\n InstallLanguagePackageMachineInternalState\n >;\n\n const { deleteCurrentLanguagePack, installLanguagePack } =\n this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n const language = this.input.language;\n\n const { None } = UserInteractionRequired;\n const {\n DEVICE_READY,\n GET_DEVICE_METADATA,\n DELETE_CURRENT_LANGUAGE_PACK,\n INSTALL_LANGUAGE_PACK,\n } = installLanguagePackageDAStateStep;\n\n const getDeviceMetadataMachine = new GetDeviceMetadataDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n language,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n getDeviceMetadata: getDeviceMetadataMachine,\n deleteCurrentLanguagePack: fromPromise(deleteCurrentLanguagePack),\n installLanguagePack: fromObservable(\n ({ input }: { input: { apduInstallUrl: string } }) =>\n installLanguagePack(input.apduInstallUrl),\n ),\n },\n guards: {\n // The default language package (English) cannot be installed as a language pack.\n // If the requested language is English, we still delete all installed packs and only skip the install step.\n isDefaultLanguage: ({ context }) =>\n context.input.language === \"english\",\n hasError: ({ context }: { context: types[\"context\"] }) =>\n context._internalState.error !== null,\n shouldSkipInstall: ({ context }) =>\n context._internalState.shouldSkipInstall,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"] as InstallLanguagePackageDAError,\n shouldSkipInstall: false,\n }),\n }),\n assignGetDeviceMetadataSnapshot: assign({\n intermediateValue: (_) => {\n const snapshot = _.event[\"snapshot\"] as {\n context: {\n intermediateValue: GetDeviceMetadataDAIntermediateValue;\n };\n };\n const childIv = snapshot.context.intermediateValue;\n if (\n childIv.step === getDeviceMetadataDAStateStep.GET_DEVICE_METADATA\n ) {\n return {\n ...childIv,\n step: GET_DEVICE_METADATA,\n } satisfies types[\"context\"][\"intermediateValue\"];\n }\n return childIv as types[\"context\"][\"intermediateValue\"];\n },\n }),\n assignGetDeviceMetadataDone: assign({\n _internalState: (_) => {\n const output = _.event[\"output\"] as Either<\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAOutput\n >;\n return output.caseOf({\n Right: (metadata) => {\n const languagePackages = metadata.catalog.languagePackages;\n if (!languagePackages) {\n return {\n ..._.context._internalState,\n error: new MissingLanguagePackagesForOSDAError(\n `Language packages not found for OS ${metadata?.firmwareVersion?.os}.`,\n ) as InstallLanguagePackageDAError,\n };\n }\n\n const languagePackage = languagePackages.find(\n (lp) => lp.language === language,\n );\n if (!languagePackage) {\n return {\n ..._.context._internalState,\n error: new MissingLanguagePackageDAError(\n `Language package not found for ${language}.`,\n ),\n };\n }\n\n const installedLanguageIds = (\n metadata.installedLanguages ?? []\n ).map(({ id }) => id);\n\n const isAlreadyInstalled = installedLanguageIds.includes(\n languagePackage.languagePackageId,\n );\n\n if (isAlreadyInstalled) {\n return {\n ..._.context._internalState,\n shouldSkipInstall: true,\n };\n }\n return {\n ..._.context._internalState,\n languagePackage,\n };\n },\n Left: (error: InstallLanguagePackageDAError) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n assignDeleteCurrentLanguagePackSnapshot: assign({\n intermediateValue: (_) =>\n ({\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\n assignDeleteCurrentLanguagePackDone: assign({\n _internalState: (_) => {\n const result = _.event[\"output\"] as DeleteLanguagePackCommandResult;\n if (isSuccessCommandResult(result)) {\n return _.context._internalState;\n }\n\n return {\n ..._.context._internalState,\n error: new DeleteLanguagePackDAError(\n \"message\" in result.error\n ? result.error.message\n : \"Delete language pack failed.\",\n ),\n };\n },\n }),\n assignInstallLanguagePackSnapshot: assign({\n intermediateValue: (_) => {\n const snapshot = _.event[\"snapshot\"] as {\n context: InstallLanguagePackageEvent | null;\n };\n const event = snapshot.context;\n const ctx = _.context as types[\"context\"];\n const currentProgress =\n \"progress\" in ctx.intermediateValue\n ? (ctx.intermediateValue.progress ?? 0)\n : 0;\n return {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress:\n event?.type === \"progress\" ? event.progress : currentProgress,\n } satisfies types[\"context\"][\"intermediateValue\"];\n },\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QEkB2sAuBDANjgMlqlAK5YwAKWAxgNblgAiYAbgJbVgCC1GbA9qgB0AYQAWYOgCUwARxJwMkQsTIwAxAG0ADAF1EoAA79YbPoIMgAHogBMATltCAjPYCsAZm0AWAOwAObTdfe18AGhAAT0RvRyEPW39nZw9nb20PBIBfLIi0TFwCIlIGKjoGZnZOHnNhcUlaGXlFZWK1MC1nfSQQY1NayxsEBydXTx8AoJDwqMRk+yE-ADY3Vb9fNxSPHLz0bDwVEsoaehhKjm5eAWEAcTAMc84AWXusCCxsdQhBMCE2VBY-FovzuD1YFxe2He2B03SMJjM10GiH8cUc9iWS3cbhWthWEWiw20S0WzkxvhS3g8S38wVsOxA+X2RVUpROFXB1SugiEoMeYEhbw+WHUYAATmL+GKhIYcB8AGZSgC2vPu-MF0KwsMsfURFh6Q1RTnRmOxuPxswQSSEbm0drttPs-l8LoZTMKh3aZVOTE5l1qQk9bLo9ToWj0OoRAwNc2pHiEtlioXSTu8Sw8BLstnjvjxqxdQQ8Gypbr2HrawZ9-Jq10DFeOIYkYc0XUj-SRMYQKXTCaTvhT-jTGctRfj-kSzm0-hp-aWPlLBQO9bA3o5VX9teYOHuYBEJAlYFQGCDDdoXx+fwBQN+W53e4PR5PK5O2p6uujoCGrgSQinbnsdqxEs3jeLYMyElivguDi2a2mB-7aPYC7Mk+q5nH6NY8reSj3mKh7Hsu3rnqgvz-ICwJCNhu77nhj6ES+rZvlGHafnM9g-n+AE+BiIFgZmCBuImQiDum3iDm4zq+JiyHlqyp5rhcmHCFRuH4ahJyihKUoynKGCKmKKoqTRan0XQr7wu2+qsV27FOJxgE8aB4GIB4oEJnmSy2M4EmJr4MlLnJz7lOh65KUI7oBUcQVnt8JGXuRvwRSyUXeuZvTMVZ1h2C6-i-h4AG2sB6TBPxwRQQBnkJFifjpPSuSMmWkVeuyIWKdywhJepYbipK0qygqyrhY1yXNWZEZMZZqDIsMOV5QVxIgVM-Fid4iyePMdpFiBGw5PVqD8BAcCWJ1plVhh7VtnqU2dgAtEs-E3W4Qj2C9r1vW92z1SdgVob6oXtaITaNHICiYK0gWXR+WUIKB-HOEJaQJGB060vDdW7IuI2VgpXIBnyfoasKkMsdDtqrf2r1LCESSrG4-H2Ktth5p4tirB4OLeM4-lY-JrW47WXW0KGtDE5lX7eU9-jswBL0rEExL8UzuX5QkXiIem-afRjKGnTjG5YWA244cZdE-ScovXdZ3l4r+jopLY9qTsOhLs1BCRJNS-75VLXNfcNgt62F30pebE1XdN2bjnNxKZMsrPLQBwlDqzjm5n5fuYwHfP68IADKJDUJwsDwGHUNDF4CPOmJqTAVOIGlVL8RM-YTtebZSEZzrZvBX9bUBgAolpYoW9NFerc4Vc+7Xg7eIrrNNysuabGkwTUrtWRAA */\n id: \"InstallLanguagePackageDeviceAction\",\n initial: \"CheckRequestedLanguage\",\n context: (_) => {\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n language: _.input.language,\n },\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n _internalState: {\n error: null,\n languagePackage: null,\n shouldSkipInstall: false,\n },\n };\n },\n states: {\n CheckRequestedLanguage: {\n always: [\n {\n guard: \"isDefaultLanguage\",\n target: \"DeleteCurrentLanguagePack\",\n },\n { target: \"GetDeviceMetadata\" },\n ],\n },\n GetDeviceMetadata: {\n invoke: {\n id: \"GetDeviceMetadata\",\n src: \"getDeviceMetadata\",\n input: ({ context }) => ({\n unlockTimeout: context.input.unlockTimeout,\n forceUpdate: true, // ensures the Language pack is fresh and forces user to go to Dashboard\n useSecureChannel: true,\n }),\n onSnapshot: {\n actions: \"assignGetDeviceMetadataSnapshot\",\n },\n onDone: {\n target: \"LanguagePackCheck\",\n actions: \"assignGetDeviceMetadataDone\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n LanguagePackCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"shouldSkipInstall\",\n target: \"Success\",\n },\n { target: \"DeleteCurrentLanguagePack\" },\n ],\n },\n DeleteCurrentLanguagePack: {\n invoke: {\n id: \"DeleteCurrentLanguagePack\",\n src: \"deleteCurrentLanguagePack\",\n onSnapshot: {\n actions: \"assignDeleteCurrentLanguagePackSnapshot\",\n },\n onDone: {\n target: \"DeleteCurrentLanguagePackResultCheck\",\n actions: \"assignDeleteCurrentLanguagePackDone\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n DeleteCurrentLanguagePackResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"isDefaultLanguage\",\n target: \"Success\",\n },\n { target: \"InstallLanguagePack\" },\n ],\n },\n InstallLanguagePack: {\n invoke: {\n id: \"InstallLanguagePack\",\n src: \"installLanguagePack\",\n input: ({ context }) => ({\n apduInstallUrl:\n context._internalState.languagePackage!.apduInstallUrl,\n }),\n onSnapshot: {\n actions: \"assignInstallLanguagePackSnapshot\",\n },\n onDone: {\n target: \"Success\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (_) => {\n if (_.context._internalState.error !== null) {\n return Left(_.context._internalState.error);\n }\n return Right(undefined);\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n return {\n deleteCurrentLanguagePack: () =>\n internalApi.sendCommand(\n new DeleteLanguagePackCommand({ languagePackageId: 0xff }),\n ),\n installLanguagePack: (apduInstallUrl: string) =>\n new InstallLanguagePackageTask(internalApi, {\n apduInstallUrl,\n }).run(),\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["InstallLanguagePackageDeviceAction_exports", "__export", "InstallLanguagePackageDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_DeleteLanguagePackCommand", "import_UserInteractionRequired", "import_Const", "import_Errors", "import_GetDeviceMetadataDeviceAction", "import_types", "import_InstallLanguagePackageTask", "import_XStateDeviceAction", "internalApi", "deleteCurrentLanguagePack", "installLanguagePack", "unlockTimeout", "language", "None", "DEVICE_READY", "GET_DEVICE_METADATA", "DELETE_CURRENT_LANGUAGE_PACK", "INSTALL_LANGUAGE_PACK", "getDeviceMetadataMachine", "input", "context", "_", "childIv", "metadata", "languagePackages", "languagePackage", "lp", "id", "error", "result", "event", "ctx", "currentProgress", "apduInstallUrl"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var k=require("rxjs"),I=require("../../../command/model/CommandResult"),V=require("../../../command/os/DeleteLanguagePackCommand"),f=require("../../../device-action/__test-utils__/makeInternalApi"),l=require("../../../device-action/__test-utils__/setupTestMachine"),D=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),v=require("../../../device-action/model/UserInteractionRequired"),u=require("../../../device-action/os/Errors"),i=require("./InstallLanguagePackageDeviceAction"),U=require("./types");vi.mock("@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction");describe("InstallLanguagePackageDeviceAction",()=>{const q=(0,f.makeDeviceActionInternalApiMock)(),o=vi.fn(),p=vi.fn(),s={language:"french",languagePackageVersionId:1,version:"1.0.0",languagePackageId:42,apduInstallUrl:"https://example.com/install-french",apduUninstallUrl:"https://example.com/uninstall-french",bytes:1024,dateCreation:"2024-01-01",dateLastModified:"2024-01-01"},{None:t}=v.UserInteractionRequired,{DEVICE_READY:d,GET_DEVICE_METADATA:r,DELETE_CURRENT_LANGUAGE_PACK:c,INSTALL_LANGUAGE_PACK:P}=U.installLanguagePackageDAStateStep,L={deleteCurrentLanguagePack:o,installLanguagePack:p},m=(a={})=>({installedLanguages:[],...a,catalog:{languagePackages:[],...a.catalog??{}}}),g=(a,n,h)=>new Promise((w,A)=>{vi.spyOn(a,"extractDependencies").mockReturnValue(L),(0,D.testDeviceActionStates)(a,n,q,{onDone:()=>{try{h?.(),w()}catch(S){A(S)}},onError:A})});beforeEach(()=>{vi.clearAllMocks()}),describe("success cases",()=>{it("should install a non-default language package",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({data:void 0})),p.mockReturnValueOnce((0,k.of)({type:"progress",progress:.5},{type:"progress",progress:1}));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:.5},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:1},status:e.DeviceActionStatus.Pending},{output:void 0,status:e.DeviceActionStatus.Completed}];return g(a,n)}),it("should install when a different language pack is already installed",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]},installedLanguages:[{id:999,size:2048}]}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({data:void 0})),p.mockReturnValueOnce((0,k.of)({type:"progress",progress:1}));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:1},status:e.DeviceActionStatus.Pending},{output:void 0,status:e.DeviceActionStatus.Completed}];return g(a,n,()=>{expect(o).toHaveBeenCalledOnce(),expect(p).toHaveBeenCalledOnce()})}),it("should succeed without delete or install when the language pack is already installed",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]},installedLanguages:[{id:s.languagePackageId,size:s.bytes}]}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}}),n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{output:void 0,status:e.DeviceActionStatus.Completed}];return g(a,n,()=>{expect(o).not.toHaveBeenCalled(),expect(p).not.toHaveBeenCalled()})}),it("should install when only a matching languagePackageVersionId is reported as installed",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]},installedLanguages:[{id:s.languagePackageVersionId,size:s.bytes}]}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({data:void 0})),p.mockReturnValueOnce((0,k.of)({type:"progress",progress:1}));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:1},status:e.DeviceActionStatus.Pending},{output:void 0,status:e.DeviceActionStatus.Completed}];return g(a,n,()=>{expect(p).toHaveBeenCalledOnce()})}),it("should delete and skip install for the default language (english)",()=>{const a=new i.InstallLanguagePackageDeviceAction({input:{language:"english"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({data:void 0}));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{output:void 0,status:e.DeviceActionStatus.Completed}];return g(a,n,()=>{expect(o).toHaveBeenCalledOnce(),expect(p).not.toHaveBeenCalled()})})}),describe("error cases",()=>{it("should error when GetDeviceMetadata fails",()=>{(0,l.setupGetDeviceMetadataMock)({},!0);const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}}),n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{error:new u.UnknownDAError("GetDeviceMetadata failed"),status:e.DeviceActionStatus.Error}];return g(a,n)}),it("should error when language packages are missing from metadata",()=>{(0,l.setupGetDeviceMetadataMock)(m({firmwareVersion:{mcu:"1.0.0",bootloader:"1.0.0",os:"2.4.0"},catalog:{languagePackages:void 0}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}}),n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{error:new u.MissingLanguagePackagesForOSDAError("Language packages not found for OS 2.4.0."),status:e.DeviceActionStatus.Error}];return g(a,n)}),it("should error when the requested language is not found",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"spanish"}}),n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{error:new u.MissingLanguagePackageDAError("Language package not found for spanish."),status:e.DeviceActionStatus.Error}];return g(a,n)}),it("should error when DeleteCurrentLanguagePack returns a command error",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({error:new V.DeleteLanguagePackCommandError({message:"Invalid LANG_ID value.",errorCode:"681a"})}));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{error:new u.DeleteLanguagePackDAError("Invalid LANG_ID value."),status:e.DeviceActionStatus.Error}];return g(a,n)}),it("should error when DeleteCurrentLanguagePack promise rejects",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockRejectedValueOnce(new u.DeleteLanguagePackDAError("Delete failed"));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{error:new u.DeleteLanguagePackDAError("Delete failed"),status:e.DeviceActionStatus.Error}];return g(a,n)}),it("should error when InstallLanguagePack observable errors",()=>{(0,l.setupGetDeviceMetadataMock)(m({catalog:{languagePackages:[s]}}));const a=new i.InstallLanguagePackageDeviceAction({input:{language:"french"}});o.mockResolvedValueOnce((0,I.CommandResultFactory)({data:void 0})),p.mockReturnValueOnce((0,k.throwError)(()=>new u.UnknownDAError("Install failed")));const n=[{intermediateValue:{requiredUserInteraction:t,step:d,progress:0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:r},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:c},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t,step:P,progress:0},status:e.DeviceActionStatus.Pending},{error:new u.UnknownDAError("Install failed"),status:e.DeviceActionStatus.Error}];return g(a,n)})})});
2
+ //# sourceMappingURL=InstallLanguagePackageDeviceAction.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.ts"],
4
+ "sourcesContent": ["import { of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { DeleteLanguagePackCommandError } from \"@api/command/os/DeleteLanguagePackCommand\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceMetadataMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n DeleteLanguagePackDAError,\n MissingLanguagePackageDAError,\n MissingLanguagePackagesForOSDAError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport type { GetDeviceMetadataDAOutput } from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type { LanguagePackage } from \"@internal/manager-api/model/Language\";\n\nimport { InstallLanguagePackageDeviceAction } from \"./InstallLanguagePackageDeviceAction\";\nimport {\n type InstallLanguagePackageDAState,\n installLanguagePackageDAStateStep,\n} from \"./types\";\n\nvi.mock(\n \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\",\n);\n\ndescribe(\"InstallLanguagePackageDeviceAction\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const deleteCurrentLanguagePackMock = vi.fn();\n const installLanguagePackMock = vi.fn();\n\n const LANGUAGE_PACKAGE: LanguagePackage = {\n language: \"french\",\n languagePackageVersionId: 1,\n version: \"1.0.0\",\n languagePackageId: 42,\n apduInstallUrl: \"https://example.com/install-french\",\n apduUninstallUrl: \"https://example.com/uninstall-french\",\n bytes: 1024,\n dateCreation: \"2024-01-01\",\n dateLastModified: \"2024-01-01\",\n };\n\n const { None } = UserInteractionRequired;\n const {\n DEVICE_READY,\n GET_DEVICE_METADATA,\n DELETE_CURRENT_LANGUAGE_PACK,\n INSTALL_LANGUAGE_PACK,\n } = installLanguagePackageDAStateStep;\n\n const extractDependenciesMock = {\n deleteCurrentLanguagePack: deleteCurrentLanguagePackMock,\n installLanguagePack: installLanguagePackMock,\n };\n\n const buildMetadata = (\n partial: {\n installedLanguages?: Array<{ id: number; size: number }>;\n catalog?: { languagePackages?: LanguagePackage[] | undefined };\n firmwareVersion?: GetDeviceMetadataDAOutput[\"firmwareVersion\"];\n } = {},\n ): GetDeviceMetadataDAOutput =>\n ({\n installedLanguages: [],\n ...partial,\n catalog: {\n languagePackages: [],\n ...(partial.catalog ?? {}),\n },\n }) as unknown as GetDeviceMetadataDAOutput;\n\n const runTest = (\n deviceAction: InstallLanguagePackageDeviceAction,\n expectedStates: Array<InstallLanguagePackageDAState>,\n onDoneExtra?: () => void,\n ) =>\n new Promise<void>((resolve, reject) => {\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock,\n );\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: () => {\n try {\n onDoneExtra?.();\n resolve();\n } catch (e) {\n reject(e as Error);\n }\n },\n onError: reject,\n });\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"success cases\", () => {\n it(\"should install a non-default language package\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({ catalog: { languagePackages: [LANGUAGE_PACKAGE] } }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n installLanguagePackMock.mockReturnValueOnce(\n of(\n { type: \"progress\", progress: 0.5 },\n { type: \"progress\", progress: 1 },\n ),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n // Initial\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // DeleteCurrentLanguagePack\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallLanguagePack\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 0.5,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 1,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should install when a different language pack is already installed\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({\n catalog: { languagePackages: [LANGUAGE_PACKAGE] },\n installedLanguages: [{ id: 999, size: 2048 }],\n }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n installLanguagePackMock.mockReturnValueOnce(\n of({ type: \"progress\", progress: 1 }),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 1,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n return runTest(deviceAction, expectedStates, () => {\n expect(deleteCurrentLanguagePackMock).toHaveBeenCalledOnce();\n expect(installLanguagePackMock).toHaveBeenCalledOnce();\n });\n });\n\n it(\"should succeed without delete or install when the language pack is already installed\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({\n catalog: { languagePackages: [LANGUAGE_PACKAGE] },\n installedLanguages: [\n {\n id: LANGUAGE_PACKAGE.languagePackageId,\n size: LANGUAGE_PACKAGE.bytes,\n },\n ],\n }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n return runTest(deviceAction, expectedStates, () => {\n expect(deleteCurrentLanguagePackMock).not.toHaveBeenCalled();\n expect(installLanguagePackMock).not.toHaveBeenCalled();\n });\n });\n\n it(\"should install when only a matching languagePackageVersionId is reported as installed\", () => {\n // Guards against a regression where the implementation compares against\n // languagePackageVersionId instead of languagePackageId.\n setupGetDeviceMetadataMock(\n buildMetadata({\n catalog: { languagePackages: [LANGUAGE_PACKAGE] },\n installedLanguages: [\n {\n id: LANGUAGE_PACKAGE.languagePackageVersionId,\n size: LANGUAGE_PACKAGE.bytes,\n },\n ],\n }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n installLanguagePackMock.mockReturnValueOnce(\n of({ type: \"progress\", progress: 1 }),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 1,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n return runTest(deviceAction, expectedStates, () => {\n expect(installLanguagePackMock).toHaveBeenCalledOnce();\n });\n });\n\n it(\"should delete and skip install for the default language (english)\", () => {\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"english\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n return runTest(deviceAction, expectedStates, () => {\n expect(deleteCurrentLanguagePackMock).toHaveBeenCalledOnce();\n expect(installLanguagePackMock).not.toHaveBeenCalled();\n });\n });\n });\n\n describe(\"error cases\", () => {\n it(\"should error when GetDeviceMetadata fails\", () => {\n setupGetDeviceMetadataMock(\n {} as unknown as GetDeviceMetadataDAOutput,\n true,\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new UnknownDAError(\"GetDeviceMetadata failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should error when language packages are missing from metadata\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({\n firmwareVersion: {\n mcu: \"1.0.0\",\n bootloader: \"1.0.0\",\n os: \"2.4.0\",\n } as GetDeviceMetadataDAOutput[\"firmwareVersion\"],\n catalog: { languagePackages: undefined },\n }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new MissingLanguagePackagesForOSDAError(\n \"Language packages not found for OS 2.4.0.\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should error when the requested language is not found\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({ catalog: { languagePackages: [LANGUAGE_PACKAGE] } }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"spanish\" },\n });\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new MissingLanguagePackageDAError(\n \"Language package not found for spanish.\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should error when DeleteCurrentLanguagePack returns a command error\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({ catalog: { languagePackages: [LANGUAGE_PACKAGE] } }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new DeleteLanguagePackCommandError({\n message: \"Invalid LANG_ID value.\",\n errorCode: \"681a\",\n }),\n }),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new DeleteLanguagePackDAError(\"Invalid LANG_ID value.\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should error when DeleteCurrentLanguagePack promise rejects\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({ catalog: { languagePackages: [LANGUAGE_PACKAGE] } }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockRejectedValueOnce(\n new DeleteLanguagePackDAError(\"Delete failed\"),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new DeleteLanguagePackDAError(\"Delete failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n\n it(\"should error when InstallLanguagePack observable errors\", () => {\n setupGetDeviceMetadataMock(\n buildMetadata({ catalog: { languagePackages: [LANGUAGE_PACKAGE] } }),\n );\n\n const deviceAction = new InstallLanguagePackageDeviceAction({\n input: { language: \"french\" },\n });\n\n deleteCurrentLanguagePackMock.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n installLanguagePackMock.mockReturnValueOnce(\n throwError(() => new UnknownDAError(\"Install failed\")),\n );\n\n const expectedStates: Array<InstallLanguagePackageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DEVICE_READY,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: DELETE_CURRENT_LANGUAGE_PACK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: None,\n step: INSTALL_LANGUAGE_PACK,\n progress: 0,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new UnknownDAError(\"Install failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n return runTest(deviceAction, expectedStates);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_rxjs", "import_CommandResult", "import_DeleteLanguagePackCommand", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_InstallLanguagePackageDeviceAction", "import_types", "apiMock", "deleteCurrentLanguagePackMock", "installLanguagePackMock", "LANGUAGE_PACKAGE", "None", "DEVICE_READY", "GET_DEVICE_METADATA", "DELETE_CURRENT_LANGUAGE_PACK", "INSTALL_LANGUAGE_PACK", "extractDependenciesMock", "buildMetadata", "partial", "runTest", "deviceAction", "expectedStates", "onDoneExtra", "resolve", "reject", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var i=(a,e)=>{for(var r in e)n(a,r,{get:e[r],enumerable:!0})},u=(a,e,r,g)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!l.call(a,t)&&t!==r&&n(a,t,{get:()=>e[t],enumerable:!(g=o(e,t))||g.enumerable});return a};var D=a=>u(n({},"__esModule",{value:!0}),a);var A={};i(A,{installLanguagePackageDAStateStep:()=>p});module.exports=D(A);const p=Object.freeze({DEVICE_READY:"os.installLanguagePackage.steps.deviceReady",GET_DEVICE_METADATA:"os.installLanguagePackage.steps.getDeviceMetadata",DELETE_CURRENT_LANGUAGE_PACK:"os.installLanguagePackage.steps.deleteCurrentLanguagePack",INSTALL_LANGUAGE_PACK:"os.installLanguagePackage.steps.installLanguagePack"});0&&(module.exports={installLanguagePackageDAStateStep});
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/api/device-action/os/InstallLanguagePackage/types.ts"],
4
+ "sourcesContent": ["import { type DeviceActionState } from \"@api/device-action/model/DeviceActionState\";\nimport { type UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n type DeleteLanguagePackDAError,\n type MissingLanguagePackageDAError,\n type MissingLanguagePackagesForOSDAError,\n type OutOfMemoryDAError,\n type RefusedByUserDAError,\n type UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAIntermediateValue,\n} from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport { type GoToDashboardDAInput } from \"@api/device-action/os/GoToDashboard/types\";\n\nexport type Language =\n | \"french\"\n | \"english\"\n | \"spanish\"\n | \"brazilian\"\n | \"german\"\n | \"russian\"\n | \"turkish\"\n | \"thai\";\n\nexport const installLanguagePackageDAStateStep = Object.freeze({\n DEVICE_READY: \"os.installLanguagePackage.steps.deviceReady\",\n GET_DEVICE_METADATA: \"os.installLanguagePackage.steps.getDeviceMetadata\",\n DELETE_CURRENT_LANGUAGE_PACK:\n \"os.installLanguagePackage.steps.deleteCurrentLanguagePack\",\n INSTALL_LANGUAGE_PACK: \"os.installLanguagePackage.steps.installLanguagePack\",\n} as const);\n\nexport type InstallLanguagePackageDAInput = GoToDashboardDAInput & {\n readonly language: Language;\n};\n\nexport type InstallLanguagePackageDAOutput = undefined;\n\nexport type InstallLanguagePackageDAGetDeviceMetadataIntermediateValue = Omit<\n GetDeviceMetadataDAIntermediateValue,\n \"step\"\n> & {\n readonly step: typeof installLanguagePackageDAStateStep.GET_DEVICE_METADATA;\n};\n\nexport type InstallLanguagePackageDAIntermediateValue =\n | GetDeviceMetadataDAIntermediateValue\n | InstallLanguagePackageDAGetDeviceMetadataIntermediateValue\n | {\n readonly requiredUserInteraction: UserInteractionRequired.None;\n readonly step: Exclude<\n (typeof installLanguagePackageDAStateStep)[keyof typeof installLanguagePackageDAStateStep],\n typeof installLanguagePackageDAStateStep.GET_DEVICE_METADATA\n >;\n readonly progress?: number;\n };\n\nexport type InstallLanguagePackageDAError =\n | GetDeviceMetadataDAError\n | MissingLanguagePackagesForOSDAError\n | MissingLanguagePackageDAError\n | DeleteLanguagePackDAError\n | RefusedByUserDAError // from InstallLanguagePackageTask\n | OutOfMemoryDAError // from InstallLanguagePackageTask\n | UnknownDAError; // from InstallLanguagePackageTask (network error, invalid APDU, etc.)\n\nexport type InstallLanguagePackageDAState = DeviceActionState<\n InstallLanguagePackageDAOutput,\n InstallLanguagePackageDAError,\n InstallLanguagePackageDAIntermediateValue\n>;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uCAAAE,IAAA,eAAAC,EAAAH,GA0BO,MAAME,EAAoC,OAAO,OAAO,CAC7D,aAAc,8CACd,oBAAqB,oDACrB,6BACE,4DACF,sBAAuB,qDACzB,CAAU",
6
+ "names": ["types_exports", "__export", "installLanguagePackageDAStateStep", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var k=(n,e)=>{for(var s in e)p(n,s,{get:e[s],enumerable:!0})},y=(n,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of w(e))!h.call(n,a)&&a!==s&&p(n,a,{get:()=>e[a],enumerable:!(o=m(e,a))||o.enumerable});return n};var A=n=>y(p({},"__esModule",{value:!0}),n);var I={};k(I,{InstallLanguagePackageTask:()=>E});module.exports=A(I);var d=require("rxjs"),g=require("../../command/utils/CommandUtils"),t=require("../../device-action/os/Errors"),l=require("../../utils/HexaString");class E{constructor(e,s){this.api=e;this.args=s}run(){return new d.Observable(e=>{(async()=>{let o;try{const r=await fetch(this.args.apduInstallUrl);if(!r.ok)throw new Error(`HTTP ${r.status} ${r.statusText}`);o=await r.text()}catch(r){throw new t.NetworkDAError(`Failed to fetch APDUs: ${r instanceof Error?r.message:String(r)}`)}const a=o.split(/\r?\n/).filter(Boolean);if(typeof o!="string"||a.length===0)throw new t.UnknownDAError(`Language pack install script contains no APDUs: ${this.args.apduInstallUrl}`);for(let r=0;r<a.length;r++){const u=a[r],c=(0,l.hexaStringToBuffer)(u);if(c===null||c.length<5)throw new t.UnknownDAError(`Invalid APDU data: ${u}`);const f=(await this.api.sendApdu(c)).caseOf({Left:i=>new t.UnknownDAError(`Device communication error: ${String(i)}`),Right:i=>g.CommandUtils.isRefusedByUser(i)?new t.RefusedByUserDAError("Language install refused on device."):g.CommandUtils.isOutOfMemory(i)?new t.OutOfMemoryDAError("Not enough space for language pack."):g.CommandUtils.isSuccessResponse(i)?null:new t.UnknownDAError(`Unexpected device response: ${(0,l.bufferToHexaString)(i.statusCode)}`)});if(f)throw f;e.next({type:"progress",progress:(r+1)/a.length})}})().then(()=>e.complete(),o=>e.error(o))})}}0&&(module.exports={InstallLanguagePackageTask});
2
+ //# sourceMappingURL=InstallLanguagePackageTask.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/device-action/task/InstallLanguagePackageTask.ts"],
4
+ "sourcesContent": ["import { Observable } from \"rxjs\";\n\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport type { InternalApi } from \"@api/device-action/DeviceAction\";\nimport {\n NetworkDAError,\n OutOfMemoryDAError,\n RefusedByUserDAError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport type { InstallLanguagePackageDAError } from \"@api/device-action/os/InstallLanguagePackage/types\";\nimport { bufferToHexaString, hexaStringToBuffer } from \"@api/utils/HexaString\";\n\nexport type InstallLanguagePackageTaskArgs = {\n apduInstallUrl: string;\n};\n\nexport type InstallLanguagePackageTaskError = Extract<\n InstallLanguagePackageDAError,\n RefusedByUserDAError | OutOfMemoryDAError | UnknownDAError\n>;\n\nexport type InstallLanguagePackageEvent = {\n type: \"progress\";\n progress: number;\n};\n\nexport class InstallLanguagePackageTask {\n constructor(\n private readonly api: InternalApi,\n private readonly args: InstallLanguagePackageTaskArgs,\n ) {}\n\n run(): Observable<InstallLanguagePackageEvent> {\n return new Observable((subscriber) => {\n const execute = async () => {\n let rawApdus: string;\n try {\n const response = await fetch(this.args.apduInstallUrl);\n if (!response.ok) {\n throw new Error(`HTTP ${response.status} ${response.statusText}`);\n }\n rawApdus = await response.text();\n } catch (error) {\n throw new NetworkDAError(\n `Failed to fetch APDUs: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n\n const apdus = rawApdus.split(/\\r?\\n/).filter(Boolean);\n if (typeof rawApdus !== \"string\" || apdus.length === 0) {\n throw new UnknownDAError(\n `Language pack install script contains no APDUs: ${this.args.apduInstallUrl}`,\n );\n }\n\n for (let i = 0; i < apdus.length; i++) {\n const apduHex = apdus[i]!;\n const apdu = hexaStringToBuffer(apduHex);\n if (apdu === null || apdu.length < 5) {\n throw new UnknownDAError(`Invalid APDU data: ${apduHex}`);\n }\n\n const response = await this.api.sendApdu(apdu);\n\n const error = response.caseOf({\n Left: (err) =>\n new UnknownDAError(`Device communication error: ${String(err)}`),\n Right: (apduResponse) => {\n if (CommandUtils.isRefusedByUser(apduResponse)) {\n return new RefusedByUserDAError(\n \"Language install refused on device.\",\n );\n }\n if (CommandUtils.isOutOfMemory(apduResponse)) {\n return new OutOfMemoryDAError(\n \"Not enough space for language pack.\",\n );\n }\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n return new UnknownDAError(\n `Unexpected device response: ${bufferToHexaString(\n apduResponse.statusCode,\n )}`,\n );\n }\n return null;\n },\n });\n\n if (error) {\n throw error;\n }\n\n subscriber.next({\n type: \"progress\",\n progress: (i + 1) / apdus.length,\n });\n }\n };\n\n execute().then(\n () => subscriber.complete(),\n (err) => subscriber.error(err),\n );\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA2B,gBAE3BC,EAA6B,2CAE7BC,EAKO,wCAEPC,EAAuD,iCAgBhD,MAAML,CAA2B,CACtC,YACmBM,EACAC,EACjB,CAFiB,SAAAD,EACA,UAAAC,CAChB,CAEH,KAA+C,CAC7C,OAAO,IAAI,aAAYC,GAAe,EACpB,SAAY,CAC1B,IAAIC,EACJ,GAAI,CACF,MAAMC,EAAW,MAAM,MAAM,KAAK,KAAK,cAAc,EACrD,GAAI,CAACA,EAAS,GACZ,MAAM,IAAI,MAAM,QAAQA,EAAS,MAAM,IAAIA,EAAS,UAAU,EAAE,EAElED,EAAW,MAAMC,EAAS,KAAK,CACjC,OAASC,EAAO,CACd,MAAM,IAAI,iBACR,0BAA0BA,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,EAClF,CACF,CAEA,MAAMC,EAAQH,EAAS,MAAM,OAAO,EAAE,OAAO,OAAO,EACpD,GAAI,OAAOA,GAAa,UAAYG,EAAM,SAAW,EACnD,MAAM,IAAI,iBACR,mDAAmD,KAAK,KAAK,cAAc,EAC7E,EAGF,QAASC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAAK,CACrC,MAAMC,EAAUF,EAAMC,CAAC,EACjBE,KAAO,sBAAmBD,CAAO,EACvC,GAAIC,IAAS,MAAQA,EAAK,OAAS,EACjC,MAAM,IAAI,iBAAe,sBAAsBD,CAAO,EAAE,EAK1D,MAAMH,GAFW,MAAM,KAAK,IAAI,SAASI,CAAI,GAEtB,OAAO,CAC5B,KAAOC,GACL,IAAI,iBAAe,+BAA+B,OAAOA,CAAG,CAAC,EAAE,EACjE,MAAQC,GACF,eAAa,gBAAgBA,CAAY,EACpC,IAAI,uBACT,qCACF,EAEE,eAAa,cAAcA,CAAY,EAClC,IAAI,qBACT,qCACF,EAEG,eAAa,kBAAkBA,CAAY,EAOzC,KANE,IAAI,iBACT,kCAA+B,sBAC7BA,EAAa,UACf,CAAC,EACH,CAIN,CAAC,EAED,GAAIN,EACF,MAAMA,EAGRH,EAAW,KAAK,CACd,KAAM,WACN,UAAWK,EAAI,GAAKD,EAAM,MAC5B,CAAC,CACH,CACF,GAEQ,EAAE,KACR,IAAMJ,EAAW,SAAS,EACzBQ,GAAQR,EAAW,MAAMQ,CAAG,CAC/B,CACF,CAAC,CACH,CACF",
6
+ "names": ["InstallLanguagePackageTask_exports", "__export", "InstallLanguagePackageTask", "__toCommonJS", "import_rxjs", "import_CommandUtils", "import_Errors", "import_HexaString", "api", "args", "subscriber", "rawApdus", "response", "error", "apdus", "i", "apduHex", "apdu", "err", "apduResponse"]
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";var n=require("purify-ts"),t=require("rxjs"),r=require("../../device-action/os/Errors"),u=require("../../device-session/ApduResponse"),l=require("./InstallLanguagePackageTask");describe("InstallLanguagePackageTask",()=>{let o;const s=vi.fn(),p=new Uint8Array([144,0]),i=new Uint8Array([85,1]),d=new Uint8Array([106,132]),m=new Uint8Array([103,0]);function a(e){return new u.ApduResponse({statusCode:e,data:new Uint8Array})}beforeEach(()=>{vi.clearAllMocks(),o={sendApdu:s}}),afterEach(()=>{vi.restoreAllMocks()}),describe("success",()=>{it("should send all APDUs and emit progress events",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response(`e0c4000000
2
+ e0c4010000
3
+ e0c4020000`)),s.mockResolvedValueOnce((0,n.Right)(a(p))).mockResolvedValueOnce((0,n.Right)(a(p))).mockResolvedValueOnce((0,n.Right)(a(p)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"}),c=await(0,t.lastValueFrom)(e.run().pipe((0,t.toArray)()));expect(globalThis.fetch).toHaveBeenCalledWith("https://example.com/install"),expect(s).toHaveBeenCalledTimes(3),expect(c).toEqual([{type:"progress",progress:1/3},{type:"progress",progress:2/3},{type:"progress",progress:1}])}),it("should handle a single APDU",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4000000")),s.mockResolvedValueOnce((0,n.Right)(a(p)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"}),c=await(0,t.lastValueFrom)(e.run().pipe((0,t.toArray)()));expect(s).toHaveBeenCalledTimes(1),expect(c).toEqual([{type:"progress",progress:1}])}),it("should skip empty lines in APDU data",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response(`e0c4000000
4
+
5
+ e0c4010000
6
+ `)),s.mockResolvedValueOnce((0,n.Right)(a(p))).mockResolvedValueOnce((0,n.Right)(a(p)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"}),c=await(0,t.lastValueFrom)(e.run().pipe((0,t.toArray)()));expect(s).toHaveBeenCalledTimes(2),expect(c).toEqual([{type:"progress",progress:.5},{type:"progress",progress:1}])}),it("should handle Windows-style line endings",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response(`e0c4000000\r
7
+ e0c4010000`)),s.mockResolvedValueOnce((0,n.Right)(a(p))).mockResolvedValueOnce((0,n.Right)(a(p)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"}),c=await(0,t.lastValueFrom)(e.run().pipe((0,t.toArray)()));expect(s).toHaveBeenCalledTimes(2),expect(c).toEqual([{type:"progress",progress:.5},{type:"progress",progress:1}])})}),describe("error",()=>{it("should throw NetworkDAError when fetching APDUs fails",async()=>{vi.spyOn(globalThis,"fetch").mockRejectedValueOnce(new Error("Network timeout"));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.NetworkDAError("Failed to fetch APDUs: Network timeout")),expect(s).not.toHaveBeenCalled()}),it("should throw UnknownDAError for invalid APDU hex data",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("ZZZZ"));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.UnknownDAError("Invalid APDU data: ZZZZ")),expect(s).not.toHaveBeenCalled()}),it("should throw UnknownDAError for too-short APDU data",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4"));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.UnknownDAError("Invalid APDU data: e0c4")),expect(s).not.toHaveBeenCalled()}),it("should throw UnknownDAError on device communication error (Left)",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4000000")),s.mockResolvedValueOnce((0,n.Left)(new Error("Transport error")));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.UnknownDAError("Device communication error: Error: Transport error"))}),it("should throw RefusedByUserDAError when device refuses",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4000000")),s.mockResolvedValueOnce((0,n.Right)(a(i)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.RefusedByUserDAError("Language install refused on device."))}),it("should throw OutOfMemoryDAError when device is out of memory",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4000000")),s.mockResolvedValueOnce((0,n.Right)(a(d)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.OutOfMemoryDAError("Not enough space for language pack."))}),it("should throw UnknownDAError for unexpected device response status",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response("e0c4000000")),s.mockResolvedValueOnce((0,n.Right)(a(m)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"});await expect((0,t.lastValueFrom)(e.run())).rejects.toEqual(new r.UnknownDAError("Unexpected device response: 0x6700"))}),it("should error on second APDU after first succeeds",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValueOnce(new Response(`e0c4000000
8
+ e0c4010000`)),s.mockResolvedValueOnce((0,n.Right)(a(p))).mockResolvedValueOnce((0,n.Right)(a(i)));const e=new l.InstallLanguagePackageTask(o,{apduInstallUrl:"https://example.com/install"}),c=[];await expect(new Promise((h,w)=>{e.run().subscribe({next:v=>c.push(v),error:w,complete:h})})).rejects.toEqual(new r.RefusedByUserDAError("Language install refused on device.")),expect(c).toEqual([{type:"progress",progress:.5}])})})});
9
+ //# sourceMappingURL=InstallLanguagePackageTask.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/device-action/task/InstallLanguagePackageTask.test.ts"],
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { lastValueFrom, toArray } from \"rxjs\";\n\nimport type { InternalApi } from \"@api/device-action/DeviceAction\";\nimport {\n NetworkDAError,\n OutOfMemoryDAError,\n RefusedByUserDAError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { InstallLanguagePackageTask } from \"./InstallLanguagePackageTask\";\n\ndescribe(\"InstallLanguagePackageTask\", () => {\n let api: InternalApi;\n const sendApdu = vi.fn();\n\n const SUCCESS_STATUS = new Uint8Array([0x90, 0x00]);\n const REFUSED_STATUS = new Uint8Array([0x55, 0x01]);\n const OUT_OF_MEMORY_STATUS = new Uint8Array([0x6a, 0x84]);\n const UNKNOWN_ERROR_STATUS = new Uint8Array([0x67, 0x00]);\n\n function makeApduResponse(statusCode: Uint8Array) {\n return new ApduResponse({ statusCode, data: new Uint8Array() });\n }\n\n beforeEach(() => {\n vi.clearAllMocks();\n api = { sendApdu } as unknown as InternalApi;\n });\n\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n describe(\"success\", () => {\n it(\"should send all APDUs and emit progress events\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\\ne0c4010000\\ne0c4020000\"),\n );\n sendApdu\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)))\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)))\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n const events = await lastValueFrom(task.run().pipe(toArray()));\n\n expect(globalThis.fetch).toHaveBeenCalledWith(\n \"https://example.com/install\",\n );\n expect(sendApdu).toHaveBeenCalledTimes(3);\n expect(events).toEqual([\n { type: \"progress\", progress: 1 / 3 },\n { type: \"progress\", progress: 2 / 3 },\n { type: \"progress\", progress: 1 },\n ]);\n });\n\n it(\"should handle a single APDU\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\"),\n );\n sendApdu.mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n const events = await lastValueFrom(task.run().pipe(toArray()));\n\n expect(sendApdu).toHaveBeenCalledTimes(1);\n expect(events).toEqual([{ type: \"progress\", progress: 1 }]);\n });\n\n it(\"should skip empty lines in APDU data\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\\n\\ne0c4010000\\n\"),\n );\n sendApdu\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)))\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n const events = await lastValueFrom(task.run().pipe(toArray()));\n\n expect(sendApdu).toHaveBeenCalledTimes(2);\n expect(events).toEqual([\n { type: \"progress\", progress: 0.5 },\n { type: \"progress\", progress: 1 },\n ]);\n });\n\n it(\"should handle Windows-style line endings\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\\r\\ne0c4010000\"),\n );\n sendApdu\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)))\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n const events = await lastValueFrom(task.run().pipe(toArray()));\n\n expect(sendApdu).toHaveBeenCalledTimes(2);\n expect(events).toEqual([\n { type: \"progress\", progress: 0.5 },\n { type: \"progress\", progress: 1 },\n ]);\n });\n });\n\n describe(\"error\", () => {\n it(\"should throw NetworkDAError when fetching APDUs fails\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockRejectedValueOnce(\n new Error(\"Network timeout\"),\n );\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new NetworkDAError(\"Failed to fetch APDUs: Network timeout\"),\n );\n expect(sendApdu).not.toHaveBeenCalled();\n });\n\n it(\"should throw UnknownDAError for invalid APDU hex data\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(new Response(\"ZZZZ\"));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new UnknownDAError(\"Invalid APDU data: ZZZZ\"),\n );\n expect(sendApdu).not.toHaveBeenCalled();\n });\n\n it(\"should throw UnknownDAError for too-short APDU data\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(new Response(\"e0c4\"));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new UnknownDAError(\"Invalid APDU data: e0c4\"),\n );\n expect(sendApdu).not.toHaveBeenCalled();\n });\n\n it(\"should throw UnknownDAError on device communication error (Left)\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\"),\n );\n sendApdu.mockResolvedValueOnce(Left(new Error(\"Transport error\")));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new UnknownDAError(\n \"Device communication error: Error: Transport error\",\n ),\n );\n });\n\n it(\"should throw RefusedByUserDAError when device refuses\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\"),\n );\n sendApdu.mockResolvedValueOnce(Right(makeApduResponse(REFUSED_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new RefusedByUserDAError(\"Language install refused on device.\"),\n );\n });\n\n it(\"should throw OutOfMemoryDAError when device is out of memory\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\"),\n );\n sendApdu.mockResolvedValueOnce(\n Right(makeApduResponse(OUT_OF_MEMORY_STATUS)),\n );\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new OutOfMemoryDAError(\"Not enough space for language pack.\"),\n );\n });\n\n it(\"should throw UnknownDAError for unexpected device response status\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\"),\n );\n sendApdu.mockResolvedValueOnce(\n Right(makeApduResponse(UNKNOWN_ERROR_STATUS)),\n );\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n await expect(lastValueFrom(task.run())).rejects.toEqual(\n new UnknownDAError(\"Unexpected device response: 0x6700\"),\n );\n });\n\n it(\"should error on second APDU after first succeeds\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValueOnce(\n new Response(\"e0c4000000\\ne0c4010000\"),\n );\n sendApdu\n .mockResolvedValueOnce(Right(makeApduResponse(SUCCESS_STATUS)))\n .mockResolvedValueOnce(Right(makeApduResponse(REFUSED_STATUS)));\n\n const task = new InstallLanguagePackageTask(api, {\n apduInstallUrl: \"https://example.com/install\",\n });\n\n const events: Array<{ type: string; progress: number }> = [];\n await expect(\n new Promise<void>((resolve, reject) => {\n task.run().subscribe({\n next: (event) => events.push(event),\n error: reject,\n complete: resolve,\n });\n }),\n ).rejects.toEqual(\n new RefusedByUserDAError(\"Language install refused on device.\"),\n );\n expect(events).toEqual([{ type: \"progress\", progress: 0.5 }]);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_rxjs", "import_Errors", "import_ApduResponse", "import_InstallLanguagePackageTask", "api", "sendApdu", "SUCCESS_STATUS", "REFUSED_STATUS", "OUT_OF_MEMORY_STATUS", "UNKNOWN_ERROR_STATUS", "makeApduResponse", "statusCode", "task", "events", "resolve", "reject", "event"]
7
+ }