@digipair/skill-sse 0.89.0 → 0.91.0-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/.swcrc +28 -0
- package/README.md +7 -0
- package/eslint.config.mjs +22 -0
- package/package.json +23 -7
- package/rollup.config.cjs +28 -0
- package/src/handlebars.d.ts +1 -0
- package/src/lib/skill-sse.spec.ts +7 -0
- package/src/lib/skill-sse.ts +82 -0
- package/tsconfig.json +13 -0
- package/tsconfig.lib.json +19 -0
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -1303
- package/index.esm.js +0 -29266
- package/libs/skill-sse/src/lib/skill-sse.d.ts +0 -5
- /package/{index.d.ts → src/index.d.ts} +0 -0
- /package/{libs/skill-sse/src/index.d.ts → src/index.ts} +0 -0
- /package/{schema.fr.json → src/schema.fr.json} +0 -0
- /package/{schema.json → src/schema.json} +0 -0
package/.swcrc
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"jsc": {
|
|
3
|
+
"target": "es2017",
|
|
4
|
+
"parser": {
|
|
5
|
+
"syntax": "typescript",
|
|
6
|
+
"decorators": true,
|
|
7
|
+
"dynamicImport": true
|
|
8
|
+
},
|
|
9
|
+
"transform": {
|
|
10
|
+
"decoratorMetadata": true,
|
|
11
|
+
"legacyDecorator": true
|
|
12
|
+
},
|
|
13
|
+
"keepClassNames": true,
|
|
14
|
+
"externalHelpers": true,
|
|
15
|
+
"loose": true
|
|
16
|
+
},
|
|
17
|
+
"module": {
|
|
18
|
+
"type": "es6"
|
|
19
|
+
},
|
|
20
|
+
"sourceMaps": true,
|
|
21
|
+
"exclude": [
|
|
22
|
+
"jest.config.ts",
|
|
23
|
+
".*\\.spec.tsx?$",
|
|
24
|
+
".*\\.test.tsx?$",
|
|
25
|
+
"./src/jest-setup.ts$",
|
|
26
|
+
"./**/jest-setup.ts$"
|
|
27
|
+
]
|
|
28
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import baseConfig from '../../eslint.config.mjs';
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
...baseConfig,
|
|
5
|
+
{
|
|
6
|
+
files: ['**/*.json'],
|
|
7
|
+
rules: {
|
|
8
|
+
'@nx/dependency-checks': [
|
|
9
|
+
'error',
|
|
10
|
+
{
|
|
11
|
+
ignoredFiles: [
|
|
12
|
+
'{projectRoot}/eslint.config.{js,cjs,mjs}',
|
|
13
|
+
'{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
languageOptions: {
|
|
19
|
+
parser: await import('jsonc-eslint-parser'),
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
];
|
package/package.json
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digipair/skill-sse",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.0-0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/libs/skill-sse/index.cjs.js",
|
|
6
|
+
"module": "dist/libs/skill-sse/index.esm.js",
|
|
7
|
+
"types": "dist/libs/skill-sse/index.esm.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
"./package.json": "./libs/skill-sse/package.json",
|
|
10
|
+
".": {
|
|
11
|
+
"development": "./dist/libs/skill-sse/src/index.ts",
|
|
12
|
+
"types": "./dist/libs/skill-sse/index.esm.d.ts",
|
|
13
|
+
"import": "./dist/libs/skill-sse/index.esm.js",
|
|
14
|
+
"default": "./dist/libs/skill-sse/index.cjs.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
4
17
|
"keywords": [
|
|
5
18
|
"digipair",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
19
|
+
"tool",
|
|
20
|
+
"service"
|
|
8
21
|
],
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
22
|
+
"nx": {
|
|
23
|
+
"name": "skill-sse"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@digipair/engine": "0.91.0-0"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const { withNx } = require('@nx/rollup/with-nx');
|
|
2
|
+
|
|
3
|
+
module.exports = withNx(
|
|
4
|
+
{
|
|
5
|
+
main: 'libs/skill-sse/src/index.ts',
|
|
6
|
+
outputPath: 'dist/libs/skill-sse',
|
|
7
|
+
tsConfig: 'libs/skill-sse/tsconfig.lib.json',
|
|
8
|
+
compiler: 'swc',
|
|
9
|
+
format: ['esm', "cjs"],
|
|
10
|
+
assets: [
|
|
11
|
+
{
|
|
12
|
+
input: 'libs/skill-sse/',
|
|
13
|
+
glob: 'package.json',
|
|
14
|
+
output: '.'
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
input: 'libs/skill-sse/src/',
|
|
18
|
+
glob: '*.json',
|
|
19
|
+
output: '.'
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
// Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
|
|
25
|
+
// e.g.
|
|
26
|
+
// output: { sourcemap: true },
|
|
27
|
+
}
|
|
28
|
+
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'handlebars/dist/handlebars.min.js';
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
import { createSession, createChannel } from 'better-sse';
|
|
3
|
+
import { executePinsList, PinsSettings } from '@digipair/engine';
|
|
4
|
+
|
|
5
|
+
class SSEService {
|
|
6
|
+
private sessions = new Map();
|
|
7
|
+
private channels = new Map();
|
|
8
|
+
|
|
9
|
+
async registerSession(
|
|
10
|
+
params: any,
|
|
11
|
+
_pinsSettingsList: PinsSettings[],
|
|
12
|
+
context: any,
|
|
13
|
+
): Promise<any> {
|
|
14
|
+
const { id, disconnected = [] } = params;
|
|
15
|
+
const session = await createSession(context.protected.req, context.protected.res);
|
|
16
|
+
|
|
17
|
+
if (id) {
|
|
18
|
+
const start = context.privates.SSE_SESSION_START || '';
|
|
19
|
+
const name = `${start}__${context.request.digipair}_${context.request.reasoning}__${id}`;
|
|
20
|
+
|
|
21
|
+
this.sessions.set(name, session);
|
|
22
|
+
session.on('disconnected', () => {
|
|
23
|
+
this.sessions.delete(name);
|
|
24
|
+
executePinsList(disconnected, { ...context }, `${context.__PATH__}.disconnected`);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return session;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async registerChannel(
|
|
32
|
+
params: any,
|
|
33
|
+
_pinsSettingsList: PinsSettings[],
|
|
34
|
+
context: any,
|
|
35
|
+
): Promise<any> {
|
|
36
|
+
const { session, disconnected = [], id = '' } = params;
|
|
37
|
+
const start = context.privates.SSE_SESSION_START || '';
|
|
38
|
+
const name = `${start}__${context.request.digipair}_${context.request.reasoning}__${id}`;
|
|
39
|
+
let channel = this.channels.get(name);
|
|
40
|
+
if (!channel) {
|
|
41
|
+
channel = createChannel(session);
|
|
42
|
+
this.channels.set(name, channel);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const channelSession = session ?? (await this.registerSession({ disconnected }, [], context));
|
|
46
|
+
channel.register(channelSession);
|
|
47
|
+
|
|
48
|
+
return channel;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async push(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
52
|
+
const { id, message, reasoning = context.request.reasoning, digipair = context.request.digipair } = params;
|
|
53
|
+
const start = context.privates.SSE_SESSION_START || '';
|
|
54
|
+
const name = `${start}__${digipair}_${reasoning}__${id}`;
|
|
55
|
+
const session = this.sessions.get(name);
|
|
56
|
+
|
|
57
|
+
return session?.push(message);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async broadcast(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
61
|
+
const { message, reasoning = context.request.reasoning, id = '', digipair = context.request.digipair, event = 'message' } = params;
|
|
62
|
+
const start = context.privates.SSE_SESSION_START || '';
|
|
63
|
+
const name = `${start}__${digipair}_${reasoning}__${id}`;
|
|
64
|
+
let channel = this.channels.get(name);
|
|
65
|
+
|
|
66
|
+
return channel?.broadcast(message, event);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const service = new SSEService();
|
|
71
|
+
|
|
72
|
+
export const registerSession = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
73
|
+
service.registerSession(params, pinsSettingsList, context);
|
|
74
|
+
|
|
75
|
+
export const registerChannel = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
76
|
+
service.registerChannel(params, pinsSettingsList, context);
|
|
77
|
+
|
|
78
|
+
export const push = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
79
|
+
service.push(params, pinsSettingsList, context);
|
|
80
|
+
|
|
81
|
+
export const broadcast = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
82
|
+
service.broadcast(params, pinsSettingsList, context);
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"rootDir": "src",
|
|
5
|
+
"outDir": "dist",
|
|
6
|
+
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
7
|
+
"emitDeclarationOnly": true,
|
|
8
|
+
"module": "esnext",
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"types": ["node"]
|
|
12
|
+
},
|
|
13
|
+
"include": ["src/**/*.ts"],
|
|
14
|
+
"references": [
|
|
15
|
+
{
|
|
16
|
+
"path": "../engine/tsconfig.lib.json"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
package/index.cjs.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./src/index";
|