@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.
Files changed (127) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +0 -6
  3. package/README.md +1 -6
  4. package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts +4 -4
  5. package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts.map +1 -1
  6. package/dist/ai/nodes/generic-chat/generic-chat.node.js +1 -1
  7. package/dist/ai/nodes/generic-chat/generic-chat.node.js.map +1 -1
  8. package/dist/ai/semantic-router-factory/create-semantic-router.d.ts +2 -2
  9. package/dist/ai/semantic-router-factory/create-semantic-router.d.ts.map +1 -1
  10. package/dist/ai/semantic-router-factory/create-semantic-router.js.map +1 -1
  11. package/dist/ai/tools/action-caller.d.ts +3 -3
  12. package/dist/ai/tools/action-caller.d.ts.map +1 -1
  13. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts.map +1 -1
  14. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js.map +1 -1
  15. package/dist/ai/tools/browser-tool-caller.d.ts +3 -3
  16. package/dist/ai/tools/browser-tool-caller.d.ts.map +1 -1
  17. package/dist/ai/tools/frontend-tool-caller.d.ts +2 -2
  18. package/dist/ai/tools/frontend-tool-caller.d.ts.map +1 -1
  19. package/dist/ai/tools/frontend-tool-caller.js +2 -1
  20. package/dist/ai/tools/frontend-tool-caller.js.map +1 -1
  21. package/dist/ai/tools/log-action-to-matrix.d.ts +2 -2
  22. package/dist/ai/tools/log-action-to-matrix.d.ts.map +1 -1
  23. package/dist/ai/tools/log-action-to-matrix.js.map +1 -1
  24. package/dist/ai/tools/parser-action-tool.d.ts +2 -2
  25. package/dist/ai/tools/parser-action-tool.d.ts.map +1 -1
  26. package/dist/ai/tools/parser-action-tool.js +5 -5
  27. package/dist/ai/tools/parser-action-tool.js.map +1 -1
  28. package/dist/ai/tools/parser-browser-tool.d.ts +2 -2
  29. package/dist/ai/tools/parser-browser-tool.d.ts.map +1 -1
  30. package/dist/ai/tools/parser-browser-tool.js +1 -1
  31. package/dist/ai/tools/parser-browser-tool.js.map +1 -1
  32. package/dist/ai/tools/scrape-web-page.d.ts +1 -1
  33. package/dist/ai/tools/scrape-web-page.d.ts.map +1 -1
  34. package/dist/ai/utils/doc-splitter.js.map +1 -1
  35. package/dist/ai/utils/generate-questions-from-chunks.d.ts +1 -1
  36. package/dist/ai/utils/generate-questions-from-chunks.d.ts.map +1 -1
  37. package/dist/ai/utils/json-to-yaml.js.map +1 -1
  38. package/dist/ai/utils/load-file.js +1 -1
  39. package/dist/ai/utils/load-file.js.map +1 -1
  40. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts.map +1 -1
  41. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js +5 -3
  42. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js.map +1 -1
  43. package/dist/ai/utils/verify-matrix-openId-token.d.ts.map +1 -1
  44. package/dist/ai/utils/verify-matrix-openId-token.js +2 -2
  45. package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -1
  46. package/dist/services/env/env.service.d.ts.map +1 -1
  47. package/dist/services/env/env.service.js.map +1 -1
  48. package/dist/services/session-manager/session-manager.service.d.ts +2 -2
  49. package/dist/services/session-manager/session-manager.service.d.ts.map +1 -1
  50. package/dist/services/session-manager/session-manager.service.js +3 -2
  51. package/dist/services/session-manager/session-manager.service.js.map +1 -1
  52. package/package.json +6 -10
  53. package/src/ai/index.ts +1 -1
  54. package/src/ai/models/openai.test.ts +7 -8
  55. package/src/ai/nodes/generic-chat/generic-chat.node.ts +7 -4
  56. package/src/ai/nodes/generic-chat/index.ts +1 -1
  57. package/src/ai/nodes/index.ts +1 -1
  58. package/src/ai/semantic-router-factory/create-semantic-router.test.ts +8 -5
  59. package/src/ai/semantic-router-factory/create-semantic-router.ts +8 -5
  60. package/src/ai/tools/action-caller.ts +3 -3
  61. package/src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts +6 -4
  62. package/src/ai/tools/browser-tool-caller.ts +3 -3
  63. package/src/ai/tools/frontend-tool-caller.ts +11 -6
  64. package/src/ai/tools/log-action-to-matrix.ts +2 -3
  65. package/src/ai/tools/parser-action-tool.ts +8 -8
  66. package/src/ai/tools/parser-browser-tool.ts +4 -4
  67. package/src/ai/tools/retriever-tool/retriever-tool.test.ts +30 -23
  68. package/src/ai/tools/scrape-web-page.ts +1 -1
  69. package/src/ai/utils/__tests__/doc-relevance-checker.test.ts +5 -3
  70. package/src/ai/utils/__tests__/json-to-yaml.test.ts +1 -1
  71. package/src/ai/utils/doc-splitter.ts +1 -1
  72. package/src/ai/utils/generate-questions-from-chunks.ts +1 -1
  73. package/src/ai/utils/json-to-yaml.ts +1 -1
  74. package/src/ai/utils/load-file.ts +1 -1
  75. package/src/ai/utils/transformGraphStateMessageToListMessageResponse.ts +8 -4
  76. package/src/ai/utils/verify-matrix-openId-token.ts +9 -6
  77. package/src/services/env/env-service.test.ts +1 -1
  78. package/src/services/env/env.service.ts +0 -1
  79. package/src/services/session-manager/session-manager.service.ts +6 -4
  80. package/src/utils/index.ts +1 -1
  81. package/tsconfig.json +8 -2
  82. package/tsconfig.tsbuildinfo +1 -1
  83. package/vitest.config.ts +2 -0
  84. package/.eslintrc.js +0 -9
  85. package/.prettierignore +0 -3
  86. package/.prettierrc.cjs +0 -4
  87. package/dist/ai/models/openai.test.d.ts +0 -2
  88. package/dist/ai/models/openai.test.d.ts.map +0 -1
  89. package/dist/ai/models/openai.test.js +0 -58
  90. package/dist/ai/models/openai.test.js.map +0 -1
  91. package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts +0 -2
  92. package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts.map +0 -1
  93. package/dist/ai/semantic-router-factory/create-semantic-router.test.js +0 -68
  94. package/dist/ai/semantic-router-factory/create-semantic-router.test.js.map +0 -1
  95. package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts +0 -2
  96. package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts.map +0 -1
  97. package/dist/ai/tools/retriever-tool/retriever-tool.test.js +0 -119
  98. package/dist/ai/tools/retriever-tool/retriever-tool.test.js.map +0 -1
  99. package/dist/ai/utils/__tests__/chunk-arr.test.d.ts +0 -2
  100. package/dist/ai/utils/__tests__/chunk-arr.test.d.ts.map +0 -1
  101. package/dist/ai/utils/__tests__/chunk-arr.test.js +0 -37
  102. package/dist/ai/utils/__tests__/chunk-arr.test.js.map +0 -1
  103. package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts +0 -2
  104. package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts.map +0 -1
  105. package/dist/ai/utils/__tests__/doc-relevance-checker.test.js +0 -80
  106. package/dist/ai/utils/__tests__/doc-relevance-checker.test.js.map +0 -1
  107. package/dist/ai/utils/__tests__/doc-splitter.test.d.ts +0 -2
  108. package/dist/ai/utils/__tests__/doc-splitter.test.d.ts.map +0 -1
  109. package/dist/ai/utils/__tests__/doc-splitter.test.js +0 -35
  110. package/dist/ai/utils/__tests__/doc-splitter.test.js.map +0 -1
  111. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts +0 -2
  112. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts.map +0 -1
  113. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js +0 -47
  114. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js.map +0 -1
  115. package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts +0 -2
  116. package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts.map +0 -1
  117. package/dist/ai/utils/__tests__/json-to-yaml.test.js +0 -63
  118. package/dist/ai/utils/__tests__/json-to-yaml.test.js.map +0 -1
  119. package/dist/ai/utils/__tests__/stringify-docs.test.d.ts +0 -2
  120. package/dist/ai/utils/__tests__/stringify-docs.test.d.ts.map +0 -1
  121. package/dist/ai/utils/__tests__/stringify-docs.test.js +0 -54
  122. package/dist/ai/utils/__tests__/stringify-docs.test.js.map +0 -1
  123. package/dist/services/env/env-service.test.d.ts +0 -2
  124. package/dist/services/env/env-service.test.d.ts.map +0 -1
  125. package/dist/services/env/env-service.test.js +0 -99
  126. package/dist/services/env/env-service.test.js.map +0 -1
  127. 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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=stringify-docs.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=env-service.test.d.ts.map
@@ -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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"}
package/jest.config.js DELETED
@@ -1,6 +0,0 @@
1
- const baseConfig = require('@ixo/jest-config/nest');
2
-
3
- module.exports = {
4
- ...baseConfig,
5
- displayName: 'common',
6
- };