@sphereon/ssi-sdk-ext.mnemonic-seed-manager 0.28.1-feature.oyd.cmsm.improv.20 → 0.28.1-next.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/index.cjs +746 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/{types/IMnemonicSeedManager.d.ts → index.d.cts} +73 -14
  4. package/dist/index.d.ts +169 -9
  5. package/dist/index.js +716 -37
  6. package/dist/index.js.map +1 -1
  7. package/package.json +27 -12
  8. package/src/entities/MnemonicEntity.ts +10 -15
  9. package/src/index.ts +1 -0
  10. package/dist/agent/MnemonicSeedManager.d.ts +0 -26
  11. package/dist/agent/MnemonicSeedManager.d.ts.map +0 -1
  12. package/dist/agent/MnemonicSeedManager.js +0 -209
  13. package/dist/agent/MnemonicSeedManager.js.map +0 -1
  14. package/dist/entities/MnemonicEntity.d.ts +0 -9
  15. package/dist/entities/MnemonicEntity.d.ts.map +0 -1
  16. package/dist/entities/MnemonicEntity.js +0 -50
  17. package/dist/entities/MnemonicEntity.js.map +0 -1
  18. package/dist/index.d.ts.map +0 -1
  19. package/dist/migrations/generic/1-CreateMnemonics.d.ts +0 -7
  20. package/dist/migrations/generic/1-CreateMnemonics.d.ts.map +0 -1
  21. package/dist/migrations/generic/1-CreateMnemonics.js +0 -72
  22. package/dist/migrations/generic/1-CreateMnemonics.js.map +0 -1
  23. package/dist/migrations/generic/index.d.ts +0 -10
  24. package/dist/migrations/generic/index.d.ts.map +0 -1
  25. package/dist/migrations/generic/index.js +0 -13
  26. package/dist/migrations/generic/index.js.map +0 -1
  27. package/dist/migrations/index.d.ts +0 -2
  28. package/dist/migrations/index.d.ts.map +0 -1
  29. package/dist/migrations/index.js +0 -6
  30. package/dist/migrations/index.js.map +0 -1
  31. package/dist/migrations/internal-migrations-ormconfig.d.ts +0 -7
  32. package/dist/migrations/internal-migrations-ormconfig.d.ts.map +0 -1
  33. package/dist/migrations/internal-migrations-ormconfig.js +0 -29
  34. package/dist/migrations/internal-migrations-ormconfig.js.map +0 -1
  35. package/dist/migrations/postgres/1659566636105-CreateMnemonics.d.ts +0 -7
  36. package/dist/migrations/postgres/1659566636105-CreateMnemonics.d.ts.map +0 -1
  37. package/dist/migrations/postgres/1659566636105-CreateMnemonics.js +0 -29
  38. package/dist/migrations/postgres/1659566636105-CreateMnemonics.js.map +0 -1
  39. package/dist/migrations/sqlite/1659566622817-CreateMnemonics.d.ts +0 -7
  40. package/dist/migrations/sqlite/1659566622817-CreateMnemonics.d.ts.map +0 -1
  41. package/dist/migrations/sqlite/1659566622817-CreateMnemonics.js +0 -29
  42. package/dist/migrations/sqlite/1659566622817-CreateMnemonics.js.map +0 -1
  43. package/dist/types/IMnemonicSeedManager.d.ts.map +0 -1
  44. package/dist/types/IMnemonicSeedManager.js +0 -3
  45. package/dist/types/IMnemonicSeedManager.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/MnemonicEntity.ts","../src/agent/MnemonicSeedManager.ts","../src/migrations/generic/1-CreateMnemonics.ts","../src/migrations/postgres/1659566636105-CreateMnemonics.ts","../src/migrations/sqlite/1659566622817-CreateMnemonics.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IMnemonicSeedManager\": {\n \"components\": {\n \"schemas\": {\n \"IMnemonicInfoStoreArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"DeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"raw\": {},\n \"affected\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"raw\"\n ]\n },\n \"ManagedKeyInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IMnemonicInfoKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n }\n }\n },\n \"IMnemonicGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"bits\": {\n \"type\": \"number\",\n \"enum\": [\n 128,\n 160,\n 192,\n 224,\n 256\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"bits\"\n ]\n },\n \"IMnemonicInfoResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n },\n \"succeeded\": {\n \"type\": \"boolean\"\n },\n \"seed\": {\n \"type\": \"string\"\n }\n }\n },\n \"ISeedGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"mnemonic\"\n ]\n },\n \"IMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"wordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"wordList\"\n ]\n },\n \"IPartialMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"indexedWordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"maxItems\": 2\n }\n }\n },\n \"required\": [\n \"indexedWordList\"\n ]\n }\n },\n \"methods\": {\n \"deleteMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/DeleteResult\"\n }\n },\n \"generateKeysFromMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n }\n },\n \"generateMasterKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoKeyResult\"\n }\n },\n \"generateMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"generateSeed\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISeedGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"getMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"saveMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyPartialMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IPartialMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n }\n }\n }\n }\n}","import 'reflect-metadata'\nimport { MnemonicEntity } from './entities/MnemonicEntity'\n\n/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport { MnemonicSeedManager } from './agent/MnemonicSeedManager'\nexport * from './types/IMnemonicSeedManager'\n\n/**\n * @internal\n */\nexport const MnemonicSeedManagerEntities = [MnemonicEntity]\n\n/**\n * @internal\n */\nexport { MnemonicSeedManagerMigrations } from './migrations'\n","import { Column, Entity, BaseEntity, PrimaryColumn } from 'typeorm'\n\n@Entity('Mnemonic')\nexport class MnemonicEntity extends BaseEntity {\n @PrimaryColumn({ name: 'id', type: 'varchar' })\n id!: string\n @Column({ name: 'hash', unique: true, type: 'varchar' })\n hash!: string\n @Column({ name: 'mnemonic', unique: true, type: 'varchar' })\n mnemonic!: string\n @Column({ name: 'master_key', default: null, type: 'varchar' })\n masterKey!: string\n @Column({ name: 'chain_code', default: null, type: 'varchar' })\n chainCode!: string\n}\n","import { bytesToHex } from '@noble/hashes/utils'\nimport { shaHasher } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { derivePath, getMasterKeyFromSeed, getPublicKey } from 'ed25519-hd-key'\nimport { IAgentPlugin, ManagedKeyInfo } from '@veramo/core'\nimport { AbstractSecretBox } from '@veramo/key-manager'\nimport * as bip39 from 'bip39'\nimport { DataSource } from 'typeorm'\n\nimport {\n DeleteResult,\n IMnemonicGeneratorArgs,\n IMnemonicInfoKeyResult,\n IMnemonicInfoResult,\n IMnemonicInfoStoreArgs,\n IMnemonicVerificationArgs,\n IPartialMnemonicVerificationArgs,\n IRequiredContext,\n ISeedGeneratorArgs,\n schema,\n UpdateResult,\n} from '../index'\nimport { IMnemonicSeedManager } from '../types/IMnemonicSeedManager'\n\nimport { MnemonicEntity } from '../entities/MnemonicEntity'\nimport { OrPromise } from '@veramo/utils'\n\n/**\n * @public\n */\nexport class MnemonicSeedManager implements IAgentPlugin {\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IMnemonicSeedManager = {\n generateMnemonic: this.generateMnemonic.bind(this),\n generateSeed: this.generateSeed.bind(this),\n verifyMnemonic: this.verifyMnemonic.bind(this),\n verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),\n saveMnemonicInfo: this.saveMnemonicInfo.bind(this),\n getMnemonicInfo: this.getMnemonicInfo.bind(this),\n deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),\n generateMasterKey: this.generateMasterKey.bind(this),\n generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this),\n }\n\n constructor(private dbConnection: OrPromise<DataSource>, private secretBox?: AbstractSecretBox) {\n if (!secretBox) {\n console.warn('Please provide SecretBox to the KeyStore')\n }\n }\n\n private async generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult> {\n const mnemonic = bip39.generateMnemonic(args.bits)\n if (args.persist) {\n return await this.saveMnemonicInfo({ id: args.id, mnemonic: mnemonic.split(' ') })\n }\n return { mnemonic: mnemonic.split(' ') }\n }\n\n private async verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: mnemonicInfo.mnemonic.join(' ') === args.wordList?.join(' ') }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: args.indexedWordList.every((indexedWord) => mnemonicInfo.mnemonic?.indexOf(indexedWord[1]) === indexedWord[0]) }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult> {\n return Promise.resolve({\n seed: (await bip39.mnemonicToSeed(args.mnemonic.join(' '))).toString('hex'),\n })\n }\n\n private async saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n if (args.mnemonic && this.secretBox) {\n const mnemonic = args.mnemonic.join(' ')\n const hash = bytesToHex(shaHasher(mnemonic, 'sha256'))\n const mnemonicInfo = new MnemonicEntity()\n mnemonicInfo.id = args.id ? args.id : hash\n mnemonicInfo.hash = hash\n mnemonicInfo.mnemonic = await this.secretBox.encrypt(mnemonic)\n const result = await (await this.dbConnection).getRepository(MnemonicEntity).save(mnemonicInfo)\n return Promise.resolve({\n id: result.id,\n hash: result.hash,\n mnemonic: args.mnemonic,\n })\n } else {\n throw new Error('Mnemonic needs to be provided.')\n }\n }\n\n private async getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await (await this.dbConnection)\n .getRepository(MnemonicEntity)\n .createQueryBuilder()\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .getOne()\n if (mnemonicInfo?.mnemonic) {\n const mnemonicStr = await this.secretBox?.decrypt(mnemonicInfo.mnemonic)\n return {\n id: mnemonicInfo.id,\n hash: mnemonicInfo.hash,\n mnemonic: mnemonicStr?.split(' '),\n }\n }\n return {}\n }\n\n private async deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult> {\n return (await this.dbConnection)\n .createQueryBuilder()\n .delete()\n .from(MnemonicEntity)\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n\n private async saveMasterKey(args: IMnemonicInfoStoreArgs): Promise<UpdateResult> {\n if (args.masterKey) {\n return (await this.dbConnection)\n .createQueryBuilder()\n .update(MnemonicEntity)\n .set({ masterKey: args.masterKey })\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n throw new Error('Master Key needs to be provided.')\n }\n\n private async generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic) {\n const mnemonicInfo = await this.generateSeed({ mnemonic })\n if (mnemonicInfo.seed) {\n if (args.type === 'Ed25519') {\n const { key, chainCode } = getMasterKeyFromSeed(mnemonicInfo.seed)\n await this.saveMasterKey({ masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') })\n return { masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') }\n } else {\n throw new Error('Secp256k1 keys are not supported yet')\n }\n }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic && context) {\n if (args.path && args.kms) {\n const seed = (await this.generateSeed({ mnemonic })).seed as string\n const { key, chainCode } = derivePath(args.path, seed)\n const extPrivateKey = Buffer.concat([key, chainCode])\n //FIXME it doesn't use any secp256k1 library to generate the public key, so it doesn't generate an extended key\n const publicKey = getPublicKey(key, args.withZeroBytes)\n return await context.agent.keyManagerImport({\n privateKeyHex: extPrivateKey.toString('hex'),\n publicKeyHex: publicKey.toString('hex'),\n type: 'Ed25519',\n kms: args.kms,\n })\n }\n throw new Error('Please provide kms and derivation path')\n }\n throw new Error('Master Key not found')\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateMnemonics1659566636105 } from '../postgres/1659566636105-CreateMnemonics'\nimport { CreateMnemonics1659566622817 } from '../sqlite/1659566622817-CreateMnemonics'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateMnemonics1659567079429 implements MigrationInterface {\n name = 'CreateMnemonics1659567079429'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566636105 implements MigrationInterface {\n name = 'CreateMnemonics1659566636105'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" character varying NOT NULL, \"hash\" character varying NOT NULL, \"mnemonic\" character varying NOT NULL, \"master_key\" character varying, \"chain_code\" character varying, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"), CONSTRAINT \"PK_mnemonic_id\" PRIMARY KEY (\"id\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566622817 implements MigrationInterface {\n name = 'CreateMnemonics1659566622817'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" varchar PRIMARY KEY NOT NULL, \"hash\" varchar NOT NULL, \"mnemonic\" varchar NOT NULL, \"master_key\" varchar, \"chain_code\" varchar, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { CreateMnemonics1659567079429 } from './1-CreateMnemonics'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @internal\n */\nexport const MnemonicSeedManagerMigrations = [CreateMnemonics1659567079429]\n"],"mappings":"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","names":["module","MnemonicEntity","BaseEntity","id","hash","mnemonic","masterKey","chainCode","name","type","unique","default","MnemonicSeedManager","schema","methods","constructor","dbConnection","secretBox","IMnemonicInfoGenerator","generateMnemonic","bind","generateSeed","verifyMnemonic","verifyPartialMnemonic","saveMnemonicInfo","getMnemonicInfo","deleteMnemonicInfo","generateMasterKey","generateKeysFromMnemonic","console","warn","args","mnemonic","bits","persist","id","split","mnemonicInfo","hash","succeeded","join","wordList","Error","indexedWordList","every","indexedWord","indexOf","Promise","resolve","seed","mnemonicToSeed","toString","bytesToHex","shaHasher","MnemonicEntity","encrypt","result","getRepository","save","createQueryBuilder","where","orWhere","getOne","mnemonicStr","decrypt","delete","from","execute","saveMasterKey","masterKey","update","set","type","key","chainCode","getMasterKeyFromSeed","context","path","kms","derivePath","extPrivateKey","Buffer","concat","publicKey","getPublicKey","withZeroBytes","agent","keyManagerImport","privateKeyHex","publicKeyHex","CreateMnemonics1659566636105","name","up","queryRunner","query","down","CreateMnemonics1659566622817","name","up","queryRunner","query","down","debug","Debug","CreateMnemonics1659567079429","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateMnemonics1659566636105","CreateMnemonics1659566622817","Promise","reject","down","MnemonicSeedManagerMigrations","CreateMnemonics1659567079429","schema","require","MnemonicSeedManagerEntities","MnemonicEntity"]}
@@ -1,8 +1,20 @@
1
- import { IAgentContext, IDataStore, IKeyManager, IPluginMethodMap, ManagedKeyInfo } from '@veramo/core';
1
+ import { BaseEntity, DataSource, MigrationInterface, QueryRunner } from 'typeorm';
2
+ import { IPluginMethodMap, IAgentContext, IKeyManager, IDataStore, ManagedKeyInfo, IAgentPlugin } from '@veramo/core';
3
+ import { AbstractSecretBox } from '@veramo/key-manager';
4
+ import { OrPromise } from '@veramo/utils';
5
+
6
+ declare class MnemonicEntity extends BaseEntity {
7
+ id: string;
8
+ hash: string;
9
+ mnemonic: string;
10
+ masterKey: string;
11
+ chainCode: string;
12
+ }
13
+
2
14
  /**
3
15
  * @public
4
16
  */
5
- export interface IMnemonicSeedManager extends IPluginMethodMap {
17
+ interface IMnemonicSeedManager extends IPluginMethodMap {
6
18
  generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult>;
7
19
  verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
8
20
  verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
@@ -19,7 +31,7 @@ export interface IMnemonicSeedManager extends IPluginMethodMap {
19
31
  * @param persist - Whether the mnemonic should be persisted into the database
20
32
  * @public
21
33
  */
22
- export interface IMnemonicGeneratorArgs {
34
+ interface IMnemonicGeneratorArgs {
23
35
  bits: 128 | 160 | 192 | 224 | 256;
24
36
  id?: string;
25
37
  persist?: boolean;
@@ -31,7 +43,7 @@ export interface IMnemonicGeneratorArgs {
31
43
  *
32
44
  * @public
33
45
  */
34
- export interface IMnemonicVerificationArgs {
46
+ interface IMnemonicVerificationArgs {
35
47
  id?: string;
36
48
  hash?: string;
37
49
  wordList: string[];
@@ -44,7 +56,7 @@ export interface IMnemonicVerificationArgs {
44
56
  * It must be in the same order as in the mnemonic.
45
57
  * @public
46
58
  */
47
- export interface IPartialMnemonicVerificationArgs {
59
+ interface IPartialMnemonicVerificationArgs {
48
60
  id?: string;
49
61
  hash?: string;
50
62
  indexedWordList: [number, string][];
@@ -53,7 +65,7 @@ export interface IPartialMnemonicVerificationArgs {
53
65
  * @param mnemonic - Array representation of the mnemonic string
54
66
  * @public
55
67
  */
56
- export interface ISeedGeneratorArgs {
68
+ interface ISeedGeneratorArgs {
57
69
  mnemonic: string[];
58
70
  }
59
71
  /**
@@ -69,7 +81,7 @@ export interface ISeedGeneratorArgs {
69
81
  * @param persist - Whether the information should be persisted
70
82
  * @public
71
83
  */
72
- export interface IMnemonicInfoStoreArgs {
84
+ interface IMnemonicInfoStoreArgs {
73
85
  id?: string;
74
86
  hash?: string;
75
87
  mnemonic?: string[];
@@ -84,38 +96,85 @@ export interface IMnemonicInfoStoreArgs {
84
96
  /**
85
97
  * @public
86
98
  */
87
- export interface IMnemonicInfoKeyResult {
99
+ interface IMnemonicInfoKeyResult {
88
100
  masterKey?: string;
89
101
  chainCode?: string;
90
102
  }
91
103
  /**
92
104
  * @public
93
105
  */
94
- export interface DeleteResult {
106
+ interface DeleteResult {
95
107
  raw: unknown;
96
108
  affected?: number | null;
97
109
  }
98
110
  /**
99
111
  * @public
100
112
  */
101
- export interface UpdateResult extends DeleteResult {
113
+ interface UpdateResult extends DeleteResult {
102
114
  generatedMaps: ObjectLiteral;
103
115
  }
104
116
  /**
105
117
  * @public
106
118
  */
107
- export interface ObjectLiteral {
119
+ interface ObjectLiteral {
108
120
  [key: string]: any;
109
121
  }
110
122
  /**
111
123
  * @public
112
124
  */
113
- export interface IMnemonicInfoResult extends IMnemonicInfoStoreArgs {
125
+ interface IMnemonicInfoResult extends IMnemonicInfoStoreArgs {
114
126
  succeeded?: boolean;
115
127
  seed?: string;
116
128
  }
117
129
  /**
118
130
  * @public
119
131
  */
120
- export type IRequiredContext = IAgentContext<IKeyManager & IDataStore>;
121
- //# sourceMappingURL=IMnemonicSeedManager.d.ts.map
132
+ type IRequiredContext = IAgentContext<IKeyManager & IDataStore>;
133
+
134
+ /**
135
+ * @public
136
+ */
137
+ declare class MnemonicSeedManager implements IAgentPlugin {
138
+ private dbConnection;
139
+ private secretBox?;
140
+ readonly schema: any;
141
+ readonly methods: IMnemonicSeedManager;
142
+ constructor(dbConnection: OrPromise<DataSource>, secretBox?: AbstractSecretBox | undefined);
143
+ private generateMnemonic;
144
+ private verifyMnemonic;
145
+ private verifyPartialMnemonic;
146
+ private generateSeed;
147
+ private saveMnemonicInfo;
148
+ private getMnemonicInfo;
149
+ private deleteMnemonicInfo;
150
+ private saveMasterKey;
151
+ private generateMasterKey;
152
+ private generateKeysFromMnemonic;
153
+ }
154
+
155
+ declare class CreateMnemonics1659567079429 implements MigrationInterface {
156
+ name: string;
157
+ up(queryRunner: QueryRunner): Promise<void>;
158
+ down(queryRunner: QueryRunner): Promise<void>;
159
+ }
160
+
161
+ /**
162
+ * The migrations array that SHOULD be used when initializing a TypeORM database connection.
163
+ *
164
+ * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.
165
+ *
166
+ * @internal
167
+ */
168
+ declare const MnemonicSeedManagerMigrations: (typeof CreateMnemonics1659567079429)[];
169
+
170
+ /**
171
+ * @internal
172
+ */
173
+ declare const schema: any;
174
+
175
+ /**
176
+ * @internal
177
+ */
178
+ declare const MnemonicSeedManagerEntities: (typeof MnemonicEntity)[];
179
+
180
+ export { type DeleteResult, type IMnemonicGeneratorArgs, type IMnemonicInfoKeyResult, type IMnemonicInfoResult, type IMnemonicInfoStoreArgs, type IMnemonicSeedManager, type IMnemonicVerificationArgs, type IPartialMnemonicVerificationArgs, type IRequiredContext, type ISeedGeneratorArgs, MnemonicSeedManager, MnemonicSeedManagerEntities, MnemonicSeedManagerMigrations, type ObjectLiteral, type UpdateResult, schema };
package/dist/index.d.ts CHANGED
@@ -1,20 +1,180 @@
1
- import { MnemonicEntity } from './entities/MnemonicEntity';
1
+ import { BaseEntity, DataSource, MigrationInterface, QueryRunner } from 'typeorm';
2
+ import { IPluginMethodMap, IAgentContext, IKeyManager, IDataStore, ManagedKeyInfo, IAgentPlugin } from '@veramo/core';
3
+ import { AbstractSecretBox } from '@veramo/key-manager';
4
+ import { OrPromise } from '@veramo/utils';
5
+
6
+ declare class MnemonicEntity extends BaseEntity {
7
+ id: string;
8
+ hash: string;
9
+ mnemonic: string;
10
+ masterKey: string;
11
+ chainCode: string;
12
+ }
13
+
2
14
  /**
3
- * @internal
15
+ * @public
4
16
  */
5
- declare const schema: any;
6
- export { schema };
17
+ interface IMnemonicSeedManager extends IPluginMethodMap {
18
+ generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult>;
19
+ verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
20
+ verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
21
+ generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult>;
22
+ saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult>;
23
+ getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult>;
24
+ deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult>;
25
+ generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult>;
26
+ generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo>;
27
+ }
28
+ /**
29
+ * @param bits - Affects the number of words in the mnemonic, which is 12, 15, 18, 21 and 24 respectively.
30
+ * @param id - Optional user defined id for the mnemonic
31
+ * @param persist - Whether the mnemonic should be persisted into the database
32
+ * @public
33
+ */
34
+ interface IMnemonicGeneratorArgs {
35
+ bits: 128 | 160 | 192 | 224 | 256;
36
+ id?: string;
37
+ persist?: boolean;
38
+ }
39
+ /**
40
+ * @param id - Optional user defined id for the mnemonic
41
+ * @param hash - Optional sha256 hash of the mnemonic
42
+ * @param wordList - List containing all the words of the mnemonic in order.
43
+ *
44
+ * @public
45
+ */
46
+ interface IMnemonicVerificationArgs {
47
+ id?: string;
48
+ hash?: string;
49
+ wordList: string[];
50
+ }
51
+ /**
52
+ * @param id - Optional user defined id for the mnemonic
53
+ * @param hash - Optional sha256 hash of the mnemonic
54
+ * @param indexedWordList - List partially containing the words
55
+ * with their indexes corresponding the position in which they appear in the mnemonic.
56
+ * It must be in the same order as in the mnemonic.
57
+ * @public
58
+ */
59
+ interface IPartialMnemonicVerificationArgs {
60
+ id?: string;
61
+ hash?: string;
62
+ indexedWordList: [number, string][];
63
+ }
64
+ /**
65
+ * @param mnemonic - Array representation of the mnemonic string
66
+ * @public
67
+ */
68
+ interface ISeedGeneratorArgs {
69
+ mnemonic: string[];
70
+ }
71
+ /**
72
+ * @param id - Optional user defined id for the mnemonic
73
+ * @param hash - Optional sha256 hash of the mnemonic
74
+ * @param mnemonic - Array representation of the mnemonic string
75
+ * @param masterKey - The master key generated from the seed
76
+ * @param chainCode - The chain code generated with the keys
77
+ * @param kms - The key management service to be used
78
+ * @param path - The derivation path to be used
79
+ * @param withZeroBytes - Whether the public key should be generated with zero bytes
80
+ * @param type - The type of the key generated
81
+ * @param persist - Whether the information should be persisted
82
+ * @public
83
+ */
84
+ interface IMnemonicInfoStoreArgs {
85
+ id?: string;
86
+ hash?: string;
87
+ mnemonic?: string[];
88
+ masterKey?: string;
89
+ chainCode?: string;
90
+ kms?: string;
91
+ path?: string;
92
+ withZeroBytes?: boolean;
93
+ type?: 'Ed25519' | 'Secp256k1';
94
+ persist?: boolean;
95
+ }
96
+ /**
97
+ * @public
98
+ */
99
+ interface IMnemonicInfoKeyResult {
100
+ masterKey?: string;
101
+ chainCode?: string;
102
+ }
103
+ /**
104
+ * @public
105
+ */
106
+ interface DeleteResult {
107
+ raw: unknown;
108
+ affected?: number | null;
109
+ }
110
+ /**
111
+ * @public
112
+ */
113
+ interface UpdateResult extends DeleteResult {
114
+ generatedMaps: ObjectLiteral;
115
+ }
116
+ /**
117
+ * @public
118
+ */
119
+ interface ObjectLiteral {
120
+ [key: string]: any;
121
+ }
7
122
  /**
8
123
  * @public
9
124
  */
10
- export { MnemonicSeedManager } from './agent/MnemonicSeedManager';
11
- export * from './types/IMnemonicSeedManager';
125
+ interface IMnemonicInfoResult extends IMnemonicInfoStoreArgs {
126
+ succeeded?: boolean;
127
+ seed?: string;
128
+ }
12
129
  /**
130
+ * @public
131
+ */
132
+ type IRequiredContext = IAgentContext<IKeyManager & IDataStore>;
133
+
134
+ /**
135
+ * @public
136
+ */
137
+ declare class MnemonicSeedManager implements IAgentPlugin {
138
+ private dbConnection;
139
+ private secretBox?;
140
+ readonly schema: any;
141
+ readonly methods: IMnemonicSeedManager;
142
+ constructor(dbConnection: OrPromise<DataSource>, secretBox?: AbstractSecretBox | undefined);
143
+ private generateMnemonic;
144
+ private verifyMnemonic;
145
+ private verifyPartialMnemonic;
146
+ private generateSeed;
147
+ private saveMnemonicInfo;
148
+ private getMnemonicInfo;
149
+ private deleteMnemonicInfo;
150
+ private saveMasterKey;
151
+ private generateMasterKey;
152
+ private generateKeysFromMnemonic;
153
+ }
154
+
155
+ declare class CreateMnemonics1659567079429 implements MigrationInterface {
156
+ name: string;
157
+ up(queryRunner: QueryRunner): Promise<void>;
158
+ down(queryRunner: QueryRunner): Promise<void>;
159
+ }
160
+
161
+ /**
162
+ * The migrations array that SHOULD be used when initializing a TypeORM database connection.
163
+ *
164
+ * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.
165
+ *
13
166
  * @internal
14
167
  */
15
- export declare const MnemonicSeedManagerEntities: (typeof MnemonicEntity)[];
168
+ declare const MnemonicSeedManagerMigrations: (typeof CreateMnemonics1659567079429)[];
169
+
170
+ /**
171
+ * @internal
172
+ */
173
+ declare const schema: any;
174
+
16
175
  /**
17
176
  * @internal
18
177
  */
19
- export { MnemonicSeedManagerMigrations } from './migrations';
20
- //# sourceMappingURL=index.d.ts.map
178
+ declare const MnemonicSeedManagerEntities: (typeof MnemonicEntity)[];
179
+
180
+ export { type DeleteResult, type IMnemonicGeneratorArgs, type IMnemonicInfoKeyResult, type IMnemonicInfoResult, type IMnemonicInfoStoreArgs, type IMnemonicSeedManager, type IMnemonicVerificationArgs, type IPartialMnemonicVerificationArgs, type IRequiredContext, type ISeedGeneratorArgs, MnemonicSeedManager, MnemonicSeedManagerEntities, MnemonicSeedManagerMigrations, type ObjectLiteral, type UpdateResult, schema };