@credo-ts/core
Version:
<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1
1 lines • 4.68 kB
Source Map (JSON)
{"version":3,"file":"StorageUpdateService.mjs","names":[],"sources":["../../../src/storage/migration/StorageUpdateService.ts"],"sourcesContent":["import type { AgentContext } from '../../agent'\nimport { InjectionSymbols } from '../../constants'\nimport type { Logger } from '../../logger'\nimport { inject, injectable } from '../../plugins'\nimport type { VersionString } from '../../utils/version'\nimport { isStorageUpToDate } from './isUpToDate'\nimport { StorageVersionRecord } from './repository/StorageVersionRecord'\nimport { StorageVersionRepository } from './repository/StorageVersionRepository'\nimport type { UpdateToVersion } from './updates'\nimport { CURRENT_FRAMEWORK_STORAGE_VERSION, INITIAL_STORAGE_VERSION } from './updates'\n\n@injectable()\nexport class StorageUpdateService {\n private logger: Logger\n private storageVersionRepository: StorageVersionRepository\n\n public constructor(\n @inject(InjectionSymbols.Logger) logger: Logger,\n storageVersionRepository: StorageVersionRepository\n ) {\n this.logger = logger\n this.storageVersionRepository = storageVersionRepository\n }\n\n public async isUpToDate(agentContext: AgentContext, updateToVersion?: UpdateToVersion) {\n const currentStorageVersion = await this.getCurrentStorageVersion(agentContext)\n return isStorageUpToDate(currentStorageVersion, updateToVersion)\n }\n\n public async hasStorageVersionRecord(agentContext: AgentContext) {\n const storageVersionRecord = await this.storageVersionRepository.findById(\n agentContext,\n StorageVersionRecord.storageVersionRecordId\n )\n\n return storageVersionRecord !== null\n }\n\n public async getCurrentStorageVersion(agentContext: AgentContext): Promise<VersionString> {\n const storageVersionRecord = await this.getStorageVersionRecord(agentContext)\n\n return storageVersionRecord.storageVersion\n }\n\n public static get frameworkStorageVersion() {\n return CURRENT_FRAMEWORK_STORAGE_VERSION\n }\n\n public async setCurrentStorageVersion(agentContext: AgentContext, storageVersion: VersionString) {\n this.logger.debug(`Setting current agent storage version to ${storageVersion}`)\n const storageVersionRecord = await this.storageVersionRepository.findById(\n agentContext,\n StorageVersionRecord.storageVersionRecordId\n )\n\n if (!storageVersionRecord) {\n this.logger.trace('Storage upgrade record does not exist yet. Creating.')\n await this.storageVersionRepository.save(\n agentContext,\n new StorageVersionRecord({\n storageVersion,\n })\n )\n } else {\n this.logger.trace('Storage upgrade record already exists. Updating.')\n storageVersionRecord.storageVersion = storageVersion\n await this.storageVersionRepository.update(agentContext, storageVersionRecord)\n }\n }\n\n /**\n * Retrieve the update record, creating it if it doesn't exist already.\n *\n * The storageVersion will be set to the INITIAL_STORAGE_VERSION if it doesn't exist yet,\n * as we can assume the wallet was created before the update record existed\n */\n public async getStorageVersionRecord(agentContext: AgentContext) {\n let storageVersionRecord = await this.storageVersionRepository.findById(\n agentContext,\n StorageVersionRecord.storageVersionRecordId\n )\n\n if (!storageVersionRecord) {\n storageVersionRecord = new StorageVersionRecord({\n storageVersion: INITIAL_STORAGE_VERSION,\n })\n await this.storageVersionRepository.save(agentContext, storageVersionRecord)\n }\n\n return storageVersionRecord\n }\n}\n"],"mappings":";;;;;;;;;;AAYO,IAAM,uBAAN,MAAM,qBAAqB;CAIhC,YACE,QACA,0BACA;EACA,KAAK,SAAS;EACd,KAAK,2BAA2B;CAClC;CAEA,MAAa,WAAW,cAA4B,iBAAmC;EACrF,MAAM,wBAAwB,MAAM,KAAK,yBAAyB,YAAY;EAC9E,OAAO,kBAAkB,uBAAuB,eAAe;CACjE;CAEA,MAAa,wBAAwB,cAA4B;EAM/D,OAAO,MAL4B,KAAK,yBAAyB,SAC/D,cACA,qBAAqB,sBACvB,MAEgC;CAClC;CAEA,MAAa,yBAAyB,cAAoD;EAGxF,QAAO,MAF4B,KAAK,wBAAwB,YAAY,EAAA,CAEhD;CAC9B;CAEA,WAAkB,0BAA0B;EAC1C,OAAO;CACT;CAEA,MAAa,yBAAyB,cAA4B,gBAA+B;EAC/F,KAAK,OAAO,MAAM,4CAA4C,gBAAgB;EAC9E,MAAM,uBAAuB,MAAM,KAAK,yBAAyB,SAC/D,cACA,qBAAqB,sBACvB;EAEA,IAAI,CAAC,sBAAsB;GACzB,KAAK,OAAO,MAAM,sDAAsD;GACxE,MAAM,KAAK,yBAAyB,KAClC,cACA,IAAI,qBAAqB,EACvB,eACF,CAAC,CACH;EACF,OAAO;GACL,KAAK,OAAO,MAAM,kDAAkD;GACpE,qBAAqB,iBAAiB;GACtC,MAAM,KAAK,yBAAyB,OAAO,cAAc,oBAAoB;EAC/E;CACF;;;;;;;CAQA,MAAa,wBAAwB,cAA4B;EAC/D,IAAI,uBAAuB,MAAM,KAAK,yBAAyB,SAC7D,cACA,qBAAqB,sBACvB;EAEA,IAAI,CAAC,sBAAsB;GACzB,uBAAuB,IAAI,qBAAqB,EAC9C,gBAAA,MACF,CAAC;GACD,MAAM,KAAK,yBAAyB,KAAK,cAAc,oBAAoB;EAC7E;EAEA,OAAO;CACT;AACF;;CAhFC,WAAW;CAMP,gBAAA,GAAA,OAAO,iBAAiB,MAAM,CAAA"}