@spytecgps/nova-orm 1.0.77 → 1.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/repositories/deviceTypeFeature/bulkCreateDeviceTypeFeature.d.ts +5 -0
  3. package/dist/repositories/deviceTypeFeature/bulkCreateDeviceTypeFeature.js +20 -0
  4. package/dist/repositories/deviceTypeFeature/bulkCreateDeviceTypeFeature.js.map +1 -0
  5. package/dist/repositories/deviceTypeFeature/deleteDeviceTypeFeature.d.ts +4 -0
  6. package/dist/repositories/deviceTypeFeature/deleteDeviceTypeFeature.js +22 -0
  7. package/dist/repositories/deviceTypeFeature/deleteDeviceTypeFeature.js.map +1 -0
  8. package/dist/repositories/deviceTypeFeature/getDeviceTypeFeatures.d.ts +4 -0
  9. package/dist/repositories/deviceTypeFeature/getDeviceTypeFeatures.js +25 -0
  10. package/dist/repositories/deviceTypeFeature/getDeviceTypeFeatures.js.map +1 -0
  11. package/dist/repositories/deviceTypeFeature/index.d.ts +27 -0
  12. package/dist/repositories/deviceTypeFeature/index.js +48 -0
  13. package/dist/repositories/deviceTypeFeature/index.js.map +1 -0
  14. package/dist/repositories/features/createFeature.d.ts +5 -0
  15. package/dist/repositories/features/createFeature.js +21 -0
  16. package/dist/repositories/features/createFeature.js.map +1 -0
  17. package/dist/repositories/features/deleteFeature.d.ts +4 -0
  18. package/dist/repositories/features/deleteFeature.js +17 -0
  19. package/dist/repositories/features/deleteFeature.js.map +1 -0
  20. package/dist/repositories/features/getFeatures.d.ts +4 -0
  21. package/dist/repositories/features/getFeatures.js +25 -0
  22. package/dist/repositories/features/getFeatures.js.map +1 -0
  23. package/dist/repositories/features/index.d.ts +33 -0
  24. package/dist/repositories/features/index.js +61 -0
  25. package/dist/repositories/features/index.js.map +1 -0
  26. package/dist/repositories/features/upsertFeature.d.ts +4 -0
  27. package/dist/repositories/features/upsertFeature.js +23 -0
  28. package/dist/repositories/features/upsertFeature.js.map +1 -0
  29. package/dist/repositories/index.d.ts +3 -1
  30. package/dist/repositories/index.js +3 -1
  31. package/dist/repositories/index.js.map +1 -1
  32. package/dist/types/deviceTypeFeature.d.ts +23 -0
  33. package/dist/types/deviceTypeFeature.js +4 -0
  34. package/dist/types/deviceTypeFeature.js.map +1 -0
  35. package/dist/types/feature.d.ts +20 -0
  36. package/dist/types/feature.js +3 -0
  37. package/dist/types/feature.js.map +1 -0
  38. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { BulkCreateDeviceTypeFeatureParams } from '../../types/deviceTypeFeature';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const bulkCreateDeviceTypeFeature: (novaDataSource: NovaDataSource, params: BulkCreateDeviceTypeFeatureParams, logger: Logger) => Promise<DeviceTypeFeature[]>;
