@djangocfg/ext-knowbase 1.0.23 → 1.0.25

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 (71) hide show
  1. package/dist/config.cjs +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/hooks.cjs +118 -118
  4. package/dist/hooks.js +118 -118
  5. package/dist/i18n.cjs +34 -34
  6. package/dist/i18n.js +35 -35
  7. package/dist/index.cjs +84 -84
  8. package/dist/index.js +84 -84
  9. package/package.json +11 -11
  10. package/src/api/generated/ext_knowbase/_utils/fetchers/ext_knowbase__knowbase.ts +114 -47
  11. package/src/api/generated/ext_knowbase/_utils/hooks/ext_knowbase__knowbase.ts +4 -3
  12. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItem.schema.ts +3 -2
  13. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunk.schema.ts +3 -2
  14. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunkDetail.schema.ts +3 -2
  15. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunkRequest.schema.ts +3 -2
  16. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemDetail.schema.ts +3 -2
  17. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemRequest.schema.ts +1 -1
  18. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveProcessingResult.schema.ts +1 -1
  19. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveSearchRequestRequest.schema.ts +1 -1
  20. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveSearchResult.schema.ts +3 -2
  21. package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveStatistics.schema.ts +1 -1
  22. package/src/api/generated/ext_knowbase/_utils/schemas/CfgKnowbaseSystemArchivesCreateRequest.schema.ts +1 -1
  23. package/src/api/generated/ext_knowbase/_utils/schemas/ChatHistory.schema.ts +3 -2
  24. package/src/api/generated/ext_knowbase/_utils/schemas/ChatMessage.schema.ts +3 -2
  25. package/src/api/generated/ext_knowbase/_utils/schemas/ChatQueryRequest.schema.ts +1 -1
  26. package/src/api/generated/ext_knowbase/_utils/schemas/ChatResponse.schema.ts +3 -2
  27. package/src/api/generated/ext_knowbase/_utils/schemas/ChatResponseRequest.schema.ts +3 -2
  28. package/src/api/generated/ext_knowbase/_utils/schemas/ChatSession.schema.ts +1 -1
  29. package/src/api/generated/ext_knowbase/_utils/schemas/ChatSessionCreateRequest.schema.ts +1 -1
  30. package/src/api/generated/ext_knowbase/_utils/schemas/ChatSessionRequest.schema.ts +1 -1
  31. package/src/api/generated/ext_knowbase/_utils/schemas/ChatSource.schema.ts +1 -1
  32. package/src/api/generated/ext_knowbase/_utils/schemas/ChatSourceRequest.schema.ts +1 -1
  33. package/src/api/generated/ext_knowbase/_utils/schemas/ChunkRevectorizationRequestRequest.schema.ts +1 -1
  34. package/src/api/generated/ext_knowbase/_utils/schemas/Document.schema.ts +1 -1
  35. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchive.schema.ts +4 -3
  36. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveDetail.schema.ts +5 -4
  37. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveList.schema.ts +4 -3
  38. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveRequest.schema.ts +1 -1
  39. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCategory.schema.ts +1 -1
  40. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCategoryRequest.schema.ts +1 -1
  41. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCreateRequest.schema.ts +1 -1
  42. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentProcessingStatus.schema.ts +1 -1
  43. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentRequest.schema.ts +1 -1
  44. package/src/api/generated/ext_knowbase/_utils/schemas/DocumentStats.schema.ts +1 -1
  45. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveItemChunkList.schema.ts +3 -2
  46. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveItemList.schema.ts +3 -2
  47. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveSearchResultList.schema.ts +3 -2
  48. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedChatResponseList.schema.ts +3 -2
  49. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedChatSessionList.schema.ts +3 -2
  50. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedDocumentArchiveListList.schema.ts +3 -2
  51. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedDocumentList.schema.ts +3 -2
  52. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedPublicCategoryList.schema.ts +3 -2
  53. package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedPublicDocumentListList.schema.ts +3 -2
  54. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedArchiveItemChunkRequest.schema.ts +3 -2
  55. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedArchiveItemRequest.schema.ts +1 -1
  56. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedChatResponseRequest.schema.ts +3 -2
  57. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedChatSessionRequest.schema.ts +1 -1
  58. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedDocumentArchiveRequest.schema.ts +1 -1
  59. package/src/api/generated/ext_knowbase/_utils/schemas/PatchedDocumentRequest.schema.ts +1 -1
  60. package/src/api/generated/ext_knowbase/_utils/schemas/PublicCategory.schema.ts +1 -1
  61. package/src/api/generated/ext_knowbase/_utils/schemas/PublicDocument.schema.ts +3 -2
  62. package/src/api/generated/ext_knowbase/_utils/schemas/PublicDocumentList.schema.ts +3 -2
  63. package/src/api/generated/ext_knowbase/_utils/schemas/VectorizationResult.schema.ts +1 -1
  64. package/src/api/generated/ext_knowbase/_utils/schemas/VectorizationStatistics.schema.ts +1 -1
  65. package/src/api/generated/ext_knowbase/api-instance.ts +1 -1
  66. package/src/api/generated/ext_knowbase/client.ts +5 -6
  67. package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/client.ts +1 -2
  68. package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/models.ts +1 -1
  69. package/src/api/generated/ext_knowbase/index.ts +6 -8
  70. package/src/api/generated/ext_knowbase/retry.ts +1 -0
  71. package/src/i18n/useKnowbaseT.ts +3 -3
