@xpert-ai/plugin-sdk 3.6.0-beta.10 → 3.6.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/.eslintrc.json +30 -0
- package/.swcrc +29 -0
- package/SCHEMA_SPECIFICATION.md +2 -0
- package/index.cjs.js +5 -649
- package/jest.config.ts +28 -0
- package/package.json +3 -3
- package/project.json +59 -0
- package/src/index.ts +11 -0
- package/src/lib/core/file-system.ts +113 -0
- package/src/lib/core/i18n.ts +31 -0
- package/src/lib/core/index.ts +4 -0
- package/src/lib/core/permissions.ts +97 -0
- package/src/lib/core/schema.ts +23 -0
- package/src/lib/integration/index.ts +3 -0
- package/src/lib/integration/strategy.decorator.ts +6 -0
- package/src/lib/integration/strategy.interface.ts +11 -0
- package/src/lib/integration/strategy.registry.ts +12 -0
- package/src/lib/logger.ts +18 -0
- package/src/lib/plugin-metadata.ts +20 -0
- package/src/lib/{plugin.hook.d.ts → plugin.hook.ts} +4 -0
- package/src/lib/plugin.interface.ts +67 -0
- package/src/lib/plugin.ts +32 -0
- package/src/lib/rag/image/index.ts +3 -0
- package/src/lib/rag/image/strategy.decorator.ts +9 -0
- package/src/lib/rag/image/strategy.interface.ts +37 -0
- package/src/lib/rag/image/strategy.registry.ts +17 -0
- package/src/lib/rag/index.ts +7 -0
- package/src/lib/rag/knowledge/index.ts +3 -0
- package/src/lib/rag/knowledge/knowledge-strategy.decorator.ts +6 -0
- package/src/lib/rag/knowledge/knowledge-strategy.interface.ts +15 -0
- package/src/lib/rag/knowledge/knowledge-strategy.registry.ts +12 -0
- package/src/lib/rag/retriever/index.ts +3 -0
- package/src/lib/rag/retriever/strategy.decorator.ts +9 -0
- package/src/lib/rag/retriever/strategy.interface.ts +32 -0
- package/src/lib/rag/retriever/strategy.registry.ts +12 -0
- package/src/lib/rag/source/index.ts +3 -0
- package/src/lib/rag/source/strategy.decorator.ts +9 -0
- package/src/lib/rag/source/strategy.interface.ts +36 -0
- package/src/lib/rag/source/strategy.registry.ts +17 -0
- package/src/lib/rag/textsplitter/index.ts +3 -0
- package/src/lib/rag/textsplitter/strategy.decorator.ts +6 -0
- package/src/lib/rag/textsplitter/strategy.interface.ts +28 -0
- package/src/lib/rag/textsplitter/strategy.registry.ts +17 -0
- package/src/lib/rag/transformer/index.ts +3 -0
- package/src/lib/rag/transformer/strategy.decorator.ts +9 -0
- package/src/lib/rag/transformer/strategy.interface.ts +34 -0
- package/src/lib/rag/transformer/strategy.registry.ts +14 -0
- package/src/lib/rag/types.ts +76 -0
- package/src/lib/strategy.ts +37 -0
- package/src/lib/toolset/builtin.ts +111 -0
- package/src/lib/toolset/index.ts +5 -0
- package/src/lib/toolset/strategy.decorator.ts +9 -0
- package/src/lib/toolset/strategy.interface.ts +32 -0
- package/src/lib/toolset/strategy.registry.ts +17 -0
- package/src/lib/toolset/toolset.ts +76 -0
- package/src/lib/types.ts +47 -0
- package/src/lib/vectorstore/index.ts +3 -0
- package/src/lib/vectorstore/strategy.decorator.ts +6 -0
- package/src/lib/vectorstore/strategy.interface.ts +25 -0
- package/src/lib/vectorstore/strategy.registry.ts +17 -0
- package/src/lib/workflow/index.ts +2 -0
- package/src/lib/workflow/node/index.ts +3 -0
- package/src/lib/workflow/node/strategy.decorator.ts +9 -0
- package/src/lib/workflow/node/strategy.interface.ts +51 -0
- package/src/lib/workflow/node/strategy.registry.ts +18 -0
- package/src/lib/workflow/trigger/index.ts +3 -0
- package/src/lib/workflow/trigger/strategy.decorator.ts +6 -0
- package/src/lib/workflow/trigger/strategy.interface.ts +27 -0
- package/src/lib/workflow/trigger/strategy.registry.ts +17 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +9 -0
- package/index.cjs.d.ts +0 -1
- package/index.esm.d.ts +0 -1
- package/index.esm.js +0 -616
- package/src/index.d.ts +0 -12
- package/src/lib/core/file-system.d.ts +0 -42
- package/src/lib/core/i18n.d.ts +0 -2
- package/src/lib/core/index.d.ts +0 -4
- package/src/lib/core/permissions.d.ts +0 -74
- package/src/lib/core/schema.d.ts +0 -22
- package/src/lib/integration/index.d.ts +0 -3
- package/src/lib/integration/strategy.decorator.d.ts +0 -2
- package/src/lib/integration/strategy.interface.d.ts +0 -9
- package/src/lib/integration/strategy.registry.d.ts +0 -6
- package/src/lib/knowledge/index.d.ts +0 -3
- package/src/lib/knowledge/knowledge-strategy.decorator.d.ts +0 -2
- package/src/lib/knowledge/knowledge-strategy.interface.d.ts +0 -15
- package/src/lib/knowledge/knowledge-strategy.registry.d.ts +0 -12
- package/src/lib/logger.d.ts +0 -2
- package/src/lib/plugin-metadata.d.ts +0 -17
- package/src/lib/plugin.d.ts +0 -8
- package/src/lib/plugin.interface.d.ts +0 -59
- package/src/lib/rag/image/index.d.ts +0 -3
- package/src/lib/rag/image/strategy.decorator.d.ts +0 -5
- package/src/lib/rag/image/strategy.interface.d.ts +0 -32
- package/src/lib/rag/image/strategy.registry.d.ts +0 -6
- package/src/lib/rag/index.d.ts +0 -6
- package/src/lib/rag/retriever/index.d.ts +0 -3
- package/src/lib/rag/retriever/strategy.decorator.d.ts +0 -5
- package/src/lib/rag/retriever/strategy.interface.d.ts +0 -30
- package/src/lib/rag/retriever/strategy.registry.d.ts +0 -6
- package/src/lib/rag/source/index.d.ts +0 -3
- package/src/lib/rag/source/strategy.decorator.d.ts +0 -5
- package/src/lib/rag/source/strategy.interface.d.ts +0 -36
- package/src/lib/rag/source/strategy.registry.d.ts +0 -6
- package/src/lib/rag/textsplitter/index.d.ts +0 -3
- package/src/lib/rag/textsplitter/strategy.decorator.d.ts +0 -2
- package/src/lib/rag/textsplitter/strategy.interface.d.ts +0 -24
- package/src/lib/rag/textsplitter/strategy.registry.d.ts +0 -6
- package/src/lib/rag/transformer/index.d.ts +0 -3
- package/src/lib/rag/transformer/strategy.decorator.d.ts +0 -5
- package/src/lib/rag/transformer/strategy.interface.d.ts +0 -26
- package/src/lib/rag/transformer/strategy.registry.d.ts +0 -6
- package/src/lib/rag/types.d.ts +0 -37
- package/src/lib/strategy.d.ts +0 -12
- package/src/lib/toolset/builtin.d.ts +0 -54
- package/src/lib/toolset/index.d.ts +0 -5
- package/src/lib/toolset/strategy.decorator.d.ts +0 -5
- package/src/lib/toolset/strategy.interface.d.ts +0 -28
- package/src/lib/toolset/strategy.registry.d.ts +0 -6
- package/src/lib/toolset/toolset.d.ts +0 -53
- package/src/lib/types.d.ts +0 -47
- package/src/lib/vectorstore/index.d.ts +0 -3
- package/src/lib/vectorstore/strategy.decorator.d.ts +0 -2
- package/src/lib/vectorstore/strategy.interface.d.ts +0 -24
- package/src/lib/vectorstore/strategy.registry.d.ts +0 -6
- package/src/lib/workflow/index.d.ts +0 -2
- package/src/lib/workflow/node/index.d.ts +0 -3
- package/src/lib/workflow/node/strategy.decorator.d.ts +0 -5
- package/src/lib/workflow/node/strategy.interface.d.ts +0 -40
- package/src/lib/workflow/node/strategy.registry.d.ts +0 -9
- package/src/lib/workflow/trigger/index.d.ts +0 -3
- package/src/lib/workflow/trigger/strategy.decorator.d.ts +0 -2
- package/src/lib/workflow/trigger/strategy.interface.d.ts +0 -22
- package/src/lib/workflow/trigger/strategy.registry.d.ts +0 -6
package/index.cjs.js
CHANGED
|
@@ -1,650 +1,6 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var common = require('@nestjs/common');
|
|
4
|
-
var constants = require('@nestjs/common/constants');
|
|
5
|
-
var lodashEs = require('lodash-es');
|
|
6
|
-
var core = require('@nestjs/core');
|
|
7
|
-
var fs = require('fs');
|
|
8
|
-
var http = require('http');
|
|
9
|
-
var https = require('https');
|
|
10
|
-
var tools = require('@langchain/core/tools');
|
|
11
|
-
var zod = require('zod');
|
|
12
|
-
var fsPromises = require('fs/promises');
|
|
13
|
-
var path = require('path');
|
|
14
|
-
var i18next = require('i18next');
|
|
15
|
-
var FsBackend = require('i18next-fs-backend');
|
|
16
|
-
|
|
17
1
|
/**
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Key representing event subscribers within the plugin.
|
|
25
|
-
*/ SUBSCRIBERS: 'subscribers'
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Decorator function for extending NestJS features with additional metadata.
|
|
30
|
-
*
|
|
31
|
-
* @param pluginMetadata Metadata to be applied to the target class.
|
|
32
|
-
* @returns Class decorator function.
|
|
33
|
-
*/ function XpertServerPlugin(pluginMetadata) {
|
|
34
|
-
return (targetClass)=>{
|
|
35
|
-
// Iterate over properties in PLUGIN_METADATA
|
|
36
|
-
for (const metadataProperty of Object.values(PLUGIN_METADATA)){
|
|
37
|
-
const property = metadataProperty;
|
|
38
|
-
// Check if the property exists in pluginMetadata and is not undefined
|
|
39
|
-
if (property in pluginMetadata && pluginMetadata[property] !== undefined) {
|
|
40
|
-
// Set metadata on the target class using Reflect
|
|
41
|
-
Reflect.defineMetadata(property, pluginMetadata[property] || [], targetClass);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Pick relevant metadata from pluginMetadata based on MODULE_METADATA values
|
|
45
|
-
const metadata = lodashEs.pick(pluginMetadata, Object.values(constants.MODULE_METADATA));
|
|
46
|
-
// Apply the Module decorator with the picked metadata
|
|
47
|
-
common.Module(metadata)(targetClass);
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function _extends() {
|
|
52
|
-
_extends = Object.assign || function assign(target) {
|
|
53
|
-
for(var i = 1; i < arguments.length; i++){
|
|
54
|
-
var source = arguments[i];
|
|
55
|
-
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
56
|
-
}
|
|
57
|
-
return target;
|
|
58
|
-
};
|
|
59
|
-
return _extends.apply(this, arguments);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function createPluginLogger(scope, baseMeta = {}) {
|
|
63
|
-
const nestLogger = new common.Logger(scope);
|
|
64
|
-
const wrap = (level, msg, meta)=>{
|
|
65
|
-
var _nestLogger_level;
|
|
66
|
-
const payload = meta ? _extends({}, baseMeta, meta) : baseMeta;
|
|
67
|
-
(_nestLogger_level = // 保持与 Nest Logger 接口对齐
|
|
68
|
-
nestLogger[level]) == null ? void 0 : _nestLogger_level.call(nestLogger, msg + (Object.keys(payload).length ? ` ${JSON.stringify(payload)}` : ''));
|
|
69
|
-
};
|
|
70
|
-
return {
|
|
71
|
-
child (meta) {
|
|
72
|
-
return createPluginLogger(scope, _extends({}, baseMeta, meta));
|
|
73
|
-
},
|
|
74
|
-
debug: (msg, meta)=>wrap('debug', msg, meta),
|
|
75
|
-
log: (msg, meta)=>wrap('log', msg, meta),
|
|
76
|
-
warn: (msg, meta)=>wrap('warn', msg, meta),
|
|
77
|
-
error: (msg, meta)=>wrap('error', msg, meta)
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const KNOWLEDGE_STRATEGY = 'KNOWLEDGE_STRATEGY';
|
|
82
|
-
const KnowledgeStrategyKey = (provider)=>common.SetMetadata(KNOWLEDGE_STRATEGY, provider);
|
|
83
|
-
|
|
84
|
-
function __decorate(decorators, target, key, desc) {
|
|
85
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
86
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
87
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
88
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
89
|
-
}
|
|
90
|
-
function __metadata(metadataKey, metadataValue) {
|
|
91
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
92
|
-
}
|
|
93
|
-
typeof SuppressedError === "function" ? SuppressedError : function _SuppressedError(error, suppressed, message) {
|
|
94
|
-
var e = new Error(message);
|
|
95
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
exports.KnowledgeStrategyRegistry = class KnowledgeStrategyRegistry {
|
|
99
|
-
onModuleInit() {
|
|
100
|
-
const providers = this.discoveryService.getProviders();
|
|
101
|
-
for (const wrapper of providers){
|
|
102
|
-
const { instance } = wrapper;
|
|
103
|
-
if (!instance) continue;
|
|
104
|
-
const type = this.reflector.get(KNOWLEDGE_STRATEGY, instance.constructor);
|
|
105
|
-
if (type) {
|
|
106
|
-
this.strategies.set(type, instance);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
get(type) {
|
|
111
|
-
const strategy = this.strategies.get(type);
|
|
112
|
-
if (!strategy) {
|
|
113
|
-
throw new Error(`No strategy found for type ${type}`);
|
|
114
|
-
}
|
|
115
|
-
return strategy;
|
|
116
|
-
}
|
|
117
|
-
constructor(discoveryService, reflector){
|
|
118
|
-
this.discoveryService = discoveryService;
|
|
119
|
-
this.reflector = reflector;
|
|
120
|
-
this.strategies = new Map();
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
exports.KnowledgeStrategyRegistry = __decorate([
|
|
124
|
-
common.Injectable(),
|
|
125
|
-
__metadata("design:type", Function),
|
|
126
|
-
__metadata("design:paramtypes", [
|
|
127
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
128
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
129
|
-
])
|
|
130
|
-
], exports.KnowledgeStrategyRegistry);
|
|
131
|
-
|
|
132
|
-
const INTEGRATION_STRATEGY = 'INTEGRATION_STRATEGY';
|
|
133
|
-
const IntegrationStrategyKey = (provider)=>common.SetMetadata(INTEGRATION_STRATEGY, provider);
|
|
134
|
-
|
|
135
|
-
class BaseStrategyRegistry {
|
|
136
|
-
onModuleInit() {
|
|
137
|
-
const providers = this.discoveryService.getProviders();
|
|
138
|
-
for (const wrapper of providers){
|
|
139
|
-
const { instance } = wrapper;
|
|
140
|
-
if (!instance) continue;
|
|
141
|
-
const type = this.reflector.get(this.strategyKey, instance.constructor);
|
|
142
|
-
if (type) {
|
|
143
|
-
this.strategies.set(type, instance);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
get(type) {
|
|
148
|
-
const strategy = this.strategies.get(type);
|
|
149
|
-
if (!strategy) {
|
|
150
|
-
throw new Error(`No strategy found for type ${type}`);
|
|
151
|
-
}
|
|
152
|
-
return strategy;
|
|
153
|
-
}
|
|
154
|
-
list() {
|
|
155
|
-
return Array.from(this.strategies.values());
|
|
156
|
-
}
|
|
157
|
-
constructor(strategyKey, discoveryService, reflector){
|
|
158
|
-
this.strategyKey = strategyKey;
|
|
159
|
-
this.discoveryService = discoveryService;
|
|
160
|
-
this.reflector = reflector;
|
|
161
|
-
this.strategies = new Map();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
exports.IntegrationStrategyRegistry = class IntegrationStrategyRegistry extends BaseStrategyRegistry {
|
|
166
|
-
constructor(discoveryService, reflector){
|
|
167
|
-
super(INTEGRATION_STRATEGY, discoveryService, reflector);
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
exports.IntegrationStrategyRegistry = __decorate([
|
|
171
|
-
common.Injectable(),
|
|
172
|
-
__metadata("design:type", Function),
|
|
173
|
-
__metadata("design:paramtypes", [
|
|
174
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
175
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
176
|
-
])
|
|
177
|
-
], exports.IntegrationStrategyRegistry);
|
|
178
|
-
|
|
179
|
-
const WORKFLOW_TRIGGER_STRATEGY = 'WORKFLOW_TRIGGER_STRATEGY';
|
|
180
|
-
const WorkflowTriggerStrategy = (provider)=>common.SetMetadata(WORKFLOW_TRIGGER_STRATEGY, provider);
|
|
181
|
-
|
|
182
|
-
exports.WorkflowTriggerRegistry = class WorkflowTriggerRegistry extends BaseStrategyRegistry {
|
|
183
|
-
constructor(discoveryService, reflector){
|
|
184
|
-
super(WORKFLOW_TRIGGER_STRATEGY, discoveryService, reflector);
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
exports.WorkflowTriggerRegistry = __decorate([
|
|
188
|
-
common.Injectable(),
|
|
189
|
-
__metadata("design:type", Function),
|
|
190
|
-
__metadata("design:paramtypes", [
|
|
191
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
192
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
193
|
-
])
|
|
194
|
-
], exports.WorkflowTriggerRegistry);
|
|
195
|
-
|
|
196
|
-
const WORKFLOW_NODE_STRATEGY = 'WORKFLOW_NODE_STRATEGY';
|
|
197
|
-
/**
|
|
198
|
-
* Decorator to mark a provider as a Workflow Node Strategy
|
|
199
|
-
*/ const WorkflowNodeStrategy = (provider)=>common.SetMetadata(WORKFLOW_NODE_STRATEGY, provider);
|
|
200
|
-
|
|
201
|
-
exports.WorkflowNodeRegistry = class WorkflowNodeRegistry extends BaseStrategyRegistry {
|
|
202
|
-
constructor(discoveryService, reflector){
|
|
203
|
-
super(WORKFLOW_NODE_STRATEGY, discoveryService, reflector);
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
exports.WorkflowNodeRegistry = __decorate([
|
|
207
|
-
common.Injectable(),
|
|
208
|
-
__metadata("design:type", Function),
|
|
209
|
-
__metadata("design:paramtypes", [
|
|
210
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
211
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
212
|
-
])
|
|
213
|
-
], exports.WorkflowNodeRegistry);
|
|
214
|
-
|
|
215
|
-
const VECTOR_STORE_STRATEGY = 'VECTOR_STORE_STRATEGY';
|
|
216
|
-
const VectorStoreStrategy = (provider)=>common.SetMetadata(VECTOR_STORE_STRATEGY, provider);
|
|
217
|
-
|
|
218
|
-
exports.VectorStoreRegistry = class VectorStoreRegistry extends BaseStrategyRegistry {
|
|
219
|
-
constructor(discoveryService, reflector){
|
|
220
|
-
super(VECTOR_STORE_STRATEGY, discoveryService, reflector);
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
exports.VectorStoreRegistry = __decorate([
|
|
224
|
-
common.Injectable(),
|
|
225
|
-
__metadata("design:type", Function),
|
|
226
|
-
__metadata("design:paramtypes", [
|
|
227
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
228
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
229
|
-
])
|
|
230
|
-
], exports.VectorStoreRegistry);
|
|
231
|
-
|
|
232
|
-
const TEXT_SPLITTER_STRATEGY = 'TEXT_SPLITTER_STRATEGY';
|
|
233
|
-
const TextSplitterStrategy = (provider)=>common.SetMetadata(TEXT_SPLITTER_STRATEGY, provider);
|
|
234
|
-
|
|
235
|
-
exports.TextSplitterRegistry = class TextSplitterRegistry extends BaseStrategyRegistry {
|
|
236
|
-
constructor(discoveryService, reflector){
|
|
237
|
-
super(TEXT_SPLITTER_STRATEGY, discoveryService, reflector);
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
exports.TextSplitterRegistry = __decorate([
|
|
241
|
-
common.Injectable(),
|
|
242
|
-
__metadata("design:type", Function),
|
|
243
|
-
__metadata("design:paramtypes", [
|
|
244
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
245
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
246
|
-
])
|
|
247
|
-
], exports.TextSplitterRegistry);
|
|
248
|
-
|
|
249
|
-
const DOCUMENT_SOURCE_STRATEGY = 'DOCUMENT_SOURCE_STRATEGY';
|
|
250
|
-
/**
|
|
251
|
-
* Decorator to mark a provider as a Document Source Strategy
|
|
252
|
-
*/ const DocumentSourceStrategy = (provider)=>common.SetMetadata(DOCUMENT_SOURCE_STRATEGY, provider);
|
|
253
|
-
|
|
254
|
-
exports.DocumentSourceRegistry = class DocumentSourceRegistry extends BaseStrategyRegistry {
|
|
255
|
-
constructor(discoveryService, reflector){
|
|
256
|
-
super(DOCUMENT_SOURCE_STRATEGY, discoveryService, reflector);
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
exports.DocumentSourceRegistry = __decorate([
|
|
260
|
-
common.Injectable(),
|
|
261
|
-
__metadata("design:type", Function),
|
|
262
|
-
__metadata("design:paramtypes", [
|
|
263
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
264
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
265
|
-
])
|
|
266
|
-
], exports.DocumentSourceRegistry);
|
|
267
|
-
|
|
268
|
-
const DOCUMENT_TRANSFORMER_STRATEGY = 'DOCUMENT_TRANSFORMER_STRATEGY';
|
|
269
|
-
/**
|
|
270
|
-
* Decorator to mark a provider as a Document Transformer Strategy
|
|
271
|
-
*/ const DocumentTransformerStrategy = (provider)=>common.SetMetadata(DOCUMENT_TRANSFORMER_STRATEGY, provider);
|
|
272
|
-
|
|
273
|
-
exports.DocumentTransformerRegistry = class DocumentTransformerRegistry extends BaseStrategyRegistry {
|
|
274
|
-
constructor(discoveryService, reflector){
|
|
275
|
-
super(DOCUMENT_TRANSFORMER_STRATEGY, discoveryService, reflector);
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
exports.DocumentTransformerRegistry = __decorate([
|
|
279
|
-
common.Injectable(),
|
|
280
|
-
__metadata("design:type", Function),
|
|
281
|
-
__metadata("design:paramtypes", [
|
|
282
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
283
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
284
|
-
])
|
|
285
|
-
], exports.DocumentTransformerRegistry);
|
|
286
|
-
|
|
287
|
-
const RETRIEVER_STRATEGY = 'RETRIEVER_STRATEGY';
|
|
288
|
-
/**
|
|
289
|
-
* Decorator to mark a provider as a Retriever Strategy
|
|
290
|
-
*/ const RetrieverStrategy = (provider)=>common.SetMetadata(RETRIEVER_STRATEGY, provider);
|
|
291
|
-
|
|
292
|
-
exports.RetrieverRegistry = class RetrieverRegistry extends BaseStrategyRegistry {
|
|
293
|
-
constructor(discoveryService, reflector){
|
|
294
|
-
super(RETRIEVER_STRATEGY, discoveryService, reflector);
|
|
295
|
-
}
|
|
296
|
-
};
|
|
297
|
-
exports.RetrieverRegistry = __decorate([
|
|
298
|
-
common.Injectable(),
|
|
299
|
-
__metadata("design:type", Function),
|
|
300
|
-
__metadata("design:paramtypes", [
|
|
301
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
302
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
303
|
-
])
|
|
304
|
-
], exports.RetrieverRegistry);
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Merge parent chunks with their child chunks based on metadata (parentId and chunkId)
|
|
308
|
-
* @param chunks
|
|
309
|
-
* @param children
|
|
310
|
-
* @returns
|
|
311
|
-
*/ function mergeParentChildChunks(chunks, children // Child chunks
|
|
312
|
-
) {
|
|
313
|
-
const chunkMap = new Map();
|
|
314
|
-
for (const chunk of chunks){
|
|
315
|
-
chunkMap.set(chunk.metadata.chunkId, chunk);
|
|
316
|
-
}
|
|
317
|
-
for (const child of children){
|
|
318
|
-
if (!child.metadata.parentId) {
|
|
319
|
-
if (chunkMap.has(child.metadata.chunkId)) {
|
|
320
|
-
console.warn(`Duplicate chunkId found: ${child.metadata.chunkId}, skipping...`);
|
|
321
|
-
continue;
|
|
322
|
-
}
|
|
323
|
-
chunkMap.set(child.metadata.chunkId, child);
|
|
324
|
-
continue;
|
|
325
|
-
}
|
|
326
|
-
const parent = chunkMap.get(child.metadata.parentId);
|
|
327
|
-
if (parent) {
|
|
328
|
-
if (!parent.metadata.children) {
|
|
329
|
-
parent.metadata.children = [];
|
|
330
|
-
}
|
|
331
|
-
parent.metadata.children.push(child);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
return Array.from(chunkMap.values());
|
|
335
|
-
}
|
|
336
|
-
function isRemoteFile(path) {
|
|
337
|
-
return path.startsWith('http://') || path.startsWith('https://') || path.startsWith('ftp://');
|
|
338
|
-
}
|
|
339
|
-
async function downloadRemoteFile(url, dest) {
|
|
340
|
-
return new Promise((resolve, reject)=>{
|
|
341
|
-
const file = fs.createWriteStream(dest);
|
|
342
|
-
const client = url.startsWith('https') ? https : http;
|
|
343
|
-
const request = client.get(url, (response)=>{
|
|
344
|
-
if (response.statusCode !== 200) {
|
|
345
|
-
reject(new Error(`Failed to get '${url}' (${response.statusCode})`));
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
response.pipe(file);
|
|
349
|
-
});
|
|
350
|
-
file.on('finish', ()=>{
|
|
351
|
-
file.close();
|
|
352
|
-
resolve(dest);
|
|
353
|
-
});
|
|
354
|
-
request.on('error', (err)=>{
|
|
355
|
-
fs.unlink(dest, ()=>reject(err));
|
|
356
|
-
});
|
|
357
|
-
file.on('error', (err)=>{
|
|
358
|
-
fs.unlink(dest, ()=>reject(err));
|
|
359
|
-
});
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
const IMAGE_UNDERSTANDING_STRATEGY = 'IMAGE_UNDERSTANDING_STRATEGY';
|
|
364
|
-
/**
|
|
365
|
-
* Decorator to mark a provider as an Image Understanding Strategy
|
|
366
|
-
*/ const ImageUnderstandingStrategy = (provider)=>common.SetMetadata(IMAGE_UNDERSTANDING_STRATEGY, provider);
|
|
367
|
-
|
|
368
|
-
exports.ImageUnderstandingRegistry = class ImageUnderstandingRegistry extends BaseStrategyRegistry {
|
|
369
|
-
constructor(discoveryService, reflector){
|
|
370
|
-
super(IMAGE_UNDERSTANDING_STRATEGY, discoveryService, reflector);
|
|
371
|
-
}
|
|
372
|
-
};
|
|
373
|
-
exports.ImageUnderstandingRegistry = __decorate([
|
|
374
|
-
common.Injectable(),
|
|
375
|
-
__metadata("design:type", Function),
|
|
376
|
-
__metadata("design:paramtypes", [
|
|
377
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
378
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
379
|
-
])
|
|
380
|
-
], exports.ImageUnderstandingRegistry);
|
|
381
|
-
|
|
382
|
-
const TOOLSET_STRATEGY = 'TOOLSET_STRATEGY';
|
|
383
|
-
/**
|
|
384
|
-
* Decorator to mark a provider as a Toolset Strategy
|
|
385
|
-
*/ const ToolsetStrategy = (provider)=>common.SetMetadata(TOOLSET_STRATEGY, provider);
|
|
386
|
-
|
|
387
|
-
exports.ToolsetRegistry = class ToolsetRegistry extends BaseStrategyRegistry {
|
|
388
|
-
constructor(discoveryService, reflector){
|
|
389
|
-
super(TOOLSET_STRATEGY, discoveryService, reflector);
|
|
390
|
-
}
|
|
391
|
-
};
|
|
392
|
-
exports.ToolsetRegistry = __decorate([
|
|
393
|
-
common.Injectable(),
|
|
394
|
-
__metadata("design:type", Function),
|
|
395
|
-
__metadata("design:paramtypes", [
|
|
396
|
-
typeof core.DiscoveryService === "undefined" ? Object : core.DiscoveryService,
|
|
397
|
-
typeof core.Reflector === "undefined" ? Object : core.Reflector
|
|
398
|
-
])
|
|
399
|
-
], exports.ToolsetRegistry);
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* Base ability for all toolsets
|
|
403
|
-
*/ class BaseToolset extends tools.BaseToolkit {
|
|
404
|
-
/**
|
|
405
|
-
* Async init tools
|
|
406
|
-
*
|
|
407
|
-
* @returns
|
|
408
|
-
*/ async initTools() {
|
|
409
|
-
return this.tools;
|
|
410
|
-
}
|
|
411
|
-
/**
|
|
412
|
-
* Get one tool
|
|
413
|
-
*
|
|
414
|
-
* @param toolName
|
|
415
|
-
* @returns
|
|
416
|
-
*/ getTool(toolName) {
|
|
417
|
-
var _this_getTools;
|
|
418
|
-
return (_this_getTools = this.getTools()) == null ? void 0 : _this_getTools.find((tool)=>tool.name === toolName);
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Get state variables config
|
|
422
|
-
*
|
|
423
|
-
* @returns State variables
|
|
424
|
-
*/ async getVariables() {
|
|
425
|
-
return null;
|
|
426
|
-
}
|
|
427
|
-
/**
|
|
428
|
-
* Close all (connections).
|
|
429
|
-
*/ async close() {
|
|
430
|
-
//
|
|
431
|
-
}
|
|
432
|
-
constructor(params){
|
|
433
|
-
super();
|
|
434
|
-
this.params = params;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
class BaseTool extends tools.StructuredTool {
|
|
438
|
-
constructor(...args){
|
|
439
|
-
super(...args);
|
|
440
|
-
this.schema = zod.z.object({
|
|
441
|
-
input: zod.z.string().optional()
|
|
442
|
-
}).transform((obj)=>obj.input);
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
class BuiltinToolset extends BaseToolset {
|
|
447
|
-
get tenantId() {
|
|
448
|
-
var _this_params;
|
|
449
|
-
return (_this_params = this.params) == null ? void 0 : _this_params.tenantId;
|
|
450
|
-
}
|
|
451
|
-
get organizationId() {
|
|
452
|
-
var _this_params;
|
|
453
|
-
return (_this_params = this.params) == null ? void 0 : _this_params.organizationId;
|
|
454
|
-
}
|
|
455
|
-
get commandBus() {
|
|
456
|
-
var _this_params;
|
|
457
|
-
return (_this_params = this.params) == null ? void 0 : _this_params.commandBus;
|
|
458
|
-
}
|
|
459
|
-
get queryBus() {
|
|
460
|
-
var _this_params;
|
|
461
|
-
return (_this_params = this.params) == null ? void 0 : _this_params.queryBus;
|
|
462
|
-
}
|
|
463
|
-
get xpertId() {
|
|
464
|
-
var _this_params;
|
|
465
|
-
return (_this_params = this.params) == null ? void 0 : _this_params.xpertId;
|
|
466
|
-
}
|
|
467
|
-
async validateCredentials(credentials) {
|
|
468
|
-
await this._validateCredentials(credentials);
|
|
469
|
-
}
|
|
470
|
-
async _validateCredentials(credentials) {
|
|
471
|
-
throw new Error('Method not implemented.');
|
|
472
|
-
}
|
|
473
|
-
getId() {
|
|
474
|
-
var _this_toolset;
|
|
475
|
-
return (_this_toolset = this.toolset) == null ? void 0 : _this_toolset.id;
|
|
476
|
-
}
|
|
477
|
-
getCredentials() {
|
|
478
|
-
var _this_toolset;
|
|
479
|
-
return (_this_toolset = this.toolset) == null ? void 0 : _this_toolset.credentials;
|
|
480
|
-
}
|
|
481
|
-
getToolTitle(name) {
|
|
482
|
-
var _this_toolset_tools, _this_toolset, _this;
|
|
483
|
-
const tool = (_this_toolset = this.toolset) == null ? void 0 : (_this_toolset_tools = _this_toolset.tools) == null ? void 0 : _this_toolset_tools.find((tool)=>tool.name === name);
|
|
484
|
-
const identity = (_this = tool == null ? void 0 : tool.schema) == null ? void 0 : _this.identity;
|
|
485
|
-
if (identity) {
|
|
486
|
-
return identity.label;
|
|
487
|
-
}
|
|
488
|
-
return null;
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
|
-
* Get credentials schema
|
|
492
|
-
*
|
|
493
|
-
* @returns Credentials schema
|
|
494
|
-
*/ getCredentialsSchema() {
|
|
495
|
-
return _extends({}, this.credentialsSchema);
|
|
496
|
-
}
|
|
497
|
-
/**
|
|
498
|
-
* Get toolset entity
|
|
499
|
-
*
|
|
500
|
-
* @returns XpertToolset
|
|
501
|
-
*/ getToolset() {
|
|
502
|
-
return this.toolset;
|
|
503
|
-
}
|
|
504
|
-
getName() {
|
|
505
|
-
var _this_getToolset;
|
|
506
|
-
return (_this_getToolset = this.getToolset()) == null ? void 0 : _this_getToolset.name;
|
|
507
|
-
}
|
|
508
|
-
constructor(providerName, toolset, params){
|
|
509
|
-
super(params);
|
|
510
|
-
this.providerName = providerName;
|
|
511
|
-
this.toolset = toolset;
|
|
512
|
-
this.params = params;
|
|
513
|
-
this.logger = new common.Logger(this.constructor.name);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
BuiltinToolset.provider = '';
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Restricted FileSystem based on granted permissions
|
|
520
|
-
*/ class XpFileSystem {
|
|
521
|
-
/**
|
|
522
|
-
* Check if operation is allowed
|
|
523
|
-
*/ ensureAllowed(op) {
|
|
524
|
-
if (!this.allowedOps.has(op)) {
|
|
525
|
-
throw new Error(`Permission denied: ${op} operation not allowed`);
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
/**
|
|
529
|
-
* Check if path is within scope
|
|
530
|
-
*/ ensureInScope(targetPath) {
|
|
531
|
-
if (!this.scope || this.scope.length === 0) return;
|
|
532
|
-
const resolved = path.resolve(targetPath);
|
|
533
|
-
for (const s of this.scope){
|
|
534
|
-
const absScope = path.resolve(s);
|
|
535
|
-
if (resolved.startsWith(absScope)) return;
|
|
536
|
-
}
|
|
537
|
-
throw new Error(`Permission denied: path "${targetPath}" is out of scope`);
|
|
538
|
-
}
|
|
539
|
-
fullPath(filePath) {
|
|
540
|
-
return path.join(this.basePath, filePath);
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Read file contents
|
|
544
|
-
*/ async readFile(filePath, encoding = 'utf-8') {
|
|
545
|
-
this.ensureAllowed('read');
|
|
546
|
-
const fullPath = this.fullPath(filePath);
|
|
547
|
-
this.ensureInScope(fullPath);
|
|
548
|
-
return await fsPromises.readFile(fullPath);
|
|
549
|
-
}
|
|
550
|
-
/**
|
|
551
|
-
* Write file contents
|
|
552
|
-
*/ async writeFile(filePath, content) {
|
|
553
|
-
this.ensureAllowed('write');
|
|
554
|
-
const fullPath = this.fullPath(filePath);
|
|
555
|
-
this.ensureInScope(fullPath);
|
|
556
|
-
await fsPromises.mkdir(path.dirname(fullPath), {
|
|
557
|
-
recursive: true
|
|
558
|
-
});
|
|
559
|
-
await fsPromises.writeFile(fullPath, content);
|
|
560
|
-
const url = new URL(filePath, this.baseUrl);
|
|
561
|
-
return url.href;
|
|
562
|
-
}
|
|
563
|
-
/**
|
|
564
|
-
* Delete a file
|
|
565
|
-
*/ async deleteFile(filePath) {
|
|
566
|
-
this.ensureAllowed('delete');
|
|
567
|
-
this.ensureInScope(filePath);
|
|
568
|
-
await fsPromises.unlink(filePath);
|
|
569
|
-
}
|
|
570
|
-
/**
|
|
571
|
-
* List directory contents
|
|
572
|
-
*/ async listDir(dirPath) {
|
|
573
|
-
this.ensureAllowed('list');
|
|
574
|
-
this.ensureInScope(dirPath);
|
|
575
|
-
return fsPromises.readdir(dirPath);
|
|
576
|
-
}
|
|
577
|
-
/**
|
|
578
|
-
* Utility: check if a file or directory exists
|
|
579
|
-
*/ async exists(targetPath) {
|
|
580
|
-
try {
|
|
581
|
-
await fsPromises.access(targetPath);
|
|
582
|
-
return true;
|
|
583
|
-
} catch (e) {
|
|
584
|
-
return false;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
constructor(permission, basePath, baseUrl){
|
|
588
|
-
this.basePath = basePath;
|
|
589
|
-
this.baseUrl = baseUrl;
|
|
590
|
-
this.allowedOps = new Set(permission.operations);
|
|
591
|
-
this.scope = permission.scope;
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
async function createI18nInstance(pluginDir, language) {
|
|
596
|
-
const instance = i18next.createInstance();
|
|
597
|
-
const i18nDir = path.join(pluginDir, 'i18n');
|
|
598
|
-
// detect available languages dynamically
|
|
599
|
-
const lngs = fs.readdirSync(i18nDir).filter((f)=>f.endsWith('.json')).map((f)=>f.replace('.json', ''));
|
|
600
|
-
await instance.use(FsBackend).init({
|
|
601
|
-
lng: language,
|
|
602
|
-
fallbackLng: 'en',
|
|
603
|
-
preload: lngs,
|
|
604
|
-
ns: [
|
|
605
|
-
'default'
|
|
606
|
-
],
|
|
607
|
-
defaultNS: 'default',
|
|
608
|
-
backend: {
|
|
609
|
-
loadPath: path.join(i18nDir, '{{lng}}.json')
|
|
610
|
-
},
|
|
611
|
-
interpolation: {
|
|
612
|
-
escapeValue: false
|
|
613
|
-
}
|
|
614
|
-
});
|
|
615
|
-
return instance;
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
exports.BaseTool = BaseTool;
|
|
619
|
-
exports.BaseToolset = BaseToolset;
|
|
620
|
-
exports.BuiltinToolset = BuiltinToolset;
|
|
621
|
-
exports.DOCUMENT_SOURCE_STRATEGY = DOCUMENT_SOURCE_STRATEGY;
|
|
622
|
-
exports.DOCUMENT_TRANSFORMER_STRATEGY = DOCUMENT_TRANSFORMER_STRATEGY;
|
|
623
|
-
exports.DocumentSourceStrategy = DocumentSourceStrategy;
|
|
624
|
-
exports.DocumentTransformerStrategy = DocumentTransformerStrategy;
|
|
625
|
-
exports.IMAGE_UNDERSTANDING_STRATEGY = IMAGE_UNDERSTANDING_STRATEGY;
|
|
626
|
-
exports.INTEGRATION_STRATEGY = INTEGRATION_STRATEGY;
|
|
627
|
-
exports.ImageUnderstandingStrategy = ImageUnderstandingStrategy;
|
|
628
|
-
exports.IntegrationStrategyKey = IntegrationStrategyKey;
|
|
629
|
-
exports.KNOWLEDGE_STRATEGY = KNOWLEDGE_STRATEGY;
|
|
630
|
-
exports.KnowledgeStrategyKey = KnowledgeStrategyKey;
|
|
631
|
-
exports.PLUGIN_METADATA = PLUGIN_METADATA;
|
|
632
|
-
exports.RETRIEVER_STRATEGY = RETRIEVER_STRATEGY;
|
|
633
|
-
exports.RetrieverStrategy = RetrieverStrategy;
|
|
634
|
-
exports.TEXT_SPLITTER_STRATEGY = TEXT_SPLITTER_STRATEGY;
|
|
635
|
-
exports.TOOLSET_STRATEGY = TOOLSET_STRATEGY;
|
|
636
|
-
exports.TextSplitterStrategy = TextSplitterStrategy;
|
|
637
|
-
exports.ToolsetStrategy = ToolsetStrategy;
|
|
638
|
-
exports.VECTOR_STORE_STRATEGY = VECTOR_STORE_STRATEGY;
|
|
639
|
-
exports.VectorStoreStrategy = VectorStoreStrategy;
|
|
640
|
-
exports.WORKFLOW_NODE_STRATEGY = WORKFLOW_NODE_STRATEGY;
|
|
641
|
-
exports.WORKFLOW_TRIGGER_STRATEGY = WORKFLOW_TRIGGER_STRATEGY;
|
|
642
|
-
exports.WorkflowNodeStrategy = WorkflowNodeStrategy;
|
|
643
|
-
exports.WorkflowTriggerStrategy = WorkflowTriggerStrategy;
|
|
644
|
-
exports.XpFileSystem = XpFileSystem;
|
|
645
|
-
exports.XpertServerPlugin = XpertServerPlugin;
|
|
646
|
-
exports.createI18nInstance = createI18nInstance;
|
|
647
|
-
exports.createPluginLogger = createPluginLogger;
|
|
648
|
-
exports.downloadRemoteFile = downloadRemoteFile;
|
|
649
|
-
exports.isRemoteFile = isRemoteFile;
|
|
650
|
-
exports.mergeParentChildChunks = mergeParentChildChunks;
|
|
2
|
+
* In order to solve the problem that the `index.cjs.js` cannot be found during the development phase
|
|
3
|
+
* when introducing external plugins (`@xpert-ai/plugin-xxx`) and it referencing `@xpert-ai/plugin-sdk`.
|
|
4
|
+
* - Before using external plugins, you need to nx build this library.
|
|
5
|
+
*/
|
|
6
|
+
module.exports = require('./dist/index.cjs.js')
|
package/jest.config.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import { readFileSync } from 'fs'
|
|
3
|
+
|
|
4
|
+
// Reading the SWC compilation config and remove the "exclude"
|
|
5
|
+
// for the test files to be compiled by SWC
|
|
6
|
+
const { exclude: _, ...swcJestConfig } = JSON.parse(readFileSync(`${__dirname}/.swcrc`, 'utf-8'))
|
|
7
|
+
|
|
8
|
+
// disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves.
|
|
9
|
+
// If we do not disable this, SWC Core will read .swcrc and won't transform our test files due to "exclude"
|
|
10
|
+
if (swcJestConfig.swcrc === undefined) {
|
|
11
|
+
swcJestConfig.swcrc = false
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Uncomment if using global setup/teardown files being transformed via swc
|
|
15
|
+
// https://nx.dev/packages/jest/documents/overview#global-setup/teardown-with-nx-libraries
|
|
16
|
+
// jest needs EsModule Interop to find the default exported setup/teardown functions
|
|
17
|
+
// swcJestConfig.module.noInterop = false;
|
|
18
|
+
|
|
19
|
+
export default {
|
|
20
|
+
displayName: 'plugin-sdk',
|
|
21
|
+
preset: '../../jest.preset.js',
|
|
22
|
+
transform: {
|
|
23
|
+
'^.+\\.[tj]s$': ['@swc/jest', swcJestConfig]
|
|
24
|
+
},
|
|
25
|
+
moduleFileExtensions: ['ts', 'js', 'html'],
|
|
26
|
+
testEnvironment: 'node',
|
|
27
|
+
coverageDirectory: '../../coverage/packages/plugin-sdk'
|
|
28
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xpert-ai/plugin-sdk",
|
|
3
|
-
"version": "3.6.0
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"dependencies": {},
|
|
6
|
-
"main": "./index.cjs
|
|
7
|
-
"module": "./index.
|
|
6
|
+
"main": "./index.cjs",
|
|
7
|
+
"module": "./index.js",
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
10
10
|
},
|