Compare commits

...

22 Commits

Author SHA1 Message Date
ba38dae64f 2.0.12 2022-12-28 19:51:09 +01:00
69e862a6cf fix(core): update 2022-12-28 19:51:09 +01:00
4562ac355b 2.0.11 2022-12-28 14:02:15 +01:00
b029dc191e fix(core): update 2022-12-28 14:02:14 +01:00
2640275d04 2.0.10 2022-12-28 13:52:17 +01:00
7bbcc91300 fix(core): update 2022-12-28 13:52:16 +01:00
da39d52975 2.0.9 2022-12-28 13:51:41 +01:00
307469312f fix(core): update 2022-12-28 13:51:40 +01:00
0f3ff2b611 2.0.8 2022-12-28 13:49:03 +01:00
bce82d49b6 fix(core): update 2022-12-28 13:49:03 +01:00
0b10913995 2.0.7 2022-08-01 15:00:07 +02:00
7048585702 fix(core): update 2022-08-01 15:00:06 +02:00
92697bad82 2.0.6 2022-03-25 00:30:31 +01:00
e1475a3342 fix(core): update 2022-03-25 00:30:31 +01:00
e3c58e7fc0 2.0.5 2022-03-24 23:29:04 +01:00
32d60fff0d fix(core): update 2022-03-24 23:29:03 +01:00
f33b64d625 2.0.4 2022-03-24 21:56:26 +01:00
6ee70ecafa 2.0.3 2022-03-24 20:26:03 +01:00
6f3700adc0 2.0.2 2022-03-24 20:17:04 +01:00
3648f12358 fix(core): update 2022-03-24 20:17:04 +01:00
c239eaa9d5 2.0.1 2022-03-24 12:52:29 +01:00
75bd7a9175 fix(core): update 2022-03-24 12:52:28 +01:00
16 changed files with 4224 additions and 18483 deletions

View File

@ -13,31 +13,24 @@ stages:
- metadata
before_script:
- npm install -g @shipzone/npmci
- pnpm install -g pnpm
- pnpm install -g @shipzone/npmci
- npmci npm prepare
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
# ====================
# security stage
# ====================
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
- npmci command npm config set registry https://registry.npmjs.org
- npmci command pnpm audit --audit-level=high --prod
tags:
- lossless
- docker
allow_failure: true
@ -45,11 +38,10 @@ auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
- npmci command pnpm audit --audit-level=high --dev
tags:
- lossless
- docker
allow_failure: true
@ -60,7 +52,6 @@ auditDevDependencies:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
@ -71,10 +62,9 @@ testStable:
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
- npmci npm build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
@ -100,10 +90,9 @@ codequality:
only:
- tags
script:
- npmci command npm install -g tslint typescript
- npmci command npm install -g typescript
- npmci npm prepare
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- lossless
- docker
@ -123,11 +112,9 @@ trigger:
pages:
stage: metadata
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command tsdoc
- npmci command npm run buildDocs
tags:
- lossless
- docker

View File

@ -22,6 +22,5 @@
}
}
}
],
"typescript.tsdk": "node_modules/typescript/lib"
]
}