@@ -0,0 +1,20 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ import { requiredBulkCreateDeviceTypeFeatureParamsAttributes, } from '../../types/deviceTypeFeature';
3
+ import { anyAttributeInArrayIsNull } from '../../utils/paramsValidators';
4
+ export const bulkCreateDeviceTypeFeature = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeInArrayIsNull(params.items, requiredBulkCreateDeviceTypeFeatureParamsAttributes)) {
6
+ logger.warn({ params }, 'DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature missing required parameters');
7
+ return [];
8
+ }
9
+ return novaDataSource.safeQuery(async (safeDataSource) => {
10
+ const deviceTypeFeatureRepository = safeDataSource.getRepository(DeviceTypeFeature);
11
+ const newFeatures = params.items.map(item => ({
12
+ deviceTypeId: item.deviceTypeId,
13
+ featureKey: item.featureKey,
14
+ value: item.value,
15
+ }));
16
+ const createdFeature = await deviceTypeFeatureRepository.save(newFeatures);
17
+ return createdFeature ?? [];
18
+ }, 'DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature error');
19
+ };
20
+ //# sourceMappingURL=bulkCreateDeviceTypeFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulkCreateDeviceTypeFeature.js","sourceRoot":"","sources":["../../../src/repositories/deviceTypeFeature/bulkCreateDeviceTypeFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAEL,mDAAmD,GACpD,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAExE,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,cAA8B,EAC9B,MAAyC,EACzC,MAAc,EACd,EAAE;IACF,IACE,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,mDAAmD,CAAC,EAC5F;QACA,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,sFAAsF,CACvF,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAEnE,EAAE;QACF,MAAM,2BAA2B,GAAG,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAEnF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAClC,IAAI,CAAC,EAAE,CACL,CAAC;YACC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;SACI,CAAA,CAC1B,CAAA;QAED,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAE1E,OAAO,cAAc,IAAI,EAAE,CAAA;IAC7B,CAAC,EAAE,gEAAgE,CAAC,CAAA;AACtE,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { DeleteDeviceTypeFeatureParams } from '../../types/deviceTypeFeature';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const deleteDeviceTypeFeature: (novaDataSource: NovaDataSource, params: DeleteDeviceTypeFeatureParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,22 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ import { oneRequiredDeleteDeviceTypeFeatureParamsAttributes, } from '../../types/deviceTypeFeature';
3
+ import { allAttributesAreNull } from '../../utils/paramsValidators';
4
+ export const deleteDeviceTypeFeature = async (novaDataSource, params, logger) => {
5
+ if (allAttributesAreNull(params.filters, oneRequiredDeleteDeviceTypeFeatureParamsAttributes)) {
6
+ logger.warn({ params }, 'DeviceTypeFeatureRepository::deleteDeviceTypeFeature missing required parameters');
7
+ return false;
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const featureRepository = dataSource.getRepository(DeviceTypeFeature);
11
+ const result = await featureRepository
12
+ .createQueryBuilder()
13
+ .delete()
14
+ .where('COALESCE(:deviceTypeId, deviceTypeId) = deviceTypeId AND COALESCE(:featureKey, featureKey) = featureKey', {
15
+ deviceTypeId: params.filters.deviceTypeId,
16
+ featureKey: params.filters.featureKey,
17
+ })
18
+ .execute();
19
+ return result.affected > 0;
20
+ }, 'FeatureRepository::deleteFeature');
21
+ };
22
+ //# sourceMappingURL=deleteDeviceTypeFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteDeviceTypeFeature.js","sourceRoot":"","sources":["../../../src/repositories/deviceTypeFeature/deleteDeviceTypeFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAEL,kDAAkD,GACnD,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,cAA8B,EAC9B,MAAqC,EACrC,MAAc,EACI,EAAE;IACpB,IAAI,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,kDAAkD,CAAC,EAAE;QAC5F,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,kFAAkF,CACnF,CAAA;QACD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAErE,MAAM,MAAM,GAAG,MAAM,iBAAiB;aACnC,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,KAAK,CACJ,yGAAyG,EACzG;YACE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;YACzC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;SACtC,CACF;aACA,OAAO,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { GetDeviceTypeFeaturesParams } from '../../types/deviceTypeFeature';
4
+ export declare const getDeviceTypeFeatures: (novaDataSource: NovaDataSource, params: GetDeviceTypeFeaturesParams) => Promise<DeviceTypeFeature[]>;
@@ -0,0 +1,25 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ export const getDeviceTypeFeatures = async (novaDataSource, params) => {
3
+ // Force the query to run on master or slave
4
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
5
+ return novaDataSource.safeQuery(async (safeDataSource, queryRunner) => {
6
+ const deviceTypeFeatureRepository = safeDataSource.getRepository(DeviceTypeFeature);
7
+ const queryBuilder = deviceTypeFeatureRepository.createQueryBuilder('deviceTypeFeature');
8
+ if (queryRunner) {
9
+ queryBuilder.setQueryRunner(queryRunner);
10
+ }
11
+ if (params?.filters?.deviceTypeIds?.length) {
12
+ queryBuilder.where('deviceTypeFeature.deviceTypeId IN (:deviceTypeIdList)', {
13
+ deviceTypeIdList: params.filters.deviceTypeIds,
14
+ });
15
+ }
16
+ if (params?.filters?.featureKeys?.length) {
17
+ queryBuilder.andWhere('deviceTypeFeature.featureKey IN (:featureKeyList)', {
18
+ featureKeyList: params.filters.featureKeys,
19
+ });
20
+ }
21
+ const deviceTypeFeatures = await queryBuilder.getMany();
22
+ return deviceTypeFeatures?.length ? deviceTypeFeatures : [];
23
+ }, 'FeatureRepository::getFeatures error', dbQueryRunner);
24
+ };
25
+ //# sourceMappingURL=getDeviceTypeFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDeviceTypeFeatures.js","sourceRoot":"","sources":["../../../src/repositories/deviceTypeFeature/getDeviceTypeFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAIlD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,cAA8B,EAC9B,MAAmC,EACL,EAAE;IAChC,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EACH,cAA8B,EAC9B,WAAyB,EACK,EAAE;QAChC,MAAM,2BAA2B,GAAG,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAEnF,MAAM,YAAY,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAExF,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE;YAC1C,YAAY,CAAC,KAAK,CAAC,uDAAuD,EAAE;gBAC1E,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;aAC/C,CAAC,CAAA;SACH;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;YACxC,YAAY,CAAC,QAAQ,CAAC,mDAAmD,EAAE;gBACzE,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;aAC3C,CAAC,CAAA;SACH;QAED,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAEvD,OAAO,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,CAAC,EACD,sCAAsC,EACtC,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { DeviceTypeFeature } from '../../entities';
2
+ import { BulkCreateDeviceTypeFeatureParams, DeleteDeviceTypeFeatureParams, GetDeviceTypeFeaturesParams } from '../../types/deviceTypeFeature';
3
+ import { BaseRepository } from '../baseRepository';
4
+ /**
5
+ * DeviceTypeFeatureRepository, used to interact with the deviceTypeFeature entity
6
+ * @extends BaseRepository
7
+ */
8
+ export declare class DeviceTypeFeatureRepository extends BaseRepository {
9
+ /**
10
+ * Create a device type feature
11
+ * @param {BulkCreateDeviceTypeFeatureParams} params containing information to create a device type feature
12
+ * @returns {DeviceTypeFeature} the created device type feature
13
+ * */
14
+ bulkCreateDeviceTypeFeature(params: BulkCreateDeviceTypeFeatureParams): Promise<DeviceTypeFeature[]>;
15
+ /**
16
+ * Get device type features
17
+ * @param {GetDeviceTypeFeaturesParams} params containing information to get device type features
18
+ * @returns {DeviceTypeFeature[]} the device type features
19
+ */
20
+ getDeviceTypeFeatures(params?: GetDeviceTypeFeaturesParams): Promise<DeviceTypeFeature[]>;
21
+ /**
22
+ * Delete device type feature
23
+ * @param {DeleteDeviceTypeFeatureParams} params containing information to delete the device type feature
24
+ * @returns {boolean} if the device type feature were deleted
25
+ * */
26
+ deleteDeviceTypeFeature(params: DeleteDeviceTypeFeatureParams): Promise<boolean>;
27
+ }
@@ -0,0 +1,48 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { bulkCreateDeviceTypeFeature } from './bulkCreateDeviceTypeFeature';
4
+ import { deleteDeviceTypeFeature } from './deleteDeviceTypeFeature';
5
+ import { getDeviceTypeFeatures } from './getDeviceTypeFeatures';
6
+ /**
7
+ * DeviceTypeFeatureRepository, used to interact with the deviceTypeFeature entity
8
+ * @extends BaseRepository
9
+ */
10
+ export class DeviceTypeFeatureRepository extends BaseRepository {
11
+ /**
12
+ * Create a device type feature
13
+ * @param {BulkCreateDeviceTypeFeatureParams} params containing information to create a device type feature
14
+ * @returns {DeviceTypeFeature} the created device type feature
15
+ * */
16
+ async bulkCreateDeviceTypeFeature(params) {
17
+ this.logger.trace(params, `DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature started with params`);
18
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
19
+ const result = await bulkCreateDeviceTypeFeature(novaDataSource, params, this.logger);
20
+ this.logger.trace(result, 'DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature result');
21
+ return result;
22
+ }
23
+ /**
24
+ * Get device type features
25
+ * @param {GetDeviceTypeFeaturesParams} params containing information to get device type features
26
+ * @returns {DeviceTypeFeature[]} the device type features
27
+ */
28
+ async getDeviceTypeFeatures(params) {
29
+ this.logger.trace(params, `DeviceTypeFeatureRepository::getDeviceTypeFeatures started with params`);
30
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
31
+ const result = await getDeviceTypeFeatures(novaDataSource, params);
32
+ this.logger.trace(result, 'DeviceTypeFeatureRepository::getDeviceTypeFeatures result');
33
+ return result;
34
+ }
35
+ /**
36
+ * Delete device type feature
37
+ * @param {DeleteDeviceTypeFeatureParams} params containing information to delete the device type feature
38
+ * @returns {boolean} if the device type feature were deleted
39
+ * */
40
+ async deleteDeviceTypeFeature(params) {
41
+ this.logger.trace(params, `DeviceTypeFeatureRepository::deleteDeviceTypeFeature started with params`);
42
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
43
+ const result = await deleteDeviceTypeFeature(novaDataSource, params, this.logger);
44
+ this.logger.trace({ result }, 'DeviceTypeFeatureRepository::deleteDeviceTypeFeature result');
45
+ return result;
46
+ }
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceTypeFeature/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;;GAGG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAAc;IAC7D;;;;SAIK;IACL,KAAK,CAAC,2BAA2B,CAC/B,MAAyC;QAEzC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,MAAM,EACN,8EAA8E,CAC/E,CAAA;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAErF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iEAAiE,CAAC,CAAA;QAE5F,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAoC;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,MAAM,EACN,wEAAwE,CACzE,CAAA;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAElE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2DAA2D,CAAC,CAAA;QAEtF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;SAIK;IACL,KAAK,CAAC,uBAAuB,CAAC,MAAqC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,MAAM,EACN,0EAA0E,CAC3E,CAAA;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,6DAA6D,CAAC,CAAA;QAE5F,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { Feature } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { CreateFeatureParams } from '../../types/feature';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const createFeature: (novaDataSource: NovaDataSource, params: CreateFeatureParams, logger: Logger) => Promise<Feature>;
@@ -0,0 +1,21 @@
1
+ import { Feature } from '../../entities';
2
+ import { requiredCreateFeatureParamsAttributes } from '../../types/feature';
3
+ import { anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ export const createFeature = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeIsNull(params, requiredCreateFeatureParamsAttributes)) {
6
+ logger.warn({ params }, 'FeatureRepository::createFeature missing required parameters');
7
+ return null;
8
+ }
9
+ return novaDataSource.safeQuery(async (safeDataSource) => {
10
+ const featuresRepository = safeDataSource.getRepository(Feature);
11
+ const newFeature = {
12
+ key: params.key,
13
+ name: params.name,
14
+ description: params.description,
15
+ tags: params.tags,
16
+ };
17
+ const createdFeature = await featuresRepository.save(newFeature);
18
+ return createdFeature ?? null;
19
+ }, 'FeatureRepository::createFeature error');
20
+ };
21
+ //# sourceMappingURL=createFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFeature.js","sourceRoot":"","sources":["../../../src/repositories/features/createFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAuB,qCAAqC,EAAE,MAAM,qBAAqB,CAAA;AAEhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACd,EAAE;IACF,IAAI,kBAAkB,CAAsB,MAAM,EAAE,qCAAqC,CAAC,EAAE;QAC1F,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAoB,EAAE;QACzF,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAEhE,MAAM,UAAU,GAAG;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SACP,CAAA;QAEZ,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEhE,OAAO,cAAc,IAAI,IAAI,CAAA;IAC/B,CAAC,EAAE,wCAAwC,CAAC,CAAA;AAC9C,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { DeleteFeatureParams } from '../../types/feature';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const deleteFeature: (novaDataSource: NovaDataSource, params: DeleteFeatureParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,17 @@
1
+ import { Feature } from '../../entities';
2
+ export const deleteFeature = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.key) {
4
+ logger.warn({ params }, 'FeatureRepository::deleteFeature missing required parameters');
5
+ return false;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const featureRepository = dataSource.getRepository(Feature);
9
+ const result = await featureRepository
10
+ .createQueryBuilder()
11
+ .delete()
12
+ .where('key = :key', { key: params.filters.key })
13
+ .execute();
14
+ return result.affected > 0;
15
+ }, 'FeatureRepository::deleteFeature');
16
+ };
17
+ //# sourceMappingURL=deleteFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteFeature.js","sourceRoot":"","sources":["../../../src/repositories/features/deleteFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKxC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,MAAM,GAAG,MAAM,iBAAiB;aACnC,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aAChD,OAAO,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Feature } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { GetFeatureParams } from '../../types/feature';
4
+ export declare const getFeatures: (novaDataSource: NovaDataSource, params: GetFeatureParams) => Promise<Feature[]>;
@@ -0,0 +1,25 @@
1
+ import { Feature } from '../../entities';
2
+ export const getFeatures = async (novaDataSource, params) => {
3
+ // Force the query to run on master or slave
4
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
5
+ return novaDataSource.safeQuery(async (safeDataSource, queryRunner) => {
6
+ const featureRepository = safeDataSource.getRepository(Feature);
7
+ const queryBuilder = featureRepository.createQueryBuilder('feature');
8
+ if (queryRunner) {
9
+ queryBuilder.setQueryRunner(queryRunner);
10
+ }
11
+ if (params?.filters?.keys?.length) {
12
+ queryBuilder.where('feature.key IN (:keyList)', {
13
+ keyList: params.filters.keys,
14
+ });
15
+ }
16
+ if (params?.filters?.names?.length) {
17
+ queryBuilder.andWhere('feature.name IN (:nameList)', {
18
+ nameList: params.filters.names,
19
+ });
20
+ }
21
+ const features = await queryBuilder.getMany();
22
+ return features?.length ? features : [];
23
+ }, 'FeatureRepository::getFeatures error', dbQueryRunner);
24
+ };
25
+ //# sourceMappingURL=getFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeatures.js","sourceRoot":"","sources":["../../../src/repositories/features/getFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,cAA8B,EAC9B,MAAwB,EACJ,EAAE;IACtB,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,cAA8B,EAAE,WAAyB,EAAsB,EAAE;QACtF,MAAM,iBAAiB,GAAG,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE/D,MAAM,YAAY,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAEpE,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YACjC,YAAY,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBAC9C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;aAC7B,CAAC,CAAA;SACH;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;YAClC,YAAY,CAAC,QAAQ,CAAC,6BAA6B,EAAE;gBACnD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;aAC/B,CAAC,CAAA;SACH;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE7C,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACzC,CAAC,EACD,sCAAsC,EACtC,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { Feature } from '../../entities';
2
+ import { CreateFeatureParams, DeleteFeatureParams, GetFeatureParams } from '../../types/feature';
3
+ import { BaseRepository } from '../baseRepository';
4
+ /**
5
+ * FeatureRepository, used to interact with the feature entity
6
+ * @extends BaseRepository
7
+ */
8
+ export declare class FeatureRepository extends BaseRepository {
9
+ /**
10
+ * Create a feature
11
+ * @param {CreateFeatureParams} params containing information to create a feature
12
+ * @returns {Feature} the created feature
13
+ * */
14
+ createFeature(params: CreateFeatureParams): Promise<Feature>;
15
+ /**
16
+ * Get features
17
+ * @param {GetFeatureParams} params containing information to get features
18
+ * @returns {Feature[]} the features
19
+ */
20
+ getFeatures(params?: GetFeatureParams): Promise<Feature[]>;
21
+ /**
22
+ * Upsert a feature
23
+ * @param {CreateFeatureParams} params containing information to update a feature
24
+ * @returns {Feature} the updated feature
25
+ * */
26
+ upsertFeature(params: CreateFeatureParams): Promise<boolean>;
27
+ /**
28
+ * Delete a feature
29
+ * @param {DeleteFeatureParams} params containing information to delete a feature
30
+ * @returns {boolean} if the feature was deleted
31
+ * */
32
+ deleteFeature(params: DeleteFeatureParams): Promise<boolean>;
33
+ }
@@ -0,0 +1,61 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { createFeature } from './createFeature';
4
+ import { deleteFeature } from './deleteFeature';
5
+ import { getFeatures } from './getFeatures';
6
+ import { upsertFeature } from './upsertFeature';
7
+ /**
8
+ * FeatureRepository, used to interact with the feature entity
9
+ * @extends BaseRepository
10
+ */
11
+ export class FeatureRepository extends BaseRepository {
12
+ /**
13
+ * Create a feature
14
+ * @param {CreateFeatureParams} params containing information to create a feature
15
+ * @returns {Feature} the created feature
16
+ * */
17
+ async createFeature(params) {
18
+ this.logger.trace(params, `FeatureRepository::createFeature started with params`);
19
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
20
+ const result = await createFeature(novaDataSource, params, this.logger);
21
+ this.logger.trace(result, 'FeatureRepository::createFeature result');
22
+ return result;
23
+ }
24
+ /**
25
+ * Get features
26
+ * @param {GetFeatureParams} params containing information to get features
27
+ * @returns {Feature[]} the features
28
+ */
29
+ async getFeatures(params) {
30
+ this.logger.trace(params, `FeatureRepository::getFeatures started with params`);
31
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
32
+ const result = await getFeatures(novaDataSource, params);
33
+ this.logger.trace(result, 'FeatureRepository::getFeatures result');
34
+ return result;
35
+ }
36
+ /**
37
+ * Upsert a feature
38
+ * @param {CreateFeatureParams} params containing information to update a feature
39
+ * @returns {Feature} the updated feature
40
+ * */
41
+ async upsertFeature(params) {
42
+ this.logger.trace(params, `FeatureRepository::upsertFeature started with params`);
43
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
44
+ const result = await upsertFeature(novaDataSource, params, this.logger);
45
+ this.logger.trace({ result }, 'FeatureRepository::upsertFeature result');
46
+ return result;
47
+ }
48
+ /**
49
+ * Delete a feature
50
+ * @param {DeleteFeatureParams} params containing information to delete a feature
51
+ * @returns {boolean} if the feature was deleted
52
+ * */
53
+ async deleteFeature(params) {
54
+ this.logger.trace(params, `FeatureRepository::deleteFeature started with params`);
55
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
56
+ const result = await deleteFeature(novaDataSource, params, this.logger);
57
+ this.logger.trace({ result }, 'FeatureRepository::deleteFeature result');
58
+ return result;
59
+ }
60
+ }
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/features/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACnD;;;;SAIK;IACL,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAA;QAEpE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oDAAoD,CAAC,CAAA;QAE/E,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAExD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAA;QAElE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;SAIK;IACL,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;SAIK;IACL,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { CreateFeatureParams } from '../../types/feature';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const upsertFeature: (novaDataSource: NovaDataSource, params: CreateFeatureParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,23 @@
1
+ import { Feature } from '../../entities';
2
+ import { requiredCreateFeatureParamsAttributes } from '../../types/feature';
3
+ import { anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ export const upsertFeature = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeIsNull(params, requiredCreateFeatureParamsAttributes)) {
6
+ logger.warn({ params }, 'FeatureRepository::upsertFeature missing required parameters');
7
+ return false;
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const featureRepository = dataSource.getRepository(Feature);
11
+ const feature = {
12
+ key: params.key,
13
+ name: params.name,
14
+ description: params.description,
15
+ tags: params.tags,
16
+ };
17
+ const result = await featureRepository.upsert(feature, {
18
+ conflictPaths: ['key'],
19
+ });
20
+ return result?.raw?.affectedRows > 0;
21
+ }, 'FeatureRepository::upsertFeature');
22
+ };
23
+ //# sourceMappingURL=upsertFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertFeature.js","sourceRoot":"","sources":["../../../src/repositories/features/upsertFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAuB,qCAAqC,EAAE,MAAM,qBAAqB,CAAA;AAEhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACI,EAAE;IACpB,IAAI,kBAAkB,CAAsB,MAAM,EAAE,qCAAqC,CAAC,EAAE;QAC1F,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SACP,CAAA;QAEZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE;YACrD,aAAa,EAAE,CAAC,KAAK,CAAC;SACvB,CAAC,CAAA;QAEF,OAAO,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,CAAA;IACtC,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -15,7 +15,9 @@ import { DeviceBehaviorsRepository } from './deviceBehaviors';
15
15
  import { DevicePairingsRepository } from './devicePairings';