package/dist/i18n.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/i18n/useKnowbaseT.ts
4
4
  import { useLocale } from "next-intl";
5
- import { useMemo, useCallback } from "react";
5
+ import { useCallback, useMemo } from "react";
6
6
 
7
7
  // src/i18n/locales/en.ts
8
8
  var en = {
@@ -38,40 +38,6 @@ var en = {
38
38
  }
39
39
  };
40
40
 
41
- // src/i18n/locales/ru.ts
42
- var ru = {
43
- chat: {
44
- title: "\u0411\u0430\u0437\u0430 \u0437\u043D\u0430\u043D\u0438\u0439",
45
- titleShort: "\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430",
46
- placeholder: "\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0432\u043E\u043F\u0440\u043E\u0441...",
47
- enterToSend: "Enter \u0434\u043B\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438, Shift+Enter \u0434\u043B\u044F \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438",
48
- thinking: "\u0414\u0443\u043C\u0430\u044E...",
49
- source: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A {index}",
50
- startConversation: "\u041D\u0430\u0447\u0430\u0442\u044C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440",
51
- startConversationDescription: "\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u043B\u044E\u0431\u043E\u0439 \u0432\u043E\u043F\u0440\u043E\u0441 \u043E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438, \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u0445 \u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 \u043F\u043E\u043C\u043E\u0449\u044C \u0441 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C.",
52
- openChat: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438"
53
- },
54
- sessions: {
55
- title: "\u0421\u0435\u0441\u0441\u0438\u0438 \u0447\u0430\u0442\u0430",
56
- description: "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0438\u0441\u0442\u043E\u0440\u0438\u0435\u0439 \u0447\u0430\u0442\u0430",
57
- noSessions: "\u041D\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u0439",
58
- noSessionsDescription: "\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E.",
59
- untitled: "\u0411\u0435\u0437 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F",
60
- active: "\u0410\u043A\u0442\u0438\u0432\u043D\u0430\u044F",
61
- archive: "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
62
- delete: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
63
- loadingMore: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",
64
- noMore: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u0439",
65
- newChat: "\u041D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442"
66
- },
67
- actions: {
68
- sessions: "\u0421\u0435\u0441\u0441\u0438\u0438",
69
- collapse: "\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
70
- expand: "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
71
- close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
72
- }
73
- };
74
-
75
41
  // src/i18n/locales/ko.ts
