@credo-ts/tenants 0.6.1-pr-2091-20241119140918 → 0.6.2-alpha-20251210145840
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/build/TenantAgent.d.mts +12 -0
- package/build/TenantAgent.d.mts.map +1 -0
- package/build/TenantAgent.mjs +23 -0
- package/build/TenantAgent.mjs.map +1 -0
- package/build/TenantsApi.d.mts +37 -0
- package/build/TenantsApi.d.mts.map +1 -0
- package/build/TenantsApi.mjs +107 -0
- package/build/TenantsApi.mjs.map +1 -0
- package/build/TenantsApiOptions.d.mts +19 -0
- package/build/TenantsApiOptions.d.mts.map +1 -0
- package/build/TenantsModule.d.mts +23 -0
- package/build/TenantsModule.d.mts.map +1 -0
- package/build/TenantsModule.mjs +40 -0
- package/build/TenantsModule.mjs.map +1 -0
- package/build/TenantsModuleConfig.d.mts +35 -0
- package/build/TenantsModuleConfig.d.mts.map +1 -0
- package/build/TenantsModuleConfig.mjs +18 -0
- package/build/TenantsModuleConfig.mjs.map +1 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
- package/build/context/TenantAgentContextProvider.d.mts +52 -0
- package/build/context/TenantAgentContextProvider.d.mts.map +1 -0
- package/build/context/TenantAgentContextProvider.mjs +149 -0
- package/build/context/TenantAgentContextProvider.mjs.map +1 -0
- package/build/context/TenantSessionCoordinator.d.mts +71 -0
- package/build/context/TenantSessionCoordinator.d.mts.map +1 -0
- package/build/context/TenantSessionCoordinator.mjs +186 -0
- package/build/context/TenantSessionCoordinator.mjs.map +1 -0
- package/build/context/TenantSessionMutex.mjs +66 -0
- package/build/context/TenantSessionMutex.mjs.map +1 -0
- package/build/index.d.mts +10 -0
- package/build/index.mjs +9 -0
- package/build/models/TenantConfig.d.mts +7 -0
- package/build/models/TenantConfig.d.mts.map +1 -0
- package/build/repository/TenantRecord.d.mts +36 -0
- package/build/repository/TenantRecord.d.mts.map +1 -0
- package/build/repository/TenantRecord.mjs +29 -0
- package/build/repository/TenantRecord.mjs.map +1 -0
- package/build/repository/TenantRepository.d.mts +11 -0
- package/build/repository/TenantRepository.d.mts.map +1 -0
- package/build/repository/TenantRepository.mjs +25 -0
- package/build/repository/TenantRepository.mjs.map +1 -0
- package/build/repository/TenantRoutingRecord.d.mts +28 -0
- package/build/repository/TenantRoutingRecord.d.mts.map +1 -0
- package/build/repository/TenantRoutingRecord.mjs +28 -0
- package/build/repository/TenantRoutingRecord.mjs.map +1 -0
- package/build/repository/TenantRoutingRepository.d.mts +11 -0
- package/build/repository/TenantRoutingRepository.d.mts.map +1 -0
- package/build/repository/TenantRoutingRepository.mjs +25 -0
- package/build/repository/TenantRoutingRepository.mjs.map +1 -0
- package/build/repository/index.d.mts +4 -0
- package/build/repository/index.mjs +4 -0
- package/build/services/TenantRecordService.d.mts +26 -0
- package/build/services/TenantRecordService.d.mts.map +1 -0
- package/build/services/TenantRecordService.mjs +63 -0
- package/build/services/TenantRecordService.mjs.map +1 -0
- package/build/services/index.d.mts +1 -0
- package/build/services/index.mjs +1 -0
- package/build/updates/0.4-0.5/index.d.mts +7 -0
- package/build/updates/0.4-0.5/index.d.mts.map +1 -0
- package/build/updates/0.4-0.5/index.mjs +10 -0
- package/build/updates/0.4-0.5/index.mjs.map +1 -0
- package/build/updates/0.4-0.5/tenantRecord.mjs +28 -0
- package/build/updates/0.4-0.5/tenantRecord.mjs.map +1 -0
- package/package.json +15 -14
- package/build/TenantAgent.d.ts +0 -8
- package/build/TenantAgent.js +0 -25
- package/build/TenantAgent.js.map +0 -1
- package/build/TenantsApi.d.ts +0 -25
- package/build/TenantsApi.js +0 -117
- package/build/TenantsApi.js.map +0 -1
- package/build/TenantsApiOptions.d.ts +0 -14
- package/build/TenantsApiOptions.js +0 -3
- package/build/TenantsApiOptions.js.map +0 -1
- package/build/TenantsModule.d.ts +0 -19
- package/build/TenantsModule.js +0 -47
- package/build/TenantsModule.js.map +0 -1
- package/build/TenantsModuleConfig.d.ts +0 -31
- package/build/TenantsModuleConfig.js +0 -20
- package/build/TenantsModuleConfig.js.map +0 -1
- package/build/context/TenantAgentContextProvider.d.ts +0 -40
- package/build/context/TenantAgentContextProvider.js +0 -175
- package/build/context/TenantAgentContextProvider.js.map +0 -1
- package/build/context/TenantSessionCoordinator.d.ts +0 -54
- package/build/context/TenantSessionCoordinator.js +0 -195
- package/build/context/TenantSessionCoordinator.js.map +0 -1
- package/build/context/TenantSessionMutex.d.ts +0 -29
- package/build/context/TenantSessionMutex.js +0 -84
- package/build/context/TenantSessionMutex.js.map +0 -1
- package/build/context/types.d.ts +0 -0
- package/build/context/types.js +0 -2
- package/build/context/types.js.map +0 -1
- package/build/index.d.ts +0 -5
- package/build/index.js +0 -24
- package/build/index.js.map +0 -1
- package/build/models/TenantConfig.d.ts +0 -4
- package/build/models/TenantConfig.js +0 -3
- package/build/models/TenantConfig.js.map +0 -1
- package/build/repository/TenantRecord.d.ts +0 -33
- package/build/repository/TenantRecord.js +0 -32
- package/build/repository/TenantRecord.js.map +0 -1
- package/build/repository/TenantRepository.d.ts +0 -7
- package/build/repository/TenantRepository.js +0 -32
- package/build/repository/TenantRepository.js.map +0 -1
- package/build/repository/TenantRoutingRecord.d.ts +0 -26
- package/build/repository/TenantRoutingRecord.js +0 -24
- package/build/repository/TenantRoutingRecord.js.map +0 -1
- package/build/repository/TenantRoutingRepository.d.ts +0 -7
- package/build/repository/TenantRoutingRepository.js +0 -34
- package/build/repository/TenantRoutingRepository.js.map +0 -1
- package/build/repository/index.d.ts +0 -4
- package/build/repository/index.js +0 -21
- package/build/repository/index.js.map +0 -1
- package/build/services/TenantRecordService.d.ts +0 -17
- package/build/services/TenantRecordService.js +0 -78
- package/build/services/TenantRecordService.js.map +0 -1
- package/build/services/index.d.ts +0 -1
- package/build/services/index.js +0 -18
- package/build/services/index.js.map +0 -1
- package/build/updates/0.4-0.5/index.d.ts +0 -2
- package/build/updates/0.4-0.5/index.js +0 -8
- package/build/updates/0.4-0.5/index.js.map +0 -1
- package/build/updates/0.4-0.5/tenantRecord.d.ts +0 -10
- package/build/updates/0.4-0.5/tenantRecord.js +0 -26
- package/build/updates/0.4-0.5/tenantRecord.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseRecord, utils } from "@credo-ts/core";
|
|
2
|
+
|
|
3
|
+
//#region src/repository/TenantRoutingRecord.ts
|
|
4
|
+
var TenantRoutingRecord = class TenantRoutingRecord extends BaseRecord {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super();
|
|
7
|
+
this.type = TenantRoutingRecord.type;
|
|
8
|
+
if (props) {
|
|
9
|
+
this.id = props.id ?? utils.uuid();
|
|
10
|
+
this.createdAt = props.createdAt ?? /* @__PURE__ */ new Date();
|
|
11
|
+
this._tags = props.tags ?? {};
|
|
12
|
+
this.tenantId = props.tenantId;
|
|
13
|
+
this.recipientKeyFingerprint = props.recipientKeyFingerprint;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
getTags() {
|
|
17
|
+
return {
|
|
18
|
+
...this._tags,
|
|
19
|
+
tenantId: this.tenantId,
|
|
20
|
+
recipientKeyFingerprint: this.recipientKeyFingerprint
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
TenantRoutingRecord.type = "TenantRoutingRecord";
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { TenantRoutingRecord };
|
|
28
|
+
//# sourceMappingURL=TenantRoutingRecord.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantRoutingRecord.mjs","names":[],"sources":["../../src/repository/TenantRoutingRecord.ts"],"sourcesContent":["import type { RecordTags, TagsBase } from '@credo-ts/core'\n\nimport { BaseRecord, utils } from '@credo-ts/core'\n\nexport type TenantRoutingRecordTags = RecordTags<TenantRoutingRecord>\n\ntype DefaultTenantRoutingRecordTags = {\n tenantId: string\n recipientKeyFingerprint: string\n}\n\nexport interface TenantRoutingRecordProps {\n id?: string\n createdAt?: Date\n tags?: TagsBase\n\n tenantId: string\n recipientKeyFingerprint: string\n}\n\nexport class TenantRoutingRecord extends BaseRecord<DefaultTenantRoutingRecordTags> {\n public static readonly type = 'TenantRoutingRecord'\n public readonly type = TenantRoutingRecord.type\n\n public tenantId!: string\n public recipientKeyFingerprint!: string\n\n public constructor(props: TenantRoutingRecordProps) {\n super()\n\n if (props) {\n this.id = props.id ?? utils.uuid()\n this.createdAt = props.createdAt ?? new Date()\n this._tags = props.tags ?? {}\n this.tenantId = props.tenantId\n this.recipientKeyFingerprint = props.recipientKeyFingerprint\n }\n }\n\n public getTags() {\n return {\n ...this._tags,\n tenantId: this.tenantId,\n recipientKeyFingerprint: this.recipientKeyFingerprint,\n }\n }\n}\n"],"mappings":";;;AAoBA,IAAa,sBAAb,MAAa,4BAA4B,WAA2C;CAOlF,AAAO,YAAY,OAAiC;AAClD,SAAO;OANO,OAAO,oBAAoB;AAQzC,MAAI,OAAO;AACT,QAAK,KAAK,MAAM,MAAM,MAAM,MAAM;AAClC,QAAK,YAAY,MAAM,6BAAa,IAAI,MAAM;AAC9C,QAAK,QAAQ,MAAM,QAAQ,EAAE;AAC7B,QAAK,WAAW,MAAM;AACtB,QAAK,0BAA0B,MAAM;;;CAIzC,AAAO,UAAU;AACf,SAAO;GACL,GAAG,KAAK;GACR,UAAU,KAAK;GACf,yBAAyB,KAAK;GAC/B;;;oBAvBoB,OAAO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TenantRoutingRecord } from "./TenantRoutingRecord.mjs";
|
|
2
|
+
import { AgentContext, EventEmitter, Kms, Repository, StorageService } from "@credo-ts/core";
|
|
3
|
+
|
|
4
|
+
//#region src/repository/TenantRoutingRepository.d.ts
|
|
5
|
+
declare class TenantRoutingRepository extends Repository<TenantRoutingRecord> {
|
|
6
|
+
constructor(storageService: StorageService<TenantRoutingRecord>, eventEmitter: EventEmitter);
|
|
7
|
+
findByRecipientKey(agentContext: AgentContext, publicJwk: Kms.PublicJwk): Promise<TenantRoutingRecord | null>;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { TenantRoutingRepository };
|
|
11
|
+
//# sourceMappingURL=TenantRoutingRepository.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantRoutingRepository.d.mts","names":[],"sources":["../../src/repository/TenantRoutingRepository.ts"],"sourcesContent":[],"mappings":";;;;cAOa,uBAAA,SAAgC,WAAW;EAA3C,WAAA,CAAA,cAAwB,EAEwB,cAFxB,CAEuC,mBAFvC,CAAA,EAAA,YAAA,EAGnB,YAHmB;EAAmB,kBAAA,CAAA,YAAA,EAQd,YARc,EAAA,SAAA,EAQW,GAAA,CAAI,SARf,CAAA,EAQwB,OARxB,CAQwB,mBARxB,GAAA,IAAA,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
2
|
+
import { __decorateParam } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs";
|
|
3
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
4
|
+
import { TenantRoutingRecord } from "./TenantRoutingRecord.mjs";
|
|
5
|
+
import { EventEmitter, InjectionSymbols, Repository, inject, injectable } from "@credo-ts/core";
|
|
6
|
+
|
|
7
|
+
//#region src/repository/TenantRoutingRepository.ts
|
|
8
|
+
var _ref;
|
|
9
|
+
let TenantRoutingRepository = class TenantRoutingRepository$1 extends Repository {
|
|
10
|
+
constructor(storageService, eventEmitter) {
|
|
11
|
+
super(TenantRoutingRecord, storageService, eventEmitter);
|
|
12
|
+
}
|
|
13
|
+
findByRecipientKey(agentContext, publicJwk) {
|
|
14
|
+
return this.findSingleByQuery(agentContext, { recipientKeyFingerprint: publicJwk.fingerprint });
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
TenantRoutingRepository = __decorate([
|
|
18
|
+
injectable(),
|
|
19
|
+
__decorateParam(0, inject(InjectionSymbols.StorageService)),
|
|
20
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref = typeof EventEmitter !== "undefined" && EventEmitter) === "function" ? _ref : Object])
|
|
21
|
+
], TenantRoutingRepository);
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { TenantRoutingRepository };
|
|
25
|
+
//# sourceMappingURL=TenantRoutingRepository.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantRoutingRepository.mjs","names":["TenantRoutingRepository","storageService: StorageService<TenantRoutingRecord>"],"sources":["../../src/repository/TenantRoutingRepository.ts"],"sourcesContent":["import type { AgentContext, Kms } from '@credo-ts/core'\n\nimport { EventEmitter, InjectionSymbols, inject, injectable, Repository, type StorageService } from '@credo-ts/core'\n\nimport { TenantRoutingRecord } from './TenantRoutingRecord'\n\n@injectable()\nexport class TenantRoutingRepository extends Repository<TenantRoutingRecord> {\n public constructor(\n @inject(InjectionSymbols.StorageService) storageService: StorageService<TenantRoutingRecord>,\n eventEmitter: EventEmitter\n ) {\n super(TenantRoutingRecord, storageService, eventEmitter)\n }\n\n public findByRecipientKey(agentContext: AgentContext, publicJwk: Kms.PublicJwk) {\n return this.findSingleByQuery(agentContext, {\n recipientKeyFingerprint: publicJwk.fingerprint,\n })\n }\n}\n"],"mappings":";;;;;;;;AAOO,oCAAMA,kCAAgC,WAAgC;CAC3E,AAAO,YACL,AAAyCC,gBACzC,cACA;AACA,QAAM,qBAAqB,gBAAgB,aAAa;;CAG1D,AAAO,mBAAmB,cAA4B,WAA0B;AAC9E,SAAO,KAAK,kBAAkB,cAAc,EAC1C,yBAAyB,UAAU,aACpC,CAAC;;;;CAZL,YAAY;oBAGR,OAAO,iBAAiB,eAAe"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DefaultTenantRecordTags, TenantRecord, TenantRecordProps } from "./TenantRecord.mjs";
|
|
2
|
+
import { TenantRepository } from "./TenantRepository.mjs";
|
|
3
|
+
import { TenantRoutingRecord, TenantRoutingRecordProps } from "./TenantRoutingRecord.mjs";
|
|
4
|
+
import { TenantRoutingRepository } from "./TenantRoutingRepository.mjs";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TenantConfig } from "../models/TenantConfig.mjs";
|
|
2
|
+
import { TenantRecord } from "../repository/TenantRecord.mjs";
|
|
3
|
+
import { TenantRepository } from "../repository/TenantRepository.mjs";
|
|
4
|
+
import { TenantRoutingRecord } from "../repository/TenantRoutingRecord.mjs";
|
|
5
|
+
import { TenantRoutingRepository } from "../repository/TenantRoutingRepository.mjs";
|
|
6
|
+
import "../repository/index.mjs";
|
|
7
|
+
import { AgentContext, Kms, Query, QueryOptions } from "@credo-ts/core";
|
|
8
|
+
|
|
9
|
+
//#region src/services/TenantRecordService.d.ts
|
|
10
|
+
declare class TenantRecordService {
|
|
11
|
+
private tenantRepository;
|
|
12
|
+
private tenantRoutingRepository;
|
|
13
|
+
constructor(tenantRepository: TenantRepository, tenantRoutingRepository: TenantRoutingRepository);
|
|
14
|
+
createTenant(agentContext: AgentContext, config: TenantConfig): Promise<TenantRecord>;
|
|
15
|
+
getTenantById(agentContext: AgentContext, tenantId: string): Promise<TenantRecord>;
|
|
16
|
+
findTenantsByLabel(agentContext: AgentContext, label: string): Promise<TenantRecord[]>;
|
|
17
|
+
getAllTenants(agentContext: AgentContext): Promise<TenantRecord[]>;
|
|
18
|
+
deleteTenantById(agentContext: AgentContext, tenantId: string): Promise<void>;
|
|
19
|
+
updateTenant(agentContext: AgentContext, tenantRecord: TenantRecord): Promise<void>;
|
|
20
|
+
findTenantsByQuery(agentContext: AgentContext, query: Query<TenantRecord>, queryOptions?: QueryOptions): Promise<TenantRecord[]>;
|
|
21
|
+
findTenantRoutingRecordByRecipientKey(agentContext: AgentContext, recipientKey: Kms.PublicJwk): Promise<TenantRoutingRecord | null>;
|
|
22
|
+
addTenantRoutingRecord(agentContext: AgentContext, tenantId: string, recipientKey: Kms.PublicJwk): Promise<TenantRoutingRecord>;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { TenantRecordService };
|
|
26
|
+
//# sourceMappingURL=TenantRecordService.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantRecordService.d.mts","names":[],"sources":["../../src/services/TenantRecordService.ts"],"sourcesContent":[],"mappings":";;;;;;;;;cAOa,mBAAA;;;gCAI0B,2CAA2C;6BAKxC,sBAAsB,eAAY,QAAA;8BAcjC,iCAA8B,QAAA;EAvB5D,kBAAA,CAAA,YAAmB,EA2BgB,YA3BhB,EAAA,KAAA,EAAA,MAAA,CAAA,EA2B2C,OA3B3C,CA2B2C,YA3B3C,EAAA,CAAA;EAIO,aAAA,CAAA,YAAA,EA2BI,YA3BJ,CAAA,EA2BgB,OA3BhB,CA2BgB,YA3BhB,EAAA,CAAA;EAA2C,gBAAA,CAAA,YAAA,EA+BpC,YA/BoC,EAAA,QAAA,EAAA,MAAA,CAAA,EA+BN,OA/BM,CAAA,IAAA,CAAA;EAKxC,YAAA,CAAA,YAAA,EA4CA,YA5CA,EAAA,YAAA,EA4C4B,YA5C5B,CAAA,EA4CwC,OA5CxC,CAAA,IAAA,CAAA;EAAsB,kBAAA,CAAA,YAAA,EAgDhB,YAhDgB,EAAA,KAAA,EAgDK,KAhDL,CAgDW,YAhDX,CAAA,EAAA,YAAA,CAAA,EAgDyC,YAhDzC,CAAA,EAgDqD,OAhDrD,CAgDqD,YAhDrD,EAAA,CAAA;EAAY,qCAAA,CAAA,YAAA,EAqD1D,YArD0D,EAAA,YAAA,EAsD1D,GAAA,CAAI,SAtDsD,CAAA,EAuDvE,OAvDuE,CAuD/D,mBAvD+D,GAAA,IAAA,CAAA;EAAA,sBAAA,CAAA,YAAA,EA4D1D,YA5D0D,EAAA,QAAA,EAAA,MAAA,EAAA,YAAA,EA8D1D,GAAA,CAAI,SA9DsD,CAAA,EA+DvE,OA/DuE,CA+D/D,mBA/D+D,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { TenantRecord } from "../repository/TenantRecord.mjs";
|
|
2
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
3
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
4
|
+
import { TenantRepository } from "../repository/TenantRepository.mjs";
|
|
5
|
+
import { TenantRoutingRecord } from "../repository/TenantRoutingRecord.mjs";
|
|
6
|
+
import { TenantRoutingRepository } from "../repository/TenantRoutingRepository.mjs";
|
|
7
|
+
import "../repository/index.mjs";
|
|
8
|
+
import { UpdateAssistant, injectable, utils } from "@credo-ts/core";
|
|
9
|
+
|
|
10
|
+
//#region src/services/TenantRecordService.ts
|
|
11
|
+
var _ref, _ref2;
|
|
12
|
+
let TenantRecordService = class TenantRecordService$1 {
|
|
13
|
+
constructor(tenantRepository, tenantRoutingRepository) {
|
|
14
|
+
this.tenantRepository = tenantRepository;
|
|
15
|
+
this.tenantRoutingRepository = tenantRoutingRepository;
|
|
16
|
+
}
|
|
17
|
+
async createTenant(agentContext, config) {
|
|
18
|
+
const tenantRecord = new TenantRecord({
|
|
19
|
+
id: utils.uuid(),
|
|
20
|
+
config,
|
|
21
|
+
storageVersion: UpdateAssistant.frameworkStorageVersion
|
|
22
|
+
});
|
|
23
|
+
await this.tenantRepository.save(agentContext, tenantRecord);
|
|
24
|
+
return tenantRecord;
|
|
25
|
+
}
|
|
26
|
+
async getTenantById(agentContext, tenantId) {
|
|
27
|
+
return this.tenantRepository.getById(agentContext, tenantId);
|
|
28
|
+
}
|
|
29
|
+
async findTenantsByLabel(agentContext, label) {
|
|
30
|
+
return this.tenantRepository.findByLabel(agentContext, label);
|
|
31
|
+
}
|
|
32
|
+
async getAllTenants(agentContext) {
|
|
33
|
+
return this.tenantRepository.getAll(agentContext);
|
|
34
|
+
}
|
|
35
|
+
async deleteTenantById(agentContext, tenantId) {
|
|
36
|
+
const tenantRecord = await this.getTenantById(agentContext, tenantId);
|
|
37
|
+
const tenantRoutingRecords = await this.tenantRoutingRepository.findByQuery(agentContext, { tenantId: tenantRecord.id });
|
|
38
|
+
await Promise.all(tenantRoutingRecords.map((tenantRoutingRecord) => this.tenantRoutingRepository.delete(agentContext, tenantRoutingRecord)));
|
|
39
|
+
await this.tenantRepository.delete(agentContext, tenantRecord);
|
|
40
|
+
}
|
|
41
|
+
async updateTenant(agentContext, tenantRecord) {
|
|
42
|
+
return this.tenantRepository.update(agentContext, tenantRecord);
|
|
43
|
+
}
|
|
44
|
+
async findTenantsByQuery(agentContext, query, queryOptions) {
|
|
45
|
+
return this.tenantRepository.findByQuery(agentContext, query, queryOptions);
|
|
46
|
+
}
|
|
47
|
+
async findTenantRoutingRecordByRecipientKey(agentContext, recipientKey) {
|
|
48
|
+
return this.tenantRoutingRepository.findByRecipientKey(agentContext, recipientKey);
|
|
49
|
+
}
|
|
50
|
+
async addTenantRoutingRecord(agentContext, tenantId, recipientKey) {
|
|
51
|
+
const tenantRoutingRecord = new TenantRoutingRecord({
|
|
52
|
+
tenantId,
|
|
53
|
+
recipientKeyFingerprint: recipientKey.fingerprint
|
|
54
|
+
});
|
|
55
|
+
await this.tenantRoutingRepository.save(agentContext, tenantRoutingRecord);
|
|
56
|
+
return tenantRoutingRecord;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
TenantRecordService = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref = typeof TenantRepository !== "undefined" && TenantRepository) === "function" ? _ref : Object, typeof (_ref2 = typeof TenantRoutingRepository !== "undefined" && TenantRoutingRepository) === "function" ? _ref2 : Object])], TenantRecordService);
|
|
60
|
+
|
|
61
|
+
//#endregion
|
|
62
|
+
export { TenantRecordService };
|
|
63
|
+
//# sourceMappingURL=TenantRecordService.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantRecordService.mjs","names":["TenantRecordService"],"sources":["../../src/services/TenantRecordService.ts"],"sourcesContent":["import type { AgentContext, Kms, Query, QueryOptions } from '@credo-ts/core'\nimport { injectable, UpdateAssistant, utils } from '@credo-ts/core'\nimport type { TenantConfig } from '../models/TenantConfig'\n\nimport { TenantRecord, TenantRepository, TenantRoutingRecord, TenantRoutingRepository } from '../repository'\n\n@injectable()\nexport class TenantRecordService {\n private tenantRepository: TenantRepository\n private tenantRoutingRepository: TenantRoutingRepository\n\n public constructor(tenantRepository: TenantRepository, tenantRoutingRepository: TenantRoutingRepository) {\n this.tenantRepository = tenantRepository\n this.tenantRoutingRepository = tenantRoutingRepository\n }\n\n public async createTenant(agentContext: AgentContext, config: TenantConfig) {\n const tenantId = utils.uuid()\n\n const tenantRecord = new TenantRecord({\n id: tenantId,\n config,\n storageVersion: UpdateAssistant.frameworkStorageVersion,\n })\n\n await this.tenantRepository.save(agentContext, tenantRecord)\n\n return tenantRecord\n }\n\n public async getTenantById(agentContext: AgentContext, tenantId: string) {\n return this.tenantRepository.getById(agentContext, tenantId)\n }\n\n public async findTenantsByLabel(agentContext: AgentContext, label: string) {\n return this.tenantRepository.findByLabel(agentContext, label)\n }\n\n public async getAllTenants(agentContext: AgentContext) {\n return this.tenantRepository.getAll(agentContext)\n }\n\n public async deleteTenantById(agentContext: AgentContext, tenantId: string) {\n const tenantRecord = await this.getTenantById(agentContext, tenantId)\n\n const tenantRoutingRecords = await this.tenantRoutingRepository.findByQuery(agentContext, {\n tenantId: tenantRecord.id,\n })\n\n // Delete all tenant routing records\n await Promise.all(\n tenantRoutingRecords.map((tenantRoutingRecord) =>\n this.tenantRoutingRepository.delete(agentContext, tenantRoutingRecord)\n )\n )\n\n // Delete tenant record\n await this.tenantRepository.delete(agentContext, tenantRecord)\n }\n\n public async updateTenant(agentContext: AgentContext, tenantRecord: TenantRecord) {\n return this.tenantRepository.update(agentContext, tenantRecord)\n }\n\n public async findTenantsByQuery(agentContext: AgentContext, query: Query<TenantRecord>, queryOptions?: QueryOptions) {\n return this.tenantRepository.findByQuery(agentContext, query, queryOptions)\n }\n\n public async findTenantRoutingRecordByRecipientKey(\n agentContext: AgentContext,\n recipientKey: Kms.PublicJwk\n ): Promise<TenantRoutingRecord | null> {\n return this.tenantRoutingRepository.findByRecipientKey(agentContext, recipientKey)\n }\n\n public async addTenantRoutingRecord(\n agentContext: AgentContext,\n tenantId: string,\n recipientKey: Kms.PublicJwk\n ): Promise<TenantRoutingRecord> {\n const tenantRoutingRecord = new TenantRoutingRecord({\n tenantId,\n recipientKeyFingerprint: recipientKey.fingerprint,\n })\n\n await this.tenantRoutingRepository.save(agentContext, tenantRoutingRecord)\n\n return tenantRoutingRecord\n }\n}\n"],"mappings":";;;;;;;;;;;AAOO,gCAAMA,sBAAoB;CAI/B,AAAO,YAAY,kBAAoC,yBAAkD;AACvG,OAAK,mBAAmB;AACxB,OAAK,0BAA0B;;CAGjC,MAAa,aAAa,cAA4B,QAAsB;EAG1E,MAAM,eAAe,IAAI,aAAa;GACpC,IAHe,MAAM,MAAM;GAI3B;GACA,gBAAgB,gBAAgB;GACjC,CAAC;AAEF,QAAM,KAAK,iBAAiB,KAAK,cAAc,aAAa;AAE5D,SAAO;;CAGT,MAAa,cAAc,cAA4B,UAAkB;AACvE,SAAO,KAAK,iBAAiB,QAAQ,cAAc,SAAS;;CAG9D,MAAa,mBAAmB,cAA4B,OAAe;AACzE,SAAO,KAAK,iBAAiB,YAAY,cAAc,MAAM;;CAG/D,MAAa,cAAc,cAA4B;AACrD,SAAO,KAAK,iBAAiB,OAAO,aAAa;;CAGnD,MAAa,iBAAiB,cAA4B,UAAkB;EAC1E,MAAM,eAAe,MAAM,KAAK,cAAc,cAAc,SAAS;EAErE,MAAM,uBAAuB,MAAM,KAAK,wBAAwB,YAAY,cAAc,EACxF,UAAU,aAAa,IACxB,CAAC;AAGF,QAAM,QAAQ,IACZ,qBAAqB,KAAK,wBACxB,KAAK,wBAAwB,OAAO,cAAc,oBAAoB,CACvE,CACF;AAGD,QAAM,KAAK,iBAAiB,OAAO,cAAc,aAAa;;CAGhE,MAAa,aAAa,cAA4B,cAA4B;AAChF,SAAO,KAAK,iBAAiB,OAAO,cAAc,aAAa;;CAGjE,MAAa,mBAAmB,cAA4B,OAA4B,cAA6B;AACnH,SAAO,KAAK,iBAAiB,YAAY,cAAc,OAAO,aAAa;;CAG7E,MAAa,sCACX,cACA,cACqC;AACrC,SAAO,KAAK,wBAAwB,mBAAmB,cAAc,aAAa;;CAGpF,MAAa,uBACX,cACA,UACA,cAC8B;EAC9B,MAAM,sBAAsB,IAAI,oBAAoB;GAClD;GACA,yBAAyB,aAAa;GACvC,CAAC;AAEF,QAAM,KAAK,wBAAwB,KAAK,cAAc,oBAAoB;AAE1E,SAAO;;;kCAjFV,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { TenantRecordService } from "./TenantRecordService.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { TenantRecordService } from "./TenantRecordService.mjs";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseAgent } from "@credo-ts/core";
|
|
2
|
+
|
|
3
|
+
//#region src/updates/0.4-0.5/index.d.ts
|
|
4
|
+
declare function updateTenantsModuleV0_4ToV0_5<Agent extends BaseAgent>(agent: Agent): Promise<void>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { updateTenantsModuleV0_4ToV0_5 };
|
|
7
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/updates/0.4-0.5/index.ts"],"sourcesContent":[],"mappings":";;;iBAIsB,4CAA4C,kBAAkB,QAAQ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { migrateTenantRecordToV0_5 } from "./tenantRecord.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/updates/0.4-0.5/index.ts
|
|
4
|
+
async function updateTenantsModuleV0_4ToV0_5(agent) {
|
|
5
|
+
await migrateTenantRecordToV0_5(agent);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { updateTenantsModuleV0_4ToV0_5 };
|
|
10
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/updates/0.4-0.5/index.ts"],"sourcesContent":["import type { BaseAgent } from '@credo-ts/core'\n\nimport { migrateTenantRecordToV0_5 } from './tenantRecord'\n\nexport async function updateTenantsModuleV0_4ToV0_5<Agent extends BaseAgent>(agent: Agent): Promise<void> {\n await migrateTenantRecordToV0_5(agent)\n}\n"],"mappings":";;;AAIA,eAAsB,8BAAuD,OAA6B;AACxG,OAAM,0BAA0B,MAAM"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TenantRepository } from "../../repository/TenantRepository.mjs";
|
|
2
|
+
import "../../repository/index.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/updates/0.4-0.5/tenantRecord.ts
|
|
5
|
+
/**
|
|
6
|
+
* Migrates the {@link TenantRecord} to 0.5 compatible format. It fetches all tenant records from
|
|
7
|
+
* storage and applies the needed updates to the records. After a record has been transformed, it is updated
|
|
8
|
+
* in storage and the next record will be transformed.
|
|
9
|
+
*
|
|
10
|
+
* The following transformations are applied:
|
|
11
|
+
* - Re-save record to store new `label` tag
|
|
12
|
+
*/
|
|
13
|
+
async function migrateTenantRecordToV0_5(agent) {
|
|
14
|
+
agent.config.logger.info("Migrating tenant records to storage version 0.5");
|
|
15
|
+
const tenantRepository = agent.dependencyManager.resolve(TenantRepository);
|
|
16
|
+
agent.config.logger.debug("Fetching all tenant records from storage");
|
|
17
|
+
const tenantRecords = await tenantRepository.getAll(agent.context);
|
|
18
|
+
agent.config.logger.debug(`Found a total of ${tenantRecords.length} tenant records to update.`);
|
|
19
|
+
for (const tenantRecord of tenantRecords) {
|
|
20
|
+
agent.config.logger.debug(`Migrating tenant record with id ${tenantRecord.id} to storage version 0.5`);
|
|
21
|
+
await tenantRepository.update(agent.context, tenantRecord);
|
|
22
|
+
agent.config.logger.debug(`Successfully migrated tenant record with id ${tenantRecord.id} to storage version 0.5`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { migrateTenantRecordToV0_5 };
|
|
28
|
+
//# sourceMappingURL=tenantRecord.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenantRecord.mjs","names":[],"sources":["../../../src/updates/0.4-0.5/tenantRecord.ts"],"sourcesContent":["import type { BaseAgent } from '@credo-ts/core'\n\nimport { TenantRepository } from '../../repository'\n\n/**\n * Migrates the {@link TenantRecord} to 0.5 compatible format. It fetches all tenant records from\n * storage and applies the needed updates to the records. After a record has been transformed, it is updated\n * in storage and the next record will be transformed.\n *\n * The following transformations are applied:\n * - Re-save record to store new `label` tag\n */\nexport async function migrateTenantRecordToV0_5<Agent extends BaseAgent>(agent: Agent) {\n agent.config.logger.info('Migrating tenant records to storage version 0.5')\n const tenantRepository = agent.dependencyManager.resolve(TenantRepository)\n\n agent.config.logger.debug('Fetching all tenant records from storage')\n const tenantRecords = await tenantRepository.getAll(agent.context)\n\n agent.config.logger.debug(`Found a total of ${tenantRecords.length} tenant records to update.`)\n for (const tenantRecord of tenantRecords) {\n agent.config.logger.debug(`Migrating tenant record with id ${tenantRecord.id} to storage version 0.5`)\n\n // NOTE: Record only has change in tags, we need to re-save the record\n await tenantRepository.update(agent.context, tenantRecord)\n\n agent.config.logger.debug(`Successfully migrated tenant record with id ${tenantRecord.id} to storage version 0.5`)\n }\n}\n"],"mappings":";;;;;;;;;;;;AAYA,eAAsB,0BAAmD,OAAc;AACrF,OAAM,OAAO,OAAO,KAAK,kDAAkD;CAC3E,MAAM,mBAAmB,MAAM,kBAAkB,QAAQ,iBAAiB;AAE1E,OAAM,OAAO,OAAO,MAAM,2CAA2C;CACrE,MAAM,gBAAgB,MAAM,iBAAiB,OAAO,MAAM,QAAQ;AAElE,OAAM,OAAO,OAAO,MAAM,oBAAoB,cAAc,OAAO,4BAA4B;AAC/F,MAAK,MAAM,gBAAgB,eAAe;AACxC,QAAM,OAAO,OAAO,MAAM,mCAAmC,aAAa,GAAG,yBAAyB;AAGtG,QAAM,iBAAiB,OAAO,MAAM,SAAS,aAAa;AAE1D,QAAM,OAAO,OAAO,MAAM,+CAA+C,aAAa,GAAG,yBAAyB"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@credo-ts/tenants",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
"exports": {
|
|
4
|
+
".": "./build/index.mjs",
|
|
5
|
+
"./package.json": "./package.json"
|
|
6
|
+
},
|
|
7
|
+
"version": "0.6.2-alpha-20251210145840",
|
|
6
8
|
"files": [
|
|
7
9
|
"build"
|
|
8
10
|
],
|
|
@@ -17,19 +19,18 @@
|
|
|
17
19
|
"directory": "packages/tenants"
|
|
18
20
|
},
|
|
19
21
|
"dependencies": {
|
|
20
|
-
"async-mutex": "^0.
|
|
21
|
-
"@credo-ts/core": "0.6.
|
|
22
|
+
"async-mutex": "^0.5.0",
|
|
23
|
+
"@credo-ts/core": "0.6.2-alpha-20251210145840",
|
|
24
|
+
"@credo-ts/didcomm": "0.6.2-alpha-20251210145840"
|
|
22
25
|
},
|
|
23
26
|
"devDependencies": {
|
|
24
|
-
"reflect-metadata": "
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"@credo-ts/node": "0.6.1-pr-2091-20241119140918"
|
|
27
|
+
"reflect-metadata": "0.2.2",
|
|
28
|
+
"typescript": "~5.9.3",
|
|
29
|
+
"@credo-ts/node": "0.6.2-alpha-20251210145840"
|
|
28
30
|
},
|
|
29
31
|
"scripts": {
|
|
30
|
-
"build": "
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
32
|
+
"build": "tsdown --config-loader unconfig"
|
|
33
|
+
},
|
|
34
|
+
"types": "./build/index.d.mts",
|
|
35
|
+
"module": "./build/index.mjs"
|
|
35
36
|
}
|
package/build/TenantAgent.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AgentContext, DefaultAgentModules, ModulesMap } from '@credo-ts/core';
|
|
2
|
-
import { BaseAgent } from '@credo-ts/core';
|
|
3
|
-
export declare class TenantAgent<AgentModules extends ModulesMap = DefaultAgentModules> extends BaseAgent<AgentModules> {
|
|
4
|
-
private sessionHasEnded;
|
|
5
|
-
constructor(agentContext: AgentContext);
|
|
6
|
-
initialize(): Promise<void>;
|
|
7
|
-
endSession(): Promise<void>;
|
|
8
|
-
}
|
package/build/TenantAgent.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TenantAgent = void 0;
|
|
4
|
-
const core_1 = require("@credo-ts/core");
|
|
5
|
-
class TenantAgent extends core_1.BaseAgent {
|
|
6
|
-
constructor(agentContext) {
|
|
7
|
-
super(agentContext.config, agentContext.dependencyManager);
|
|
8
|
-
this.sessionHasEnded = false;
|
|
9
|
-
}
|
|
10
|
-
async initialize() {
|
|
11
|
-
if (this.sessionHasEnded) {
|
|
12
|
-
throw new core_1.CredoError("Can't initialize agent after tenant sessions has been ended.");
|
|
13
|
-
}
|
|
14
|
-
await super.initialize();
|
|
15
|
-
this._isInitialized = true;
|
|
16
|
-
}
|
|
17
|
-
async endSession() {
|
|
18
|
-
this.logger.trace(`Ending session for agent context with contextCorrelationId '${this.agentContext.contextCorrelationId}'`);
|
|
19
|
-
await this.agentContext.endSession();
|
|
20
|
-
this._isInitialized = false;
|
|
21
|
-
this.sessionHasEnded = true;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.TenantAgent = TenantAgent;
|
|
25
|
-
//# sourceMappingURL=TenantAgent.js.map
|
package/build/TenantAgent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TenantAgent.js","sourceRoot":"","sources":["../src/TenantAgent.ts"],"names":[],"mappings":";;;AAEA,yCAAsD;AAEtD,MAAa,WAAmE,SAAQ,gBAAuB;IAG7G,YAAmB,YAA0B;QAC3C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAHpD,oBAAe,GAAG,KAAK,CAAA;IAI/B,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAU,CAAC,8DAA8D,CAAC,CAAA;QACtF,CAAC;QAED,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+DAA+D,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,CACzG,CAAA;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;CACF;AAxBD,kCAwBC"}
|
package/build/TenantsApi.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { CreateTenantOptions, GetTenantAgentOptions, UpdateTenantStorageOptions, WithTenantAgentCallback } from './TenantsApiOptions';
|
|
2
|
-
import type { TenantRecord } from './repository';
|
|
3
|
-
import type { DefaultAgentModules, ModulesMap, Query, QueryOptions } from '@credo-ts/core';
|
|
4
|
-
import { AgentContext, Logger } from '@credo-ts/core';
|
|
5
|
-
import { TenantAgent } from './TenantAgent';
|
|
6
|
-
import { TenantAgentContextProvider } from './context/TenantAgentContextProvider';
|
|
7
|
-
import { TenantRecordService } from './services';
|
|
8
|
-
export declare class TenantsApi<AgentModules extends ModulesMap = DefaultAgentModules> {
|
|
9
|
-
readonly rootAgentContext: AgentContext;
|
|
10
|
-
private tenantRecordService;
|
|
11
|
-
private agentContextProvider;
|
|
12
|
-
private logger;
|
|
13
|
-
constructor(tenantRecordService: TenantRecordService, rootAgentContext: AgentContext, agentContextProvider: TenantAgentContextProvider, logger: Logger);
|
|
14
|
-
getTenantAgent({ tenantId }: GetTenantAgentOptions): Promise<TenantAgent<AgentModules>>;
|
|
15
|
-
withTenantAgent<ReturnValue>(options: GetTenantAgentOptions, withTenantAgentCallback: WithTenantAgentCallback<AgentModules, ReturnValue>): Promise<ReturnValue>;
|
|
16
|
-
createTenant(options: CreateTenantOptions): Promise<TenantRecord>;
|
|
17
|
-
getTenantById(tenantId: string): Promise<TenantRecord>;
|
|
18
|
-
findTenantsByLabel(label: string): Promise<TenantRecord[]>;
|
|
19
|
-
deleteTenantById(tenantId: string): Promise<void>;
|
|
20
|
-
updateTenant(tenant: TenantRecord): Promise<void>;
|
|
21
|
-
findTenantsByQuery(query: Query<TenantRecord>, queryOptions?: QueryOptions): Promise<TenantRecord[]>;
|
|
22
|
-
getAllTenants(): Promise<TenantRecord[]>;
|
|
23
|
-
updateTenantStorage({ tenantId, updateOptions }: UpdateTenantStorageOptions): Promise<void>;
|
|
24
|
-
getTenantsWithOutdatedStorage(): Promise<TenantRecord[]>;
|
|
25
|
-
}
|
package/build/TenantsApi.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.TenantsApi = void 0;
|
|
16
|
-
const core_1 = require("@credo-ts/core");
|
|
17
|
-
const TenantAgent_1 = require("./TenantAgent");
|
|
18
|
-
const TenantAgentContextProvider_1 = require("./context/TenantAgentContextProvider");
|
|
19
|
-
const services_1 = require("./services");
|
|
20
|
-
let TenantsApi = class TenantsApi {
|
|
21
|
-
constructor(tenantRecordService, rootAgentContext, agentContextProvider, logger) {
|
|
22
|
-
this.tenantRecordService = tenantRecordService;
|
|
23
|
-
this.rootAgentContext = rootAgentContext;
|
|
24
|
-
this.agentContextProvider = agentContextProvider;
|
|
25
|
-
this.logger = logger;
|
|
26
|
-
}
|
|
27
|
-
async getTenantAgent({ tenantId }) {
|
|
28
|
-
this.logger.debug(`Getting tenant agent for tenant '${tenantId}'`);
|
|
29
|
-
const tenantContext = await this.agentContextProvider.getAgentContextForContextCorrelationId(tenantId);
|
|
30
|
-
this.logger.trace(`Got tenant context for tenant '${tenantId}'`);
|
|
31
|
-
const tenantAgent = new TenantAgent_1.TenantAgent(tenantContext);
|
|
32
|
-
await tenantAgent.initialize();
|
|
33
|
-
this.logger.trace(`Initializing tenant agent for tenant '${tenantId}'`);
|
|
34
|
-
return tenantAgent;
|
|
35
|
-
}
|
|
36
|
-
async withTenantAgent(options, withTenantAgentCallback) {
|
|
37
|
-
this.logger.debug(`Getting tenant agent for tenant '${options.tenantId}' in with tenant agent callback`);
|
|
38
|
-
const tenantAgent = await this.getTenantAgent(options);
|
|
39
|
-
try {
|
|
40
|
-
this.logger.debug(`Calling tenant agent callback for tenant '${options.tenantId}'`);
|
|
41
|
-
const result = await withTenantAgentCallback(tenantAgent);
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
this.logger.error(`Error in tenant agent callback for tenant '${options.tenantId}'`, { error });
|
|
46
|
-
throw error;
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
this.logger.debug(`Ending tenant agent session for tenant '${options.tenantId}'`);
|
|
50
|
-
await tenantAgent.endSession();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async createTenant(options) {
|
|
54
|
-
this.logger.debug(`Creating tenant with label ${options.config.label}`);
|
|
55
|
-
const tenantRecord = await this.tenantRecordService.createTenant(this.rootAgentContext, options.config);
|
|
56
|
-
// This initializes the tenant agent, creates the wallet etc...
|
|
57
|
-
const tenantAgent = await this.getTenantAgent({ tenantId: tenantRecord.id });
|
|
58
|
-
await tenantAgent.endSession();
|
|
59
|
-
this.logger.info(`Successfully created tenant '${tenantRecord.id}'`);
|
|
60
|
-
return tenantRecord;
|
|
61
|
-
}
|
|
62
|
-
async getTenantById(tenantId) {
|
|
63
|
-
this.logger.debug(`Getting tenant by id '${tenantId}'`);
|
|
64
|
-
return this.tenantRecordService.getTenantById(this.rootAgentContext, tenantId);
|
|
65
|
-
}
|
|
66
|
-
async findTenantsByLabel(label) {
|
|
67
|
-
this.logger.debug(`Finding tenants by label '${label}'`);
|
|
68
|
-
return this.tenantRecordService.findTenantsByLabel(this.rootAgentContext, label);
|
|
69
|
-
}
|
|
70
|
-
async deleteTenantById(tenantId) {
|
|
71
|
-
this.logger.debug(`Deleting tenant by id '${tenantId}'`);
|
|
72
|
-
// TODO: force remove context from the context provider (or session manager)
|
|
73
|
-
const tenantAgent = await this.getTenantAgent({ tenantId });
|
|
74
|
-
this.logger.trace(`Deleting wallet for tenant '${tenantId}'`);
|
|
75
|
-
await tenantAgent.wallet.delete();
|
|
76
|
-
this.logger.trace(`Shutting down agent for tenant '${tenantId}'`);
|
|
77
|
-
await tenantAgent.endSession();
|
|
78
|
-
return this.tenantRecordService.deleteTenantById(this.rootAgentContext, tenantId);
|
|
79
|
-
}
|
|
80
|
-
async updateTenant(tenant) {
|
|
81
|
-
await this.tenantRecordService.updateTenant(this.rootAgentContext, tenant);
|
|
82
|
-
}
|
|
83
|
-
async findTenantsByQuery(query, queryOptions) {
|
|
84
|
-
return this.tenantRecordService.findTenantsByQuery(this.rootAgentContext, query, queryOptions);
|
|
85
|
-
}
|
|
86
|
-
async getAllTenants() {
|
|
87
|
-
this.logger.debug('Getting all tenants');
|
|
88
|
-
return this.tenantRecordService.getAllTenants(this.rootAgentContext);
|
|
89
|
-
}
|
|
90
|
-
async updateTenantStorage({ tenantId, updateOptions }) {
|
|
91
|
-
this.logger.debug(`Updating tenant storage for tenant '${tenantId}'`);
|
|
92
|
-
const tenantRecord = await this.tenantRecordService.getTenantById(this.rootAgentContext, tenantId);
|
|
93
|
-
if ((0, core_1.isStorageUpToDate)(tenantRecord.storageVersion)) {
|
|
94
|
-
this.logger.debug(`Tenant storage for tenant '${tenantId}' is already up to date. Skipping update`);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
await this.agentContextProvider.updateTenantStorage(tenantRecord, updateOptions);
|
|
98
|
-
}
|
|
99
|
-
async getTenantsWithOutdatedStorage() {
|
|
100
|
-
const outdatedTenants = await this.tenantRecordService.findTenantsByQuery(this.rootAgentContext, {
|
|
101
|
-
$not: {
|
|
102
|
-
storageVersion: core_1.UpdateAssistant.frameworkStorageVersion,
|
|
103
|
-
},
|
|
104
|
-
});
|
|
105
|
-
return outdatedTenants;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
exports.TenantsApi = TenantsApi;
|
|
109
|
-
exports.TenantsApi = TenantsApi = __decorate([
|
|
110
|
-
(0, core_1.injectable)(),
|
|
111
|
-
__param(2, (0, core_1.inject)(core_1.InjectionSymbols.AgentContextProvider)),
|
|
112
|
-
__param(3, (0, core_1.inject)(core_1.InjectionSymbols.Logger)),
|
|
113
|
-
__metadata("design:paramtypes", [services_1.TenantRecordService,
|
|
114
|
-
core_1.AgentContext,
|
|
115
|
-
TenantAgentContextProvider_1.TenantAgentContextProvider, Object])
|
|
116
|
-
], TenantsApi);
|
|
117
|
-
//# sourceMappingURL=TenantsApi.js.map
|
package/build/TenantsApi.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TenantsApi.js","sourceRoot":"","sources":["../src/TenantsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { TenantAgent } from './TenantAgent';
|
|
2
|
-
import type { TenantConfig } from './models/TenantConfig';
|
|
3
|
-
import type { ModulesMap, UpdateAssistantUpdateOptions } from '@credo-ts/core';
|
|
4
|
-
export interface GetTenantAgentOptions {
|
|
5
|
-
tenantId: string;
|
|
6
|
-
}
|
|
7
|
-
export type WithTenantAgentCallback<AgentModules extends ModulesMap, Return> = (tenantAgent: TenantAgent<AgentModules>) => Promise<Return>;
|
|
8
|
-
export interface CreateTenantOptions {
|
|
9
|
-
config: Omit<TenantConfig, 'walletConfig'>;
|
|
10
|
-
}
|
|
11
|
-
export interface UpdateTenantStorageOptions {
|
|
12
|
-
tenantId: string;
|
|
13
|
-
updateOptions?: UpdateAssistantUpdateOptions;
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TenantsApiOptions.js","sourceRoot":"","sources":["../src/TenantsApiOptions.ts"],"names":[],"mappings":""}
|
package/build/TenantsModule.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { TenantsModuleConfigOptions } from './TenantsModuleConfig';
|
|
2
|
-
import type { Constructor, ModulesMap, DependencyManager, Module, EmptyModuleMap } from '@credo-ts/core';
|
|
3
|
-
import { TenantsApi } from './TenantsApi';
|
|
4
|
-
import { TenantsModuleConfig } from './TenantsModuleConfig';
|
|
5
|
-
import { updateTenantsModuleV0_4ToV0_5 } from './updates/0.4-0.5';
|
|
6
|
-
export declare class TenantsModule<AgentModules extends ModulesMap = EmptyModuleMap> implements Module {
|
|
7
|
-
readonly config: TenantsModuleConfig;
|
|
8
|
-
readonly api: Constructor<TenantsApi<AgentModules>>;
|
|
9
|
-
constructor(config?: TenantsModuleConfigOptions);
|
|
10
|
-
/**
|
|
11
|
-
* Registers the dependencies of the tenants module on the dependency manager.
|
|
12
|
-
*/
|
|
13
|
-
register(dependencyManager: DependencyManager): void;
|
|
14
|
-
updates: {
|
|
15
|
-
fromVersion: "0.4";
|
|
16
|
-
toVersion: "0.5";
|
|
17
|
-
doUpdate: typeof updateTenantsModuleV0_4ToV0_5;
|
|
18
|
-
}[];
|
|
19
|
-
}
|
package/build/TenantsModule.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TenantsModule = void 0;
|
|
4
|
-
const core_1 = require("@credo-ts/core");
|
|
5
|
-
const TenantsApi_1 = require("./TenantsApi");
|
|
6
|
-
const TenantsModuleConfig_1 = require("./TenantsModuleConfig");
|
|
7
|
-
const TenantAgentContextProvider_1 = require("./context/TenantAgentContextProvider");
|
|
8
|
-
const TenantSessionCoordinator_1 = require("./context/TenantSessionCoordinator");
|
|
9
|
-
const repository_1 = require("./repository");
|
|
10
|
-
const services_1 = require("./services");
|
|
11
|
-
const _0_4_0_5_1 = require("./updates/0.4-0.5");
|
|
12
|
-
class TenantsModule {
|
|
13
|
-
constructor(config) {
|
|
14
|
-
this.api = TenantsApi_1.TenantsApi;
|
|
15
|
-
this.updates = [
|
|
16
|
-
{
|
|
17
|
-
fromVersion: '0.4',
|
|
18
|
-
toVersion: '0.5',
|
|
19
|
-
doUpdate: _0_4_0_5_1.updateTenantsModuleV0_4ToV0_5,
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
this.config = new TenantsModuleConfig_1.TenantsModuleConfig(config);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Registers the dependencies of the tenants module on the dependency manager.
|
|
26
|
-
*/
|
|
27
|
-
register(dependencyManager) {
|
|
28
|
-
// Warn about experimental module
|
|
29
|
-
dependencyManager
|
|
30
|
-
.resolve(core_1.AgentConfig)
|
|
31
|
-
.logger.warn("The '@credo-ts/tenants' module is experimental and could have unexpected breaking changes. When using this module, make sure to use strict versions for all @credo-ts packages.");
|
|
32
|
-
// Api
|
|
33
|
-
// NOTE: this is a singleton because tenants can't have their own tenants. This makes sure the tenants api is always used in the root agent context.
|
|
34
|
-
dependencyManager.registerSingleton(TenantsApi_1.TenantsApi);
|
|
35
|
-
// Config
|
|
36
|
-
dependencyManager.registerInstance(TenantsModuleConfig_1.TenantsModuleConfig, this.config);
|
|
37
|
-
// Services
|
|
38
|
-
dependencyManager.registerSingleton(services_1.TenantRecordService);
|
|
39
|
-
// Repositories
|
|
40
|
-
dependencyManager.registerSingleton(repository_1.TenantRepository);
|
|
41
|
-
dependencyManager.registerSingleton(repository_1.TenantRoutingRepository);
|
|
42
|
-
dependencyManager.registerSingleton(core_1.InjectionSymbols.AgentContextProvider, TenantAgentContextProvider_1.TenantAgentContextProvider);
|
|
43
|
-
dependencyManager.registerSingleton(TenantSessionCoordinator_1.TenantSessionCoordinator);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.TenantsModule = TenantsModule;
|
|
47
|
-
//# sourceMappingURL=TenantsModule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TenantsModule.js","sourceRoot":"","sources":["../src/TenantsModule.ts"],"names":[],"mappings":";;;AAGA,yCAA8D;AAE9D,6CAAyC;AACzC,+DAA2D;AAC3D,qFAAiF;AACjF,iFAA6E;AAC7E,6CAAwE;AACxE,yCAAgD;AAChD,gDAAiE;AAEjE,MAAa,aAAa;IAKxB,YAAmB,MAAmC;QAFtC,QAAG,GAA0C,uBAAU,CAAA;QAmChE,YAAO,GAAG;YACf;gBACE,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,wCAA6B;aACxC;SACiB,CAAA;QAtClB,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAmB,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,iBAAoC;QAClD,iCAAiC;QACjC,iBAAiB;aACd,OAAO,CAAC,kBAAW,CAAC;aACpB,MAAM,CAAC,IAAI,CACV,iLAAiL,CAClL,CAAA;QAEH,MAAM;QACN,oJAAoJ;QACpJ,iBAAiB,CAAC,iBAAiB,CAAC,uBAAU,CAAC,CAAA;QAE/C,SAAS;QACT,iBAAiB,CAAC,gBAAgB,CAAC,yCAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpE,WAAW;QACX,iBAAiB,CAAC,iBAAiB,CAAC,8BAAmB,CAAC,CAAA;QAExD,eAAe;QACf,iBAAiB,CAAC,iBAAiB,CAAC,6BAAgB,CAAC,CAAA;QACrD,iBAAiB,CAAC,iBAAiB,CAAC,oCAAuB,CAAC,CAAA;QAE5D,iBAAiB,CAAC,iBAAiB,CAAC,uBAAgB,CAAC,oBAAoB,EAAE,uDAA0B,CAAC,CAAA;QACtG,iBAAiB,CAAC,iBAAiB,CAAC,mDAAwB,CAAC,CAAA;IAC/D,CAAC;CASF;AA7CD,sCA6CC"}
|