16
16
  import { DevicesRepository } from './devices';
17
17
  import { DeviceStatusRepository } from './deviceStatus';
18
+ import { DeviceTypeFeatureRepository } from './deviceTypeFeature';
18
19
  import { EntityTagsRepository } from './entityTags';
20
+ import { FeatureRepository } from './features';
19
21
  import { FirmwaresRepository } from './firmwares';
20
22
  import { LatestUserAppInfoRepository } from './latestUserAppInfo';
21
23
  import { LiveLinksRepository } from './liveLinks';
@@ -34,4 +36,4 @@ import { UserInvitationsRepository } from './userInvitations';
34
36
  import { UserRatingRequestsRepository } from './userRatingRequests';
35
37
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
36
38
  import { UsersRepository } from './users';
37
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, EntityTagsRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
39
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
@@ -15,7 +15,9 @@ import { DeviceBehaviorsRepository } from './deviceBehaviors';
15
15
  import { DevicePairingsRepository } from './devicePairings';
16
16
  import { DevicesRepository } from './devices';
17
17
  import { DeviceStatusRepository } from './deviceStatus';
18
+ import { DeviceTypeFeatureRepository } from './deviceTypeFeature';
18
19
  import { EntityTagsRepository } from './entityTags';
20
+ import { FeatureRepository } from './features';
19
21
  import { FirmwaresRepository } from './firmwares';