76
42
  var ko = {
77
43
  chat: {
@@ -106,6 +72,40 @@ var ko = {
106
72
  }
107
73
  };
108
74
 
75
+ // src/i18n/locales/ru.ts
76
+ var ru = {
77
+ chat: {
78
+ title: "\u0411\u0430\u0437\u0430 \u0437\u043D\u0430\u043D\u0438\u0439",
79
+ titleShort: "\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430",
80
+ placeholder: "\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0432\u043E\u043F\u0440\u043E\u0441...",
81
+ enterToSend: "Enter \u0434\u043B\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438, Shift+Enter \u0434\u043B\u044F \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438",
82
+ thinking: "\u0414\u0443\u043C\u0430\u044E...",
83
+ source: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A {index}",
84
+ startConversation: "\u041D\u0430\u0447\u0430\u0442\u044C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440",
85
+ startConversationDescription: "\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u043B\u044E\u0431\u043E\u0439 \u0432\u043E\u043F\u0440\u043E\u0441 \u043E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438, \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u0445 \u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 \u043F\u043E\u043C\u043E\u0449\u044C \u0441 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C.",
86
+ openChat: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438"
87
+ },
88
+ sessions: {
89
+ title: "\u0421\u0435\u0441\u0441\u0438\u0438 \u0447\u0430\u0442\u0430",
90
+ description: "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0438\u0441\u0442\u043E\u0440\u0438\u0435\u0439 \u0447\u0430\u0442\u0430",
91
+ noSessions: "\u041D\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u0439",
92
+ noSessionsDescription: "\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E.",
93
+ untitled: "\u0411\u0435\u0437 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F",
94
+ active: "\u0410\u043A\u0442\u0438\u0432\u043D\u0430\u044F",
95
+ archive: "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
96
+ delete: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
97
+ loadingMore: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",
98
+ noMore: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u0439",
99
+ newChat: "\u041D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442"
100
+ },
101
+ actions: {
102
+ sessions: "\u0421\u0435\u0441\u0441\u0438\u0438",
103
+ collapse: "\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
104
+ expand: "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
105
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
106
+ }
107
+ };
108
+
109
109
  // src/i18n/useKnowbaseT.ts
110
110
  var translations = { en, ru, ko };
111
111
  function getNestedValue(obj, path) {
package/dist/index.cjs CHANGED
@@ -17,6 +17,89 @@ var __export = (target, all) => {
17
17
  __defProp(target, name, { get: all[name], enumerable: true });
18
18
  };
19
19
 
20
+ // src/api/generated/ext_knowbase/errors.ts
21
+ var APIError = class extends Error {
22
+ constructor(statusCode, statusText, response, url, message) {
23
+ super(message || `HTTP ${statusCode}: ${statusText}`);
24
+ this.statusCode = statusCode;
25
+ this.statusText = statusText;
26
+ this.response = response;
27
+ this.url = url;
28
+ this.name = "APIError";
29
+ }
30
+ /**
31
+ * Get error details from response.
32
+ * DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
33
+ */
34
+ get details() {
35
+ if (typeof this.response === "object" && this.response !== null) {
36
+ return this.response;
37
+ }
38
+ return null;
39
+ }
40
+ /**
41
+ * Get field-specific validation errors from DRF.
42
+ * Returns: { "field_name": ["error1", "error2"], ... }
43
+ */
44
+ get fieldErrors() {
45
+ const details = this.details;
46
+ if (!details) return null;
47
+ const fieldErrors = {};
48
+ for (const [key, value] of Object.entries(details)) {
49
+ if (Array.isArray(value)) {
50
+ fieldErrors[key] = value;
51
+ }
52
+ }
53
+ return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
54
+ }
55
+ /**
56
+ * Get single error message from DRF.
57
+ * Checks for "detail", "message", or first field error.
58
+ */
59
+ get errorMessage() {
60
+ const details = this.details;
61
+ if (!details) return this.message;
62
+ if (details.detail) {
63
+ return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
64
+ }
65
+ if (details.message) {
66
+ return String(details.message);
67
+ }
68
+ const fieldErrors = this.fieldErrors;
69
+ if (fieldErrors) {
70
+ const firstField = Object.keys(fieldErrors)[0];
71
+ if (firstField) {
72
+ return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
73
+ }
74
+ }
75
+ return this.message;
76
+ }
77
+ // Helper methods for common HTTP status codes
78
+ get isValidationError() {
79
+ return this.statusCode === 400;
80
+ }
81
+ get isAuthError() {
82
+ return this.statusCode === 401;
83
+ }
84
+ get isPermissionError() {
85
+ return this.statusCode === 403;
86
+ }
87
+ get isNotFoundError() {
88
+ return this.statusCode === 404;
89
+ }
90
+ get isServerError() {
91
+ return this.statusCode >= 500 && this.statusCode < 600;
92
+ }
93
+ };
94
+ var NetworkError = class extends Error {
95
+ constructor(message, url, originalError) {
96
+ super(message);
97
+ this.url = url;
98
+ this.originalError = originalError;
99
+ this.name = "NetworkError";
100
+ }
101
+ };
102
+
20
103
  // src/api/generated/ext_knowbase/ext_knowbase__knowbase/client.ts
21
104
  var ExtKnowbaseKnowbase = class {
22
105
  client;
@@ -640,89 +723,6 @@ var FetchAdapter = class {
640
723
  };
641
724
  }
642
725
  };
643
-
644
- // src/api/generated/ext_knowbase/errors.ts
645
- var APIError = class extends Error {
646
- constructor(statusCode, statusText, response, url, message) {
647
- super(message || `HTTP ${statusCode}: ${statusText}`);
648
- this.statusCode = statusCode;
649
- this.statusText = statusText;
650
- this.response = response;
651
- this.url = url;
652
- this.name = "APIError";
653
- }
654
- /**
655
- * Get error details from response.
656
- * DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
657
- */
658
- get details() {
659
- if (typeof this.response === "object" && this.response !== null) {
660
- return this.response;
661
- }
662
- return null;
663
- }
664
- /**
665
- * Get field-specific validation errors from DRF.
666
- * Returns: { "field_name": ["error1", "error2"], ... }
667
- */
668
- get fieldErrors() {
669
- const details = this.details;
670
- if (!details) return null;
671
- const fieldErrors = {};
672
- for (const [key, value] of Object.entries(details)) {
673
- if (Array.isArray(value)) {
674
- fieldErrors[key] = value;
675
- }
676
- }
677
- return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
678
- }
679
- /**
680
- * Get single error message from DRF.
681
- * Checks for "detail", "message", or first field error.
682
- */
683
- get errorMessage() {
684
- const details = this.details;
685
- if (!details) return this.message;
686
- if (details.detail) {
687
- return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
688
- }
689
- if (details.message) {
690
- return String(details.message);
691
- }
692
- const fieldErrors = this.fieldErrors;
693
- if (fieldErrors) {
694
- const firstField = Object.keys(fieldErrors)[0];
695
- if (firstField) {
696
- return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
697
- }
698
- }
699
- return this.message;
700
- }
701
- // Helper methods for common HTTP status codes
702
- get isValidationError() {
703
- return this.statusCode === 400;
704
- }
705
- get isAuthError() {
706
- return this.statusCode === 401;
707
- }
708
- get isPermissionError() {
709
- return this.statusCode === 403;
710
- }
711
- get isNotFoundError() {
712
- return this.statusCode === 404;
713
- }
714
- get isServerError() {
715
- return this.statusCode >= 500 && this.statusCode < 600;
716
- }
717
- };
718
- var NetworkError = class extends Error {
719
- constructor(message, url, originalError) {
720
- super(message);
721
- this.url = url;
722
- this.originalError = originalError;
723
- this.name = "NetworkError";
724
- }
725
- };
726
726
  var DEFAULT_CONFIG = {
727
727
  enabled: process.env.NODE_ENV !== "production",
728
728
  logRequests: true,
@@ -4369,7 +4369,7 @@ var apiKnowbase = api.createExtensionAPI(API);
4369
4369
  // package.json
4370
4370
  var package_default = {
4371
4371
  name: "@djangocfg/ext-knowbase",
4372
- version: "1.0.23",
4372
+ version: "1.0.25",
4373
4373
  description: "Knowledge base and chat extension for DjangoCFG",
4374
4374
  keywords: [
4375
4375
  "django",
package/dist/index.js CHANGED
@@ -11,6 +11,89 @@ var __export = (target, all) => {
11
11
  __defProp(target, name, { get: all[name], enumerable: true });
12
12
  };
13
13
 
14
+ // src/api/generated/ext_knowbase/errors.ts
15
+ var APIError = class extends Error {
16
+ constructor(statusCode, statusText, response, url, message) {
17
+ super(message || `HTTP ${statusCode}: ${statusText}`);
18
+ this.statusCode = statusCode;
19
+ this.statusText = statusText;
20
+ this.response = response;
21
+ this.url = url;
22
+ this.name = "APIError";
23
+ }
24
+ /**
25
+ * Get error details from response.
26
+ * DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
27
+ */
28
+ get details() {
29
+ if (typeof this.response === "object" && this.response !== null) {
30
+ return this.response;
31
+ }
32
+ return null;
33
+ }
34
+ /**
35
+ * Get field-specific validation errors from DRF.
36
+ * Returns: { "field_name": ["error1", "error2"], ... }
37
+ */
38
+ get fieldErrors() {
39
+ const details = this.details;
40
+ if (!details) return null;
41
+ const fieldErrors = {};
42
+ for (const [key, value] of Object.entries(details)) {
43
+ if (Array.isArray(value)) {
44
+ fieldErrors[key] = value;
45
+ }
46
+ }
47
+ return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
48
+ }
49
+ /**
50
+ * Get single error message from DRF.
51
+ * Checks for "detail", "message", or first field error.
52
+ */
53
+ get errorMessage() {
54
+ const details = this.details;
55
+ if (!details) return this.message;
56
+ if (details.detail) {
57
+ return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
58
+ }
59
+ if (details.message) {
60
+ return String(details.message);
61
+ }
62
+ const fieldErrors = this.fieldErrors;
63
+ if (fieldErrors) {
64
+ const firstField = Object.keys(fieldErrors)[0];
65
+ if (firstField) {
66
+ return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
67
+ }
68
+ }
69
+ return this.message;
70
+ }
71
+ // Helper methods for common HTTP status codes
72
+ get isValidationError() {
73
+ return this.statusCode === 400;
74
+ }
75
+ get isAuthError() {
76
+ return this.statusCode === 401;
77
+ }
78
+ get isPermissionError() {
79
+ return this.statusCode === 403;
80
+ }
81
+ get isNotFoundError() {
82
+ return this.statusCode === 404;
83
+ }
84
+ get isServerError() {
85
+ return this.statusCode >= 500 && this.statusCode < 600;
86
+ }
87
+ };
88
+ var NetworkError = class extends Error {
89
+ constructor(message, url, originalError) {
90
+ super(message);
91
+ this.url = url;
92
+ this.originalError = originalError;
93
+ this.name = "NetworkError";
94
+ }
95
+ };
96
+
14
97
  // src/api/generated/ext_knowbase/ext_knowbase__knowbase/client.ts
15
98
  var ExtKnowbaseKnowbase = class {
16
99
  client;
@@ -634,89 +717,6 @@ var FetchAdapter = class {
634
717
  };
635
718
  }
636
719
  };
637
-
638
- // src/api/generated/ext_knowbase/errors.ts
639
- var APIError = class extends Error {
640
- constructor(statusCode, statusText, response, url, message) {
641
- super(message || `HTTP ${statusCode}: ${statusText}`);
642
- this.statusCode = statusCode;
643
- this.statusText = statusText;
644
- this.response = response;
645
- this.url = url;
646
- this.name = "APIError";
647
- }
648
- /**
649
- * Get error details from response.
650
- * DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
651
- */
652
- get details() {
653
- if (typeof this.response === "object" && this.response !== null) {
654
- return this.response;
655
- }
656
- return null;
657
- }
658
- /**
659
- * Get field-specific validation errors from DRF.
660
- * Returns: { "field_name": ["error1", "error2"], ... }
661
- */
662
- get fieldErrors() {
663
- const details = this.details;
664
- if (!details) return null;
665
- const fieldErrors = {};
666
- for (const [key, value] of Object.entries(details)) {
667
- if (Array.isArray(value)) {
668
- fieldErrors[key] = value;
669
- }
670
- }
671
- return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
672
- }
673
- /**
674
- * Get single error message from DRF.
675
- * Checks for "detail", "message", or first field error.
676
- */
677
- get errorMessage() {
678
- const details = this.details;
679
- if (!details) return this.message;
680
- if (details.detail) {
681
- return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
682
- }
683
- if (details.message) {
684
- return String(details.message);
685
- }
686
- const fieldErrors = this.fieldErrors;
687
- if (fieldErrors) {
688
- const firstField = Object.keys(fieldErrors)[0];
689
- if (firstField) {
690
- return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
691
- }
692
- }
693
- return this.message;
694
- }
695
- // Helper methods for common HTTP status codes
696
- get isValidationError() {
697
- return this.statusCode === 400;
698
- }
699
- get isAuthError() {
700
- return this.statusCode === 401;
701
- }
702
- get isPermissionError() {
703
- return this.statusCode === 403;
704
- }
705
- get isNotFoundError() {
706
- return this.statusCode === 404;
707
- }
708
- get isServerError() {
709
- return this.statusCode >= 500 && this.statusCode < 600;
710
- }
711
- };
712
- var NetworkError = class extends Error {
713
- constructor(message, url, originalError) {
714
- super(message);
715
- this.url = url;
716
- this.originalError = originalError;
717
- this.name = "NetworkError";
718
- }
719
- };
720
720
  var DEFAULT_CONFIG = {
721
721
  enabled: process.env.NODE_ENV !== "production",
722
722
  logRequests: true,
@@ -4363,7 +4363,7 @@ var apiKnowbase = createExtensionAPI(API);
4363
4363
  // package.json
4364
4364
  var package_default = {
4365
4365
  name: "@djangocfg/ext-knowbase",
4366
- version: "1.0.23",
4366
+ version: "1.0.25",
4367
4367
  description: "Knowledge base and chat extension for DjangoCFG",
4368
4368
  keywords: [
4369
4369
  "django",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/ext-knowbase",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "Knowledge base and chat extension for DjangoCFG",
5
5
  "keywords": [
6
6
  "django",
@@ -64,11 +64,11 @@
64
64
  "check": "tsc --noEmit"
65
65
  },
66
66
  "peerDependencies": {
67
- "@djangocfg/api": "^2.1.124",
68
- "@djangocfg/ext-base": "^1.0.18",
69
- "@djangocfg/i18n": "^2.1.124",
70
- "@djangocfg/ui-core": "^2.1.124",
71
- "@djangocfg/ui-nextjs": "^2.1.124",
67
+ "@djangocfg/api": "^2.1.142",
68
+ "@djangocfg/ext-base": "^1.0.19",
69
+ "@djangocfg/i18n": "^2.1.142",
70
+ "@djangocfg/ui-core": "^2.1.142",
71
+ "@djangocfg/ui-nextjs": "^2.1.142",
72
72
  "consola": "^3.4.2",
73
73
  "lucide-react": "^0.545.0",
74
74
  "moment": "^2.30.1",
@@ -82,11 +82,11 @@
82
82
  "zod": "^4.3.4"
83
83
  },
84
84
  "devDependencies": {
85
- "@djangocfg/api": "^2.1.124",
86
- "@djangocfg/ext-base": "^1.0.18",
87
- "@djangocfg/i18n": "^2.1.124",
88
- "@djangocfg/ui-core": "^2.1.124",
89
- "@djangocfg/typescript-config": "^2.1.124",
85
+ "@djangocfg/api": "^2.1.142",
86
+ "@djangocfg/ext-base": "^1.0.19",
87
+ "@djangocfg/i18n": "^2.1.142",
88
+ "@djangocfg/ui-core": "^2.1.142",
89
+ "@djangocfg/typescript-config": "^2.1.142",
90
90
  "@types/node": "^24.7.2",
91
91
  "@types/react": "^19.0.0",
92
92
  "consola": "^3.4.2",