softkave-node-utils 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/build/src/contexts/SessionContext.d.ts +15 -0
- package/build/src/contexts/SessionContext.js +70 -0
- package/build/src/contexts/SessionContext.js.map +1 -0
- package/build/src/contexts/asyncLocalStorage.d.ts +27 -0
- package/build/src/contexts/asyncLocalStorage.js +115 -0
- package/build/src/contexts/asyncLocalStorage.js.map +1 -0
- package/build/src/contexts/config.d.ts +49 -0
- package/build/src/contexts/config.js +25 -0
- package/build/src/contexts/config.js.map +1 -0
- package/build/src/contexts/data/BaseMongoDataProvider.d.ts +21 -0
- package/build/src/contexts/data/BaseMongoDataProvider.js +157 -0
- package/build/src/contexts/data/BaseMongoDataProvider.js.map +1 -0
- package/build/src/contexts/data/MongoDataProviderUtils.d.ts +6 -0
- package/build/src/contexts/data/MongoDataProviderUtils.js +35 -0
- package/build/src/contexts/data/MongoDataProviderUtils.js.map +1 -0
- package/build/src/contexts/data/dataQueryToMongoQuery.d.ts +3 -0
- package/build/src/contexts/data/dataQueryToMongoQuery.js +85 -0
- package/build/src/contexts/data/dataQueryToMongoQuery.js.map +1 -0
- package/build/src/contexts/data/types.d.ts +114 -0
- package/build/src/contexts/data/types.js +15 -0
- package/build/src/contexts/data/types.js.map +1 -0
- package/build/src/contexts/data/utils.d.ts +2 -0
- package/build/src/contexts/data/utils.js +24 -0
- package/build/src/contexts/data/utils.js.map +1 -0
- package/build/src/contexts/email/SESEmailProviderContext.d.ts +9 -0
- package/build/src/contexts/email/SESEmailProviderContext.js +49 -0
- package/build/src/contexts/email/SESEmailProviderContext.js.map +1 -0
- package/build/src/contexts/email/types.d.ts +13 -0
- package/build/src/contexts/email/types.js +3 -0
- package/build/src/contexts/email/types.js.map +1 -0
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.d.ts +12 -0
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.js +51 -0
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.js.map +1 -0
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.d.ts +12 -0
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.js +35 -0
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.js.map +1 -0
- package/build/src/contexts/encryption/types.d.ts +29 -0
- package/build/src/contexts/encryption/types.js +3 -0
- package/build/src/contexts/encryption/types.js.map +1 -0
- package/build/src/contexts/globalUtils.d.ts +2 -0
- package/build/src/contexts/globalUtils.js +17 -0
- package/build/src/contexts/globalUtils.js.map +1 -0
- package/build/src/contexts/injection/injectables.d.ts +56 -0
- package/build/src/contexts/injection/injectables.js +26 -0
- package/build/src/contexts/injection/injectables.js.map +1 -0
- package/build/src/contexts/injection/keys.d.ts +22 -0
- package/build/src/contexts/injection/keys.js +33 -0
- package/build/src/contexts/injection/keys.js.map +1 -0
- package/build/src/contexts/injection/register.d.ts +33 -0
- package/build/src/contexts/injection/register.js +107 -0
- package/build/src/contexts/injection/register.js.map +1 -0
- package/build/src/contexts/logger/noop.d.ts +5 -0
- package/build/src/contexts/logger/noop.js +12 -0
- package/build/src/contexts/logger/noop.js.map +1 -0
- package/build/src/contexts/logger/types.d.ts +11 -0
- package/build/src/contexts/logger/types.js +8 -0
- package/build/src/contexts/logger/types.js.map +1 -0
- package/build/src/contexts/logger/utils.d.ts +2 -0
- package/build/src/contexts/logger/utils.js +15 -0
- package/build/src/contexts/logger/utils.js.map +1 -0
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.d.ts +28 -0
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.js +115 -0
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.js.map +1 -0
- package/build/src/contexts/semantic/types.d.ts +48 -0
- package/build/src/contexts/semantic/types.js +3 -0
- package/build/src/contexts/semantic/types.js.map +1 -0
- package/build/src/contexts/semantic/utils.d.ts +16 -0
- package/build/src/contexts/semantic/utils.js +68 -0
- package/build/src/contexts/semantic/utils.js.map +1 -0
- package/build/src/contexts/types.d.ts +6 -0
- package/build/src/contexts/types.js +3 -0
- package/build/src/contexts/types.js.map +1 -0
- package/build/src/definitions/agent.d.ts +10 -0
- package/build/src/definitions/agent.js +3 -0
- package/build/src/definitions/agent.js.map +1 -0
- package/build/src/definitions/resource.d.ts +17 -0
- package/build/src/definitions/resource.js +3 -0
- package/build/src/definitions/resource.js.map +1 -0
- package/build/src/definitions/resourceTypes.d.ts +10 -0
- package/build/src/definitions/resourceTypes.js +19 -0
- package/build/src/definitions/resourceTypes.js.map +1 -0
- package/build/src/definitions/token.d.ts +17 -0
- package/build/src/definitions/token.js +10 -0
- package/build/src/definitions/token.js.map +1 -0
- package/build/src/endpoints/RequestData.d.ts +20 -0
- package/build/src/endpoints/RequestData.js +52 -0
- package/build/src/endpoints/RequestData.js.map +1 -0
- package/build/src/endpoints/constants.d.ts +20 -0
- package/build/src/endpoints/constants.js +24 -0
- package/build/src/endpoints/constants.js.map +1 -0
- package/build/src/endpoints/endpoints.d.ts +7 -0
- package/build/src/endpoints/endpoints.js +33 -0
- package/build/src/endpoints/endpoints.js.map +1 -0
- package/build/src/endpoints/endpoints.mddoc.d.ts +62 -0
- package/build/src/endpoints/endpoints.mddoc.js +437 -0
- package/build/src/endpoints/endpoints.mddoc.js.map +1 -0
- package/build/src/endpoints/extractors.d.ts +9 -0
- package/build/src/endpoints/extractors.js +24 -0
- package/build/src/endpoints/extractors.js.map +1 -0
- package/build/src/endpoints/jobs/types.d.ts +6 -0
- package/build/src/endpoints/jobs/types.js +3 -0
- package/build/src/endpoints/jobs/types.js.map +1 -0
- package/build/src/endpoints/pagination.d.ts +3 -0
- package/build/src/endpoints/pagination.js +27 -0
- package/build/src/endpoints/pagination.js.map +1 -0
- package/build/src/endpoints/types.d.ts +68 -0
- package/build/src/endpoints/types.js +13 -0
- package/build/src/endpoints/types.js.map +1 -0
- package/build/src/endpoints/utils.d.ts +23 -0
- package/build/src/endpoints/utils.js +131 -0
- package/build/src/endpoints/utils.js.map +1 -0
- package/build/src/endpoints/validation.d.ts +47 -0
- package/build/src/endpoints/validation.js +73 -0
- package/build/src/endpoints/validation.js.map +1 -0
- package/build/src/errors/OperationError.d.ts +20 -0
- package/build/src/errors/OperationError.js +38 -0
- package/build/src/errors/OperationError.js.map +1 -0
- package/build/src/errors/commonErrors.d.ts +24 -0
- package/build/src/errors/commonErrors.js +72 -0
- package/build/src/errors/commonErrors.js.map +1 -0
- package/build/src/errors/endpointErrors.d.ts +31 -0
- package/build/src/errors/endpointErrors.js +83 -0
- package/build/src/errors/endpointErrors.js.map +1 -0
- package/build/src/errors/messages.d.ts +11 -0
- package/build/src/errors/messages.js +27 -0
- package/build/src/errors/messages.js.map +1 -0
- package/build/src/errors/reusableErrors.d.ts +12 -0
- package/build/src/errors/reusableErrors.js +25 -0
- package/build/src/errors/reusableErrors.js.map +1 -0
- package/build/src/errors/sessionErrors.d.ts +18 -0
- package/build/src/errors/sessionErrors.js +60 -0
- package/build/src/errors/sessionErrors.js.map +1 -0
- package/build/src/index.d.ts +0 -0
- package/build/src/index.js +2 -0
- package/build/src/index.js.map +1 -0
- package/build/src/mddoc/jsSdkCodeGen.d.ts +7 -0
- package/build/src/mddoc/jsSdkCodeGen.js +546 -0
- package/build/src/mddoc/jsSdkCodeGen.js.map +1 -0
- package/build/src/mddoc/mddoc.d.ts +206 -0
- package/build/src/mddoc/mddoc.js +142 -0
- package/build/src/mddoc/mddoc.js.map +1 -0
- package/build/src/mddoc/restApiEndpointsInfoGen.d.ts +10 -0
- package/build/src/mddoc/restApiEndpointsInfoGen.js +92 -0
- package/build/src/mddoc/restApiEndpointsInfoGen.js.map +1 -0
- package/build/src/mddoc/restApiTableOfContentGen.d.ts +2 -0
- package/build/src/mddoc/restApiTableOfContentGen.js +51 -0
- package/build/src/mddoc/restApiTableOfContentGen.js.map +1 -0
- package/build/src/mongodb/connection.d.ts +26 -0
- package/build/src/mongodb/connection.js +50 -0
- package/build/src/mongodb/connection.js.map +1 -0
- package/build/src/mongodb/constants.d.ts +4 -0
- package/build/src/mongodb/constants.js +7 -0
- package/build/src/mongodb/constants.js.map +1 -0
- package/build/src/mongodb/utils.d.ts +20 -0
- package/build/src/mongodb/utils.js +26 -0
- package/build/src/mongodb/utils.js.map +1 -0
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.d.ts +6 -0
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.js +10 -0
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.js.map +1 -0
- package/build/src/testUtils/context/email/NoopEmailProviderContext.d.ts +6 -0
- package/build/src/testUtils/context/email/NoopEmailProviderContext.js +11 -0
- package/build/src/testUtils/context/email/NoopEmailProviderContext.js.map +1 -0
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.d.ts +8 -0
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.js +14 -0
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.js.map +1 -0
- package/build/src/testUtils/context/types.d.ts +9 -0
- package/build/src/testUtils/context/types.js +3 -0
- package/build/src/testUtils/context/types.js.map +1 -0
- package/build/src/testUtils/generate/utils.d.ts +37 -0
- package/build/src/testUtils/generate/utils.js +79 -0
- package/build/src/testUtils/generate/utils.js.map +1 -0
- package/build/src/testUtils/helpers/assertion.d.ts +25 -0
- package/build/src/testUtils/helpers/assertion.js +63 -0
- package/build/src/testUtils/helpers/assertion.js.map +1 -0
- package/build/src/testUtils/helpers/binary.d.ts +4 -0
- package/build/src/testUtils/helpers/binary.js +19 -0
- package/build/src/testUtils/helpers/binary.js.map +1 -0
- package/build/src/testUtils/helpers/error.d.ts +3 -0
- package/build/src/testUtils/helpers/error.js +43 -0
- package/build/src/testUtils/helpers/error.js.map +1 -0
- package/build/src/testUtils/helpers/mock.d.ts +2 -0
- package/build/src/testUtils/helpers/mock.js +15 -0
- package/build/src/testUtils/helpers/mock.js.map +1 -0
- package/build/src/testUtils/helpers/mongodb.d.ts +3 -0
- package/build/src/testUtils/helpers/mongodb.js +17 -0
- package/build/src/testUtils/helpers/mongodb.js.map +1 -0
- package/build/src/testUtils/helpers/testFns.d.ts +30 -0
- package/build/src/testUtils/helpers/testFns.js +96 -0
- package/build/src/testUtils/helpers/testFns.js.map +1 -0
- package/build/src/testUtils/testUtils.d.ts +13 -0
- package/build/src/testUtils/testUtils.js +50 -0
- package/build/src/testUtils/testUtils.js.map +1 -0
- package/build/src/utils/assertion.d.ts +2 -0
- package/build/src/utils/assertion.js +31 -0
- package/build/src/utils/assertion.js.map +1 -0
- package/build/src/utils/aws.d.ts +5 -0
- package/build/src/utils/aws.js +3 -0
- package/build/src/utils/aws.js.map +1 -0
- package/build/src/utils/streamToBuffer.d.ts +4 -0
- package/build/src/utils/streamToBuffer.js +19 -0
- package/build/src/utils/streamToBuffer.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const kInjectionKeys: {
|
|
2
|
+
data: {
|
|
3
|
+
utils: string;
|
|
4
|
+
};
|
|
5
|
+
semantic: {
|
|
6
|
+
utils: string;
|
|
7
|
+
};
|
|
8
|
+
encryption: string;
|
|
9
|
+
suppliedConfig: string;
|
|
10
|
+
runtimeConfig: string;
|
|
11
|
+
secretsManager: string;
|
|
12
|
+
fileProviderResolver: string;
|
|
13
|
+
asyncLocalStorage: string;
|
|
14
|
+
session: string;
|
|
15
|
+
dbConnection: string;
|
|
16
|
+
email: string;
|
|
17
|
+
promises: string;
|
|
18
|
+
locks: string;
|
|
19
|
+
disposables: string;
|
|
20
|
+
usageLogic: string;
|
|
21
|
+
logger: string;
|
|
22
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kInjectionKeys = void 0;
|
|
4
|
+
function dataKey(name) {
|
|
5
|
+
return `data_${name}`;
|
|
6
|
+
}
|
|
7
|
+
function semanticKey(name) {
|
|
8
|
+
return `semantic_${name}`;
|
|
9
|
+
}
|
|
10
|
+
exports.kInjectionKeys = {
|
|
11
|
+
data: {
|
|
12
|
+
utils: dataKey('utils'),
|
|
13
|
+
},
|
|
14
|
+
semantic: {
|
|
15
|
+
utils: semanticKey('utils'),
|
|
16
|
+
},
|
|
17
|
+
encryption: 'encryption',
|
|
18
|
+
// config: 'config',
|
|
19
|
+
suppliedConfig: 'suppliedConfig',
|
|
20
|
+
runtimeConfig: 'runtimeConfig',
|
|
21
|
+
secretsManager: 'secretsManager',
|
|
22
|
+
fileProviderResolver: 'fileProviderResolver',
|
|
23
|
+
asyncLocalStorage: 'asyncLocalStorage',
|
|
24
|
+
session: 'session',
|
|
25
|
+
dbConnection: 'dbConnection',
|
|
26
|
+
email: 'email',
|
|
27
|
+
promises: 'promises',
|
|
28
|
+
locks: 'locks',
|
|
29
|
+
disposables: 'disposables',
|
|
30
|
+
usageLogic: 'usageLogic',
|
|
31
|
+
logger: 'logger',
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/contexts/injection/keys.ts"],"names":[],"mappings":";;;AAAA,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,QAAQ,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,YAAY,IAAI,EAAE,CAAC;AAC5B,CAAC;AAEY,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;KACxB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;KAC5B;IACD,UAAU,EAAE,YAAY;IACxB,oBAAoB;IACpB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;CACjB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { DisposablesStore, LockStore, PromiseStore } from 'softkave-js-utils';
|
|
3
|
+
import { DbConnection } from '../../mongodb/connection';
|
|
4
|
+
import { SessionContextType } from '../SessionContext';
|
|
5
|
+
import { AsyncLocalStorageUtils } from '../asyncLocalStorage';
|
|
6
|
+
import { FimidaraSuppliedConfig } from '../config';
|
|
7
|
+
import { DataProviderUtils } from '../data/types';
|
|
8
|
+
import { IEmailProviderContext } from '../email/types';
|
|
9
|
+
import { SecretsManagerProvider } from '../encryption/types';
|
|
10
|
+
import { Logger } from '../logger/types';
|
|
11
|
+
import { SemanticProviderUtils } from '../semantic/types';
|
|
12
|
+
export declare const kRegisterSemanticModels: {
|
|
13
|
+
utils: (item: SemanticProviderUtils) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare const kRegisterDataModels: {
|
|
16
|
+
utils: (item: DataProviderUtils) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare const kRegisterUtilsInjectables: {
|
|
19
|
+
suppliedConfig: (item: FimidaraSuppliedConfig) => void;
|
|
20
|
+
secretsManager: (item: SecretsManagerProvider) => void;
|
|
21
|
+
asyncLocalStorage: (item: AsyncLocalStorageUtils) => void;
|
|
22
|
+
session: (item: SessionContextType) => void;
|
|
23
|
+
mongoConnection: (item: DbConnection) => void;
|
|
24
|
+
email: (item: IEmailProviderContext) => void;
|
|
25
|
+
promises: (item: PromiseStore) => void;
|
|
26
|
+
locks: (item: LockStore) => void;
|
|
27
|
+
disposables: (item: DisposablesStore) => void;
|
|
28
|
+
logger: (item: Logger) => void;
|
|
29
|
+
};
|
|
30
|
+
export declare function registerDataModelInjectables(): void;
|
|
31
|
+
export declare function registerSemanticModelInjectables(): void;
|
|
32
|
+
export declare function registerUtilsInjectables(): void;
|
|
33
|
+
export declare function registerInjectables(): void;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerInjectables = exports.registerUtilsInjectables = exports.registerSemanticModelInjectables = exports.registerDataModelInjectables = exports.kRegisterUtilsInjectables = exports.kRegisterDataModels = exports.kRegisterSemanticModels = void 0;
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
|
+
const softkave_js_utils_1 = require("softkave-js-utils");
|
|
11
|
+
const tsyringe_1 = require("tsyringe");
|
|
12
|
+
const connection_1 = require("../../mongodb/connection");
|
|
13
|
+
const NoopEmailProviderContext_1 = __importDefault(require("../../testUtils/context/email/NoopEmailProviderContext"));
|
|
14
|
+
const SessionContext_1 = __importDefault(require("../SessionContext"));
|
|
15
|
+
const asyncLocalStorage_1 = require("../asyncLocalStorage");
|
|
16
|
+
const config_1 = require("../config");
|
|
17
|
+
const MongoDataProviderUtils_1 = require("../data/MongoDataProviderUtils");
|
|
18
|
+
const SESEmailProviderContext_1 = require("../email/SESEmailProviderContext");
|
|
19
|
+
const AWSSecretsManagerProvider_1 = require("../encryption/AWSSecretsManagerProvider");
|
|
20
|
+
const MemorySecretsManagerProvider_1 = require("../encryption/MemorySecretsManagerProvider");
|
|
21
|
+
const utils_1 = require("../logger/utils");
|
|
22
|
+
const utils_2 = require("../semantic/utils");
|
|
23
|
+
const injectables_1 = require("./injectables");
|
|
24
|
+
const keys_1 = require("./keys");
|
|
25
|
+
function registerToken(token, item, use = 'value') {
|
|
26
|
+
if (use === 'factory') {
|
|
27
|
+
(0, assert_1.default)((0, lodash_1.isFunction)(item));
|
|
28
|
+
tsyringe_1.container.register(token, { useFactory: item });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if ((0, lodash_1.isFunction)(item === null || item === void 0 ? void 0 : item.dispose)) {
|
|
32
|
+
injectables_1.kUtilsInjectables.disposables().add(item);
|
|
33
|
+
}
|
|
34
|
+
tsyringe_1.container.register(token, { useValue: item });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.kRegisterSemanticModels = {
|
|
38
|
+
utils: (item) => registerToken(keys_1.kInjectionKeys.semantic.utils, item),
|
|
39
|
+
};
|
|
40
|
+
exports.kRegisterDataModels = {
|
|
41
|
+
utils: (item) => registerToken(keys_1.kInjectionKeys.data.utils, item),
|
|
42
|
+
};
|
|
43
|
+
exports.kRegisterUtilsInjectables = {
|
|
44
|
+
// config: (item: FimidaraConfig) => register(kInjectionKeys.config, item),
|
|
45
|
+
suppliedConfig: (item) => registerToken(keys_1.kInjectionKeys.suppliedConfig, item),
|
|
46
|
+
secretsManager: (item) => registerToken(keys_1.kInjectionKeys.secretsManager, item),
|
|
47
|
+
asyncLocalStorage: (item) => registerToken(keys_1.kInjectionKeys.asyncLocalStorage, item),
|
|
48
|
+
session: (item) => registerToken(keys_1.kInjectionKeys.session, item),
|
|
49
|
+
mongoConnection: (item) => registerToken(keys_1.kInjectionKeys.dbConnection, item),
|
|
50
|
+
email: (item) => registerToken(keys_1.kInjectionKeys.email, item),
|
|
51
|
+
promises: (item) => registerToken(keys_1.kInjectionKeys.promises, item),
|
|
52
|
+
locks: (item) => registerToken(keys_1.kInjectionKeys.locks, item),
|
|
53
|
+
disposables: (item) => registerToken(keys_1.kInjectionKeys.disposables, item),
|
|
54
|
+
logger: (item) => registerToken(keys_1.kInjectionKeys.logger, item),
|
|
55
|
+
};
|
|
56
|
+
function registerDataModelInjectables() {
|
|
57
|
+
const connection = injectables_1.kUtilsInjectables.dbConnection().get();
|
|
58
|
+
(0, assert_1.default)((0, connection_1.isMongoConnection)(connection));
|
|
59
|
+
exports.kRegisterDataModels.utils(new MongoDataProviderUtils_1.MongoDataProviderUtils());
|
|
60
|
+
}
|
|
61
|
+
exports.registerDataModelInjectables = registerDataModelInjectables;
|
|
62
|
+
function registerSemanticModelInjectables() {
|
|
63
|
+
exports.kRegisterSemanticModels.utils(new utils_2.DataSemanticProviderUtils());
|
|
64
|
+
}
|
|
65
|
+
exports.registerSemanticModelInjectables = registerSemanticModelInjectables;
|
|
66
|
+
function registerUtilsInjectables() {
|
|
67
|
+
var _a, _b, _c, _d, _e, _f;
|
|
68
|
+
const suppliedConfig = (0, config_1.getSuppliedConfig)();
|
|
69
|
+
const promiseStore = new softkave_js_utils_1.PromiseStore();
|
|
70
|
+
exports.kRegisterUtilsInjectables.suppliedConfig(suppliedConfig);
|
|
71
|
+
exports.kRegisterUtilsInjectables.promises(promiseStore);
|
|
72
|
+
exports.kRegisterUtilsInjectables.disposables(new softkave_js_utils_1.DisposablesStore(promiseStore));
|
|
73
|
+
exports.kRegisterUtilsInjectables.asyncLocalStorage(asyncLocalStorage_1.kAsyncLocalStorageUtils);
|
|
74
|
+
exports.kRegisterUtilsInjectables.locks(new softkave_js_utils_1.LockStore());
|
|
75
|
+
exports.kRegisterUtilsInjectables.session(new SessionContext_1.default());
|
|
76
|
+
exports.kRegisterUtilsInjectables.logger((0, utils_1.getLogger)(suppliedConfig.loggerType));
|
|
77
|
+
(0, assert_1.default)(suppliedConfig.mongoDbURI);
|
|
78
|
+
(0, assert_1.default)(suppliedConfig.mongoDbDatabaseName);
|
|
79
|
+
exports.kRegisterUtilsInjectables.mongoConnection(new connection_1.MongoDbConnection(suppliedConfig.mongoDbURI, suppliedConfig.mongoDbDatabaseName));
|
|
80
|
+
if (suppliedConfig.emailProvider === config_1.kFimidaraConfigEmailProvider.ses) {
|
|
81
|
+
(0, assert_1.default)((_a = suppliedConfig.awsConfig) === null || _a === void 0 ? void 0 : _a.accessKeyId);
|
|
82
|
+
(0, assert_1.default)((_b = suppliedConfig.awsConfig) === null || _b === void 0 ? void 0 : _b.region);
|
|
83
|
+
(0, assert_1.default)((_c = suppliedConfig.awsConfig) === null || _c === void 0 ? void 0 : _c.secretAccessKey);
|
|
84
|
+
exports.kRegisterUtilsInjectables.email(new SESEmailProviderContext_1.SESEmailProviderContext(suppliedConfig.awsConfig));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
exports.kRegisterUtilsInjectables.email(new NoopEmailProviderContext_1.default());
|
|
88
|
+
}
|
|
89
|
+
if (suppliedConfig.secretsManagerProvider ===
|
|
90
|
+
config_1.kFimidaraConfigSecretsManagerProvider.awsSecretsManager) {
|
|
91
|
+
(0, assert_1.default)((_d = suppliedConfig.awsConfig) === null || _d === void 0 ? void 0 : _d.accessKeyId);
|
|
92
|
+
(0, assert_1.default)((_e = suppliedConfig.awsConfig) === null || _e === void 0 ? void 0 : _e.region);
|
|
93
|
+
(0, assert_1.default)((_f = suppliedConfig.awsConfig) === null || _f === void 0 ? void 0 : _f.secretAccessKey);
|
|
94
|
+
exports.kRegisterUtilsInjectables.secretsManager(new AWSSecretsManagerProvider_1.AWSSecretsManagerProvider(suppliedConfig.awsConfig));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
exports.kRegisterUtilsInjectables.secretsManager(new MemorySecretsManagerProvider_1.MemorySecretsManagerProvider());
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.registerUtilsInjectables = registerUtilsInjectables;
|
|
101
|
+
function registerInjectables() {
|
|
102
|
+
registerUtilsInjectables();
|
|
103
|
+
registerDataModelInjectables();
|
|
104
|
+
registerSemanticModelInjectables();
|
|
105
|
+
}
|
|
106
|
+
exports.registerInjectables = registerInjectables;
|
|
107
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../src/contexts/injection/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoopLogger = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
class NoopLogger {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.log = lodash_1.noop;
|
|
8
|
+
this.error = lodash_1.noop;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.NoopLogger = NoopLogger;
|
|
12
|
+
//# sourceMappingURL=noop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noop.js","sourceRoot":"","sources":["../../../../src/contexts/logger/noop.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAG5B,MAAa,UAAU;IAAvB;QACE,QAAG,GAAiC,aAAI,CAAC;QACzC,UAAK,GAAiC,aAAI,CAAC;IAC7C,CAAC;CAAA;AAHD,gCAGC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DisposableResource } from 'softkave-js-utils';
|
|
2
|
+
import { ValueOf } from 'type-fest';
|
|
3
|
+
export interface Logger extends DisposableResource {
|
|
4
|
+
log: (...args: unknown[]) => void;
|
|
5
|
+
error: (...args: unknown[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const kLoggerTypes: {
|
|
8
|
+
readonly console: "console";
|
|
9
|
+
readonly noop: "noop";
|
|
10
|
+
};
|
|
11
|
+
export type LoggerType = ValueOf<typeof kLoggerTypes>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/contexts/logger/types.ts"],"names":[],"mappings":";;;AAQa,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLogger = void 0;
|
|
4
|
+
const noop_1 = require("./noop");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
function getLogger(type = types_1.kLoggerTypes.noop) {
|
|
7
|
+
switch (type) {
|
|
8
|
+
case types_1.kLoggerTypes.console:
|
|
9
|
+
return console;
|
|
10
|
+
case types_1.kLoggerTypes.noop:
|
|
11
|
+
return new noop_1.NoopLogger();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.getLogger = getLogger;
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/contexts/logger/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,mCAAyD;AAEzD,SAAgB,SAAS,CAAC,OAAmB,oBAAY,CAAC,IAAI;IAC5D,QAAQ,IAAI,EAAE;QACZ,KAAK,oBAAY,CAAC,OAAO;YACvB,OAAO,OAAO,CAAC;QACjB,KAAK,oBAAY,CAAC,IAAI;YACpB,OAAO,IAAI,iBAAU,EAAE,CAAC;KAC3B;AACH,CAAC;AAPD,8BAOC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AnyObject } from 'softkave-js-utils';
|
|
2
|
+
import { Agent } from '../../definitions/agent';
|
|
3
|
+
import { Resource } from '../../definitions/resource';
|
|
4
|
+
import { BaseDataProvider, DataQuery } from '../data/types';
|
|
5
|
+
import { SemanticBaseProviderType, SemanticProviderMutationOpOptions, SemanticProviderMutationTxnOptions, SemanticProviderOpOptions, SemanticProviderQueryListRunOptions, SemanticProviderQueryRunOptions } from './types';
|
|
6
|
+
export declare class DataSemanticBaseProvider<T extends Resource> implements SemanticBaseProviderType<T> {
|
|
7
|
+
protected data: BaseDataProvider<T, DataQuery<T>>;
|
|
8
|
+
protected assertFn: (item?: T | null) => asserts item;
|
|
9
|
+
constructor(data: BaseDataProvider<T, DataQuery<T>>, assertFn: (item?: T | null) => asserts item);
|
|
10
|
+
insertItem(item: T | T[], opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
11
|
+
getOneById(id: string, opts?: SemanticProviderQueryRunOptions<T> | undefined): Promise<T | null>;
|
|
12
|
+
existsById(id: string, opts?: SemanticProviderOpOptions | undefined): Promise<boolean>;
|
|
13
|
+
updateOneById(id: string, update: Partial<T>, opts: SemanticProviderMutationOpOptions): Promise<void>;
|
|
14
|
+
updateManyByQuery(query: DataQuery<T>, update: Partial<T>, opts: SemanticProviderMutationOpOptions): Promise<void>;
|
|
15
|
+
getAndUpdateOneById(id: string, update: Partial<T>, opts: SemanticProviderMutationOpOptions & SemanticProviderQueryRunOptions<T>): Promise<T | null>;
|
|
16
|
+
deleteManyByIdList(idList: string[], opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
17
|
+
softDeleteManyByIdList(idList: string[], agent: Agent, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
18
|
+
deleteOneById(id: string, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
19
|
+
countManyByIdList(idList: string[], opts?: SemanticProviderOpOptions | undefined): Promise<number>;
|
|
20
|
+
getManyByIdList(idList: string[], opts?: SemanticProviderQueryListRunOptions<T> | undefined): Promise<T[]>;
|
|
21
|
+
countByQuery(query: DataQuery<T>, opts?: SemanticProviderOpOptions | undefined): Promise<number>;
|
|
22
|
+
getManyByQuery(query: DataQuery<T>, opts?: SemanticProviderQueryListRunOptions<T> | undefined): Promise<T[]>;
|
|
23
|
+
assertGetOneByQuery(query: DataQuery<T>, opts?: SemanticProviderQueryRunOptions<T> | undefined): Promise<T>;
|
|
24
|
+
existsByQuery(query: DataQuery<T>, opts?: SemanticProviderOpOptions | undefined): Promise<boolean>;
|
|
25
|
+
getOneByQuery(query: DataQuery<T>, opts?: SemanticProviderQueryRunOptions<T> | undefined): Promise<T | null>;
|
|
26
|
+
deleteManyByQuery(query: DataQuery<T>, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
27
|
+
protected softDeleteManyByQuery(query: DataQuery<AnyObject>, agent: Agent, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSemanticBaseProvider = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const softkave_js_utils_1 = require("softkave-js-utils");
|
|
6
|
+
function mergeIsDeletedIntoQuery(q01, includeDeleted, isDeleted) {
|
|
7
|
+
var _a;
|
|
8
|
+
return (0, lodash_1.merge)({}, q01, {
|
|
9
|
+
isDeleted: (_a = q01.isDeleted) !== null && _a !== void 0 ? _a : ((0, lodash_1.isUndefined)(includeDeleted) ? isDeleted !== null && isDeleted !== void 0 ? isDeleted : false : isDeleted),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function mergeIsDeletedIntoQueryList(qList, includeDeleted, isDeleted) {
|
|
13
|
+
return qList === null || qList === void 0 ? void 0 : qList.map(q02 => {
|
|
14
|
+
return mergeIsDeletedIntoQuery(q02, includeDeleted, isDeleted);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function addIsDeletedIntoQuery(q01, includeDeleted, isDeleted) {
|
|
18
|
+
const hasLogicalOps = !!(q01.$and || q01.$nor || q01.$or);
|
|
19
|
+
let q00 = { ...q01 };
|
|
20
|
+
if (hasLogicalOps) {
|
|
21
|
+
q00.$and = mergeIsDeletedIntoQueryList(q01.$and);
|
|
22
|
+
q00.$nor = mergeIsDeletedIntoQueryList(q01.$nor);
|
|
23
|
+
q00.$or = mergeIsDeletedIntoQueryList(q01.$or);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
q00 = mergeIsDeletedIntoQuery(q00, includeDeleted, isDeleted);
|
|
27
|
+
}
|
|
28
|
+
return q00;
|
|
29
|
+
}
|
|
30
|
+
class DataSemanticBaseProvider {
|
|
31
|
+
constructor(data, assertFn) {
|
|
32
|
+
this.data = data;
|
|
33
|
+
this.assertFn = assertFn;
|
|
34
|
+
}
|
|
35
|
+
async insertItem(item, opts) {
|
|
36
|
+
await this.data.insertList((0, softkave_js_utils_1.convertToArray)(item), opts);
|
|
37
|
+
}
|
|
38
|
+
async getOneById(id, opts) {
|
|
39
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: id }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
40
|
+
return (await this.data.getOneByQuery(query, opts));
|
|
41
|
+
}
|
|
42
|
+
async existsById(id, opts) {
|
|
43
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: id }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
44
|
+
return await this.data.existsByQuery(query, opts);
|
|
45
|
+
}
|
|
46
|
+
async updateOneById(id, update, opts) {
|
|
47
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: id }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
48
|
+
return await this.data.updateOneByQuery(query, update, opts);
|
|
49
|
+
}
|
|
50
|
+
async updateManyByQuery(query, update, opts) {
|
|
51
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
52
|
+
return await this.data.updateManyByQuery(query, update, opts);
|
|
53
|
+
}
|
|
54
|
+
async getAndUpdateOneById(id, update, opts) {
|
|
55
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: id }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
56
|
+
const item = await this.data.getAndUpdateOneByQuery(query, update, opts);
|
|
57
|
+
this.assertFn(item);
|
|
58
|
+
return item;
|
|
59
|
+
}
|
|
60
|
+
async deleteManyByIdList(idList, opts) {
|
|
61
|
+
const query = { resourceId: { $in: idList } };
|
|
62
|
+
await this.data.deleteManyByQuery(query, opts);
|
|
63
|
+
}
|
|
64
|
+
async softDeleteManyByIdList(idList, agent, opts) {
|
|
65
|
+
const query = { resourceId: { $in: idList } };
|
|
66
|
+
await this.softDeleteManyByQuery(query, agent, opts);
|
|
67
|
+
}
|
|
68
|
+
async deleteOneById(id, opts) {
|
|
69
|
+
const query = { resourceId: id };
|
|
70
|
+
await this.data.deleteOneByQuery(query, opts);
|
|
71
|
+
}
|
|
72
|
+
async countManyByIdList(idList, opts) {
|
|
73
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: { $in: idList } }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
74
|
+
return await this.data.countByQuery(query, opts);
|
|
75
|
+
}
|
|
76
|
+
async getManyByIdList(idList, opts) {
|
|
77
|
+
const query = mergeIsDeletedIntoQuery({ resourceId: { $in: idList } }, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
78
|
+
return (await this.data.getManyByQuery(query, opts));
|
|
79
|
+
}
|
|
80
|
+
async countByQuery(query, opts) {
|
|
81
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
82
|
+
return await this.data.countByQuery(query, opts);
|
|
83
|
+
}
|
|
84
|
+
async getManyByQuery(query, opts) {
|
|
85
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
86
|
+
return (await this.data.getManyByQuery(query, opts));
|
|
87
|
+
}
|
|
88
|
+
async assertGetOneByQuery(query, opts) {
|
|
89
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
90
|
+
const item = await this.data.getOneByQuery(query, opts);
|
|
91
|
+
this.assertFn(item);
|
|
92
|
+
return item;
|
|
93
|
+
}
|
|
94
|
+
async existsByQuery(query, opts) {
|
|
95
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
96
|
+
return await this.data.existsByQuery(query, opts);
|
|
97
|
+
}
|
|
98
|
+
async getOneByQuery(query, opts) {
|
|
99
|
+
query = addIsDeletedIntoQuery(query, opts === null || opts === void 0 ? void 0 : opts.includeDeleted, opts === null || opts === void 0 ? void 0 : opts.isDeleted);
|
|
100
|
+
return (await this.data.getOneByQuery(query, opts));
|
|
101
|
+
}
|
|
102
|
+
async deleteManyByQuery(query, opts) {
|
|
103
|
+
await this.data.deleteManyByQuery(query, opts);
|
|
104
|
+
}
|
|
105
|
+
async softDeleteManyByQuery(query, agent, opts) {
|
|
106
|
+
const update = {
|
|
107
|
+
isDeleted: true,
|
|
108
|
+
deletedAt: Date.now(),
|
|
109
|
+
deletedBy: agent,
|
|
110
|
+
};
|
|
111
|
+
await this.data.updateManyByQuery(query, update, opts);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.DataSemanticBaseProvider = DataSemanticBaseProvider;
|
|
115
|
+
//# sourceMappingURL=DataSemanticDataAccessBaseProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataSemanticDataAccessBaseProvider.js","sourceRoot":"","sources":["../../../../src/contexts/semantic/DataSemanticDataAccessBaseProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AnyFn } from 'softkave-js-utils';
|
|
2
|
+
import { Agent } from '../../definitions/agent';
|
|
3
|
+
import { Resource } from '../../definitions/resource';
|
|
4
|
+
import { DataProviderOpParams, DataProviderQueryListParams, DataProviderQueryParams, DataQuery } from '../data/types';
|
|
5
|
+
export interface SemanticProviderTxnOptions {
|
|
6
|
+
txn?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface SemanticProviderMutationTxnOptions {
|
|
9
|
+
txn: unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface SemanticProviderOpOptions extends SemanticProviderTxnOptions, DataProviderOpParams {
|
|
12
|
+
includeDeleted?: boolean;
|
|
13
|
+
isDeleted?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SemanticProviderMutationOpOptions extends Omit<SemanticProviderOpOptions, 'txn'>, SemanticProviderMutationTxnOptions {
|
|
16
|
+
}
|
|
17
|
+
export interface SemanticProviderQueryRunOptions<TResource extends Partial<Resource>> extends SemanticProviderOpOptions, DataProviderQueryParams<TResource> {
|
|
18
|
+
}
|
|
19
|
+
export interface SemanticProviderQueryListRunOptions<TResource extends Resource> extends SemanticProviderOpOptions, DataProviderQueryListParams<TResource> {
|
|
20
|
+
}
|
|
21
|
+
export interface SemanticBaseProviderType<TResource extends Resource> {
|
|
22
|
+
insertItem(item: TResource | TResource[], opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
23
|
+
getOneById(id: string, opts?: SemanticProviderQueryRunOptions<TResource>): Promise<TResource | null>;
|
|
24
|
+
getManyByIdList(idList: string[], options?: SemanticProviderQueryListRunOptions<TResource>): Promise<TResource[]>;
|
|
25
|
+
countManyByIdList(idList: string[], opts?: SemanticProviderOpOptions): Promise<number>;
|
|
26
|
+
existsById(id: string, opts?: SemanticProviderOpOptions): Promise<boolean>;
|
|
27
|
+
updateOneById(id: string, update: Partial<TResource>, opts: SemanticProviderMutationOpOptions): Promise<void>;
|
|
28
|
+
updateManyByQuery(query: DataQuery<TResource>, update: Partial<TResource>, opts: SemanticProviderMutationOpOptions): Promise<void>;
|
|
29
|
+
getAndUpdateOneById(id: string, update: Partial<TResource>, opts: SemanticProviderMutationOpOptions & SemanticProviderQueryRunOptions<TResource>): Promise<TResource | null>;
|
|
30
|
+
deleteOneById(id: string, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
31
|
+
deleteManyByIdList(idList: string[], opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
32
|
+
softDeleteManyByIdList(idList: string[], agent: Agent, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
33
|
+
getOneByQuery(query: DataQuery<TResource>, opts?: SemanticProviderQueryRunOptions<TResource>): Promise<TResource | null>;
|
|
34
|
+
getManyByQuery(query: DataQuery<TResource>, options?: SemanticProviderQueryListRunOptions<TResource>): Promise<TResource[]>;
|
|
35
|
+
countByQuery(query: DataQuery<TResource>, opts?: SemanticProviderOpOptions): Promise<number>;
|
|
36
|
+
assertGetOneByQuery(query: DataQuery<TResource>, opts?: SemanticProviderQueryRunOptions<TResource>): Promise<TResource>;
|
|
37
|
+
existsByQuery(query: DataQuery<TResource>, opts?: SemanticProviderOpOptions): Promise<boolean>;
|
|
38
|
+
deleteManyByQuery(query: DataQuery<TResource>, opts: SemanticProviderMutationTxnOptions): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export type SemanticWorkspaceResourceProviderBaseType = Resource & {
|
|
41
|
+
name?: string;
|
|
42
|
+
};
|
|
43
|
+
export interface SemanticProviderUtils {
|
|
44
|
+
useTxnId(txn: unknown): string | undefined;
|
|
45
|
+
withTxn<TResult>(fn: AnyFn<[SemanticProviderMutationTxnOptions], Promise<TResult>>,
|
|
46
|
+
/** Whether or not to reuse an existing txn from async local storage. */
|
|
47
|
+
reuseAsyncLocalTxn: boolean, opts?: SemanticProviderMutationTxnOptions): Promise<TResult>;
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/contexts/semantic/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AnyFn, AnyObject, OrArray, StringKeysOnly } from 'softkave-js-utils';
|
|
2
|
+
import { ComparisonLiteralFieldQueryOps, DataQuery } from '../data/types';
|
|
3
|
+
import { SemanticProviderMutationTxnOptions, SemanticProviderUtils } from './types';
|
|
4
|
+
export declare class DataSemanticProviderUtils implements SemanticProviderUtils {
|
|
5
|
+
useTxnId(txn: unknown): string | undefined;
|
|
6
|
+
withTxn<TResult>(fn: AnyFn<[SemanticProviderMutationTxnOptions], Promise<TResult>>, reuseAsyncLocalTxn?: boolean, opts?: SemanticProviderMutationTxnOptions): Promise<TResult>;
|
|
7
|
+
}
|
|
8
|
+
export declare function getStringListQuery<TData extends AnyObject>(stringList: string[], prefix: keyof TData, op?: '$regex' | '$eq', includeSizeOp?: boolean): DataQuery<TData>;
|
|
9
|
+
export declare function getInAndNinQuery<TData extends Record<string, any>, TKey extends StringKeysOnly<TData> = StringKeysOnly<TData>>(prefix: TKey,
|
|
10
|
+
/** `null` or `undefined` will not go into query. To explicitly handle them,
|
|
11
|
+
* pass `[null]` or `[undefined]` */
|
|
12
|
+
inList: OrArray<TData[TKey]> | undefined,
|
|
13
|
+
/** `null` or `undefined` will not go into query. To explicitly handle them,
|
|
14
|
+
* pass `[null]` or `[undefined]` */
|
|
15
|
+
ninList?: OrArray<TData[TKey]> | undefined): DataQuery<TData>;
|
|
16
|
+
export declare function getIgnoreCaseDataQueryRegExp(str: string): ComparisonLiteralFieldQueryOps<string>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIgnoreCaseDataQueryRegExp = exports.getInAndNinQuery = exports.getStringListQuery = exports.DataSemanticProviderUtils = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const softkave_js_utils_1 = require("softkave-js-utils");
|
|
6
|
+
const assertion_1 = require("../../utils/assertion");
|
|
7
|
+
const injectables_1 = require("../injection/injectables");
|
|
8
|
+
class DataSemanticProviderUtils {
|
|
9
|
+
useTxnId(txn) {
|
|
10
|
+
if (!txn) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const id = txn.__fimidaraTxnId;
|
|
14
|
+
(0, assertion_1.appAssert)(id);
|
|
15
|
+
return id;
|
|
16
|
+
}
|
|
17
|
+
async withTxn(fn, reuseAsyncLocalTxn = true, opts) {
|
|
18
|
+
return await injectables_1.kDataModels.utils().withTxn(async (txn) => {
|
|
19
|
+
if (!txn.__fimidaraTxnId) {
|
|
20
|
+
txn.__fimidaraTxnId = 'txn_' + (0, softkave_js_utils_1.getNewId)();
|
|
21
|
+
}
|
|
22
|
+
return await fn({ txn });
|
|
23
|
+
}, reuseAsyncLocalTxn, opts === null || opts === void 0 ? void 0 : opts.txn);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.DataSemanticProviderUtils = DataSemanticProviderUtils;
|
|
27
|
+
function getStringListQuery(stringList, prefix, op = '$eq', includeSizeOp = false) {
|
|
28
|
+
const query = {};
|
|
29
|
+
if (stringList.length === 0) {
|
|
30
|
+
// MongoDB array queries with `{$all: [], $size: 0}` do not work, so using
|
|
31
|
+
// `{$eq: []}` instead, since that works
|
|
32
|
+
query[prefix] = { $eq: [] };
|
|
33
|
+
return query;
|
|
34
|
+
}
|
|
35
|
+
stringList.reduce((map, name, index) => {
|
|
36
|
+
const key = `${prefix}.${index}`;
|
|
37
|
+
const q = op === '$eq' ? { $eq: name } : getIgnoreCaseDataQueryRegExp(name);
|
|
38
|
+
map[key] = q;
|
|
39
|
+
return map;
|
|
40
|
+
}, query);
|
|
41
|
+
if (includeSizeOp) {
|
|
42
|
+
query[prefix] = { $size: stringList.length };
|
|
43
|
+
}
|
|
44
|
+
return query;
|
|
45
|
+
}
|
|
46
|
+
exports.getStringListQuery = getStringListQuery;
|
|
47
|
+
function getInAndNinQuery(prefix,
|
|
48
|
+
/** `null` or `undefined` will not go into query. To explicitly handle them,
|
|
49
|
+
* pass `[null]` or `[undefined]` */
|
|
50
|
+
inList,
|
|
51
|
+
/** `null` or `undefined` will not go into query. To explicitly handle them,
|
|
52
|
+
* pass `[null]` or `[undefined]` */
|
|
53
|
+
ninList) {
|
|
54
|
+
const inKey = `${prefix}.$in`;
|
|
55
|
+
const ninKey = `${prefix}.$nin`;
|
|
56
|
+
const query = {};
|
|
57
|
+
if (!(0, lodash_1.isNil)(inList))
|
|
58
|
+
(0, lodash_1.set)(query, inKey, (0, softkave_js_utils_1.convertToArray)(inList));
|
|
59
|
+
if (!(0, lodash_1.isNil)(ninList))
|
|
60
|
+
(0, lodash_1.set)(query, ninKey, (0, softkave_js_utils_1.convertToArray)(ninList));
|
|
61
|
+
return query;
|
|
62
|
+
}
|
|
63
|
+
exports.getInAndNinQuery = getInAndNinQuery;
|
|
64
|
+
function getIgnoreCaseDataQueryRegExp(str) {
|
|
65
|
+
return { $regex: `^${str}$`, $options: 'i' };
|
|
66
|
+
}
|
|
67
|
+
exports.getIgnoreCaseDataQueryRegExp = getIgnoreCaseDataQueryRegExp;
|
|
68
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/contexts/semantic/utils.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,yDAO2B;AAC3B,qDAAgD;AAMhD,0DAAqD;AAUrD,MAAa,yBAAyB;IACpC,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,EAAE,GAAI,GAA4B,CAAC,eAAe,CAAC;QACzD,IAAA,qBAAS,EAAC,EAAE,CAAC,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,EAAiE,EACjE,kBAAkB,GAAG,IAAI,EACzB,IAAyC;QAEzC,OAAO,MAAM,yBAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CACtC,KAAK,EAAC,GAAG,EAAC,EAAE;YACV,IAAI,CAAE,GAA4B,CAAC,eAAe,EAAE;gBACjD,GAA4B,CAAC,eAAe,GAAG,MAAM,GAAG,IAAA,4BAAQ,GAAE,CAAC;aACrE;YAED,OAAO,MAAM,EAAE,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;QACzB,CAAC,EACD,kBAAkB,EAClB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CACV,CAAC;IACJ,CAAC;CACF;AA5BD,8DA4BC;AAED,SAAgB,kBAAkB,CAChC,UAAoB,EACpB,MAAmB,EACnB,KAAuB,KAAK,EAC5B,aAAa,GAAG,KAAK;IAErB,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,0EAA0E;QAC1E,wCAAwC;QACxC,KAAK,CAAC,MAAgB,CAAC,GAAG,EAAC,GAAG,EAAE,EAAE,EAAC,CAAC;QACpC,OAAO,KAAK,CAAC;KACd;IAED,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,MAAgB,IAAI,KAAK,EAAE,CAAC;QAC3C,MAAM,CAAC,GACL,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,IAAI,aAAa,EAAE;QACjB,KAAK,CAAC,MAAgB,CAAC,GAAG,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC;KACtD;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA5BD,gDA4BC;AAED,SAAgB,gBAAgB,CAK9B,MAAY;AACZ;oCACoC;AACpC,MAAwC;AACxC;oCACoC;AACpC,OAA0C;IAE1C,MAAM,KAAK,GACT,GAAG,MAAM,MAAe,CAAC;IAC3B,MAAM,MAAM,GACV,GAAG,MAAM,OAAgB,CAAC;IAC5B,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,IAAI,CAAC,IAAA,cAAK,EAAC,MAAM,CAAC;QAAE,IAAA,YAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAA,kCAAc,EAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC;QAAE,IAAA,YAAG,EAAC,KAAK,EAAE,MAAM,EAAE,IAAA,kCAAc,EAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,OAAO,KAAK,CAAC;AACf,CAAC;AAvBD,4CAuBC;AAED,SAAgB,4BAA4B,CAC1C,GAAW;IAEX,OAAO,EAAC,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC,CAAC;AAC7C,CAAC;AAJD,oEAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/contexts/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnyObject } from 'softkave-js-utils';
|
|
2
|
+
export interface Agent {
|
|
3
|
+
agentId: string;
|
|
4
|
+
agentType: string;
|
|
5
|
+
agentTokenId: string;
|
|
6
|
+
}
|
|
7
|
+
export type PublicAgent = Pick<Agent, 'agentId' | 'agentType'>;
|
|
8
|
+
export type ConvertAgentToPublicAgent<T> = {
|
|
9
|
+
[K in keyof T]: NonNullable<T[K]> extends Agent ? PublicAgent : NonNullable<T[K]> extends AnyObject ? ConvertAgentToPublicAgent<NonNullable<T[K]>> : T[K];
|
|
10
|
+
};
|