20
22
  import { LatestUserAppInfoRepository } from './latestUserAppInfo';
21
23
  import { LiveLinksRepository } from './liveLinks';
@@ -34,5 +36,5 @@ import { UserInvitationsRepository } from './userInvitations';
34
36
  import { UserRatingRequestsRepository } from './userRatingRequests';
35
37
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
36
38
  import { UsersRepository } from './users';
37
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, EntityTagsRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
39
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
38
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { BaseSelectQueryParams } from './common';
2
+ export declare const requiredBulkCreateDeviceTypeFeatureParamsAttributes: string[];
3
+ export interface BulkCreateDeviceTypeFeatureParams {
4
+ items: {
5
+ deviceTypeId: number;
6
+ featureKey: string;
7
+ value?: string | null;
8
+ }[];
9
+ }
10
+ export declare const oneRequiredGetDeviceTypeFeaturesParamsAttributes: string[];
11
+ export interface GetDeviceTypeFeaturesParams extends BaseSelectQueryParams {
12
+ filters: {
13
+ deviceTypeIds?: number[];
14
+ featureKeys?: string[];
15
+ };
16
+ }
17
+ export declare const oneRequiredDeleteDeviceTypeFeatureParamsAttributes: string[];
18
+ export interface DeleteDeviceTypeFeatureParams {
19
+ filters: {
20
+ deviceTypeId?: number;
21
+ featureKey?: string;
22
+ };
23
+ }
@@ -0,0 +1,4 @@
1
+ export const requiredBulkCreateDeviceTypeFeatureParamsAttributes = ['deviceTypeId', 'featureKey'];
2
+ export const oneRequiredGetDeviceTypeFeaturesParamsAttributes = ['deviceTypeId', 'featureKey'];
3
+ export const oneRequiredDeleteDeviceTypeFeatureParamsAttributes = ['deviceTypeId', 'featureKey'];
4
+ //# sourceMappingURL=deviceTypeFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTypeFeature.js","sourceRoot":"","sources":["../../src/types/deviceTypeFeature.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mDAAmD,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;AASjG,MAAM,CAAC,MAAM,gDAAgD,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;AAQ9F,MAAM,CAAC,MAAM,kDAAkD,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { BaseSelectQueryParams } from './common';
2
+ export declare const requiredCreateFeatureParamsAttributes: string[];
3
+ export interface CreateFeatureParams {
4
+ key: string;
5
+ name: string;
6
+ description?: string | null;
7
+ tags?: string | null;
8
+ }
9
+ export declare const oneRequiredGetFeatureParamsAttributes: string[];
10
+ export interface GetFeatureParams extends BaseSelectQueryParams {
11
+ filters: {
12
+ keys?: string[];
13
+ names?: string[];
14
+ };
15
+ }
16
+ export interface DeleteFeatureParams {
17
+ filters: {
18
+ key: string;
19
+ };
20
+ }
@@ -0,0 +1,3 @@
1
+ export const requiredCreateFeatureParamsAttributes = ['key', 'name'];
2
+ export const oneRequiredGetFeatureParamsAttributes = ['keys', 'names'];
3
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/types/feature.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAQpE,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.77",
3
+ "version": "1.0.78",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",