18394
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,14 @@
{
"name": "@pushrocks/smartsocket",
"version": "2.0.0",
"version": "2.0.12",
"description": "easy and secure websocket communication",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": {
"test": "(tstest test/)",
"build": "(tsbuild --web --allowimplicitany --skiplibcheck && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)"
"build": "(tsbuild --web --allowimplicitany && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)",
"buildDocs": "tsdoc"
},
"repository": {
"type": "git",
@ -20,29 +21,28 @@
},
"homepage": "https://gitlab.com/pushrocks/smartsocket#README",
"dependencies": {
"@apiglobal/typedrequest-interfaces": "^1.0.15",
"@pushrocks/isohash": "^1.0.2",
"@apiglobal/typedrequest-interfaces": "^2.0.1",
"@pushrocks/isohash": "^2.0.0",
"@pushrocks/isounique": "^1.0.5",
"@pushrocks/lik": "^5.0.4",
"@pushrocks/lik": "^6.0.0",
"@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartenv": "^4.0.16",
"@pushrocks/smartexpress": "^3.0.108",
"@pushrocks/smartjson": "^4.0.6",
"@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartenv": "^5.0.4",
"@pushrocks/smartexpress": "^4.0.18",
"@pushrocks/smartjson": "^5.0.1",
"@pushrocks/smartlog": "^3.0.1",
"@pushrocks/smartpromise": "^3.1.7",
"@pushrocks/smartrx": "^2.0.25",
"@pushrocks/smarttime": "^3.0.45",
"socket.io": "^4.4.1",
"socket.io-client": "^4.4.1"
"@pushrocks/smartrx": "^3.0.0",
"@pushrocks/smarttime": "^4.0.0",
"socket.io": "^4.5.1",
"socket.io-client": "^4.5.1"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.50",
"@gitzone/tsrun": "^1.2.31",
"@gitzone/tstest": "^1.0.67",
"@pushrocks/tapbundle": "^5.0.2",
"@types/node": "^17.0.21",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
"@gitzone/tsbuild": "^2.1.63",
"@gitzone/tsbundle": "^2.0.7",
"@gitzone/tsrun": "^1.2.37",
"@gitzone/tstest": "^1.0.72",
"@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.6.3"
},
"private": false,
"files": [

4146
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,6 @@ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](htt
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartsocket)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartsocket)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartsocket)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage
@ -116,7 +115,6 @@ We are always happy for code contributions. If you are not the code contributing
For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
## Legal
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -33,7 +33,6 @@ tap.test('Should accept an smartExpressServer as server', async () => {
await myseServer.start();
});
// class SocketFunction
tap.test('should register a new Function', async () => {
testSocketFunction1 = new smartsocket.SocketFunction({

View File

@ -143,9 +143,10 @@ tap.test('should be able to locate a connection tag after reconnect', async (too
});
// terminate
tap.test('should close the server', async () => {
tap.test('should close the server', async (tools) => {
await testSmartsocketClient.stop();
await testSmartsocket.stop();
tools.delayFor(1000).then(() => process.exit(0));
});
tap.start();

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@pushrocks/smartsocket',
version: '2.0.12',
description: 'easy and secure websocket communication'
}

View File

@ -46,8 +46,8 @@ export class Smartsocket {
* starts smartsocket
*/
public async start() {
const socketIoModule = this.smartenv.getSafeNodeModule('socket.io');
this.io = socketIoModule(await this.socketServer.getServerForSocketIo());
const socketIoModule = await this.smartenv.getSafeNodeModule('socket.io');
this.io = new socketIoModule.Server(await this.socketServer.getServerForSocketIo());
await this.socketServer.start();
this.io.on('connection', (socketArg) => {
this._handleSocketConnection(socketArg);
@ -61,7 +61,10 @@ export class Smartsocket {
await plugins.smartdelay.delayFor(1000);
this.socketConnections.forEach((socketObjectArg: SocketConnection) => {
if (socketObjectArg) {
logger.log('info', `disconnecting socket with >>alias ${socketObjectArg.alias} due to server stop...`);
logger.log(
'info',
`disconnecting socket with >>alias ${socketObjectArg.alias} due to server stop...`
);
socketObjectArg.disconnect();
}
});

View File

@ -95,9 +95,12 @@ export class SmartsocketClient {
nodeModuleName: 'socket.io-client',
webUrlArg: 'https://cdn.jsdelivr.net/npm/socket.io-client@4/dist/socket.io.js',
getFunction: () => {
return (globalThis as any).io;
const socketIoBrowserModule = (globalThis as any).io;
console.log('loaded socket.io for browser');
return socketIoBrowserModule;
},
});
console.log(socketIoClient);
logger.log('info', 'trying to connect...');
const socketUrl = `${this.serverUrl}:${this.serverPort}`;
this.socketConnection = new SocketConnection({

View File

@ -161,11 +161,10 @@ export class SocketConnection {
this.socket.on('function', (dataArg: ISocketRequestDataObject<any>) => {
// check if requested function is available to the socket's scope
// logger.log('info', 'function request received');
const referencedFunction: SocketFunction<any> = this.smartsocketRef.socketFunctions.findSync(
(socketFunctionArg) => {
const referencedFunction: SocketFunction<any> =
this.smartsocketRef.socketFunctions.findSync((socketFunctionArg) => {
return socketFunctionArg.name === dataArg.funcCallData.funcName;
}
);
});
if (referencedFunction) {
// logger.log('ok', 'function in access scope');
const localSocketRequest = new SocketRequest(this.smartsocketRef, {
@ -197,7 +196,10 @@ export class SocketConnection {
this.remoteTagStoreObservable.next(tagStoreArg);
});
logger.log('info', `now listening to function requests for ${this.alias} on side ${this.side}`);
logger.log(
'info',
`now listening to function requests for ${this.alias} on side ${this.side}`
);
done.resolve(this);
} else {
const errMessage = 'socket needs to be authenticated first';

View File

@ -13,7 +13,7 @@ export class SocketServer {
private smartsocket: Smartsocket;
private httpServerDeferred: plugins.smartpromise.Deferred<any>;
private httpServer: pluginsTyped.http.Server | pluginsTyped.https.Server;
/**
* wether httpServer is standalone
*/
@ -47,7 +47,7 @@ export class SocketServer {
if (this.httpServer) {
return this.httpServer;
} else {
const httpModule = this.smartsocket.smartenv.getSafeNodeModule('http');
const httpModule = await this.smartsocket.smartenv.getSafeNodeModule('http');
this.httpServer = new httpModule.Server();
this.standaloneServer = true;
return this.httpServer;

View File

@ -10,10 +10,13 @@ import type * as smartexpress from '@pushrocks/smartexpress';
export { smartexpress };
// third party scope
import type socketIo from 'socket.io';
import type { Socket as ServerSocket, Server as ServerServer } from 'socket.io';
import type { Socket as ClientSocket, connect as ClientIo } from 'socket.io-client';
export { socketIo };
export namespace socketIo {
export type Socket = ServerSocket;
export type Server = ServerServer;
}
export namespace socketIoClient {
export type Socket = ClientSocket;
export type connect = typeof ClientIo;

View File

@ -1,7 +1,10 @@
{
"compilerOptions": {
"module": "ES2020",
"moduleResolution": "node12",
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext",
"esModuleInterop": true
}
}
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}