@spytecgps/nova-orm 1.4.190 → 1.4.191

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.
@@ -1 +1 @@
1
- "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("../types/enums.js"),a=require("../utils/boolToNumberTransformer.js");exports.ClientConfiguration=class ClientConfiguration{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled;usagePlanTier},e.__decorate([t.Column("int",{primary:!0,name:"clientId"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"clientId",void 0),e.__decorate([t.Column("double",{name:"movementTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"movementTripThreshold",void 0),e.__decorate([t.Column("double",{name:"stopTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"stopTripThreshold",void 0),e.__decorate([t.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"mapUpdateMode",void 0),e.__decorate([t.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"maxUsersAllowed",void 0),e.__decorate([t.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"ssoDomain",void 0),e.__decorate([t.Column("json",{name:"ssoMetadata",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"ssoMetadata",void 0),e.__decorate([t.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"assetProfileStatusLabels",void 0),e.__decorate([t.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"apiKeyId",void 0),e.__decorate([t.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'1'"}),e.__metadata("design:type",Boolean)],exports.ClientConfiguration.prototype,"assetProfileStatusLabelsEnabled",void 0),e.__decorate([t.Column("enum",{name:"usagePlanTier",enum:o.UsagePlanTier,default:o.UsagePlanTier.Standard}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"usagePlanTier",void 0),exports.ClientConfiguration=e.__decorate([t.Entity("clientConfiguration",{schema:"nova"}),t.Index("ssoDomain",["ssoDomain"],{unique:!0})],exports.ClientConfiguration);
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("../types/enums.js"),a=require("../utils/boolToNumberTransformer.js");exports.ClientConfiguration=class ClientConfiguration{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled;usagePlanTier;businessHoursEnabled;businessHours},e.__decorate([t.Column("int",{primary:!0,name:"clientId"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"clientId",void 0),e.__decorate([t.Column("double",{name:"movementTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"movementTripThreshold",void 0),e.__decorate([t.Column("double",{name:"stopTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"stopTripThreshold",void 0),e.__decorate([t.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"mapUpdateMode",void 0),e.__decorate([t.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"maxUsersAllowed",void 0),e.__decorate([t.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"ssoDomain",void 0),e.__decorate([t.Column("json",{name:"ssoMetadata",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"ssoMetadata",void 0),e.__decorate([t.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"assetProfileStatusLabels",void 0),e.__decorate([t.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"apiKeyId",void 0),e.__decorate([t.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'1'"}),e.__metadata("design:type",Boolean)],exports.ClientConfiguration.prototype,"assetProfileStatusLabelsEnabled",void 0),e.__decorate([t.Column("enum",{name:"usagePlanTier",enum:o.UsagePlanTier,default:o.UsagePlanTier.Standard}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"usagePlanTier",void 0),e.__decorate([t.Column("tinyint",{name:"businessHoursEnabled",nullable:!0,width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'0'"}),e.__metadata("design:type",Boolean)],exports.ClientConfiguration.prototype,"businessHoursEnabled",void 0),e.__decorate([t.Column("json",{name:"businessHours",nullable:!0}),e.__metadata("design:type",Array)],exports.ClientConfiguration.prototype,"businessHours",void 0),exports.ClientConfiguration=e.__decorate([t.Entity("clientConfiguration",{schema:"nova"}),t.Index("ssoDomain",["ssoDomain"],{unique:!0})],exports.ClientConfiguration);
@@ -1 +1 @@
1
- "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm");exports.Organization=class Organization{id;name;description;websiteUrl;address;mainContact;businessHours},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Organization.prototype,"id",void 0),e.__decorate([t.Column("varchar",{name:"name",length:255}),e.__metadata("design:type",String)],exports.Organization.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"description",nullable:!0,length:500}),e.__metadata("design:type",String)],exports.Organization.prototype,"description",void 0),e.__decorate([t.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),e.__metadata("design:type",String)],exports.Organization.prototype,"websiteUrl",void 0),e.__decorate([t.Column("varchar",{name:"address",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Organization.prototype,"address",void 0),e.__decorate([t.Column("binary",{name:"mainContact",length:16}),e.__metadata("design:type",Buffer)],exports.Organization.prototype,"mainContact",void 0),e.__decorate([t.Column("json",{name:"businessHours",nullable:!0}),e.__metadata("design:type",Array)],exports.Organization.prototype,"businessHours",void 0),exports.Organization=e.__decorate([t.Entity("organization",{schema:"nova"})],exports.Organization);
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm");exports.Organization=class Organization{id;name;description;websiteUrl;address;mainContact},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Organization.prototype,"id",void 0),e.__decorate([t.Column("varchar",{name:"name",length:255}),e.__metadata("design:type",String)],exports.Organization.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"description",nullable:!0,length:500}),e.__metadata("design:type",String)],exports.Organization.prototype,"description",void 0),e.__decorate([t.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),e.__metadata("design:type",String)],exports.Organization.prototype,"websiteUrl",void 0),e.__decorate([t.Column("varchar",{name:"address",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Organization.prototype,"address",void 0),e.__decorate([t.Column("binary",{name:"mainContact",length:16}),e.__metadata("design:type",Buffer)],exports.Organization.prototype,"mainContact",void 0),exports.Organization=e.__decorate([t.Entity("organization",{schema:"nova"})],exports.Organization);
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var _1684483704434AddLowerCaseIndex = require('../1684483704434-addLowerCaseIndex.js');
4
3
  var _1684483705001UpdateSecurityUserViewsV1 = require('../1684483705001-updateSecurityUserViewsV1.js');
4
+ var _1684483704434AddLowerCaseIndex = require('../1684483704434-addLowerCaseIndex.js');
5
5
  var _1684483705002UpdateSecurityUserViewsV2 = require('../1684483705002-updateSecurityUserViewsV2.js');
6
6
 
7
7
 
8
8
 
9
- exports.addLowerCaseIndex1684483704434 = _1684483704434AddLowerCaseIndex.addLowerCaseIndex1684483704434;
10
9
  exports.updateSecurityUserViewsV11684483705001 = _1684483705001UpdateSecurityUserViewsV1.updateSecurityUserViewsV11684483705001;
10
+ exports.addLowerCaseIndex1684483704434 = _1684483704434AddLowerCaseIndex.addLowerCaseIndex1684483704434;
11
11
  exports.updateSecurityUserViewsV21684483705002 = _1684483705002UpdateSecurityUserViewsV2.updateSecurityUserViewsV21684483705002;
@@ -1 +1 @@
1
- "use strict";var e=require("typeorm"),r=require("./entities/index.js"),t=require("./subscribers/index.js"),a=require("./utils/queryLogger.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(i,o,s){this.logger=o;const n=[];for(const e in r){const t=r[e];n.push(t)}const c=[];for(const e in t){const r=t[e];c.push(r)}const u={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new e.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new a.QueryLogger(this.logger,i.logging),entities:n,subscribers:c,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...i,replication:{master:{...u,...i},slaves:s?[{...u,...s}]:[{...u,...i}],defaultMode:i.replicationMode??"master"}})}async connect(){this.dataSource.isInitialized||await this.dataSource.initialize()}async disconnect(){try{this.dataSource.isInitialized&&await this.dataSource.destroy()}catch(e){this.logger.error({error:e},"Failed to close connection to database")}}getRepository(e){return this.dataSource.getRepository(e)}async query(e,r){return this.dataSource.query(e,r,null)}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(e,r,t){try{this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release()}}async safeQuery3(e,r,t,{replicationMode:a,tag:i}={}){let o;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),o=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const i=this.dataSource.createQueryBuilder(e,r,o);return await t(i)}catch(e){throw this.logger.error({error:e},i?i+" ":"Error while executing query"),e}finally{o&&await o.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}};
1
+ "use strict";var e=require("typeorm"),r=require("./entities/index.js"),t=require("./subscribers/index.js"),a=require("./utils/queryLogger.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(i,o,s){this.logger=o;const n=[];for(const e in r){const t=r[e];n.push(t)}const c=[];for(const e in t){const r=t[e];c.push(r)}const u={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new e.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new a.QueryLogger(this.logger,i.logging),entities:n,subscribers:c,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...i,replication:{master:{...u,...i},slaves:s?[{...u,...s}]:[{...u,...i}],defaultMode:i.replicationMode??"master"}})}async connect(){this.dataSource.isInitialized||await this.dataSource.initialize()}async disconnect(){try{this.dataSource.isInitialized&&await this.dataSource.destroy()}catch(e){this.logger.error({error:e},"Failed to close connection to database")}}getRepository(e){return this.dataSource.getRepository(e)}async query(e,r){return this.dataSource.query(e,r,null)}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(e,r,t){try{this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release()}}async safeQuery3(e,r,t,{replicationMode:a,tag:i}={}){let o;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),o=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const s=this.dataSource.createQueryBuilder(e,r,o);i&&s.comment(i);return await t(s)}catch(e){throw this.logger.error({error:e},i?i+" ":"Error while executing query"),e}finally{o&&await o.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}};
@@ -1,4 +1,10 @@
1
1
  import { UsagePlanTier } from '../types/enums';
2
+ export interface BusinessHours {
3
+ name: string;
4
+ daysOfWeek: number;
5
+ startTime: string;
6
+ endTime: string;
7
+ }
2
8
  export declare class ClientConfiguration {
3
9
  clientId: number;
4
10
  movementTripThreshold: number | null;
@@ -11,4 +17,6 @@ export declare class ClientConfiguration {
11
17
  apiKeyId?: string;
12
18
  assetProfileStatusLabelsEnabled: boolean;
13
19
  usagePlanTier: UsagePlanTier;
20
+ businessHoursEnabled: boolean;
21
+ businessHours: BusinessHours[] | null;
14
22
  }
@@ -1,9 +1,3 @@
1
- export interface BusinessHours {
2
- name: string;
3
- daysOfWeek: number;
4
- startTime: string;
5
- endTime: string;
6
- }
7
1
  export declare class Organization {
8
2
  id: number;
9
3
  name: string;
@@ -11,5 +5,4 @@ export declare class Organization {
11
5
  websiteUrl: string | null;
12
6
  address: string | null;
13
7
  mainContact: Buffer;
14
- businessHours: BusinessHours[] | null;
15
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.4.190",
3
+ "version": "1.4.191",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/schema.sql CHANGED
@@ -1,6 +1,6 @@
1
- -- nova-orm-schema-checksum: 70501d4d1826c685a636efa2d1b3b67f
1
+ -- nova-orm-schema-checksum: 1e96c9e06ca5fce279afc415a246de3e
2
2
  -- Nova ORM Schema Dump
3
- -- Generated at: 2026-03-06T08:35:54.041Z
3
+ -- Generated at: 2026-03-08T15:41:26.584Z
4
4
 
5
5
  SET FOREIGN_KEY_CHECKS = 0;
6
6
 
@@ -1090,6 +1090,8 @@ CREATE TABLE `clientConfiguration` (
1090
1090
  `apiKeyId` varchar(64) DEFAULT NULL,
1091
1091
  `assetProfileStatusLabelsEnabled` tinyint(1) NOT NULL DEFAULT '1',
1092
1092
  `usagePlanTier` enum('STANDARD','EXTENDED') NOT NULL DEFAULT 'STANDARD',
1093
+ `businessHoursEnabled` tinyint(1) DEFAULT '0',
1094
+ `businessHours` json DEFAULT NULL,
1093
1095
  PRIMARY KEY (`clientId`),
1094
1096
  UNIQUE KEY `ssoDomain` (`ssoDomain`)
1095
1097
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
@@ -2333,7 +2335,6 @@ CREATE TABLE `organization` (
2333
2335
  `websiteUrl` varchar(1000) DEFAULT NULL,
2334
2336
  `address` varchar(255) DEFAULT NULL,
2335
2337
  `mainContact` binary(16) NOT NULL,
2336
- `businessHours` json DEFAULT NULL,
2337
2338
  PRIMARY KEY (`id`)
2338
2339
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2339
2340