@ixo/common 1.1.0 → 1.1.1
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +0 -6
- package/README.md +1 -6
- package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts +4 -4
- package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts.map +1 -1
- package/dist/ai/nodes/generic-chat/generic-chat.node.js +1 -1
- package/dist/ai/nodes/generic-chat/generic-chat.node.js.map +1 -1
- package/dist/ai/semantic-router-factory/create-semantic-router.d.ts +2 -2
- package/dist/ai/semantic-router-factory/create-semantic-router.d.ts.map +1 -1
- package/dist/ai/semantic-router-factory/create-semantic-router.js.map +1 -1
- package/dist/ai/tools/action-caller.d.ts +3 -3
- package/dist/ai/tools/action-caller.d.ts.map +1 -1
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts.map +1 -1
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js.map +1 -1
- package/dist/ai/tools/browser-tool-caller.d.ts +3 -3
- package/dist/ai/tools/browser-tool-caller.d.ts.map +1 -1
- package/dist/ai/tools/frontend-tool-caller.d.ts +2 -2
- package/dist/ai/tools/frontend-tool-caller.d.ts.map +1 -1
- package/dist/ai/tools/frontend-tool-caller.js +2 -1
- package/dist/ai/tools/frontend-tool-caller.js.map +1 -1
- package/dist/ai/tools/log-action-to-matrix.d.ts +2 -2
- package/dist/ai/tools/log-action-to-matrix.d.ts.map +1 -1
- package/dist/ai/tools/log-action-to-matrix.js.map +1 -1
- package/dist/ai/tools/parser-action-tool.d.ts +2 -2
- package/dist/ai/tools/parser-action-tool.d.ts.map +1 -1
- package/dist/ai/tools/parser-action-tool.js +5 -5
- package/dist/ai/tools/parser-action-tool.js.map +1 -1
- package/dist/ai/tools/parser-browser-tool.d.ts +2 -2
- package/dist/ai/tools/parser-browser-tool.d.ts.map +1 -1
- package/dist/ai/tools/parser-browser-tool.js +1 -1
- package/dist/ai/tools/parser-browser-tool.js.map +1 -1
- package/dist/ai/tools/scrape-web-page.d.ts +1 -1
- package/dist/ai/tools/scrape-web-page.d.ts.map +1 -1
- package/dist/ai/utils/doc-splitter.js.map +1 -1
- package/dist/ai/utils/generate-questions-from-chunks.d.ts +1 -1
- package/dist/ai/utils/generate-questions-from-chunks.d.ts.map +1 -1
- package/dist/ai/utils/json-to-yaml.js.map +1 -1
- package/dist/ai/utils/load-file.js +1 -1
- package/dist/ai/utils/load-file.js.map +1 -1
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts.map +1 -1
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js +5 -3
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js.map +1 -1
- package/dist/ai/utils/verify-matrix-openId-token.d.ts.map +1 -1
- package/dist/ai/utils/verify-matrix-openId-token.js +2 -2
- package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -1
- package/dist/services/env/env.service.d.ts.map +1 -1
- package/dist/services/env/env.service.js.map +1 -1
- package/dist/services/session-manager/session-manager.service.d.ts +2 -2
- package/dist/services/session-manager/session-manager.service.d.ts.map +1 -1
- package/dist/services/session-manager/session-manager.service.js +3 -2
- package/dist/services/session-manager/session-manager.service.js.map +1 -1
- package/package.json +6 -10
- package/src/ai/index.ts +1 -1
- package/src/ai/models/openai.test.ts +7 -8
- package/src/ai/nodes/generic-chat/generic-chat.node.ts +7 -4
- package/src/ai/nodes/generic-chat/index.ts +1 -1
- package/src/ai/nodes/index.ts +1 -1
- package/src/ai/semantic-router-factory/create-semantic-router.test.ts +8 -5
- package/src/ai/semantic-router-factory/create-semantic-router.ts +8 -5
- package/src/ai/tools/action-caller.ts +3 -3
- package/src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts +6 -4
- package/src/ai/tools/browser-tool-caller.ts +3 -3
- package/src/ai/tools/frontend-tool-caller.ts +11 -6
- package/src/ai/tools/log-action-to-matrix.ts +2 -3
- package/src/ai/tools/parser-action-tool.ts +8 -8
- package/src/ai/tools/parser-browser-tool.ts +4 -4
- package/src/ai/tools/retriever-tool/retriever-tool.test.ts +30 -23
- package/src/ai/tools/scrape-web-page.ts +1 -1
- package/src/ai/utils/__tests__/doc-relevance-checker.test.ts +5 -3
- package/src/ai/utils/__tests__/json-to-yaml.test.ts +1 -1
- package/src/ai/utils/doc-splitter.ts +1 -1
- package/src/ai/utils/generate-questions-from-chunks.ts +1 -1
- package/src/ai/utils/json-to-yaml.ts +1 -1
- package/src/ai/utils/load-file.ts +1 -1
- package/src/ai/utils/transformGraphStateMessageToListMessageResponse.ts +8 -4
- package/src/ai/utils/verify-matrix-openId-token.ts +9 -6
- package/src/services/env/env-service.test.ts +1 -1
- package/src/services/env/env.service.ts +0 -1
- package/src/services/session-manager/session-manager.service.ts +6 -4
- package/src/utils/index.ts +1 -1
- package/tsconfig.json +8 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.ts +2 -0
- package/.eslintrc.js +0 -9
- package/.prettierignore +0 -3
- package/.prettierrc.cjs +0 -4
- package/dist/ai/models/openai.test.d.ts +0 -2
- package/dist/ai/models/openai.test.d.ts.map +0 -1
- package/dist/ai/models/openai.test.js +0 -58
- package/dist/ai/models/openai.test.js.map +0 -1
- package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts +0 -2
- package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts.map +0 -1
- package/dist/ai/semantic-router-factory/create-semantic-router.test.js +0 -68
- package/dist/ai/semantic-router-factory/create-semantic-router.test.js.map +0 -1
- package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts +0 -2
- package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts.map +0 -1
- package/dist/ai/tools/retriever-tool/retriever-tool.test.js +0 -119
- package/dist/ai/tools/retriever-tool/retriever-tool.test.js.map +0 -1
- package/dist/ai/utils/__tests__/chunk-arr.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/chunk-arr.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/chunk-arr.test.js +0 -37
- package/dist/ai/utils/__tests__/chunk-arr.test.js.map +0 -1
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.js +0 -80
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.js.map +0 -1
- package/dist/ai/utils/__tests__/doc-splitter.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/doc-splitter.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/doc-splitter.test.js +0 -35
- package/dist/ai/utils/__tests__/doc-splitter.test.js.map +0 -1
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js +0 -47
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js.map +0 -1
- package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/json-to-yaml.test.js +0 -63
- package/dist/ai/utils/__tests__/json-to-yaml.test.js.map +0 -1
- package/dist/ai/utils/__tests__/stringify-docs.test.d.ts +0 -2
- package/dist/ai/utils/__tests__/stringify-docs.test.d.ts.map +0 -1
- package/dist/ai/utils/__tests__/stringify-docs.test.js +0 -54
- package/dist/ai/utils/__tests__/stringify-docs.test.js.map +0 -1
- package/dist/services/env/env-service.test.d.ts +0 -2
- package/dist/services/env/env-service.test.d.ts.map +0 -1
- package/dist/services/env/env-service.test.js +0 -99
- package/dist/services/env/env-service.test.js.map +0 -1
- package/jest.config.js +0 -6
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { jsonToYaml } from '../json-to-yaml.js';
|
|
2
|
-
describe('jsonToYaml', () => {
|
|
3
|
-
it('should convert flat JSON object to YAML', () => {
|
|
4
|
-
const json = {
|
|
5
|
-
name: 'John',
|
|
6
|
-
age: 30,
|
|
7
|
-
city: 'New York',
|
|
8
|
-
};
|
|
9
|
-
const expected = 'name: John\nage: 30\ncity: New York';
|
|
10
|
-
expect(jsonToYaml(json)).toBe(expected);
|
|
11
|
-
});
|
|
12
|
-
it('should handle nested objects', () => {
|
|
13
|
-
const json = {
|
|
14
|
-
person: {
|
|
15
|
-
name: 'John',
|
|
16
|
-
address: {
|
|
17
|
-
city: 'New York',
|
|
18
|
-
zip: '10001',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
const expected = 'person:\n name: John\n address:\n city: New York\n zip: 10001';
|
|
23
|
-
expect(jsonToYaml(json)).toBe(expected);
|
|
24
|
-
});
|
|
25
|
-
it('should handle arrays as nested objects', () => {
|
|
26
|
-
const json = {
|
|
27
|
-
fruits: ['apple', 'banana', 'orange'],
|
|
28
|
-
};
|
|
29
|
-
const expected = 'fruits:\n 0: apple\n 1: banana\n 2: orange';
|
|
30
|
-
expect(jsonToYaml(json)).toBe(expected);
|
|
31
|
-
});
|
|
32
|
-
it('should handle empty objects', () => {
|
|
33
|
-
const json = {};
|
|
34
|
-
expect(jsonToYaml(json)).toBe('');
|
|
35
|
-
});
|
|
36
|
-
it('should handle null values', () => {
|
|
37
|
-
const json = {
|
|
38
|
-
name: null,
|
|
39
|
-
age: 30,
|
|
40
|
-
};
|
|
41
|
-
const expected = 'name: null\nage: 30';
|
|
42
|
-
expect(jsonToYaml(json)).toBe(expected);
|
|
43
|
-
});
|
|
44
|
-
it('should handle mixed types', () => {
|
|
45
|
-
const json = {
|
|
46
|
-
string: 'text',
|
|
47
|
-
number: 42,
|
|
48
|
-
boolean: true,
|
|
49
|
-
nullValue: null,
|
|
50
|
-
};
|
|
51
|
-
const expected = 'string: text\nnumber: 42\nboolean: true\nnullValue: null';
|
|
52
|
-
expect(jsonToYaml(json)).toBe(expected);
|
|
53
|
-
});
|
|
54
|
-
it('should handle custom indentation level', () => {
|
|
55
|
-
const json = {
|
|
56
|
-
name: 'John',
|
|
57
|
-
age: 30,
|
|
58
|
-
};
|
|
59
|
-
const expected = ' name: John\n age: 30';
|
|
60
|
-
expect(jsonToYaml(json, 2)).toBe(expected);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=json-to-yaml.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-to-yaml.test.js","sourceRoot":"","sources":["../../../../src/ai/utils/__tests__/json-to-yaml.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,UAAU;SACjB,CAAC;QACF,MAAM,QAAQ,GAAG,qCAAqC,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,OAAO;iBACb;aACF;SACF,CAAC;QACF,MAAM,QAAQ,GACZ,uEAAuE,CAAC;QAC1E,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACtC,CAAC;QACF,MAAM,QAAQ,GAAG,+CAA+C,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,EAAE;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,MAAM,QAAQ,GAAG,0DAA0D,CAAC;QAC5E,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,EAAE;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,6BAA6B,CAAC;QAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify-docs.test.d.ts","sourceRoot":"","sources":["../../../../src/ai/utils/__tests__/stringify-docs.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Document } from '@langchain/core/documents';
|
|
2
|
-
import { stringifyDocs } from '../stringify-docs.js';
|
|
3
|
-
describe('stringifyDocs', () => {
|
|
4
|
-
it('should stringify a single document', () => {
|
|
5
|
-
const doc = new Document({
|
|
6
|
-
pageContent: 'Test content',
|
|
7
|
-
metadata: { id: '123' },
|
|
8
|
-
});
|
|
9
|
-
const result = stringifyDocs([doc]);
|
|
10
|
-
expect(result).toBe('#ID:123\n Document: Test content \n \n ');
|
|
11
|
-
});
|
|
12
|
-
it('should stringify multiple documents', () => {
|
|
13
|
-
const docs = [
|
|
14
|
-
new Document({
|
|
15
|
-
pageContent: 'First content',
|
|
16
|
-
metadata: { id: '1' },
|
|
17
|
-
}),
|
|
18
|
-
new Document({
|
|
19
|
-
pageContent: 'Second content',
|
|
20
|
-
metadata: { id: '2' },
|
|
21
|
-
}),
|
|
22
|
-
];
|
|
23
|
-
const expected = '#ID:1\n Document: First content \n \n \n\n#ID:2\n Document: Second content \n \n ';
|
|
24
|
-
expect(stringifyDocs(docs)).toBe(expected);
|
|
25
|
-
});
|
|
26
|
-
it('should handle empty array', () => {
|
|
27
|
-
expect(stringifyDocs([])).toBe('');
|
|
28
|
-
});
|
|
29
|
-
it('should handle documents with special characters', () => {
|
|
30
|
-
const doc = new Document({
|
|
31
|
-
pageContent: 'Content with \n newline and \t tab',
|
|
32
|
-
metadata: { id: 'special' },
|
|
33
|
-
});
|
|
34
|
-
const expected = '#ID:special\n Document: Content with \n newline and \t tab \n \n ';
|
|
35
|
-
expect(stringifyDocs([doc])).toBe(expected);
|
|
36
|
-
});
|
|
37
|
-
it('should handle documents with empty content', () => {
|
|
38
|
-
const doc = new Document({
|
|
39
|
-
pageContent: '',
|
|
40
|
-
metadata: { id: 'empty' },
|
|
41
|
-
});
|
|
42
|
-
const expected = '#ID:empty\n Document: \n \n ';
|
|
43
|
-
expect(stringifyDocs([doc])).toBe(expected);
|
|
44
|
-
});
|
|
45
|
-
it('should handle documents with missing id in metadata', () => {
|
|
46
|
-
const doc = new Document({
|
|
47
|
-
pageContent: 'Test content',
|
|
48
|
-
metadata: {},
|
|
49
|
-
});
|
|
50
|
-
const expected = '#ID:undefined\n Document: Test content \n \n ';
|
|
51
|
-
expect(stringifyDocs([doc])).toBe(expected);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=stringify-docs.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify-docs.test.js","sourceRoot":"","sources":["../../../../src/ai/utils/__tests__/stringify-docs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG;YACX,IAAI,QAAQ,CAAC;gBACX,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;aACtB,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;aACtB,CAAC;SACH,CAAC;QACF,MAAM,QAAQ,GACZ,mFAAmF,CAAC;QACtF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,QAAQ,GACZ,mEAAmE,CAAC;QACtE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,+BAA+B,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,+CAA+C,CAAC;QACjE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-service.test.d.ts","sourceRoot":"","sources":["../../../src/services/env/env-service.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
import { EnvService } from './env.service.js';
|
|
3
|
-
describe('EnvService', () => {
|
|
4
|
-
const originalEnv = process.env;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
process.env = { ...originalEnv };
|
|
7
|
-
EnvService.instance = null;
|
|
8
|
-
});
|
|
9
|
-
afterAll(() => {
|
|
10
|
-
process.env = originalEnv;
|
|
11
|
-
});
|
|
12
|
-
describe('initialization', () => {
|
|
13
|
-
it('should initialize with valid environment variables', () => {
|
|
14
|
-
const schema = z.object({
|
|
15
|
-
TEST_VAR: z.string(),
|
|
16
|
-
TEST_NUMBER: z.coerce.number(),
|
|
17
|
-
});
|
|
18
|
-
process.env.TEST_VAR = 'test';
|
|
19
|
-
process.env.TEST_NUMBER = '123';
|
|
20
|
-
const envService = EnvService.initialize(schema);
|
|
21
|
-
expect(envService.get('TEST_VAR')).toBe('test');
|
|
22
|
-
expect(envService.get('TEST_NUMBER')).toBe(123);
|
|
23
|
-
});
|
|
24
|
-
it('should throw error when required environment variables are missing', () => {
|
|
25
|
-
const schema = z.object({
|
|
26
|
-
MISSING_VAR: z.string(),
|
|
27
|
-
});
|
|
28
|
-
expect(() => EnvService.initialize(schema)).toThrow();
|
|
29
|
-
});
|
|
30
|
-
it('should maintain singleton instance', () => {
|
|
31
|
-
const schema = z.object({
|
|
32
|
-
TEST_VAR: z.string(),
|
|
33
|
-
});
|
|
34
|
-
process.env.TEST_VAR = 'test';
|
|
35
|
-
const instance1 = EnvService.initialize(schema);
|
|
36
|
-
const instance2 = EnvService.initialize(schema);
|
|
37
|
-
expect(instance1).toBe(instance2);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('getInstance', () => {
|
|
41
|
-
it('should throw error when accessing getInstance before initialization', () => {
|
|
42
|
-
expect(() => EnvService.getInstance()).toThrow('EnvService must be initialized with a schema first');
|
|
43
|
-
});
|
|
44
|
-
it('should return initialized instance', () => {
|
|
45
|
-
const schema = z.object({
|
|
46
|
-
TEST_VAR: z.string(),
|
|
47
|
-
});
|
|
48
|
-
process.env.TEST_VAR = 'test';
|
|
49
|
-
const initializedInstance = EnvService.initialize(schema);
|
|
50
|
-
const instance = EnvService.getInstance();
|
|
51
|
-
expect(instance).toBe(initializedInstance);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('environment access', () => {
|
|
55
|
-
it('should return all environment variables', () => {
|
|
56
|
-
const schema = z.object({
|
|
57
|
-
TEST_VAR1: z.string(),
|
|
58
|
-
TEST_VAR2: z.string(),
|
|
59
|
-
});
|
|
60
|
-
process.env.TEST_VAR1 = 'value1';
|
|
61
|
-
process.env.TEST_VAR2 = 'value2';
|
|
62
|
-
const envService = EnvService.initialize(schema);
|
|
63
|
-
const allEnv = envService.getAll();
|
|
64
|
-
expect(allEnv).toEqual({
|
|
65
|
-
TEST_VAR1: 'value1',
|
|
66
|
-
TEST_VAR2: 'value2',
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
it('should handle transformed values correctly', () => {
|
|
70
|
-
const schema = z.object({
|
|
71
|
-
NUMBER: z.string().transform(Number),
|
|
72
|
-
BOOLEAN: z.string().transform((val) => val === 'true'),
|
|
73
|
-
});
|
|
74
|
-
process.env.NUMBER = '42';
|
|
75
|
-
process.env.BOOLEAN = 'true';
|
|
76
|
-
const envService = EnvService.initialize(schema);
|
|
77
|
-
expect(envService.get('NUMBER')).toBe(42);
|
|
78
|
-
expect(envService.get('BOOLEAN')).toBe(true);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
describe('validation', () => {
|
|
82
|
-
it('should validate enum values', () => {
|
|
83
|
-
const schema = z.object({
|
|
84
|
-
NODE_ENV: z.enum(['development', 'production', 'test']),
|
|
85
|
-
});
|
|
86
|
-
process.env.NODE_ENV = 'development';
|
|
87
|
-
const envService = EnvService.initialize(schema);
|
|
88
|
-
expect(envService.get('NODE_ENV')).toBe('development');
|
|
89
|
-
});
|
|
90
|
-
it('should throw on invalid enum values', () => {
|
|
91
|
-
const schema = z.object({
|
|
92
|
-
NODE_ENV: z.enum(['development', 'production', 'test']),
|
|
93
|
-
});
|
|
94
|
-
process.env.NODE_ENV = 'invalid';
|
|
95
|
-
expect(() => EnvService.initialize(schema)).toThrow();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
//# sourceMappingURL=env-service.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-service.test.js","sourceRoot":"","sources":["../../../src/services/env/env-service.test.ts"],"names":[],"mappings":"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"}
|