diff --git a/components/persistor/HISTORY.md b/components/persistor/HISTORY.md index 3ed5e643..d12945ea 100644 --- a/components/persistor/HISTORY.md +++ b/components/persistor/HISTORY.md @@ -1,3 +1,5 @@ +## 9.0.0 +* target es2020 ## 8.0.2 * bump nconf version due to security vulnerability. ## 8.0.1 diff --git a/components/persistor/lib/index.ts b/components/persistor/lib/index.ts index 156af524..e5f982b6 100644 --- a/components/persistor/lib/index.ts +++ b/components/persistor/lib/index.ts @@ -51,7 +51,8 @@ */ var nextId = 1; var objectTemplate; -var supertype = require('@haventech/supertype'); +import ObjectTemplate from '@haventech/supertype'; +import { Supertype, supertypeClass, property } from '@haventech/supertype'; module.exports = function (_ObjectTemplate, _RemoteObjectTemplate, baseClassForPersist) { //@TODO: Why is ObjectTemplate and RemoteObjectTemplate here? var PersistObjectTemplate = baseClassForPersist._createObject(); @@ -82,20 +83,20 @@ module.exports.supertypeClass = function (target) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } - return supertype.supertypeClass(target, objectTemplate) + return supertypeClass(target, objectTemplate) }; module.exports.Supertype = function () { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } - return supertype.Supertype.call(this, objectTemplate); + return Reflect.construct( Supertype, [objectTemplate], this.constructor ); }; -module.exports.Supertype.prototype = supertype.Supertype.prototype; +module.exports.Supertype.prototype = Supertype.prototype; module.exports.property = function (props) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } - return supertype.property(props, objectTemplate); + return property(props); } var __extends = (this && this.__extends) || (function () { @@ -120,7 +121,6 @@ module.exports.Persistable = function (Base) { }(Base)); } -let ObjectTemplate = supertype.default; module.exports.Persistor = { create: function () {return module.exports(ObjectTemplate, null, ObjectTemplate)} } diff --git a/components/persistor/package-lock.json b/components/persistor/package-lock.json index 70cc34dd..db70dedd 100644 --- a/components/persistor/package-lock.json +++ b/components/persistor/package-lock.json @@ -1,12 +1,12 @@ { "name": "@haventech/persistor", - "version": "8.0.2", + "version": "9.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@haventech/persistor", - "version": "8.0.2", + "version": "9.0.0", "dependencies": { "aws-sdk": "2.x", "bluebird": "x", @@ -19,7 +19,7 @@ "uuid": "8.3.2" }, "devDependencies": { - "@haventech/supertype": "5.x", + "@haventech/supertype": "6.0.0-beta.4", "@types/bluebird": "*", "@types/chai": "4.3.0", "@types/mocha": "9.1.0", @@ -42,7 +42,7 @@ "node": ">=14.x" }, "peerDependencies": { - "@haventech/supertype": "5.x" + "@haventech/supertype": "6.0.0-beta.4" } }, "node_modules/@babel/code-frame": { @@ -425,9 +425,9 @@ "dev": true }, "node_modules/@haventech/supertype": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-5.0.1.tgz", - "integrity": "sha512-1STVwT+ec437+XtO0BoODNjzrZMSs6yDyqcAwr98zLfFg+q+zowllfhnZAoviaWG5iYgxTIKahRVrnrZDiog8A==", + "version": "6.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-6.0.0-beta.4.tgz", + "integrity": "sha512-wvN9H/A/B8OexbT/HQJyXXejfS67ueEwonSFPiMdbWNJFz8xQnsyPFC1LzRH/Thv84y9VwsV7i2M4U4i0BNv2w==", "dev": true, "dependencies": { "@haventech/amorphic-contracts": "^0.2.0", @@ -5820,9 +5820,9 @@ "dev": true }, "@haventech/supertype": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-5.0.1.tgz", - "integrity": "sha512-1STVwT+ec437+XtO0BoODNjzrZMSs6yDyqcAwr98zLfFg+q+zowllfhnZAoviaWG5iYgxTIKahRVrnrZDiog8A==", + "version": "6.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-6.0.0-beta.4.tgz", + "integrity": "sha512-wvN9H/A/B8OexbT/HQJyXXejfS67ueEwonSFPiMdbWNJFz8xQnsyPFC1LzRH/Thv84y9VwsV7i2M4U4i0BNv2w==", "dev": true, "requires": { "@haventech/amorphic-contracts": "^0.2.0", diff --git a/components/persistor/package.json b/components/persistor/package.json index d34577b3..5252aa57 100644 --- a/components/persistor/package.json +++ b/components/persistor/package.json @@ -2,7 +2,7 @@ "name": "@haventech/persistor", "description": "A subclass of supertype that serializes to and reconstitutes from MongoDB or SQL databases", "homepage": "https://github.com/haven-life/persistor", - "version": "8.0.2", + "version": "9.0.0", "main": "dist/index.js", "types": "dist/index.d.ts", "dependencies": { @@ -17,10 +17,10 @@ "uuid": "8.3.2" }, "peerDependencies": { - "@haventech/supertype": "5.x" + "@haventech/supertype": "6.0.0-beta.4" }, "devDependencies": { - "@haventech/supertype": "5.x", + "@haventech/supertype": "6.0.0-beta.4", "@types/bluebird": "*", "@types/chai": "4.3.0", "@types/mocha": "9.1.0", @@ -64,7 +64,7 @@ "test:config": "mocha test/config --exit", "test:example": "mocha test/example --exit", "test:ts": "npm run compile:tests && npm run test:compiled:js", - "test:ts:register": "mocha --compilers ts:ts-node/register test/supertype/persist_banking_pgsql.ts", + "test:ts:register": "mocha --require ts-node/register test/supertype/persist_banking_pgsql.ts", "test:ts:debug": "mocha --inspect-brk --compilers ts:ts-node/register test/supertype/persist_banking_pgsql.ts" }, "bugs": { diff --git a/components/persistor/test/supertype/persist_banking_pgsql.ts b/components/persistor/test/supertype/persist_banking_pgsql.ts index 7f818443..97346522 100644 --- a/components/persistor/test/supertype/persist_banking_pgsql.ts +++ b/components/persistor/test/supertype/persist_banking_pgsql.ts @@ -16,9 +16,11 @@ import * as _ from 'underscore'; import {Customer} from "./Customer"; import {ExtendedCustomer} from "./ExtendedCustomer"; import Promise = require('bluebird'); +import * as sinon from 'sinon'; import {Role} from "./Role"; import {Account} from "./Account"; import {Transaction, Xfer} from './Transaction'; +import { SupertypeLogger } from '@haventech/supertype'; var schema = { Customer: { @@ -1010,10 +1012,12 @@ describe('typescript tests: Banking from pgsql Example persist_banking_pgsql', f sam = new Customer('Sam', 'M', 'Elsamman'); var oldSendToLog = sam.amorphic.logger; - sam.amorphic.logger.sendToLog = function sendToLog(level, obj) { - var str = sam.amorphic.logger.prettyPrint(level, obj).replace(/.*: /, ''); + let sendToLogStub = sinon.stub(SupertypeLogger.prototype, 'sendToLog'); + sendToLogStub.callsFake((level, obj) => { + let str = sendToLogStub.lastCall.thisValue.prettyPrint(level, obj).replace(/.*: /, ''); + console.log(str); output += str.replace(/[\r\n ]/g, ''); - }; + }); sam.amorphic.logger.startContext({name: '@haventech/supertype'}); sam.amorphic.logger.warn({foo: 'bar1'}, 'Yippie'); diff --git a/components/persistor/tsconfig.base.json b/components/persistor/tsconfig.base.json index 0f8371a7..84102f3d 100644 --- a/components/persistor/tsconfig.base.json +++ b/components/persistor/tsconfig.base.json @@ -1,8 +1,8 @@ { "compilerOptions": { "module": "commonjs", - "target": "es5", - "lib": ["es2015", "es2017"], + "target": "es2020", + "lib": ["es2015", "es2017", "es2020"], "noImplicitAny": false, "sourceMap": false, "typeRoots": [ diff --git a/components/semotus/HISTORY.md b/components/semotus/HISTORY.md index 5d2c0358..6a62b22f 100644 --- a/components/semotus/HISTORY.md +++ b/components/semotus/HISTORY.md @@ -1,3 +1,5 @@ +## 7.0.0 +* target es2020 ## 6.0.1 * bump nconf version due to security vulnerability. ## 6.0.0 diff --git a/components/semotus/package-lock.json b/components/semotus/package-lock.json index efb291c4..af41897d 100644 --- a/components/semotus/package-lock.json +++ b/components/semotus/package-lock.json @@ -1,17 +1,17 @@ { "name": "@haventech/semotus", - "version": "6.0.1", + "version": "7.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@haventech/semotus", - "version": "6.0.1", + "version": "7.0.0", "dependencies": { "q": "1.x" }, "devDependencies": { - "@haventech/supertype": "5.x", + "@haventech/supertype": "6.0.0-beta.4", "@types/chai": "4.3.0", "@types/express": "4.17.13", "@types/express-serve-static-core": "4.17.21", @@ -32,7 +32,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "@haventech/supertype": "5.x" + "@haventech/supertype": "6.0.0-beta.4" } }, "node_modules/@babel/code-frame": { @@ -459,9 +459,9 @@ "dev": true }, "node_modules/@haventech/supertype": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-5.0.1.tgz", - "integrity": "sha512-1STVwT+ec437+XtO0BoODNjzrZMSs6yDyqcAwr98zLfFg+q+zowllfhnZAoviaWG5iYgxTIKahRVrnrZDiog8A==", + "version": "6.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-6.0.0-beta.4.tgz", + "integrity": "sha512-wvN9H/A/B8OexbT/HQJyXXejfS67ueEwonSFPiMdbWNJFz8xQnsyPFC1LzRH/Thv84y9VwsV7i2M4U4i0BNv2w==", "dev": true, "dependencies": { "@haventech/amorphic-contracts": "^0.2.0", @@ -4461,9 +4461,9 @@ "dev": true }, "@haventech/supertype": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-5.0.1.tgz", - "integrity": "sha512-1STVwT+ec437+XtO0BoODNjzrZMSs6yDyqcAwr98zLfFg+q+zowllfhnZAoviaWG5iYgxTIKahRVrnrZDiog8A==", + "version": "6.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@haventech/supertype/-/supertype-6.0.0-beta.4.tgz", + "integrity": "sha512-wvN9H/A/B8OexbT/HQJyXXejfS67ueEwonSFPiMdbWNJFz8xQnsyPFC1LzRH/Thv84y9VwsV7i2M4U4i0BNv2w==", "dev": true, "requires": { "@haventech/amorphic-contracts": "^0.2.0", diff --git a/components/semotus/package.json b/components/semotus/package.json index 95269349..7d0d4204 100644 --- a/components/semotus/package.json +++ b/components/semotus/package.json @@ -1,6 +1,6 @@ { "name": "@haventech/semotus", - "version": "6.0.1", + "version": "7.0.0", "description": "A subclass of supertype that synchronizes sets of objects.", "homepage": "https://github.com/haven-life/amorphic-framework", "bugs": { @@ -27,7 +27,7 @@ "debugTSTests": "mocha --inspect-brk test/supertype/semotus.js", "prepublishOnly": "npm run build", "setup": "npm install", - "test": "mocha -- test/types.js test/javascript/semotus.js", + "test": "mocha -- test/javascript/types.js test/javascript/semotus.js", "test:ts": "npm run test:ts:supertype && npm run test:ts:syncstates", "test:ts:compiled": "mocha test/supertype/semotus.js", "test:ts:supertype": "mocha -p ./test/supertype/tsconfig.json test/supertype/semotus.ts --require ts-node/register", @@ -37,7 +37,7 @@ "test:ts:syncstates:both": "mocha ./test/syncStates/tsconfig.json test/syncStates/BaseCases_BothApps.js -t 100000" }, "devDependencies": { - "@haventech/supertype": "5.x", + "@haventech/supertype": "6.0.0-beta.4", "@types/chai": "4.3.0", "@types/express": "4.17.13", "@types/mocha": "9.1.0", @@ -55,7 +55,7 @@ "underscore": "1.13.2" }, "peerDependencies": { - "@haventech/supertype": "5.x" + "@haventech/supertype": "6.0.0-beta.4" }, "dependencies": { "q": "1.x" diff --git a/components/semotus/src/decorators.ts b/components/semotus/src/decorators.ts index bbb18602..d34ce3f7 100644 --- a/components/semotus/src/decorators.ts +++ b/components/semotus/src/decorators.ts @@ -87,7 +87,7 @@ export function supertypeClass(objectTemplate, SupertypeModule, target): any { } export function Supertype(template, objectTemplate, Supertype) { - return Supertype.call(template, objectTemplate); + return Reflect.construct( Supertype, [objectTemplate], template.constructor ); } export function property(objectTemplate, SupertypeModule, props, toClientRuleSet, toServerRuleSet) { diff --git a/components/semotus/src/tsconfig.json b/components/semotus/src/tsconfig.json index 87809665..a9bcd17f 100644 --- a/components/semotus/src/tsconfig.json +++ b/components/semotus/src/tsconfig.json @@ -3,10 +3,11 @@ "module": "commonjs", "allowJs": true, "moduleResolution": "node", - "target": "es5", + "target": "es2020", "lib": [ "es2015", "es2017", + "es2020", "dom" ], "noImplicitAny": false, diff --git a/components/semotus/test/supertype/semotus.ts b/components/semotus/test/supertype/semotus.ts index 2382348a..236ca0d7 100644 --- a/components/semotus/test/supertype/semotus.ts +++ b/components/semotus/test/supertype/semotus.ts @@ -31,6 +31,8 @@ ServerObjectTemplate.__dictionary__ = RemoteObjectTemplate.__dictionary__; import {expect} from 'chai'; import { mockRequest, mockResponse } from 'mock-req-res'; +import { SupertypeLogger } from '@haventech/supertype'; +import * as sinon from 'sinon'; let serverMockReq, serverMockRes, clientMockReq, clientMockRes; @@ -94,10 +96,11 @@ describe('Typescript Banking Example', function () { var sam = clientController.sam; var oldSendToLog = sam.amorphic.logger; - sam.amorphic.logger.sendToLog = function sendToLog(level, obj) { - var str = sam.amorphic.logger.prettyPrint(level, obj).replace(/.*: /, ''); + let sendToLogStub = sinon.stub(SupertypeLogger.prototype, 'sendToLog'); + sendToLogStub.callsFake((level, obj) => { + let str = sendToLogStub.lastCall.thisValue.prettyPrint(level, obj).replace(/.*: /, ''); output += str.replace(/[\r\n ]/g, ''); - }; + }); sam.amorphic.logger.startContext({name: 'supertype'}); sam.amorphic.logger.warn({foo: 'bar1'}, 'Yippie'); diff --git a/components/semotus/test/supertype/tsconfig.json b/components/semotus/test/supertype/tsconfig.json index 7b601c06..e1010f0b 100644 --- a/components/semotus/test/supertype/tsconfig.json +++ b/components/semotus/test/supertype/tsconfig.json @@ -2,10 +2,11 @@ "compilerOptions": { "module": "commonjs", "moduleResolution": "node", - "target": "es5", + "target": "es2020", "lib": [ "es2015", - "es2017" + "es2017", + "es2020" ], "noImplicitAny": false, "typeRoots": [ diff --git a/components/semotus/test/syncStates/tsconfig.json b/components/semotus/test/syncStates/tsconfig.json index e0587102..e1010f0b 100644 --- a/components/semotus/test/syncStates/tsconfig.json +++ b/components/semotus/test/syncStates/tsconfig.json @@ -2,11 +2,11 @@ "compilerOptions": { "module": "commonjs", "moduleResolution": "node", - "target": "es5", + "target": "es2020", "lib": [ "es2015", - "ES2015", - "es2017" + "es2017", + "es2020" ], "noImplicitAny": false, "typeRoots": [