@ledgerhq/device-trusted-app-kit-ledger-keyring-protocol 0.0.0-develop-20250812001248 → 0.0.0-develop-20250814001249
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/api/LedgerKeyringProtocol.js +1 -1
- package/lib/cjs/api/LedgerKeyringProtocol.js.map +1 -1
- package/lib/cjs/api/LedgerKeyringProtocolBuilder.js +1 -1
- package/lib/cjs/api/LedgerKeyringProtocolBuilder.js.map +2 -2
- package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +3 -3
- package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js.map +3 -3
- package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js +1 -1
- package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
- package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
- package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/AuthenticateTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/AuthenticateTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +7 -0
- package/lib/cjs/internal/di.js +1 -1
- package/lib/cjs/internal/di.js.map +3 -3
- package/lib/cjs/internal/externalTypes.js +1 -1
- package/lib/cjs/internal/externalTypes.js.map +2 -2
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +3 -3
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +3 -3
- package/lib/cjs/internal/lkrp-datasource/data/LKRPDataSource.js.map +1 -1
- package/lib/cjs/internal/models/Types.js +1 -1
- package/lib/cjs/internal/models/Types.js.map +1 -1
- package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPBlockStream.js +2 -2
- package/lib/cjs/internal/utils/LKRPBlockStream.js.map +3 -3
- package/lib/cjs/internal/utils/Trustchain.js +2 -0
- package/lib/cjs/internal/utils/Trustchain.js.map +7 -0
- package/lib/cjs/package.json +1 -0
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js +1 -1
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js.map +2 -2
- package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +4 -4
- package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js.map +4 -4
- package/lib/esm/internal/DefaultLedgerKeyringProtocol.js +1 -1
- package/lib/esm/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
- package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
- package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +2 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +2 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +1 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +1 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +7 -0
- package/lib/esm/internal/app-binder/task/AuthenticateTask.js +2 -0
- package/lib/esm/internal/app-binder/task/AuthenticateTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +7 -0
- package/lib/esm/internal/di.js +1 -1
- package/lib/esm/internal/di.js.map +3 -3
- package/lib/esm/internal/externalTypes.js +1 -1
- package/lib/esm/internal/externalTypes.js.map +2 -2
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +3 -3
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +3 -3
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js.map +3 -3
- package/lib/esm/internal/utils/LKRPBlockStream.js +2 -2
- package/lib/esm/internal/utils/LKRPBlockStream.js.map +3 -3
- package/lib/esm/internal/utils/Trustchain.js +2 -0
- package/lib/esm/internal/utils/Trustchain.js.map +7 -0
- package/lib/esm/package.json +1 -0
- package/lib/types/api/LedgerKeyringProtocol.d.ts +2 -2
- package/lib/types/api/LedgerKeyringProtocol.d.ts.map +1 -1
- package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts +1 -3
- package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts.map +1 -1
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts +16 -6
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts +25 -29
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts +5 -5
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts.map +1 -1
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts +8 -4
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/AddToTrustchainDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts +29 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts +30 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts +19 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts +16 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/AuthenticateTask.d.ts +9 -0
- package/lib/types/internal/app-binder/task/AuthenticateTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts +11 -0
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts.map +1 -0
- package/lib/types/internal/di.d.ts +2 -3
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/externalTypes.d.ts +0 -1
- package/lib/types/internal/externalTypes.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts +2 -4
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts +1 -1
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/models/Types.d.ts +0 -4
- package/lib/types/internal/models/Types.d.ts.map +1 -1
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts +13 -1
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts.map +1 -1
- package/lib/types/internal/utils/LKRPBlockStream.d.ts +1 -2
- package/lib/types/internal/utils/LKRPBlockStream.d.ts.map +1 -1
- package/lib/types/internal/utils/Trustchain.d.ts +14 -0
- package/lib/types/internal/utils/Trustchain.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/lib/cjs/internal/app-binder/device-action/AuthenticateDeviceAction.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/AuthenticateDeviceAction.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/AuthenticateDeviceAction.js +0 -2
- package/lib/esm/internal/app-binder/device-action/AuthenticateDeviceAction.js.map +0 -7
- package/lib/types/internal/app-binder/device-action/AuthenticateDeviceAction.d.ts +0 -42
- package/lib/types/internal/app-binder/device-action/AuthenticateDeviceAction.d.ts.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var c=(e,t,i,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of y(t))!A.call(e,r)&&r!==i&&n(e,r,{get:()=>t[r],enumerable:!(a=p(t,r))||a.enumerable});return e};var u=e=>c(n({},"__esModule",{value:!0}),e);var o={};module.exports=u(o);
|
|
2
2
|
//# sourceMappingURL=LedgerKeyringProtocol.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/LedgerKeyringProtocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { type
|
|
4
|
+
"sourcesContent": ["import { type AuthenticateUsecaseInput } from \"@internal/use-cases/authentication/AuthenticateUseCase\";\n\nimport { type AuthenticateDAReturnType } from \"./app-binder/AuthenticateDeviceActionTypes\";\n\nexport interface LedgerKeyringProtocol {\n authenticate: (input: AuthenticateUsecaseInput) => AuthenticateDAReturnType;\n\n encryptData: (xpriv: Uint8Array, data: Uint8Array) => Uint8Array;\n\n decryptData: (xpriv: Uint8Array, data: Uint8Array) => Uint8Array;\n}\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["LedgerKeyringProtocol_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var m=(i,e)=>{for(var r in e)n(i,r,{get:e[r],enumerable:!0})},c=(i,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!d.call(i,t)&&t!==r&&n(i,t,{get:()=>e[t],enumerable:!(o=l(e,t))||o.enumerable});return i};var s=i=>c(n({},"__esModule",{value:!0}),i);var y={};m(y,{LedgerKeyringProtocolBuilder:()=>v});module.exports=s(y);var a=require("../internal/DefaultLedgerKeyringProtocol");class v{dmk;applicationId;env;baseUrl;constructor(e){this.dmk=e.dmk,this.applicationId=e.applicationId,this.env=e.env,this.baseUrl=e.baseUrl}build(){return new a.DefaultLedgerKeyringProtocol({dmk:this.dmk,applicationId:this.applicationId,env:this.env,baseUrl:this.baseUrl})}}0&&(module.exports={LedgerKeyringProtocolBuilder});
|
|
2
2
|
//# sourceMappingURL=LedgerKeyringProtocolBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/LedgerKeyringProtocolBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,
|
|
4
|
+
"sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { type LedgerKeyringProtocol } from \"@api/LedgerKeyringProtocol\";\nimport { DefaultLedgerKeyringProtocol } from \"@internal/DefaultLedgerKeyringProtocol\";\n\nimport { type LKRPEnv } from \"./app-binder/LKRPTypes\";\n\nexport class LedgerKeyringProtocolBuilder {\n private readonly dmk: DeviceManagementKit;\n private readonly applicationId: number;\n private readonly env?: LKRPEnv;\n private readonly baseUrl?: string;\n\n constructor(args: {\n dmk: DeviceManagementKit;\n applicationId: number;\n env?: LKRPEnv;\n baseUrl?: string;\n }) {\n this.dmk = args.dmk;\n this.applicationId = args.applicationId;\n this.env = args.env;\n this.baseUrl = args.baseUrl;\n }\n\n build(): LedgerKeyringProtocol {\n return new DefaultLedgerKeyringProtocol({\n dmk: this.dmk,\n applicationId: this.applicationId,\n env: this.env,\n baseUrl: this.baseUrl,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAGA,IAAAI,EAA6C,kDAItC,MAAMF,CAA6B,CACvB,IACA,cACA,IACA,QAEjB,YAAYG,EAKT,CACD,KAAK,IAAMA,EAAK,IAChB,KAAK,cAAgBA,EAAK,cAC1B,KAAK,IAAMA,EAAK,IAChB,KAAK,QAAUA,EAAK,OACtB,CAEA,OAA+B,CAC7B,OAAO,IAAI,+BAA6B,CACtC,IAAK,KAAK,IACV,cAAe,KAAK,cACpB,IAAK,KAAK,IACV,QAAS,KAAK,OAChB,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["LedgerKeyringProtocolBuilder_exports", "__export", "LedgerKeyringProtocolBuilder", "__toCommonJS", "import_DefaultLedgerKeyringProtocol", "args"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var a in r)i(e,a,{get:r[a],enumerable:!0})},u=(e,r,a,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of s(r))!m.call(e,o)&&o!==a&&i(e,o,{get:()=>r[o],enumerable:!(t=d(r,o))||t.enumerable});return e};var c=e=>u(i({},"__esModule",{value:!0}),e);var P={};y(P,{AddToTrustchainDAState:()=>n,AddToTrustchaineDAStep:()=>p});module.exports=c(P);var n=(r=>(r.AddMember="lkrp-add-member",r))(n||{}),p=(t=>(t.Initialize="lkrp-init-transaction",t.ParseStream="lkrp-parse-stream",t.AddMember="lkrp-add-member",t))(p||{});0&&(module.exports={AddToTrustchainDAState,AddToTrustchaineDAStep});
|
|
2
2
|
//# sourceMappingURL=AddToTrustchainDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/AddToTrustchainDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["AddToTrustchainDeviceActionTypes_exports", "__toCommonJS"]
|
|
4
|
+
"sourcesContent": ["import {\n type OpenAppDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either } from \"purify-ts\";\n\nimport { type LKRPDeviceCommandError } from \"@internal/app-binder/command/utils/ledgerKeyringProtocolErrors\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { type Trustchain } from \"@internal/utils/Trustchain\";\n\nimport {\n type LKRPDataSourceError,\n type LKRPMissingDataError,\n type LKRPOutdatedTrustchainError,\n type LKRPParsingError,\n type LKRPTrustchainNotReady,\n type LKRPUnknownError,\n} from \"./Errors\";\nimport { type JWT, type Keypair, type Permissions } from \"./LKRPTypes\";\n\nexport type AddToTrustchainDAOutput = undefined;\n\nexport type AddToTrustchainDAInput = Either<\n LKRPMissingDataError,\n {\n readonly lkrpDataSource: LKRPDataSource;\n readonly keypair: Keypair;\n readonly jwt: JWT;\n readonly appId: number;\n readonly trustchain: Trustchain;\n readonly clientName: string;\n readonly permissions: Permissions;\n }\n>;\n\nexport type AddToTrustchainDAError =\n | LKRPDeviceCommandError\n | LKRPDataSourceError\n | LKRPParsingError\n | LKRPMissingDataError\n | LKRPOutdatedTrustchainError\n | LKRPTrustchainNotReady\n | OpenAppDAError\n | LKRPUnknownError;\n\nexport type AddToTrustchainDAIntermediateValue =\n | {\n requiredUserInteraction: UserInteractionRequired.None;\n step?:\n | AddToTrustchaineDAStep.Initialize\n | AddToTrustchaineDAStep.ParseStream;\n }\n | {\n requiredUserInteraction: AddToTrustchainDAState.AddMember;\n step: AddToTrustchaineDAStep.AddMember;\n };\n\nexport enum AddToTrustchainDAState {\n AddMember = \"lkrp-add-member\",\n}\n\nexport enum AddToTrustchaineDAStep {\n Initialize = \"lkrp-init-transaction\",\n ParseStream = \"lkrp-parse-stream\",\n AddMember = \"lkrp-add-member\",\n}\n\nexport type AddToTrustchainDAInternalState = Either<\n AddToTrustchainDAError,\n {\n readonly sessionKeypair: Keypair | null;\n }\n>;\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAyDO,IAAKE,OACVA,EAAA,UAAY,kBADFA,OAAA,IAIAC,OACVA,EAAA,WAAa,wBACbA,EAAA,YAAc,oBACdA,EAAA,UAAY,kBAHFA,OAAA",
|
|
6
|
+
"names": ["AddToTrustchainDeviceActionTypes_exports", "__export", "AddToTrustchainDAState", "AddToTrustchaineDAStep", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var y=(r,t)=>{for(var n in t)p(r,n,{get:t[n],enumerable:!0})},s=(r,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of c(t))!A.call(r,e)&&e!==n&&p(r,e,{get:()=>t[e],enumerable:!(i=u(t,e))||i.enumerable});return r};var d=r=>s(p({},"__esModule",{value:!0}),r);var h={};y(h,{AuthenticateDAState:()=>a,AuthenticateDAStep:()=>o});module.exports=d(h);var a=(t=>(t.Authenticate="lkrp-authenticate",t))(a||{}),o=(e=>(e.OpenApp="lkrp.steps.openApp",e.Authenticate="lkrp.steps.authenticate",e.GetTrustchain="lkrp.steps.getTrustchain",e.ExtractEncryptionKey="lkrp.steps.extractEncryptionKey",e))(o||{});0&&(module.exports={AuthenticateDAState,AuthenticateDAStep});
|
|
2
2
|
//# sourceMappingURL=AuthenticateDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/AuthenticateDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n} from \"@ledgerhq/device-management-kit\";\
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["AuthenticateDeviceActionTypes_exports", "__toCommonJS"]
|
|
4
|
+
"sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type LKRPDeviceCommandError } from \"@internal/app-binder/command/utils/ledgerKeyringProtocolErrors\";\n\nimport {\n type AddToTrustchainDAError,\n type AddToTrustchainDAIntermediateValue,\n} from \"./AddToTrustchainDeviceActionTypes\";\nimport {\n type LKRPDataSourceError,\n type LKRPMissingDataError,\n type LKRPParsingError,\n type LKRPTrustchainNotReady,\n type LKRPUnauthorizedError,\n type LKRPUnknownError,\n} from \"./Errors\";\nimport { type JWT } from \"./LKRPTypes\";\n\nexport type AuthenticateDAReturnType = ExecuteDeviceActionReturnType<\n AuthenticateDAOutput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue\n>;\n\nexport type AuthenticateDAOutput = {\n readonly jwt: JWT;\n readonly trustchainId: string;\n readonly applicationPath: string;\n readonly encryptionKey: Uint8Array;\n};\n\nexport type AuthenticateDAError =\n | LKRPUnauthorizedError\n | AddToTrustchainDAError\n | LKRPDeviceCommandError\n | LKRPDataSourceError\n | LKRPParsingError\n | LKRPMissingDataError\n | LKRPTrustchainNotReady\n | OpenAppDAError\n | LKRPUnknownError;\n\nexport type AuthenticateDAIntermediateValue =\n | {\n requiredUserInteraction: OpenAppDARequiredInteraction;\n step: AuthenticateDAStep.OpenApp;\n }\n | {\n requiredUserInteraction: AuthenticateDAState.Authenticate;\n step: AuthenticateDAStep.Authenticate;\n }\n | {\n requiredUserInteraction: UserInteractionRequired.None;\n step?:\n | AuthenticateDAStep.Authenticate\n | AuthenticateDAStep.GetTrustchain\n | AuthenticateDAStep.ExtractEncryptionKey;\n }\n | AddToTrustchainDAIntermediateValue;\n\nexport enum AuthenticateDAState {\n Authenticate = \"lkrp-authenticate\",\n}\nexport enum AuthenticateDAStep {\n OpenApp = \"lkrp.steps.openApp\",\n Authenticate = \"lkrp.steps.authenticate\",\n GetTrustchain = \"lkrp.steps.getTrustchain\",\n ExtractEncryptionKey = \"lkrp.steps.extractEncryptionKey\",\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,uBAAAC,IAAA,eAAAC,EAAAJ,GAiEO,IAAKE,OACVA,EAAA,aAAe,oBADLA,OAAA,IAGAC,OACVA,EAAA,QAAU,qBACVA,EAAA,aAAe,0BACfA,EAAA,cAAgB,2BAChBA,EAAA,qBAAuB,kCAJbA,OAAA",
|
|
6
|
+
"names": ["AuthenticateDeviceActionTypes_exports", "__export", "AuthenticateDAState", "AuthenticateDAStep", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},u=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of p(e))!y.call(r,a)&&a!==t&&i(r,a,{get:()=>e[a],enumerable:!(n=c(e,a))||n.enumerable});return r};var g=r=>u(i({},"__esModule",{value:!0}),r);var U={};m(U,{DefaultLedgerKeyringProtocol:()=>D});module.exports=g(U);var s=require("./di"),o=require("./use-cases/di/useCasesTypes");class D{name;_container;constructor({dmk:e,applicationId:t,env:n,baseUrl:a}){this.name="Ledger Keyring Protocol",this._container=(0,s.makeContainer)({dmk:e,applicationId:t,env:n,baseUrl:a})}authenticate(e){return this._container.get(o.useCasesTypes.AuthenticateUseCase).execute(e)}encryptData(e,t){return this._container.get(o.useCasesTypes.EncryptDataUseCase).execute(e,t)}decryptData(e,t){return this._container.get(o.useCasesTypes.DecryptDataUseCase).execute(e,t)}}0&&(module.exports={DefaultLedgerKeyringProtocol});
|
|
2
2
|
//# sourceMappingURL=DefaultLedgerKeyringProtocol.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/DefaultLedgerKeyringProtocol.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["DefaultLedgerKeyringProtocol_exports", "__export", "DefaultLedgerKeyringProtocol", "__toCommonJS", "import_di", "import_useCasesTypes", "dmk", "
|
|
4
|
+
"sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type AuthenticateDAReturnType } from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport { type LKRPEnv } from \"@api/app-binder/LKRPTypes\";\nimport { type LedgerKeyringProtocol } from \"@api/LedgerKeyringProtocol\";\nimport { makeContainer } from \"@internal/di\";\n\nimport {\n type AuthenticateUseCase,\n type AuthenticateUsecaseInput,\n} from \"./use-cases/authentication/AuthenticateUseCase\";\nimport { type DecryptDataUseCase } from \"./use-cases/authentication/DecryptDataUseCase\";\nimport { type EncryptDataUseCase } from \"./use-cases/authentication/EncryptDataUseCase\";\nimport { useCasesTypes } from \"./use-cases/di/useCasesTypes\";\n\ntype DefaultLedgerKeyringProtocolConstructorArgs = {\n dmk: DeviceManagementKit;\n applicationId: number;\n env?: LKRPEnv;\n baseUrl?: string;\n};\n\nexport class DefaultLedgerKeyringProtocol implements LedgerKeyringProtocol {\n name: string;\n private _container: Container;\n\n constructor({\n dmk,\n applicationId,\n env,\n baseUrl,\n }: DefaultLedgerKeyringProtocolConstructorArgs) {\n this.name = \"Ledger Keyring Protocol\";\n this._container = makeContainer({\n dmk,\n applicationId,\n env,\n baseUrl,\n });\n }\n\n authenticate(input: AuthenticateUsecaseInput): AuthenticateDAReturnType {\n return this._container\n .get<AuthenticateUseCase>(useCasesTypes.AuthenticateUseCase)\n .execute(input);\n }\n\n encryptData(encryptionKey: Uint8Array, data: Uint8Array): Uint8Array {\n return this._container\n .get<EncryptDataUseCase>(useCasesTypes.EncryptDataUseCase)\n .execute(encryptionKey, data);\n }\n\n decryptData(encryptionKey: Uint8Array, data: Uint8Array): Uint8Array {\n return this._container\n .get<DecryptDataUseCase>(useCasesTypes.DecryptDataUseCase)\n .execute(encryptionKey, data);\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAMA,IAAAI,EAA8B,wBAQ9BC,EAA8B,wCASvB,MAAMH,CAA8D,CACzE,KACQ,WAER,YAAY,CACV,IAAAI,EACA,cAAAC,EACA,IAAAC,EACA,QAAAC,CACF,EAAgD,CAC9C,KAAK,KAAO,0BACZ,KAAK,cAAa,iBAAc,CAC9B,IAAAH,EACA,cAAAC,EACA,IAAAC,EACA,QAAAC,CACF,CAAC,CACH,CAEA,aAAaC,EAA2D,CACtE,OAAO,KAAK,WACT,IAAyB,gBAAc,mBAAmB,EAC1D,QAAQA,CAAK,CAClB,CAEA,YAAYC,EAA2BC,EAA8B,CACnE,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQD,EAAeC,CAAI,CAChC,CAEA,YAAYD,EAA2BC,EAA8B,CACnE,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQD,EAAeC,CAAI,CAChC,CACF",
|
|
6
|
+
"names": ["DefaultLedgerKeyringProtocol_exports", "__export", "DefaultLedgerKeyringProtocol", "__toCommonJS", "import_di", "import_useCasesTypes", "dmk", "applicationId", "env", "baseUrl", "input", "encryptionKey", "data"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var a=Object.defineProperty;var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var v=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},S=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of I(e))!y.call(t,i)&&i!==n&&a(t,i,{get:()=>e[i],enumerable:!(r=D(e,i))||r.enumerable});return t};var N=t=>S(a({},"__esModule",{value:!0}),t),h=(t,e,n,r)=>{for(var i=r>1?void 0:r?D(e,n):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(r?u(e,n,i):u(i))||i);return r&&i&&a(e,n,i),i},s=(t,e)=>(n,r)=>e(n,r,t);var f={};v(f,{LedgerKeyringProtocolBinder:()=>p});module.exports=N(f);var m=require("@ledgerhq/device-management-kit"),o=require("inversify"),d=require("../externalTypes"),k=require("../lkrp-datasource/di/lkrpDatasourceTypes"),l=require("./command/GetVersionCommand"),A=require("./device-action/AuthenticateWithDeviceDeviceAction"),w=require("./device-action/AuthenticateWithKeypairDeviceAction");let p=class{constructor(e,n,r){this.dmk=e;this.applicationId=n;this.lkrpDataSource=r}authenticateWithKeypair(e){return new w.AuthenticateWithKeypairDeviceAction({input:{lkrpDataSource:this.lkrpDataSource,appId:this.applicationId,keypair:e.keypair,trustchainId:e.trustchainId}}).execute()}authenticateWithDevice(e){return this.dmk.executeDeviceAction({sessionId:e.sessionId,deviceAction:new A.AuthenticateWithDeviceDeviceAction({input:{lkrpDataSource:this.lkrpDataSource,appId:this.applicationId,clientName:e.clientName,permissions:e.permissions,keypair:e.keypair}})})}getVersion(e){return this.dmk.executeDeviceAction({sessionId:e.sessionId,deviceAction:new m.SendCommandInAppDeviceAction({input:{command:new l.GetVersionCommand,appName:"Ledger Sync",requiredUserInteraction:m.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}getAppName(){throw new Error("Not implemented")}getSeedId(){throw new Error("Not implemented")}init(){throw new Error("Not implemented")}parseStream(){throw new Error("Not implemented")}signBlock(){throw new Error("Not implemented")}setTrustedMember(){throw new Error("Not implemented")}};p=h([(0,o.injectable)(),s(0,(0,o.inject)(d.externalTypes.Dmk)),s(1,(0,o.inject)(d.externalTypes.ApplicationId)),s(2,(0,o.inject)(k.lkrpDatasourceTypes.LKRPDataSource))],p);0&&(module.exports={LedgerKeyringProtocolBinder});
|
|
2
2
|
//# sourceMappingURL=LedgerKeyringProtocolBinder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/app-binder/LedgerKeyringProtocolBinder.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { AuthenticateDAReturnType } from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport { GetVersionDAReturnType } from \"@api/app-binder/GetVersionDeviceActionTypes\";\nimport { Keypair, Permissions } from \"@api/app-binder/LKRPTypes\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { lkrpDatasourceTypes } from \"@internal/lkrp-datasource/di/lkrpDatasourceTypes\";\n\nimport { GetVersionCommand } from \"./command/GetVersionCommand\";\nimport {
|
|
5
|
-
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,2CACPC,EAAmC,qBAKnCC,EAA8B,mCAE9BC,EAAoC,4DAEpCC,EAAkC,uCAClCC,
|
|
6
|
-
"names": ["LedgerKeyringProtocolBinder_exports", "__export", "LedgerKeyringProtocolBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_externalTypes", "import_lkrpDatasourceTypes", "import_GetVersionCommand", "
|
|
4
|
+
"sourcesContent": ["import {\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { AuthenticateDAReturnType } from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport { GetVersionDAReturnType } from \"@api/app-binder/GetVersionDeviceActionTypes\";\nimport { Keypair, Permissions } from \"@api/app-binder/LKRPTypes\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { lkrpDatasourceTypes } from \"@internal/lkrp-datasource/di/lkrpDatasourceTypes\";\n\nimport { GetVersionCommand } from \"./command/GetVersionCommand\";\nimport { AuthenticateWithDeviceDeviceAction } from \"./device-action/AuthenticateWithDeviceDeviceAction\";\nimport { AuthenticateWithKeypairDeviceAction } from \"./device-action/AuthenticateWithKeypairDeviceAction\";\n\n@injectable()\nexport class LedgerKeyringProtocolBinder {\n constructor(\n @inject(externalTypes.Dmk) private readonly dmk: DeviceManagementKit,\n\n @inject(externalTypes.ApplicationId)\n private readonly applicationId: number,\n\n @inject(lkrpDatasourceTypes.LKRPDataSource)\n private readonly lkrpDataSource: LKRPDataSource,\n ) {}\n\n authenticateWithKeypair(args: {\n keypair: Keypair;\n trustchainId: string;\n }): AuthenticateDAReturnType {\n return new AuthenticateWithKeypairDeviceAction({\n input: {\n lkrpDataSource: this.lkrpDataSource,\n appId: this.applicationId,\n keypair: args.keypair,\n trustchainId: args.trustchainId,\n },\n }).execute();\n }\n\n authenticateWithDevice(args: {\n keypair: Keypair;\n clientName: string;\n permissions: Permissions;\n sessionId: DeviceSessionId;\n }): AuthenticateDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: args.sessionId,\n deviceAction: new AuthenticateWithDeviceDeviceAction({\n input: {\n lkrpDataSource: this.lkrpDataSource,\n appId: this.applicationId,\n clientName: args.clientName,\n permissions: args.permissions,\n keypair: args.keypair,\n },\n }),\n });\n }\n\n getVersion(args: {\n skipOpenApp: boolean;\n sessionId: DeviceSessionId;\n }): GetVersionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: args.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetVersionCommand(),\n appName: \"Ledger Sync\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getAppName(): unknown {\n throw new Error(\"Not implemented\");\n }\n\n getSeedId(): unknown {\n throw new Error(\"Not implemented\");\n }\n\n init(): unknown {\n throw new Error(\"Not implemented\");\n }\n\n parseStream(): unknown {\n throw new Error(\"Not implemented\");\n }\n\n signBlock(): unknown {\n throw new Error(\"Not implemented\");\n }\n\n setTrustedMember(): unknown {\n throw new Error(\"Not implemented\");\n }\n}\n"],
|
|
5
|
+
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,2CACPC,EAAmC,qBAKnCC,EAA8B,mCAE9BC,EAAoC,4DAEpCC,EAAkC,uCAClCC,EAAmD,8DACnDC,EAAoD,+DAG7C,IAAMC,EAAN,KAAkC,CACvC,YAC8CC,EAG3BC,EAGAC,EACjB,CAP4C,SAAAF,EAG3B,mBAAAC,EAGA,oBAAAC,CAChB,CAEH,wBAAwBC,EAGK,CAC3B,OAAO,IAAI,sCAAoC,CAC7C,MAAO,CACL,eAAgB,KAAK,eACrB,MAAO,KAAK,cACZ,QAASA,EAAK,QACd,aAAcA,EAAK,YACrB,CACF,CAAC,EAAE,QAAQ,CACb,CAEA,uBAAuBA,EAKM,CAC3B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAWA,EAAK,UAChB,aAAc,IAAI,qCAAmC,CACnD,MAAO,CACL,eAAgB,KAAK,eACrB,MAAO,KAAK,cACZ,WAAYA,EAAK,WACjB,YAAaA,EAAK,YAClB,QAASA,EAAK,OAChB,CACF,CAAC,CACH,CAAC,CACH,CAEA,WAAWA,EAGgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAWA,EAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,oBACb,QAAS,cACT,wBAAyB,0BAAwB,KACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAsB,CACpB,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,WAAqB,CACnB,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,MAAgB,CACd,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,aAAuB,CACrB,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,WAAqB,CACnB,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,kBAA4B,CAC1B,MAAM,IAAI,MAAM,iBAAiB,CACnC,CACF,EArFaJ,EAANK,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GAExBA,EAAA,eAAO,gBAAc,aAAa,GAGlCA,EAAA,eAAO,sBAAoB,cAAc,IAPjCN",
|
|
6
|
+
"names": ["LedgerKeyringProtocolBinder_exports", "__export", "LedgerKeyringProtocolBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_externalTypes", "import_lkrpDatasourceTypes", "import_GetVersionCommand", "import_AuthenticateWithDeviceDeviceAction", "import_AuthenticateWithKeypairDeviceAction", "LedgerKeyringProtocolBinder", "dmk", "applicationId", "lkrpDataSource", "args", "__decorateClass", "__decorateParam"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var S=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var b=(o,r)=>{for(var i in r)S(o,i,{get:r[i],enumerable:!0})},f=(o,r,i,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of k(r))!I.call(o,m)&&m!==i&&S(o,m,{get:()=>r[m],enumerable:!(c=g(r,m))||c.enumerable});return o};var M=o=>f(S({},"__esModule",{value:!0}),o);var w={};b(w,{AddToTrustchainDeviceAction:()=>v});module.exports=M(w);var s=require("@ledgerhq/device-management-kit"),u=require("purify-ts"),a=require("xstate"),d=require("../../../api/app-binder/AddToTrustchainDeviceActionTypes"),A=require("../../../api/app-binder/Errors"),y=require("../../app-binder/task/InitTask"),D=require("../../app-binder/task/ParseStreamToDeviceTask"),E=require("../../app-binder/task/SignBlockTask"),l=require("../../utils/eitherSeqRecord"),p=require("../../utils/required"),T=require("./utils/raiseAndAssign");class v extends s.XStateDeviceAction{makeStateMachine(r){const{initCommand:i,parseStream:c,signBlock:m}=this.extractDependencies(r);return(0,a.setup)({types:{input:{},context:{},output:{}},actors:{initCommand:(0,a.fromPromise)(i),parseStream:(0,a.fromPromise)(c),signBlock:(0,a.fromPromise)(m)},actions:{assignErrorFromEvent:(0,T.raiseAndAssign)(({event:t})=>(0,u.Left)(new A.LKRPUnknownError(String(t.error))))},guards:{isTustchainEmpty:({context:t})=>t.input.toMaybe().chain(e=>e.trustchain.getAppStream(e.appId)).chain(e=>e.parse().toMaybe()).map(e=>e.length===0).orDefault(!0)}}).createMachine({id:"AddToTrustchainDeviceAction",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None},_internalState:(0,u.Right)({sessionKeypair:null})}),initial:"InitSession",states:{InitSession:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None,step:d.AddToTrustchaineDAStep.Initialize}}),on:{success:"ParseStream",error:"Error"},invoke:{id:"initCommand",src:"initCommand",onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,T.raiseAndAssign)(({event:t})=>t.output.map(e=>({raise:"success",assign:{sessionKeypair:e}})))}}},ParseStream:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None,step:d.AddToTrustchaineDAStep.ParseStream}}),on:{success:"CheckApplicationStreamExist",error:"Error"},invoke:{id:"parseStream",src:"parseStream",input:({context:t})=>t.input.chain(e=>(0,l.eitherSeqRecord)({seedBlock:()=>(0,p.required)(e.trustchain.getRootStream().chain(n=>n.parse().toMaybe()).extract()?.[0],"Missing seed block to parse"),applicationStream:()=>(0,p.required)(e.trustchain.getAppStream(e.appId).extract(),"Missing application stream to parse")})),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,T.raiseAndAssign)(({event:t})=>t.output.map(()=>({raise:"success"})))}}},CheckApplicationStreamExist:{always:[{target:"AddToNewStream",guard:"isTustchainEmpty"},{target:"AddToExistingStream"}]},AddToExistingStream:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:d.AddToTrustchainDAState.AddMember,step:d.AddToTrustchaineDAStep.AddMember}}),on:{success:"Success",error:"Error"},invoke:{id:"signBlock",src:"signBlock",input:({context:t})=>t.input.chain(e=>{const n=e.trustchain.getAppStream(e.appId);return(0,l.eitherSeqRecord)({lkrpDataSource:e.lkrpDataSource,trustchainId:e.trustchain.getId(),jwt:e.jwt,clientName:e.clientName,sessionKeypair:()=>t._internalState.chain(({sessionKeypair:h})=>(0,p.required)(h,"Missing session keypair")),path:()=>(0,p.required)(n.chain(h=>h.getPath()).extract(),"Missing application path"),parent:()=>(0,p.required)(n.chain(h=>h.parse().toMaybe()).chainNullable(h=>h.at(-1)?.hash()).chainNullable(s.hexaStringToBuffer).extract(),"Missing parent block"),blockFlow:{type:"addMember",data:{name:e.clientName,publicKey:e.keypair.pubKeyToU8a(),permissions:e.permissions}}})}),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,T.raiseAndAssign)(({event:t})=>t.output.map(()=>({raise:"success"})))}}},AddToNewStream:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:d.AddToTrustchainDAState.AddMember,step:d.AddToTrustchaineDAStep.AddMember}}),on:{success:"Success",error:"Error"},invoke:{id:"signBlock",src:"signBlock",input:({context:t})=>t.input.chain(e=>(0,l.eitherSeqRecord)({lkrpDataSource:e.lkrpDataSource,trustchainId:e.trustchain.getId(),jwt:e.jwt,clientName:e.clientName,sessionKeypair:()=>t._internalState.chain(({sessionKeypair:n})=>(0,p.required)(n,"Missing session keypair")),path:`m/0'/${e.appId}'/0'`,parent:()=>(0,p.required)(e.trustchain.getRootStream().chain(n=>n.parse().toMaybe()).chainNullable(n=>n[0]?.hash()).chainNullable(s.hexaStringToBuffer).extract(),"Missing init block"),blockFlow:{type:"derive",data:{name:e.clientName,publicKey:e.keypair.pubKeyToU8a(),permissions:e.permissions}}}).chain(()=>(0,u.Left)(new A.LKRPTrustchainNotReady))),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,T.raiseAndAssign)(({event:t})=>t.output.map(()=>({raise:"success"})))}}},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.map(e=>{})})}extractDependencies(r){return{initCommand:()=>new y.InitTask(r).run(),parseStream:async i=>u.EitherAsync.liftEither(i.input).chain(c=>new D.ParseStreamToDeviceTask(r).run(c)).run(),signBlock:i=>u.EitherAsync.liftEither(i.input).chain(c=>new E.SignBlockTask(r).run(c)).run()}}}0&&(module.exports={AddToTrustchainDeviceAction});
|
|
2
2
|
//# sourceMappingURL=AddToTrustchainDeviceAction.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/device-action/AddToTrustchainDeviceAction.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceActionStateMachine,\n hexaStringToBuffer,\n type InternalApi,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, EitherAsync, Left, Maybe, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type AddToTrustchainDAError,\n type AddToTrustchainDAInput,\n type AddToTrustchainDAIntermediateValue,\n type AddToTrustchainDAInternalState,\n type AddToTrustchainDAOutput,\n} from \"@api/app-binder/AddToTrustchainDeviceActionTypes\";\nimport {\n LKRPTrustchainNotReady,\n LKRPUnknownError,\n} from \"@api/app-binder/Errors\";\nimport { type Keypair } from \"@api/index\";\nimport { type LKRPDeviceCommandError } from \"@internal/app-binder/command/utils/ledgerKeyringProtocolErrors\";\nimport { InitTask } from \"@internal/app-binder/task/InitTask\";\nimport {\n ParseStreamToDeviceTask,\n type ParseStreamToDeviceTaskInput,\n} from \"@internal/app-binder/task/ParseStreamToDeviceTask\";\nimport {\n SignBlockTask,\n type SignBlockTaskInput,\n} from \"@internal/app-binder/task/SignBlockTask\";\nimport { eitherSeqRecord } from \"@internal/utils/eitherSeqRecord\";\nimport { required } from \"@internal/utils/required\";\n\nimport { raiseAndAssign } from \"./utils/raiseAndAssign\";\n\nexport class AddToTrustchainDeviceAction extends XStateDeviceAction<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n > {\n type types = StateMachineTypes<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n >;\n\n const { initCommand, parseStream, signBlock } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n initCommand: fromPromise(initCommand),\n parseStream: fromPromise(parseStream),\n signBlock: fromPromise(signBlock),\n },\n\n actions: {\n assignErrorFromEvent: raiseAndAssign(\n ({ event }) =>\n Left(\n new LKRPUnknownError(\n String((event as { error?: unknown }).error),\n ),\n ), // NOTE: it should never happen, the error is not typed anymore here\n ),\n },\n\n guards: {\n isTustchainEmpty: ({ context }) =>\n context.input\n .toMaybe()\n .chain((input) => input.applicationStream.parse().toMaybe())\n .map((blocks) => blocks.length === 0)\n .orDefault(true),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QEEIQCoHt0CcCusALgMYAWAhgJYB2AImAG6XFjLGGWbUB0AktZUIBlOLE7UAxBC5huNBpgDWsmoIDCmALaby1CAG0ADAF1EoAA6YxHLmZAAPRAEZDAdm6unAFgAcAJi9PLwA2PycAVmCAGhAAT0QAZhDucJDXAE5XcO9wsOCAX3yY1AxsfCIyKjpGZlZ2cT4BYVFxCTAcHEwcbnMAG3JCADMuzTkmjW1dAxM7S2txO0cEdPTuMMN0hKcEnycMwx9ouMQ-cITuDYTg1wOb4PScwuK0LFwCEgoaeiYWNhsefiCESwMRcCSwPDEFggoymJAgOaCBbwpYJVLcBKuLwrQx+dJnbZeGLxBAJALcLxOYLhHGGFx+BJPEAlV7lD5Vb61P4NQHNEGtdqdHCw2ZWJG2FGJdGY7HpXH4rZJYmIXx+NaywKbBk3VyMorMl5ld6VL41X71LjcAAK5BwsDAQkIODA5E0UhkYwUyh6tvtjudrpF8MR-0WiDOwW4wT2ex8CTJ122yoQYR8FzSPkyEWyXiuTJZRoqn2qPzq-2tvodTpdbsFXR6-SGIx9dqrAc0QYsYtDkoQuUjNNcwUC4V2up8yac5JpV2CCTcVJ8XgZ+cNbyLHLNZYaNtb-pr4Mh0NgnYR3eRoCWrlcad1udcpxWu0xyb8fkM3CpwWCBzlSR8o5eKupTruypqltylq7n61aum0HRdKeIYXg4iDXreSSYo+6TPq4yZoucWIrF4dLxlcaLAayxrFpy5rlmopBgMQijIOYfTMAM4j7q6ACi9iUEQEhIeeEqXs4VJeCkN5+D4D4-ocESvm+3APNSP6+GSETpAU+oFqBJollyFo8AxTEsWxvQcf83GaHxAmEEJThwl28yiahCBOE4hwYoYvi+D4dIHLiyYALRTu4bh4mcN43psAGUYWYGGXRDQFnZRA0FANnutQKjUF6shiFA1AAEK9JgzHCa51Bhh5XjLtwAWBIYwQARJU6hXikm5CEnleOEWSUk4CX6TRW6QTwaX8Rl1BZbBtYId0fQDMMOCjEVpXlZVMzBiJNW9t4DKfpEpy7JEmbaaFOxqgk6Tvp5A1-vVerPCBbIGbR26WlN9mZdlEJQqIVXivtYkecOapZD4sleYYhgDd+nUZBSlKpNDWG5CN71jRBxncD9M1ze28FCsDPZg1S4ThBc773IE843IpxwIGFBweLdGyyZhByyVj1Gbrj5YFgAcmAADu2XSLlnpKIVlDFWVFWKGTKFLIdkZDjs2ZtS+zOYh4NxwxkAXpNicZ8xu4FGULhqixL80k-Wy1Nmt3AbYr23OWe1W1d4ewYps0ZTpsmxZKFvhrOEdLXg8LgtbdFtJZ9E347b4v-UeQM7S5IO+xDHijtpgR+PciPM94kZuLieK3XiRvpInH3jXjIvpw7dbCtn3u5wd1LU7iLWm7qVdMySYSSZSpzeDsngl1OhT6tQmAQHAdh6djAvWyhyFuUsYXh-cjUPE+ThxW+w26WuG9Wyllq8sCoKg935PuYEyb1ZJKwrAEERxtkWSNxxlvKClYbKih9r2QI7hKQkSjhsM4pt8JUgpF-KkaJNj1XCIAzet8TKMWYqxdixBOJcBsulQg4Ce5gzlE4A2mEGRPlNgkJSH5vx9xuNiOGYRXDYJvl9SahpyF-XmpQl+atMSRm2KmNwAFUhlxJCFd85x4yjnHpPQIvheHJX4anUodswG7QgRTK4qxoyGB2GbN8qZJzkgeLsH80ZNjw2hlo5OeMhCZxBKI1Wzg4yrBajSe6A1erhE6gFKMDwBrbHxP1O8rjm7lh4otbxu9fEDRSFqUcUNIgHFCi4VYOE5Q4RahsRcOlChAA */\n\n id: \"AddToTrustchainDeviceAction\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: Right({\n sessionKeypair: null,\n }),\n }),\n\n initial: \"InitSession\",\n states: {\n InitSession: {\n on: { success: \"ParseStream\", error: \"Error\" },\n invoke: {\n id: \"initCommand\",\n src: \"initCommand\",\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((sessionKeypair) => ({\n raise: \"success\",\n assign: { sessionKeypair },\n })),\n ),\n },\n },\n },\n\n ParseStream: {\n on: { success: \"CheckApplicationStreamExist\", error: \"Error\" },\n invoke: {\n id: \"parseStream\",\n src: \"parseStream\",\n input: ({ context }) =>\n context.input.chain((input) =>\n required(input.trustchain?.[\"m/\"], \"Missing root stream\")\n .chain((rootStream) => rootStream.parse())\n .chain((blocks) => required(blocks[0], \"Missing seed block\"))\n .map((seedBlock) => ({\n seedBlock,\n applicationStream: input.applicationStream,\n })),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n CheckApplicationStreamExist: {\n always: [\n { target: \"AddToNewStream\", guard: \"isTustchainEmpty\" },\n { target: \"AddToExistingStream\" },\n ],\n },\n\n AddToExistingStream: {\n on: { success: \"Success\", error: \"Error\" },\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: \"add-ledger-sync\",\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signBlock\",\n src: \"signBlock\",\n input: ({ context }) =>\n context.input.chain((input) =>\n eitherSeqRecord({\n lkrpDataSource: input.lkrpDataSource,\n trustchainId: input.trustchainId,\n jwt: input.jwt,\n clientName: input.clientName,\n sessionKeypair: () =>\n context._internalState.chain(({ sessionKeypair }) =>\n required(sessionKeypair, \"Missing session keypair\"),\n ),\n path: () =>\n required(\n input.applicationStream.getPath().extract(),\n \"Missing application path\",\n ),\n parent: () =>\n required(\n input.applicationStream\n .parse()\n .toMaybe()\n .chainNullable((blocks) => blocks.at(-1)?.hash())\n .chainNullable(hexaStringToBuffer)\n .extract(),\n \"Missing parent block\",\n ),\n blockFlow: {\n type: \"addMember\",\n data: {\n name: input.clientName,\n publicKey: input.keypair.pubKeyToU8a(),\n permissions: input.permissions,\n },\n },\n }),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n AddToNewStream: {\n on: { success: \"Success\", error: \"Error\" },\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: \"add-ledger-sync\",\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signBlock\",\n src: \"signBlock\",\n input: ({ context }) =>\n context.input.chain((input) =>\n eitherSeqRecord({\n lkrpDataSource: input.lkrpDataSource,\n trustchainId: input.trustchainId,\n jwt: input.jwt,\n clientName: input.clientName,\n sessionKeypair: () =>\n context._internalState.chain(({ sessionKeypair }) =>\n required(sessionKeypair, \"Missing session keypair\"),\n ),\n path: () =>\n required(\n input.applicationStream.getPath().extract(),\n \"Missing application path\",\n ),\n parent: () =>\n required(\n Maybe.fromNullable(input.trustchain[\"m/\"])\n .chain((rootStream) => rootStream.parse().toMaybe())\n .chainNullable((blocks) => blocks[0]?.hash())\n .chainNullable(hexaStringToBuffer)\n .extract(),\n \"Missing init block\",\n ),\n blockFlow: {\n type: \"derive\",\n data: {\n name: input.clientName,\n publicKey: input.keypair.pubKeyToU8a(),\n permissions: input.permissions,\n },\n },\n }).chain(() => Left(new LKRPTrustchainNotReady())),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n Success: { type: \"final\" },\n\n Error: { type: \"final\" },\n },\n\n output: ({ context }) => context._internalState.map((_) => undefined),\n });\n }\n\n extractDependencies(internalApi: InternalApi) {\n return {\n initCommand: (): Promise<Either<LKRPDeviceCommandError, Keypair>> =>\n new InitTask(internalApi).run(),\n\n parseStream: async (args: {\n input: Either<AddToTrustchainDAError, ParseStreamToDeviceTaskInput>;\n }) =>\n EitherAsync.liftEither(args.input)\n .chain<AddToTrustchainDAError, unknown>((input) =>\n new ParseStreamToDeviceTask(internalApi).run(input),\n )\n .run(),\n\n signBlock: (args: {\n input: Either<AddToTrustchainDAError, SignBlockTaskInput>;\n }): Promise<Either<AddToTrustchainDAError, void>> =>\n EitherAsync.liftEither(args.input)\n .chain((input) => new SignBlockTask(internalApi).run(input))\n .run(),\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAOO,2CACPC,
|
|
6
|
-
"names": ["AddToTrustchainDeviceAction_exports", "__export", "AddToTrustchainDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_Errors", "import_InitTask", "import_ParseStreamToDeviceTask", "import_SignBlockTask", "import_eitherSeqRecord", "import_required", "import_raiseAndAssign", "internalApi", "initCommand", "parseStream", "signBlock", "event", "context", "input", "
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionStateMachine,\n hexaStringToBuffer,\n type InternalApi,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, EitherAsync, Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type AddToTrustchainDAError,\n type AddToTrustchainDAInput,\n type AddToTrustchainDAIntermediateValue,\n type AddToTrustchainDAInternalState,\n type AddToTrustchainDAOutput,\n AddToTrustchainDAState,\n AddToTrustchaineDAStep,\n} from \"@api/app-binder/AddToTrustchainDeviceActionTypes\";\nimport {\n LKRPTrustchainNotReady,\n LKRPUnknownError,\n} from \"@api/app-binder/Errors\";\nimport { type Keypair } from \"@api/index\";\nimport { type LKRPDeviceCommandError } from \"@internal/app-binder/command/utils/ledgerKeyringProtocolErrors\";\nimport { InitTask } from \"@internal/app-binder/task/InitTask\";\nimport {\n ParseStreamToDeviceTask,\n type ParseStreamToDeviceTaskInput,\n} from \"@internal/app-binder/task/ParseStreamToDeviceTask\";\nimport {\n SignBlockTask,\n type SignBlockTaskInput,\n} from \"@internal/app-binder/task/SignBlockTask\";\nimport { eitherSeqRecord } from \"@internal/utils/eitherSeqRecord\";\nimport { required } from \"@internal/utils/required\";\n\nimport { raiseAndAssign } from \"./utils/raiseAndAssign\";\n\nexport class AddToTrustchainDeviceAction extends XStateDeviceAction<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n > {\n type types = StateMachineTypes<\n AddToTrustchainDAOutput,\n AddToTrustchainDAInput,\n AddToTrustchainDAError,\n AddToTrustchainDAIntermediateValue,\n AddToTrustchainDAInternalState\n >;\n\n const { initCommand, parseStream, signBlock } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n initCommand: fromPromise(initCommand),\n parseStream: fromPromise(parseStream),\n signBlock: fromPromise(signBlock),\n },\n\n actions: {\n assignErrorFromEvent: raiseAndAssign(\n ({ event }) =>\n Left(\n new LKRPUnknownError(\n String((event as { error?: unknown }).error),\n ),\n ), // NOTE: it should never happen, the error is not typed anymore here\n ),\n },\n\n guards: {\n isTustchainEmpty: ({ context }) =>\n context.input\n .toMaybe()\n .chain((input) => input.trustchain.getAppStream(input.appId))\n .chain((appStream) => appStream.parse().toMaybe())\n .map((blocks) => blocks.length === 0)\n .orDefault(true),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QEEIQCoHt0CcCusALgMYAWAhgJYB2AImAG6XFjLGGWbUB0AktZUIBlOLE7UAxBC5huNBpgDWsmoIDCmALaby1CAG0ADAF1EoAA6YxHLmZAAPRAEZDAdm6unAFgAcXpwBsAKwAzL7+TgA0IACezq4AnB6GIU4ATAFeaUEBuT5pAL4F0agY2PhEZFR0jMys7OJ8AsKi4hJgODiYONzmADbkhABm3ZpyzRraugYmdpbW4naOCAlJaS4JXgGpCZ6r0XEIPgHc2YaGXiEhOdlXTkUlaFi4BCQUNPRMLGw2PPyCIlgYi4ElgeGILCBRlMSBA80Ei1hy2uXm4IVcXlWZwS5xChiCB0QaQSQW4QVcxMC63SCTShWKIFKzwqb2qnzqP0a-xaQLaHS6OGhcysCNsSMQKLRGKxQUMOJS+MJKzlaPSXlcPkSPkMaQxD0ZT3KryqH1q3waXG4AAVyDhYGAhIQcGByJopDJxgplL1bfbHc7XULYfDfktEKETgEnJ4coZMkEsUqnNqySFgtGgsmsWkvPqmUbKu8al96r9rb6HU6XW7+d1egNhqMfXbKwHNEGLCLQ+KEEEMmTdvHXEFjj4-ErNdxDD4wviciT8gEfHnDS9C2yzaXGjaW-7q6DwZDYB24V3EaBlq4NR4wmnpylvCEfEriScvHHdX4cwF1gEV2U11ZU0S05S0dz9KtXXaTpuhPENzwcRArx8G9LgCe9UkuZ9YiQscyR-LwEwCDVzice4GXzQCTWLDkLR4NRSDAYhFGQcx+mYQZxD3V0AFF7EoIgJDgs8xQvZxozSU4NnxK5sl2KIcIQYlJLSEIFx8Mj0PVcjHgAllqPZc0ywYpiWLYvoON+bjND4gTCCEpwYU7BZRMQhAyIpKS5RkkI5M8JUo1JeN8hHVwdQCBI-wo1d9KLQyt0tfNbKIGgoGs91qBUagvVkMQoGoAAhPpMGY4SXOoMN3KyFC3AfBN0jpLwlUxFDrgSdEwoTTVEn-ZljTizdQJ4JL+JS6g0sgmsYJ6fpBhGHAxjywritK2ZgxEiqe28aduCyZMlzTA7NWai5uBxH90xcLYZ16gsgJoozGhGuzUvSsEIVEMrRU2sT3MyJxTkinxIqvNJRzSALvFOSl1QTdYKSi3S+vXYDaLLZ6xomttoIFL7u1+wJ-EBpcQYpcGAsyDxKXnPs6QSW6qIGkC6O4fMADkwAAd3S6RMs9JRcsofKipKxQ8YQ5ZvDBqcwtSeq6RzJMMTO0JvGB3zfOnBnYo3Zn0cNDnucmnG61mxsFu4JaRdWpzT3KyrtpQvbR0OmdjsUjSyXOc4NJ1BInFp7X+t1tGnoNrm3sPT61uc76Hf+4ngeIsmlwhxTiUMbh8mJJ9PESLZAiDlGHoS4bw6N7Ha0FGO7bjraE9fJPQfJxSwgB3zKX9hJtTjIIigZahMAgOA7EonXUce1z4Nc5YAFoFMOWfSVWVZNXnVxtm8Eki-u+KhqaAFWinjbKvVF9rwDi6KSCWUKVzaK9ODifS-LXdJuFe2e3Vdx-HfBMtnRLSNOhxPxnSTucEcfh8TLgfsjXeg0WYmWYqxdixBOJcGsslQgH866-RxADK8Vxu7dXahFF8kUzofkxEELwWxsg3x3gZBB+syhYNeu-dan8CboidivXYCYUiZFcEqIiWc1TA3OLSTU98kZ3SYXrMOZRDbWRwfjNyTgeG7T4cOHEaYz7p1cCEXaH50JjmjHiNMjCmah0tEIKOQJVES3iLsKcN9fCqU-JcAkiltJkllvkQxtV1gyINI-Yue8WY8Wmo4me8RMy7RzFSK6cZ0gUyMeqf2tDpxpnJH3fuQA */\n\n id: \"AddToTrustchainDeviceAction\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: Right({\n sessionKeypair: null,\n }),\n }),\n\n initial: \"InitSession\",\n states: {\n InitSession: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: AddToTrustchaineDAStep.Initialize,\n },\n }),\n on: { success: \"ParseStream\", error: \"Error\" },\n invoke: {\n id: \"initCommand\",\n src: \"initCommand\",\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((sessionKeypair) => ({\n raise: \"success\",\n assign: { sessionKeypair },\n })),\n ),\n },\n },\n },\n\n ParseStream: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: AddToTrustchaineDAStep.ParseStream,\n },\n }),\n on: { success: \"CheckApplicationStreamExist\", error: \"Error\" },\n invoke: {\n id: \"parseStream\",\n src: \"parseStream\",\n input: ({ context }) =>\n context.input.chain((input) =>\n eitherSeqRecord({\n seedBlock: () =>\n required(\n input.trustchain\n .getRootStream()\n .chain((stream) => stream.parse().toMaybe())\n .extract()?.[0],\n \"Missing seed block to parse\",\n ),\n applicationStream: () =>\n required(\n input.trustchain.getAppStream(input.appId).extract(),\n \"Missing application stream to parse\",\n ),\n }),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n CheckApplicationStreamExist: {\n always: [\n { target: \"AddToNewStream\", guard: \"isTustchainEmpty\" },\n { target: \"AddToExistingStream\" },\n ],\n },\n\n AddToExistingStream: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: AddToTrustchainDAState.AddMember,\n step: AddToTrustchaineDAStep.AddMember,\n },\n }),\n on: { success: \"Success\", error: \"Error\" },\n invoke: {\n id: \"signBlock\",\n src: \"signBlock\",\n input: ({ context }) =>\n context.input.chain((input) => {\n const appStream = input.trustchain.getAppStream(input.appId);\n return eitherSeqRecord({\n lkrpDataSource: input.lkrpDataSource,\n trustchainId: input.trustchain.getId(),\n jwt: input.jwt,\n clientName: input.clientName,\n sessionKeypair: () =>\n context._internalState.chain(({ sessionKeypair }) =>\n required(sessionKeypair, \"Missing session keypair\"),\n ),\n path: () =>\n required(\n appStream.chain((stream) => stream.getPath()).extract(),\n \"Missing application path\",\n ),\n parent: () =>\n required(\n appStream\n .chain((stream) => stream.parse().toMaybe())\n .chainNullable((blocks) => blocks.at(-1)?.hash())\n .chainNullable(hexaStringToBuffer)\n .extract(),\n \"Missing parent block\",\n ),\n blockFlow: {\n type: \"addMember\",\n data: {\n name: input.clientName,\n publicKey: input.keypair.pubKeyToU8a(),\n permissions: input.permissions,\n },\n },\n });\n }),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n AddToNewStream: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: AddToTrustchainDAState.AddMember,\n step: AddToTrustchaineDAStep.AddMember,\n },\n }),\n on: { success: \"Success\", error: \"Error\" },\n invoke: {\n id: \"signBlock\",\n src: \"signBlock\",\n input: ({ context }) =>\n context.input.chain((input) =>\n eitherSeqRecord({\n lkrpDataSource: input.lkrpDataSource,\n trustchainId: input.trustchain.getId(),\n jwt: input.jwt,\n clientName: input.clientName,\n sessionKeypair: () =>\n context._internalState.chain(({ sessionKeypair }) =>\n required(sessionKeypair, \"Missing session keypair\"),\n ),\n path: `m/0'/${input.appId}'/0'`,\n parent: () =>\n required(\n input.trustchain\n .getRootStream()\n .chain((stream) => stream.parse().toMaybe())\n .chainNullable((blocks) => blocks[0]?.hash())\n .chainNullable(hexaStringToBuffer)\n .extract(),\n \"Missing init block\",\n ),\n blockFlow: {\n type: \"derive\",\n data: {\n name: input.clientName,\n publicKey: input.keypair.pubKeyToU8a(),\n permissions: input.permissions,\n },\n },\n }).chain(() => Left(new LKRPTrustchainNotReady())),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n Success: { type: \"final\" },\n\n Error: { type: \"final\" },\n },\n\n output: ({ context }) => context._internalState.map((_) => undefined),\n });\n }\n\n extractDependencies(internalApi: InternalApi) {\n return {\n initCommand: (): Promise<Either<LKRPDeviceCommandError, Keypair>> =>\n new InitTask(internalApi).run(),\n\n parseStream: async (args: {\n input: Either<AddToTrustchainDAError, ParseStreamToDeviceTaskInput>;\n }) =>\n EitherAsync.liftEither(args.input)\n .chain<AddToTrustchainDAError, unknown>((input) =>\n new ParseStreamToDeviceTask(internalApi).run(input),\n )\n .run(),\n\n signBlock: (args: {\n input: Either<AddToTrustchainDAError, SignBlockTaskInput>;\n }): Promise<Either<AddToTrustchainDAError, void>> =>\n EitherAsync.liftEither(args.input)\n .chain((input) => new SignBlockTask(internalApi).run(input))\n .run(),\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["AddToTrustchainDeviceAction_exports", "__export", "AddToTrustchainDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_AddToTrustchainDeviceActionTypes", "import_Errors", "import_InitTask", "import_ParseStreamToDeviceTask", "import_SignBlockTask", "import_eitherSeqRecord", "import_required", "import_raiseAndAssign", "internalApi", "initCommand", "parseStream", "signBlock", "event", "context", "input", "appStream", "blocks", "sessionKeypair", "stream", "_", "args"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var D=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var k=(s,i)=>{for(var o in i)D(s,o,{get:i[o],enumerable:!0})},M=(s,i,o,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of v(i))!f.call(s,n)&&n!==o&&D(s,n,{get:()=>i[n],enumerable:!(d=I(i,n))||d.enumerable});return s};var w=s=>M(D({},"__esModule",{value:!0}),s);var W={};k(W,{AuthenticateWithDeviceDeviceAction:()=>K});module.exports=w(W);var u=require("@ledgerhq/device-management-kit"),c=require("purify-ts"),r=require("xstate"),A=require("../../../api/app-binder/AuthenticateDeviceActionTypes"),m=require("../../../api/app-binder/Errors"),E=require("../../app-binder/task/AuthenticateTask"),T=require("../../app-binder/task/ExtractEncryptionKeyTask"),g=require("../../app-binder/task/SignChallengeWithDeviceTask"),y=require("../../utils/eitherSeqRecord"),a=require("../../utils/required"),h=require("./utils/raiseAndAssign"),S=require("./AddToTrustchainDeviceAction");const l="Ledger Sync";class K extends u.XStateDeviceAction{makeStateMachine(i){const{deviceAuth:o,getTrustchain:d,extractEncryptionKey:n}=this.extractDependencies(i);return(0,r.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new u.OpenAppDeviceAction({input:{appName:l}}).makeStateMachine(i),deviceAuth:(0,r.fromPromise)(o),getTrustchain:(0,r.fromPromise)(d),addToTrustchainStateMachine:new S.AddToTrustchainDeviceAction({input:(0,c.Left)(new m.LKRPMissingDataError("Missing input for GetEncryptionKey"))}).makeStateMachine(i),extractEncryptionKey:(0,r.fromPromise)(n)},actions:{assignErrorFromEvent:(0,h.raiseAndAssign)(({event:t})=>(0,c.Left)(new m.LKRPUnknownError(String(t.error))))},guards:{isTrustchainMember:({context:t})=>t._internalState.toMaybe().map(e=>e.wasAddedToTrustchain||e.trustchain?.getAppStream(t.input.appId).mapOrDefault(p=>p.hasMember(t.input.keypair.pubKeyToHex()),!1)).extract()??!1}}).createMachine({id:"AuthenticateWithDeviceDeviceAction",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:u.UserInteractionRequired.None},_internalState:(0,c.Right)({trustchainId:null,jwt:null,trustchain:null,encryptionKey:null,wasAddedToTrustchain:!1})}),initial:"OpenApp",states:{OpenApp:{on:{success:"DeviceAuth",error:"Error"},invoke:{id:"openApp",src:"openAppStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:({event:t})=>({step:A.AuthenticateDAStep.OpenApp,...t.snapshot.context.intermediateValue})})},input:{appName:l},onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,h.raiseAndAssign)(({event:t})=>t.output.map(()=>({raise:"success"})))}}},DeviceAuth:{entry:(0,r.assign)({intermediateValue:{step:A.AuthenticateDAStep.Authenticate,requiredUserInteraction:A.AuthenticateDAState.Authenticate}}),on:{success:"GetTrustchain",error:"Error"},invoke:{id:"deviceAuth",src:"deviceAuth",input:({context:t})=>t.input,onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,h.raiseAndAssign)(({event:t})=>t.output.chain(e=>e.trustchainId.caseOf({Nothing:()=>(0,c.Left)(new m.LKRPTrustchainNotReady),Just:p=>(0,c.Right)({raise:"success",assign:{jwt:e.jwt,trustchainId:p}})})))}}},GetTrustchain:{entry:(0,r.assign)({intermediateValue:{step:A.AuthenticateDAStep.GetTrustchain,requiredUserInteraction:u.UserInteractionRequired.None}}),on:{success:"CheckIsMembers",error:"Error"},invoke:{id:"getTrustchain",src:"getTrustchain",input:({context:t})=>t._internalState.chain(e=>(0,y.eitherSeqRecord)({lkrpDataSource:t.input.lkrpDataSource,trustchainId:()=>(0,a.required)(e.trustchainId,"Missing Trustchain ID for GetTrustchain"),jwt:()=>(0,a.required)(e.jwt,"Missing JWT for GetTrustchain")})),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,h.raiseAndAssign)(({event:t})=>t.output.map(e=>({raise:"success",assign:{trustchain:e}})))}}},CheckIsMembers:{always:[{target:"ExtractEncryptionKey",guard:"isTrustchainMember"},{target:"AddToTrustchain"}]},AddToTrustchain:{on:{success:"GetTrustchain",error:"Error"},invoke:{id:"AddToTrustchain",src:"addToTrustchainStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:({event:t})=>t.snapshot.context.intermediateValue})},input:({context:t})=>t._internalState.mapLeft(()=>new m.LKRPMissingDataError("Missing data in the input for AddToTrustchain")).chain(e=>(0,y.eitherSeqRecord)({lkrpDataSource:t.input.lkrpDataSource,keypair:t.input.keypair,clientName:t.input.clientName,permissions:t.input.permissions,jwt:()=>(0,a.required)(e.jwt,"Missing JWT for AddToTrustchain"),appId:t.input.appId,trustchain:()=>(0,a.required)(e.trustchain,"Missing Trustchain for AddToTrustchain")})),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,h.raiseAndAssign)(({event:t})=>t.output.map(()=>({raise:"success",assign:{wasAddedToTrustchain:!0}})))}}},ExtractEncryptionKey:{entry:(0,r.assign)({intermediateValue:{step:A.AuthenticateDAStep.ExtractEncryptionKey,requiredUserInteraction:u.UserInteractionRequired.None}}),on:{success:"Success",error:"Error"},invoke:{id:"ExtractEncryptionKey",src:"extractEncryptionKey",input:({context:t})=>({keypair:t.input.keypair,stream:t._internalState.chain(({trustchain:e})=>(0,a.required)(e?.getAppStream(t.input.appId).extract(),"Missing application stream for ExtractEncryptionKey"))}),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,h.raiseAndAssign)(({event:t})=>t.output.map(e=>({raise:"success",assign:{encryptionKey:e}})))}}},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.chain(e=>(0,y.eitherSeqRecord)({trustchainId:()=>(0,a.required)(e.trustchainId,"Missing Trustchain ID in the output"),jwt:()=>(0,a.required)(e.jwt,"Missing JWT in the output"),applicationPath:()=>(0,a.required)(e.trustchain?.getAppStream(t.input.appId).chain(p=>p.getPath()).extract(),"Missing application path in the output"),encryptionKey:()=>(0,a.required)(e.encryptionKey,"Missing encryption key in the output")}))})}extractDependencies(i){const o=new E.AuthenticateTask,d=new T.ExtractEncryptionKeyTask;return{deviceAuth:({input:n})=>o.run(n.lkrpDataSource,new g.SignChallengeWithDeviceTask(i)),getTrustchain:n=>c.EitherAsync.liftEither(n.input).chain(({lkrpDataSource:t,trustchainId:e,jwt:p})=>t.getTrustchainById(e,p)).run(),extractEncryptionKey:async({input:n})=>c.EitherAsync.liftEither(n.stream).chain(t=>d.run(n.keypair,t))}}}0&&(module.exports={AuthenticateWithDeviceDeviceAction});
|
|
2
|
+
//# sourceMappingURL=AuthenticateWithDeviceDeviceAction.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionStateMachine,\n type InternalApi,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, EitherAsync, Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type AuthenticateDAError,\n type AuthenticateDAIntermediateValue,\n type AuthenticateDAOutput,\n AuthenticateDAState,\n AuthenticateDAStep,\n} from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport {\n LKRPMissingDataError,\n LKRPTrustchainNotReady,\n LKRPUnknownError,\n} from \"@api/app-binder/Errors\";\nimport { type JWT, type Keypair } from \"@api/index\";\nimport { AuthenticateTask } from \"@internal/app-binder/task/AuthenticateTask\";\nimport { ExtractEncryptionKeyTask } from \"@internal/app-binder/task/ExtractEncryptionKeyTask\";\nimport { SignChallengeWithDeviceTask } from \"@internal/app-binder/task/SignChallengeWithDeviceTask\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { eitherSeqRecord } from \"@internal/utils/eitherSeqRecord\";\nimport { type LKRPBlockStream } from \"@internal/utils/LKRPBlockStream\";\nimport { required } from \"@internal/utils/required\";\n\nimport {\n type AuthenticateWithDeviceDAInput,\n type AuthenticateWithDeviceDAInternalState,\n} from \"./models/AuthenticateWithDeviceDeviceActionTypes\";\nimport { raiseAndAssign } from \"./utils/raiseAndAssign\";\nimport { AddToTrustchainDeviceAction } from \"./AddToTrustchainDeviceAction\";\n\nconst APP_NAME = \"Ledger Sync\";\n\nexport class AuthenticateWithDeviceDeviceAction extends XStateDeviceAction<\n AuthenticateDAOutput,\n AuthenticateWithDeviceDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithDeviceDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n AuthenticateDAOutput,\n AuthenticateWithDeviceDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithDeviceDAInternalState\n > {\n type types = StateMachineTypes<\n AuthenticateDAOutput,\n AuthenticateWithDeviceDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithDeviceDAInternalState\n >;\n\n const { deviceAuth, getTrustchain, extractEncryptionKey } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: APP_NAME },\n }).makeStateMachine(internalApi),\n\n deviceAuth: fromPromise(deviceAuth),\n\n getTrustchain: fromPromise(getTrustchain),\n\n addToTrustchainStateMachine: new AddToTrustchainDeviceAction({\n input: Left(\n new LKRPMissingDataError(\"Missing input for GetEncryptionKey\"),\n ),\n }).makeStateMachine(internalApi),\n\n extractEncryptionKey: fromPromise(extractEncryptionKey),\n },\n\n actions: {\n assignErrorFromEvent: raiseAndAssign(\n ({ event }) =>\n Left(\n new LKRPUnknownError(\n String((event as { error?: unknown }).error),\n ),\n ), // NOTE: it should never happen, the error is not typed anymore here\n ),\n },\n\n guards: {\n isTrustchainMember: ({ context }) =>\n context._internalState\n .toMaybe()\n .map(\n (state) =>\n state.wasAddedToTrustchain ||\n state.trustchain\n ?.getAppStream(context.input.appId)\n .mapOrDefault(\n (stream) =>\n stream.hasMember(context.input.keypair.pubKeyToHex()),\n false,\n ),\n )\n .extract() ?? false,\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QEECuAXAFmAduglgMYCG6YA6vlgCJgBuRYtDhYyhBA9jgHQDyAB1zIBAgMQRuYHvhx1OAa2mchOEQIDaABgC6iUAM6wq+bvpAAPRAEYAzADYeATgAcAFltuntrdYBMAfYANCAAnogA7G6OttYREU5aWgERyQC+aSFoWLgEJGSUNPSMzIzsXLyCwqJiYABOdZx1PAIANqQAZk0Atjwq1Zq65obGFeZWCNbWAKw80-Z+Xvb2ni5OEdPWIeEI9tN+PC720RtuyU52GVkY2HhEpBRUmKWsL2wcppWq6mKwqISsWCwbR6JAgEYmMxgia2FwRHhaCIuaxaLz7ZbTLTBMKIFwuA7JLTePwJVxRCJXEDZW55B6FZ7FV6M94VfjfGr1Rp1EHDIyQnDjRAOA7WPGYiLHaxOab47Y2GVaHheOKiiVOAIBSnU3L3ApPN5vcqfHiGm4SKQyOSKaQQZnUnlgiFjaGIeZuQ62Py+PxSrQucVyhASxyuNzRRKI3wrLU3HX5R5FFhMO0fbgmu1mzlNFrtdBdOq9W1J+1DR1852gCbTTE8WyuWFReyIhJbHG7CK2OaxPx4tz+bzTGM5O7x+kGlOs01YX7-QHA0sGcufQVB7w8FYk6XS6YRaxuaaB9WKwlraJe+z4txDmm6hMMpOG1O8KeYWoNJoOxejZcuoMJBH2FEdbVlM+5uIGMyxOuixaJi0wOLY0xXpkVKxiOdL6syj6sgA4mA6AACp1KgsDoIQmDELI5o4NIsjyEoPAwIRxGkeRlE4J+4JLlClaIOsLg8I2sE+CqTYuIGLios47jRLCe7rL415xhhiYlBOxp4cxJFkRRVFZs0bSdD0jH4UR2lsbInFOj+vEIOs1jrru+IbBcWJrIGu4OfBdjKtKorWEp6F6qpTLFk+PCaWZrG6TgM4AnA86gl+-Irv4YbQWiGpNmSh4XnMCz7P5vhgYFtLBfealhbhpksTp7FvlyVncQKv5TPiCKwU2iKLIkfgQW4ErOOSThhiiixuC4pW3mOWHqWmADC2CEAoACSsAALJgN0ABG9SwGITXfjxljyhNzj7n48G2J6+J+oe8Q8AE6r7vYTgFR2U2jphD5zbwi1gMta2bTte0HdYSVcUdLW2TMSKCZ4N3TL1SHYjs-h4jwUqgXWCwUih2pBXe45VcayAQBABGcFFdVUZINGWvR0hkxTVO1RZHELpDKWtUcswokhiIyv5tgQV6IoXlEqL+j6TifSpFWhWU4XM5T1Psw12aGXmxkq6z5kxYd3Mw7zgkdnWEQ9k4VthhBUyKvYe62Kk5w+D2cvlcTSusrrasxXFc6GxWJ0ID6r3OH4iFhscZywf1UpKgs1gO2sF51u7ROzSTaY+2zfv6YHNnB6H8KIcS6oW69cIQddnaJ5JhLddG+NoWVGc-VnvAAKIWOgdTEBwnc4IQdShAIFQANJgKE1G0VaDHd73-foIPw+jxPU8F8dEyijW7gSqinhaA44Ftv6tdEk7l37DuH3N8Orcze3XvGgvfcD0PI9j58k-T-pOZGQWHgr8l4r0-uvUIm9obBx3l5GY8wUQOzrNKDyTZMbwIuNKdwb106P0qs-NMwD36ry-twH+-sEqQJXKHJw4dI7RDDEkfY913TrHVDKDwCwr44O+ng1gRoCE9zfsvD+a9v5Tw1tyTm1kt6IGLrWJGnpy5+Ern1NsKIzjriOHvJGfZ1QZBQjgTgtp4BggJg-Hhis+FPl5FDFcABaVsOx5izGPhbUayJYiDjvjeL6IVkwdzZAMGxRtg4DQkuleIRJUTHB6kSbhfjsLGhfMEoOVYUSYxVPMBYPhOoST2EqJ2MphQXlgn4eJCt-H4N4JFXO7EUmFwmBcRwgFRQDQWE2ECh4j4FI2EiDwA0kYBW8cpD2mcqk8H+oDDaW1dp1BMclVJNgHDwmWDHWEb0PDqlyjQrEV8BrrD8E08pnsrHe3JqrWpsh6kyMmPEBypdrpiVcHsauSRoJxDWHYREMxJrDMJrgyxLIX6CJASIkhOAf7XKgdvO58jvAOD9M8g8bZpQEgKt5aIex-THLGac40ABlWcCUoVUNiJ2RYGx5gBD7E2CI91OwW2eohAI1YJo4qfnigh746gkt-AESSj1E5JAri4bs1dPS1l3EifYcJYI7n0WkIAA */\n\n id: \"AuthenticateWithDeviceDeviceAction\",\n context: ({ input }): types[\"context\"] => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: Right({\n trustchainId: null,\n jwt: null,\n trustchain: null,\n encryptionKey: null,\n wasAddedToTrustchain: false,\n }),\n }),\n\n initial: \"OpenApp\",\n states: {\n OpenApp: {\n on: { success: \"DeviceAuth\", error: \"Error\" },\n invoke: {\n id: \"openApp\",\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n step: AuthenticateDAStep.OpenApp,\n ...event.snapshot.context.intermediateValue,\n }),\n }),\n },\n input: { appName: APP_NAME },\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({ raise: \"success\" })),\n ),\n },\n },\n },\n\n DeviceAuth: {\n entry: assign({\n intermediateValue: {\n step: AuthenticateDAStep.Authenticate,\n requiredUserInteraction: AuthenticateDAState.Authenticate,\n },\n }),\n on: { success: \"GetTrustchain\", error: \"Error\" },\n invoke: {\n id: \"deviceAuth\",\n src: \"deviceAuth\",\n input: ({ context }) => context.input,\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.chain((payload) =>\n payload.trustchainId.caseOf({\n Nothing: () => Left(new LKRPTrustchainNotReady()),\n Just: (trustchainId) =>\n Right({\n raise: \"success\",\n assign: { jwt: payload.jwt, trustchainId },\n }),\n }),\n ),\n ),\n },\n },\n },\n\n GetTrustchain: {\n entry: assign({\n intermediateValue: {\n step: AuthenticateDAStep.GetTrustchain,\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n on: { success: \"CheckIsMembers\", error: \"Error\" },\n invoke: {\n id: \"getTrustchain\",\n src: \"getTrustchain\",\n input: ({ context }) =>\n context._internalState.chain((state) =>\n eitherSeqRecord({\n lkrpDataSource: context.input.lkrpDataSource,\n trustchainId: () =>\n required(\n state.trustchainId,\n \"Missing Trustchain ID for GetTrustchain\",\n ),\n jwt: () =>\n required(state.jwt, \"Missing JWT for GetTrustchain\"),\n }),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((trustchain) => ({\n raise: \"success\",\n assign: { trustchain },\n })),\n ),\n },\n },\n },\n\n CheckIsMembers: {\n always: [\n { target: \"ExtractEncryptionKey\", guard: \"isTrustchainMember\" },\n { target: \"AddToTrustchain\" },\n ],\n },\n\n AddToTrustchain: {\n on: {\n success: \"GetTrustchain\",\n error: \"Error\",\n },\n invoke: {\n id: \"AddToTrustchain\",\n src: \"addToTrustchainStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) =>\n event.snapshot.context.intermediateValue,\n }),\n },\n input: ({ context }) =>\n context._internalState\n .mapLeft(\n () =>\n new LKRPMissingDataError(\n \"Missing data in the input for AddToTrustchain\",\n ),\n )\n .chain((state) =>\n eitherSeqRecord({\n lkrpDataSource: context.input.lkrpDataSource,\n keypair: context.input.keypair,\n clientName: context.input.clientName,\n permissions: context.input.permissions,\n jwt: () =>\n required(state.jwt, \"Missing JWT for AddToTrustchain\"),\n appId: context.input.appId,\n trustchain: () =>\n required(\n state.trustchain,\n \"Missing Trustchain for AddToTrustchain\",\n ),\n }),\n ),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map(() => ({\n raise: \"success\",\n assign: { wasAddedToTrustchain: true },\n })),\n ),\n },\n },\n },\n\n ExtractEncryptionKey: {\n entry: assign({\n intermediateValue: {\n step: AuthenticateDAStep.ExtractEncryptionKey,\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n on: { success: \"Success\", error: \"Error\" },\n invoke: {\n id: \"ExtractEncryptionKey\",\n src: \"extractEncryptionKey\",\n input: ({ context }) => ({\n keypair: context.input.keypair,\n stream: context._internalState.chain(({ trustchain }) =>\n required(\n trustchain?.getAppStream(context.input.appId).extract(),\n \"Missing application stream for ExtractEncryptionKey\",\n ),\n ),\n }),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((encryptionKey) => ({\n raise: \"success\",\n assign: { encryptionKey },\n })),\n ),\n },\n },\n },\n\n Success: { type: \"final\" },\n\n Error: { type: \"final\" },\n },\n\n output: ({ context }) =>\n context._internalState.chain((state) =>\n eitherSeqRecord({\n trustchainId: () =>\n required(\n state.trustchainId,\n \"Missing Trustchain ID in the output\",\n ),\n jwt: () => required(state.jwt, \"Missing JWT in the output\"),\n applicationPath: () =>\n required(\n state.trustchain\n ?.getAppStream(context.input.appId)\n .chain((stream) => stream.getPath())\n .extract(),\n \"Missing application path in the output\",\n ),\n encryptionKey: () =>\n required(\n state.encryptionKey,\n \"Missing encryption key in the output\",\n ),\n }),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi) {\n const authentication = new AuthenticateTask();\n const encryptionKeyExtraction = new ExtractEncryptionKeyTask();\n\n return {\n deviceAuth: ({ input }: { input: AuthenticateWithDeviceDAInput }) =>\n authentication.run(\n input.lkrpDataSource,\n new SignChallengeWithDeviceTask(internalApi),\n ),\n\n getTrustchain: (args: {\n input: Either<\n AuthenticateDAError,\n {\n lkrpDataSource: LKRPDataSource;\n trustchainId: string;\n jwt: JWT;\n }\n >;\n }) =>\n EitherAsync.liftEither(args.input)\n .chain(({ lkrpDataSource, trustchainId, jwt }) =>\n lkrpDataSource.getTrustchainById(trustchainId, jwt),\n )\n .run(),\n\n extractEncryptionKey: async ({\n input,\n }: {\n input: {\n keypair: Keypair;\n stream: Either<AuthenticateDAError, LKRPBlockStream>;\n };\n }) =>\n EitherAsync.liftEither(input.stream).chain((stream) =>\n encryptionKeyExtraction.run(input.keypair, stream),\n ),\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["AuthenticateWithDeviceDeviceAction_exports", "__export", "AuthenticateWithDeviceDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_AuthenticateDeviceActionTypes", "import_Errors", "import_AuthenticateTask", "import_ExtractEncryptionKeyTask", "import_SignChallengeWithDeviceTask", "import_eitherSeqRecord", "import_required", "import_raiseAndAssign", "import_AddToTrustchainDeviceAction", "APP_NAME", "internalApi", "deviceAuth", "getTrustchain", "extractEncryptionKey", "event", "context", "state", "stream", "input", "payload", "trustchainId", "trustchain", "encryptionKey", "authentication", "encryptionKeyExtraction", "args", "lkrpDataSource", "jwt"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var g=(a,e)=>{for(var c in e)m(a,c,{get:e[c],enumerable:!0})},k=(a,e,c,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of S(e))!I.call(a,t)&&t!==c&&m(a,t,{get:()=>e[t],enumerable:!(r=d(e,t))||r.enumerable});return a};var f=a=>k(m({},"__esModule",{value:!0}),a);var x={};g(x,{AuthenticateWithKeypairDeviceAction:()=>T});module.exports=f(x);var o=require("@ledgerhq/device-management-kit"),p=require("purify-ts"),n=require("xstate"),A=require("../../../api/app-binder/AuthenticateDeviceActionTypes"),h=require("../../../api/app-binder/Errors"),E=require("../../app-binder/task/AuthenticateTask"),D=require("../../app-binder/task/ExtractEncryptionKeyTask"),l=require("../../app-binder/task/SignChallengeWithKeypairTask"),K=require("../../utils/eitherSeqRecord"),s=require("../../utils/required"),y=require("./utils/raiseAndAssign");class T extends o.XStateDeviceAction{execute(){const e=this.makeStateMachine();return this._subscribeToStateMachine(e)}makeStateMachine(){const{keypairAuth:e,getTrustchain:c,extractEncryptionKey:r}=this.extractDependencies();return(0,n.setup)({types:{input:{},context:{},output:{}},actors:{keypairAuth:(0,n.fromPromise)(e),getTrustchain:(0,n.fromPromise)(c),extractEncryptionKey:(0,n.fromPromise)(r)},actions:{assignErrorFromEvent:(0,y.raiseAndAssign)(({event:t})=>(0,p.Left)(new h.LKRPUnknownError(String(t.error))))}}).createMachine({id:"AuthenticateWithKeypairDeviceAction",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.None},_internalState:(0,p.Right)({jwt:null,trustchain:null,encryptionKey:null})}),initial:"KeypairAuth",states:{KeypairAuth:{entry:(0,n.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.None,step:A.AuthenticateDAStep.Authenticate}}),on:{success:"GetTrustchain",error:"Error"},invoke:{id:"keypairAuth",src:"keypairAuth",input:({context:t})=>t.input,onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,y.raiseAndAssign)(({context:t,event:i})=>i.output.map(({jwt:u})=>({raise:"success",assign:{jwt:u}})).mapLeft(u=>u instanceof h.LKRPDataSourceError&&u.status==="UNAUTHORIZED"?new h.LKRPUnauthorizedError(t.input.trustchainId):u))}}},GetTrustchain:{entry:(0,n.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.None,step:A.AuthenticateDAStep.GetTrustchain}}),on:{success:"ExtractEncryptionKey",error:"Error"},invoke:{id:"getTrustchain",src:"getTrustchain",input:({context:t})=>({lkrpDataSource:t.input.lkrpDataSource,trustchainId:t.input.trustchainId,jwt:t._internalState.chain(({jwt:i})=>(0,s.required)(i,"Missing JWT for GetTrustchain"))}),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,y.raiseAndAssign)(({event:t})=>t.output.map(i=>({raise:"success",assign:{trustchain:i}})))}}},ExtractEncryptionKey:{entry:(0,n.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.None,step:A.AuthenticateDAStep.ExtractEncryptionKey}}),on:{success:"Success",error:"Error"},invoke:{id:"ExtractEncryptionKey",src:"extractEncryptionKey",input:({context:t})=>({keypair:t.input.keypair,stream:t._internalState.chain(({trustchain:i})=>(0,s.required)(i?.getAppStream(t.input.appId).extract(),"Missing application stream for ExtractEncryptionKey"))}),onError:{actions:"assignErrorFromEvent"},onDone:{actions:(0,y.raiseAndAssign)(({event:t})=>t.output.map(i=>({raise:"success",assign:{encryptionKey:i}})))}}},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.chain(i=>(0,K.eitherSeqRecord)({trustchainId:t.input.trustchainId,jwt:()=>(0,s.required)(i.jwt,"Missing JWT in the output"),applicationPath:()=>(0,s.required)(i.trustchain?.getAppStream(t.input.appId).chain(u=>u.getPath()).extract(),"Missing application path in the output"),encryptionKey:()=>(0,s.required)(i.encryptionKey,"Missing encryption key in the output")}))})}extractDependencies(){const e=new E.AuthenticateTask,c=new D.ExtractEncryptionKeyTask;return{keypairAuth:({input:r})=>e.run(r.lkrpDataSource,new l.SignChallengeWithKeypairTask(r.keypair,r.trustchainId)),getTrustchain:({input:r})=>p.EitherAsync.liftEither(r.jwt).chain(t=>r.lkrpDataSource.getTrustchainById(r.trustchainId,t)).run(),extractEncryptionKey:async({input:r})=>p.EitherAsync.liftEither(r.stream).chain(t=>c.run(r.keypair,t))}}}0&&(module.exports={AuthenticateWithKeypairDeviceAction});
|
|
2
|
+
//# sourceMappingURL=AuthenticateWithKeypairDeviceAction.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionStateMachine,\n type ExecuteDeviceActionReturnType,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, EitherAsync, Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type AuthenticateDAError,\n type AuthenticateDAIntermediateValue,\n type AuthenticateDAOutput,\n AuthenticateDAStep,\n} from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport {\n LKRPDataSourceError,\n LKRPUnauthorizedError,\n LKRPUnknownError,\n} from \"@api/app-binder/Errors\";\nimport { type JWT, type Keypair } from \"@api/index\";\nimport { AuthenticateTask } from \"@internal/app-binder/task/AuthenticateTask\";\nimport { ExtractEncryptionKeyTask } from \"@internal/app-binder/task/ExtractEncryptionKeyTask\";\nimport { SignChallengeWithKeypairTask } from \"@internal/app-binder/task/SignChallengeWithKeypairTask\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { eitherSeqRecord } from \"@internal/utils/eitherSeqRecord\";\nimport { type LKRPBlockStream } from \"@internal/utils/LKRPBlockStream\";\nimport { required } from \"@internal/utils/required\";\n\nimport {\n type AuthenticateWithKeypairDAInput,\n type AuthenticateWithKeypairDAInternalState,\n} from \"./models/AuthenticateWithKeypairDeviceActionTypes\";\nimport { raiseAndAssign } from \"./utils/raiseAndAssign\";\n\nexport class AuthenticateWithKeypairDeviceAction extends XStateDeviceAction<\n AuthenticateDAOutput,\n AuthenticateWithKeypairDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithKeypairDAInternalState\n> {\n execute(): ExecuteDeviceActionReturnType<\n AuthenticateDAOutput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue\n > {\n const stateMachine = this.makeStateMachine();\n return this._subscribeToStateMachine(stateMachine);\n }\n\n makeStateMachine(): DeviceActionStateMachine<\n AuthenticateDAOutput,\n AuthenticateWithKeypairDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithKeypairDAInternalState\n > {\n type types = StateMachineTypes<\n AuthenticateDAOutput,\n AuthenticateWithKeypairDAInput,\n AuthenticateDAError,\n AuthenticateDAIntermediateValue,\n AuthenticateWithKeypairDAInternalState\n >;\n\n const { keypairAuth, getTrustchain, extractEncryptionKey } =\n this.extractDependencies();\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n keypairAuth: fromPromise(keypairAuth),\n getTrustchain: fromPromise(getTrustchain),\n extractEncryptionKey: fromPromise(extractEncryptionKey),\n },\n\n actions: {\n assignErrorFromEvent: raiseAndAssign(\n ({ event }) =>\n Left(\n new LKRPUnknownError(\n String((event as { error?: unknown }).error),\n ),\n ), // NOTE: it should never happen, the error is not typed anymore here\n ),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QEECuAXAFmAduglgMYCG6YA6vlgNJgCeADsfgE4AiYAbkWMoQQHscAOlqNmLNFgDEEIWGH4cnAQGsF68aymYA2gAYAuolAMBsKviEmQAD0QBGfQFZhADgDMAdgBMXh24AbG7Ozl4ePgA0IHSOnsI+PoEuzg4ALACcGT4BAL650Tq4BCRklDT0TKwc3IS8-FYiYlWSGJjSYCwsAizCDAA2pABmPQC2wpotOgbGSCBmFoI4NvYI2cLJbj4eAZnpgWlRMYhBwofByV6BHmke2V75hW3FRKQUVJjNEjU8fEuilQkOmksFQhDqsFgMxsC0s1jmqxubg2IT8XmcGQxaQcDkC0ViCA8+g8wgcXi89y8+jcGWCPjSjxARTwrzKHy+1S4vwaQgBWlaMk63RY0LmsKWK0QSJRzjRGKxOLxxwQgVxwkxGSJaWcHhuHmcDIKTOeLNK7wq-J+dT+jWEAHEwOgACosVCwdCETDMHCyeSKZRqBQwZ2u92e72i0zmOHLBGIA36YTeDG0hx+BzOQJHAm7YQuTVZfTorxpTJuRnMkpvcqfQGc2r1f4OkNuj1epQdLo9PqDdAjFjjYMu1vhpSR+bRiVxhA6kn6HEZ0vOfQXfEnLwJZI+fRpYLZLPaismqtsi0tK2N23N4dh9s+0HguBQowwyeNSUINz6RPhTXakJpG4JZroSO55jiSROIcRIZkeWAvGaNYcuwXLWjyIjXqGbbep2wrjuK77Tl+P53DczgAUBaQgZkrjYiEZLXJikFwdgprVuydYoQ2Nq8gAorY6AsMQ-C8TghAsIwSxiL6OAKEoKjqMI-GCcJ6CieJkmNGI+FvvCoCrE4TjCKEGSZNutKeJ4IFksiPhZIksqpIqO4sQh7Fnt8qGXnxAlCSJYkSQwUn0Lh3YDMMYxKb5qnqYFwV0DpiyEfpjjzg4CQGjStypG4pZeCBbjpcu35EkEu66rKrlsaetaWl5PEiMpflqQFmlCNJD4Qs+sxRklel2I4uoZBlATeHZma6iBWruEupnJtcgEPEalasuatXnvV6FRSp-kaUFWkhUKPSJTGH4OENI2eL4mLXB4U2ZuqkHBLiZH6s4+RGjgAgQHANgrYhHF1dx6Gvn1sYpQgAC0DggZDrhZAjiNIx4VUnmtyEXg1fJTG0oOndOaT5cqPghHmPiyjRHgHDuKPLceq1IZxmNbZhI53njU4Q4TrjomSVymdi5UgSTrghCEf5Zok6K0088HVejTObf8TUxa1+3tfQHPJQNax+O4Li5bKxJFtkwtfnmGS5Q4tLJpbYSowzgMbcD-wAMpgl1Wv9QZu6BEmo1UwcHiWdmUpgTTOS0vompkjLxpy2jjNA9yytdiwXvgzr+x+zsniB7cIfUaZGxkmSu7LoEXhfkt+RAA */\n\n id: \"AuthenticateWithKeypairDeviceAction\",\n context: ({ input }): types[\"context\"] => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: Right({\n jwt: null,\n trustchain: null,\n encryptionKey: null,\n }),\n }),\n\n initial: \"KeypairAuth\",\n states: {\n KeypairAuth: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: AuthenticateDAStep.Authenticate,\n },\n }),\n on: { success: \"GetTrustchain\", error: \"Error\" },\n invoke: {\n id: \"keypairAuth\",\n src: \"keypairAuth\",\n input: ({ context }) => context.input,\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ context, event }) =>\n event.output\n .map(({ jwt }) => ({ raise: \"success\", assign: { jwt } }))\n .mapLeft((error) =>\n error instanceof LKRPDataSourceError &&\n error.status === \"UNAUTHORIZED\"\n ? new LKRPUnauthorizedError(context.input.trustchainId)\n : error,\n ),\n ),\n },\n },\n },\n\n GetTrustchain: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: AuthenticateDAStep.GetTrustchain,\n },\n }),\n on: { success: \"ExtractEncryptionKey\", error: \"Error\" },\n invoke: {\n id: \"getTrustchain\",\n src: \"getTrustchain\",\n input: ({ context }) => ({\n lkrpDataSource: context.input.lkrpDataSource,\n trustchainId: context.input.trustchainId,\n jwt: context._internalState.chain(({ jwt }) =>\n required(jwt, \"Missing JWT for GetTrustchain\"),\n ),\n }),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((trustchain) => ({\n raise: \"success\",\n assign: { trustchain },\n })),\n ),\n },\n },\n },\n\n ExtractEncryptionKey: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: AuthenticateDAStep.ExtractEncryptionKey,\n },\n }),\n on: { success: \"Success\", error: \"Error\" },\n invoke: {\n id: \"ExtractEncryptionKey\",\n src: \"extractEncryptionKey\",\n input: ({ context }) => ({\n keypair: context.input.keypair,\n stream: context._internalState.chain(({ trustchain }) =>\n required(\n trustchain?.getAppStream(context.input.appId).extract(),\n \"Missing application stream for ExtractEncryptionKey\",\n ),\n ),\n }),\n onError: { actions: \"assignErrorFromEvent\" },\n onDone: {\n actions: raiseAndAssign(({ event }) =>\n event.output.map((encryptionKey) => ({\n raise: \"success\",\n assign: { encryptionKey },\n })),\n ),\n },\n },\n },\n\n Success: { type: \"final\" },\n\n Error: { type: \"final\" },\n },\n\n output: ({ context }) =>\n context._internalState.chain((state) =>\n eitherSeqRecord({\n trustchainId: context.input.trustchainId,\n jwt: () => required(state.jwt, \"Missing JWT in the output\"),\n applicationPath: () =>\n required(\n state.trustchain\n ?.getAppStream(context.input.appId)\n .chain((stream) => stream.getPath())\n .extract(),\n \"Missing application path in the output\",\n ),\n encryptionKey: () =>\n required(\n state.encryptionKey,\n \"Missing encryption key in the output\",\n ),\n }),\n ),\n });\n }\n\n extractDependencies() {\n const authentication = new AuthenticateTask();\n const encryptionKeyExtraction = new ExtractEncryptionKeyTask();\n\n return {\n keypairAuth: ({ input }: { input: AuthenticateWithKeypairDAInput }) =>\n authentication.run(\n input.lkrpDataSource,\n new SignChallengeWithKeypairTask(input.keypair, input.trustchainId),\n ),\n\n getTrustchain: ({\n input,\n }: {\n input: {\n lkrpDataSource: LKRPDataSource;\n trustchainId: string;\n jwt: Either<AuthenticateDAError, JWT>;\n };\n }) =>\n EitherAsync.liftEither(input.jwt)\n .chain((jwt) =>\n input.lkrpDataSource.getTrustchainById(input.trustchainId, jwt),\n )\n .run(),\n\n extractEncryptionKey: async ({\n input,\n }: {\n input: {\n keypair: Keypair;\n stream: Either<AuthenticateDAError, LKRPBlockStream>;\n };\n }) =>\n EitherAsync.liftEither(input.stream).chain((stream) =>\n encryptionKeyExtraction.run(input.keypair, stream),\n ),\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["AuthenticateWithKeypairDeviceAction_exports", "__export", "AuthenticateWithKeypairDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_AuthenticateDeviceActionTypes", "import_Errors", "import_AuthenticateTask", "import_ExtractEncryptionKeyTask", "import_SignChallengeWithKeypairTask", "import_eitherSeqRecord", "import_required", "import_raiseAndAssign", "stateMachine", "keypairAuth", "getTrustchain", "extractEncryptionKey", "event", "input", "context", "jwt", "error", "trustchain", "encryptionKey", "state", "stream", "authentication", "encryptionKeyExtraction"]
|
|
7
|
+
}
|
package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var l=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of y(e))!p.call(t,r)&&r!==i&&a(t,r,{get:()=>e[r],enumerable:!(n=o(e,r))||n.enumerable});return t};var u=t=>l(a({},"__esModule",{value:!0}),t);var s={};module.exports=u(s);
|
|
2
|
+
//# sourceMappingURL=AuthenticateWithDeviceDeviceActionTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.ts"],
|
|
4
|
+
"sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport {\n type AuthenticateDAError,\n type JWT,\n type Keypair,\n type Permissions,\n} from \"@api/index\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { type Trustchain } from \"@internal/utils/Trustchain\";\n\nexport type AuthenticateWithDeviceDAInput = {\n readonly lkrpDataSource: LKRPDataSource;\n readonly appId: number;\n readonly keypair: Keypair;\n readonly clientName: string;\n readonly permissions: Permissions;\n};\n\nexport type AuthenticateWithDeviceDAInternalState = Either<\n AuthenticateDAError,\n {\n readonly trustchainId: string | null;\n readonly jwt: JWT | null;\n readonly trustchain: Trustchain | null;\n readonly encryptionKey: Uint8Array | null;\n readonly wasAddedToTrustchain: boolean;\n }\n>;\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["AuthenticateWithDeviceDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
|
+
}
|
package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var u=(r,t,i,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of o(t))!y.call(r,e)&&e!==i&&n(r,e,{get:()=>t[e],enumerable:!(a=p(t,e))||a.enumerable});return r};var l=r=>u(n({},"__esModule",{value:!0}),r);var c={};module.exports=l(c);
|
|
2
|
+
//# sourceMappingURL=AuthenticateWithKeypairDeviceActionTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.ts"],
|
|
4
|
+
"sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type AuthenticateDAError, type JWT, type Keypair } from \"@api/index\";\nimport { type LKRPDataSource } from \"@internal/lkrp-datasource/data/LKRPDataSource\";\nimport { type Trustchain } from \"@internal/utils/Trustchain\";\n\nexport type AuthenticateWithKeypairDAInput = {\n readonly lkrpDataSource: LKRPDataSource;\n readonly appId: number;\n readonly keypair: Keypair;\n readonly trustchainId: string;\n};\n\nexport type AuthenticateWithKeypairDAInternalState = Either<\n AuthenticateDAError,\n {\n readonly jwt: JWT | null;\n readonly trustchain: Trustchain | null;\n readonly encryptionKey: Uint8Array | null;\n }\n>;\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["AuthenticateWithKeypairDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var i=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},p=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of h(t))!u.call(e,a)&&a!==r&&i(e,a,{get:()=>t[a],enumerable:!(n=o(t,a))||n.enumerable});return e};var A=e=>p(i({},"__esModule",{value:!0}),e);var s={};c(s,{AuthenticateTask:()=>l});module.exports=A(s);class l{run(t,r){return t.getChallenge().chain(n=>r.run(n)).chain(n=>t.authenticate(n)).run()}}0&&(module.exports={AuthenticateTask});
|
|
2
|
+
//# sourceMappingURL=AuthenticateTask.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/task/AuthenticateTask.ts"],
|
|
4
|
+
"sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type AuthenticateDAError } from \"@api/index\";\nimport {\n type AuthenticationPayload,\n type AuthenticationResponse,\n type Challenge,\n type LKRPDataSource,\n} from \"@internal/lkrp-datasource/data/LKRPDataSource\";\n\nexport class AuthenticateTask {\n run(\n lkrpDataSource: LKRPDataSource,\n signerTask: {\n run: (\n challenge: Challenge,\n ) => PromiseLike<Either<AuthenticateDAError, AuthenticationPayload>>;\n },\n ): Promise<Either<AuthenticateDAError, AuthenticationResponse>> {\n return lkrpDataSource\n .getChallenge()\n .chain((challenge) => signerTask.run(challenge))\n .chain((payload) => lkrpDataSource.authenticate(payload))\n .run();\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAUO,MAAME,CAAiB,CAC5B,IACEE,EACAC,EAK8D,CAC9D,OAAOD,EACJ,aAAa,EACb,MAAOE,GAAcD,EAAW,IAAIC,CAAS,CAAC,EAC9C,MAAOC,GAAYH,EAAe,aAAaG,CAAO,CAAC,EACvD,IAAI,CACT,CACF",
|
|
6
|
+
"names": ["AuthenticateTask_exports", "__export", "AuthenticateTask", "__toCommonJS", "lkrpDataSource", "signerTask", "challenge", "payload"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(e,r)=>{for(var t in r)a(e,t,{get:r[t],enumerable:!0})},K=(e,r,t,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of y(r))!m.call(e,o)&&o!==t&&a(e,o,{get:()=>r[o],enumerable:!(p=n(r,o))||p.enumerable});return e};var s=e=>K(a({},"__esModule",{value:!0}),e);var l={};c(l,{ExtractEncryptionKeyTask:()=>k});module.exports=s(l);var i=require("../../../api/app-binder/Errors");class k{async run(r,t){return Promise.resolve(t.getPublishedKey(r).map(p=>p.privateKey).toEither(new i.LKRPUnknownError("There is no encryption key for the current member in the application stream.")))}}0&&(module.exports={ExtractEncryptionKeyTask});
|
|
2
|
+
//# sourceMappingURL=ExtractEncryptionKeyTask.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/task/ExtractEncryptionKeyTask.ts"],
|
|
4
|
+
"sourcesContent": ["import { LKRPUnknownError } from \"@api/app-binder/Errors\";\nimport { type Keypair } from \"@api/index\";\nimport { type LKRPBlockStream } from \"@internal/utils/LKRPBlockStream\";\n\nexport type ExtractEncryptionKeyTaskInput = {\n applicationStream: LKRPBlockStream;\n keypair: Keypair;\n};\n\nexport class ExtractEncryptionKeyTask {\n async run(keypair: Keypair, stream: LKRPBlockStream) {\n // TODO additional derivations should be supported:\n // https://github.com/LedgerHQ/ledger-live/blob/develop/libs/hw-ledger-key-ring-protocol/src/Device.ts#L216...L226\n // Probably not needed for Ledger Sync\n return Promise.resolve(\n stream\n .getPublishedKey(keypair)\n .map((key) => key.privateKey)\n .toEither(\n new LKRPUnknownError(\n \"There is no encryption key for the current member in the application stream.\",\n ),\n ),\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAiC,kCAS1B,MAAMF,CAAyB,CACpC,MAAM,IAAIG,EAAkBC,EAAyB,CAInD,OAAO,QAAQ,QACbA,EACG,gBAAgBD,CAAO,EACvB,IAAKE,GAAQA,EAAI,UAAU,EAC3B,SACC,IAAI,mBACF,8EACF,CACF,CACJ,CACF,CACF",
|
|
6
|
+
"names": ["ExtractEncryptionKeyTask_exports", "__export", "ExtractEncryptionKeyTask", "__toCommonJS", "import_Errors", "keypair", "stream", "key"]
|
|
7
|
+
}
|
package/lib/cjs/internal/di.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var M=(e,t)=>{for(var o in t)p(e,o,{get:t[o],enumerable:!0})},b=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of g(t))!v.call(e,n)&&n!==o&&p(e,n,{get:()=>t[n],enumerable:!(a=u(t,n))||a.enumerable});return e};var k=e=>b(p({},"__esModule",{value:!0}),e);var C={};M(C,{makeContainer:()=>f});module.exports=k(C);var m=require("inversify"),i=require("../api/index"),c=require("./app-binder/di/appBinderModule"),l=require("./lkrp-datasource/di/lkrpDatasourceModuleFactory"),d=require("./use-cases/di/useCasesModule"),s=require("./externalTypes");const f=({dmk:e,applicationId:t,env:o=i.LKRPEnv.PROD,baseUrl:a,stub:n})=>{const r=new m.Container;return r.bind(s.externalTypes.Dmk).toConstantValue(e),r.bind(s.externalTypes.ApplicationId).toConstantValue(t),r.loadSync((0,c.appBindingModuleFactory)(),(0,l.lkrpDatasourceModuleFactory)({baseUrl:a??y.get(o),stub:n}),(0,d.useCasesModuleFactory)()),r},y=new Map([[i.LKRPEnv.PROD,"https://trustchain.api.live.ledger.com/v1"],[i.LKRPEnv.STAGING,"https://trustchain-backend.api.aws.stg.ldg-tech.com/v1"]]);0&&(module.exports={makeContainer});
|
|
2
2
|
//# sourceMappingURL=di.js.map
|