@cobrowser/chatgpt 0.6.4 → 0.6.5
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/dist/constants.d.ts +10 -0
- package/dist/constants.js +20 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/models/ChatGptMessage.d.ts +0 -1
- package/dist/models/ConversationHistory.d.ts +13 -0
- package/dist/services/BaseService/BaseService.d.ts +1 -7
- package/dist/services/BaseService/BaseService.js +2 -15
- package/dist/services/ChatService/ChatService.d.ts +8 -0
- package/dist/services/ChatService/ChatService.js +94 -0
- package/dist/services/CopilotService/CopilotService.d.ts +2 -3
- package/dist/services/CopilotService/CopilotService.js +3 -6
- package/dist/services/TranslationService/TranslationService.d.ts +2 -4
- package/dist/services/TranslationService/TranslationService.js +7 -57
- package/package.json +4 -4
- package/dist/models/ChatGptUsageTokens.d.ts +0 -6
- package/dist/models/ChatGptUsageTokens.js +0 -3
- package/dist/models/CopilotSuggestion.d.ts +0 -6
- /package/dist/models/{CopilotSuggestion.js → ConversationHistory.js} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const MESSAGE_SENDER: {
|
|
2
|
+
visitor: string;
|
|
3
|
+
chatbot: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const MESSAGE_TYPES: {
|
|
6
|
+
text: string;
|
|
7
|
+
button: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const DEFAULT_CONTEXT = "You are a helpful assistant. Continue the conversation based on the previous conversations \n mentioned below. Keep your answers less than 200 characters. Any questions by the visitor out of the context\n should be politely declined. \n\n";
|
|
10
|
+
export declare const DESTINATION_LANGUAGE = "English";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DESTINATION_LANGUAGE = exports.DEFAULT_CONTEXT = exports.MESSAGE_TYPES = exports.MESSAGE_SENDER = void 0;
|
|
4
|
+
// Message sender in conversation history
|
|
5
|
+
exports.MESSAGE_SENDER = {
|
|
6
|
+
visitor: 'visitor',
|
|
7
|
+
chatbot: 'chatbot'
|
|
8
|
+
};
|
|
9
|
+
// Message types in conversation history
|
|
10
|
+
exports.MESSAGE_TYPES = {
|
|
11
|
+
text: 'text',
|
|
12
|
+
button: 'button'
|
|
13
|
+
};
|
|
14
|
+
// Default context for ChatGPT
|
|
15
|
+
exports.DEFAULT_CONTEXT = `You are a helpful assistant. Continue the conversation based on the previous conversations
|
|
16
|
+
mentioned below. Keep your answers less than 200 characters. Any questions by the visitor out of the context
|
|
17
|
+
should be politely declined. \n
|
|
18
|
+
`;
|
|
19
|
+
// Default destination language
|
|
20
|
+
exports.DESTINATION_LANGUAGE = 'English';
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./services/TranslationService/TranslationService"), exports);
|
|
18
18
|
__exportStar(require("./services/CopilotService/CopilotService"), exports);
|
|
19
|
+
__exportStar(require("./services/ChatService/ChatService"), exports);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AxiosError, AxiosInstance, AxiosResponse } from 'axios';
|
|
2
|
-
import ChatGptUsageTokens from '../../models/ChatGptUsageTokens';
|
|
3
2
|
declare class BaseService {
|
|
4
3
|
request: AxiosInstance;
|
|
5
4
|
readonly BASE_CHAT_COMPLETION_URL = "https://api.openai.com/v1/chat/completions";
|
|
@@ -11,17 +10,12 @@ declare class BaseService {
|
|
|
11
10
|
* @param model the main chatGPT model to use
|
|
12
11
|
* @param maxNumberOfChoices How many chat completion choices to generate for each request.
|
|
13
12
|
*/
|
|
14
|
-
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number);
|
|
13
|
+
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number, apiKey?: string | undefined);
|
|
15
14
|
/**
|
|
16
15
|
* Filter the response from chatGpt API and only get the first choice
|
|
17
16
|
* @param response
|
|
18
17
|
*/
|
|
19
18
|
getResponseFirstChoice(response: AxiosResponse): string | undefined;
|
|
20
|
-
/**
|
|
21
|
-
* Filter the response from chatGpt API and only get the first choice
|
|
22
|
-
* @param response
|
|
23
|
-
*/
|
|
24
|
-
getResponseUsageTokens(response: AxiosResponse): ChatGptUsageTokens | undefined;
|
|
25
19
|
/**
|
|
26
20
|
* function to handle requests errors
|
|
27
21
|
* @param error
|
|
@@ -12,7 +12,7 @@ class BaseService {
|
|
|
12
12
|
* @param model the main chatGPT model to use
|
|
13
13
|
* @param maxNumberOfChoices How many chat completion choices to generate for each request.
|
|
14
14
|
*/
|
|
15
|
-
constructor(apiUrl, model = 'gpt-3.5-turbo
|
|
15
|
+
constructor(apiUrl, model = 'gpt-3.5-turbo', maxNumberOfChoices = 1, apiKey = process.env.OPEN_AI_API_KEY) {
|
|
16
16
|
Object.defineProperty(this, "request", {
|
|
17
17
|
enumerable: true,
|
|
18
18
|
configurable: true,
|
|
@@ -41,7 +41,7 @@ class BaseService {
|
|
|
41
41
|
baseURL: apiUrl || this.BASE_CHAT_COMPLETION_URL,
|
|
42
42
|
headers: {
|
|
43
43
|
'Content-Type': 'application/json',
|
|
44
|
-
Authorization: `Bearer ${
|
|
44
|
+
Authorization: `Bearer ${apiKey} `,
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
47
|
this.chatGptModel = model;
|
|
@@ -60,19 +60,6 @@ class BaseService {
|
|
|
60
60
|
}
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Filter the response from chatGpt API and only get the first choice
|
|
65
|
-
* @param response
|
|
66
|
-
*/
|
|
67
|
-
getResponseUsageTokens(response) {
|
|
68
|
-
var _a;
|
|
69
|
-
if ((_a = response.data) === null || _a === void 0 ? void 0 : _a.usage) {
|
|
70
|
-
const usage = response.data.usage;
|
|
71
|
-
logger_1.default.info(`ChatGpt response usage tokens: ${JSON.stringify(usage)}`);
|
|
72
|
-
return usage;
|
|
73
|
-
}
|
|
74
|
-
return undefined;
|
|
75
|
-
}
|
|
76
63
|
/**
|
|
77
64
|
* function to handle requests errors
|
|
78
65
|
* @param error
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import BaseService from '../BaseService/BaseService';
|
|
2
|
+
import ConversationHistory from 'src/models/ConversationHistory';
|
|
3
|
+
export declare class ChatService extends BaseService {
|
|
4
|
+
#private;
|
|
5
|
+
model: string | undefined;
|
|
6
|
+
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number, apiKey?: string);
|
|
7
|
+
ask(context: string | undefined, conversationHistory: ConversationHistory[]): Promise<string | undefined>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
var _ChatService_instances, _ChatService_formatConversationHistory;
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.ChatService = void 0;
|
|
22
|
+
const ChatGptMessage_1 = require("../../models/ChatGptMessage");
|
|
23
|
+
const BaseService_1 = __importDefault(require("../BaseService/BaseService"));
|
|
24
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
25
|
+
const constants_1 = require("../../constants");
|
|
26
|
+
class ChatService extends BaseService_1.default {
|
|
27
|
+
constructor(apiUrl, model, maxNumberOfChoices, apiKey) {
|
|
28
|
+
super(apiUrl, model, maxNumberOfChoices, apiKey);
|
|
29
|
+
_ChatService_instances.add(this);
|
|
30
|
+
Object.defineProperty(this, "model", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true,
|
|
34
|
+
value: void 0
|
|
35
|
+
});
|
|
36
|
+
this.model = model;
|
|
37
|
+
}
|
|
38
|
+
ask(context, conversationHistory) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
if (!(conversationHistory === null || conversationHistory === void 0 ? void 0 : conversationHistory.length)) {
|
|
41
|
+
logger_1.default.error(':: ChatService.ask :: Conversation history must be provided');
|
|
42
|
+
return Promise.reject(new Error('Conversation history must be provided'));
|
|
43
|
+
}
|
|
44
|
+
const requestBody = {
|
|
45
|
+
model: this.model,
|
|
46
|
+
messages: __classPrivateFieldGet(this, _ChatService_instances, "m", _ChatService_formatConversationHistory).call(this, context, conversationHistory),
|
|
47
|
+
};
|
|
48
|
+
logger_1.default.info(`:: ChatService.ask :: ${JSON.stringify(requestBody)}`);
|
|
49
|
+
try {
|
|
50
|
+
const response = yield this.request.post('', requestBody);
|
|
51
|
+
return this.getResponseFirstChoice(response);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
this.handleErrors(e);
|
|
55
|
+
return Promise.reject(e);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.ChatService = ChatService;
|
|
61
|
+
_ChatService_instances = new WeakSet(), _ChatService_formatConversationHistory = function _ChatService_formatConversationHistory(context, conversationHistory) {
|
|
62
|
+
const formatted = [
|
|
63
|
+
{
|
|
64
|
+
role: ChatGptMessage_1.ChatGptRole.SYSTEM,
|
|
65
|
+
content: context || constants_1.DEFAULT_CONTEXT,
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
if (conversationHistory.length) {
|
|
69
|
+
for (const message of conversationHistory) {
|
|
70
|
+
const messageBody = message.body;
|
|
71
|
+
for (const body of messageBody) {
|
|
72
|
+
if (body.type === constants_1.MESSAGE_TYPES.text && message.from === constants_1.MESSAGE_SENDER.visitor) {
|
|
73
|
+
formatted.push({
|
|
74
|
+
role: ChatGptMessage_1.ChatGptRole.USER,
|
|
75
|
+
content: body.text
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else if (body.type === constants_1.MESSAGE_TYPES.text && message.from === constants_1.MESSAGE_SENDER.chatbot) {
|
|
79
|
+
formatted.push({
|
|
80
|
+
role: ChatGptMessage_1.ChatGptRole.ASSISTANT,
|
|
81
|
+
content: body.text
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
else if (body.type === constants_1.MESSAGE_TYPES.button && message.from === constants_1.MESSAGE_SENDER.chatbot) {
|
|
85
|
+
formatted.push({
|
|
86
|
+
role: ChatGptMessage_1.ChatGptRole.ASSISTANT,
|
|
87
|
+
content: body.label
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return formatted;
|
|
94
|
+
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import BaseService from '../BaseService/BaseService';
|
|
2
2
|
import ChatGptMessage from '../../models/ChatGptMessage';
|
|
3
|
-
import CopilotSuggestion from '../../models/CopilotSuggestion';
|
|
4
3
|
import Item from '../../models/Item';
|
|
5
4
|
export declare class CopilotService extends BaseService {
|
|
6
|
-
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number);
|
|
5
|
+
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number, apiKey?: string);
|
|
7
6
|
/**
|
|
8
7
|
* a method to be used to suggest some quick replies for the agent based on the conversation
|
|
9
8
|
* will be added as a single string in the format
|
|
@@ -16,7 +15,7 @@ export declare class CopilotService extends BaseService {
|
|
|
16
15
|
* this will make it easy to ask chatGpt for quick replies
|
|
17
16
|
* @param conversation
|
|
18
17
|
*/
|
|
19
|
-
suggest(conversation: string): Promise<
|
|
18
|
+
suggest(conversation: string): Promise<string | undefined>;
|
|
20
19
|
/**
|
|
21
20
|
* this will request chatGPT to recommend product or item based on the whole conversation
|
|
22
21
|
* @param conversation the whole chat conversation
|
|
@@ -17,8 +17,8 @@ const BaseService_1 = __importDefault(require("../BaseService/BaseService"));
|
|
|
17
17
|
const logger_1 = __importDefault(require("../logger"));
|
|
18
18
|
const ChatGptMessage_1 = require("../../models/ChatGptMessage");
|
|
19
19
|
class CopilotService extends BaseService_1.default {
|
|
20
|
-
constructor(apiUrl, model, maxNumberOfChoices) {
|
|
21
|
-
super(apiUrl, model, maxNumberOfChoices);
|
|
20
|
+
constructor(apiUrl, model, maxNumberOfChoices, apiKey) {
|
|
21
|
+
super(apiUrl, model, maxNumberOfChoices, apiKey);
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* a method to be used to suggest some quick replies for the agent based on the conversation
|
|
@@ -53,10 +53,7 @@ class CopilotService extends BaseService_1.default {
|
|
|
53
53
|
messages: [mainPromptMessage],
|
|
54
54
|
};
|
|
55
55
|
const response = yield this.request.post('', requestBody);
|
|
56
|
-
return
|
|
57
|
-
firstChoice: this.getResponseFirstChoice(response),
|
|
58
|
-
usageTokens: this.getResponseUsageTokens(response),
|
|
59
|
-
};
|
|
56
|
+
return this.getResponseFirstChoice(response);
|
|
60
57
|
}
|
|
61
58
|
catch (e) {
|
|
62
59
|
this.handleErrors(e);
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import BaseService from '../BaseService/BaseService';
|
|
2
2
|
export declare class TranslationService extends BaseService {
|
|
3
|
-
|
|
4
|
-
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number);
|
|
3
|
+
constructor(apiUrl?: string, model?: string, maxNumberOfChoices?: number, apiKey?: string);
|
|
5
4
|
/**
|
|
6
5
|
* request the chatGpt Api to translate a specific test to a desired language
|
|
7
6
|
* @param text the text to translate
|
|
8
7
|
* @param toLanguage the desired language to translate to ( English is the default )
|
|
9
8
|
* @param fromLanguage if we want to specify the language of the text, we can use this ( optional)
|
|
10
9
|
*/
|
|
11
|
-
translate(text: string, toLanguage?: string, fromLanguage?: string): Promise<
|
|
12
|
-
findTextLanguage(text: string): Promise<any | undefined>;
|
|
10
|
+
translate(text: string, toLanguage?: string, fromLanguage?: string): Promise<string | undefined>;
|
|
13
11
|
}
|
|
@@ -16,15 +16,10 @@ exports.TranslationService = void 0;
|
|
|
16
16
|
const ChatGptMessage_1 = require("../../models/ChatGptMessage");
|
|
17
17
|
const BaseService_1 = __importDefault(require("../BaseService/BaseService"));
|
|
18
18
|
const logger_1 = __importDefault(require("../logger"));
|
|
19
|
+
const constants_1 = require("../../constants");
|
|
19
20
|
class TranslationService extends BaseService_1.default {
|
|
20
|
-
constructor(apiUrl, model, maxNumberOfChoices) {
|
|
21
|
-
super(apiUrl, model, maxNumberOfChoices);
|
|
22
|
-
Object.defineProperty(this, "DESTINATION_LANGUAGE", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: 'English'
|
|
27
|
-
});
|
|
21
|
+
constructor(apiUrl, model, maxNumberOfChoices, apiKey) {
|
|
22
|
+
super(apiUrl, model, maxNumberOfChoices, apiKey);
|
|
28
23
|
}
|
|
29
24
|
/**
|
|
30
25
|
* request the chatGpt Api to translate a specific test to a desired language
|
|
@@ -32,7 +27,7 @@ class TranslationService extends BaseService_1.default {
|
|
|
32
27
|
* @param toLanguage the desired language to translate to ( English is the default )
|
|
33
28
|
* @param fromLanguage if we want to specify the language of the text, we can use this ( optional)
|
|
34
29
|
*/
|
|
35
|
-
translate(text, toLanguage =
|
|
30
|
+
translate(text, toLanguage = constants_1.DESTINATION_LANGUAGE, fromLanguage) {
|
|
36
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
32
|
if (!text) {
|
|
38
33
|
logger_1.default.error('translation text should be provided');
|
|
@@ -44,59 +39,14 @@ class TranslationService extends BaseService_1.default {
|
|
|
44
39
|
// the body we need to send to the request
|
|
45
40
|
requestBody = {
|
|
46
41
|
model: this.chatGptModel,
|
|
47
|
-
|
|
48
|
-
messages: [
|
|
49
|
-
{
|
|
50
|
-
role: ChatGptMessage_1.ChatGptRole.SYSTEM,
|
|
51
|
-
content: "You are a translator that provides a response in JSON format only. The response should be a JSON object with a boolean called 'error' and 'data,' which is an array of objects. Each object in the array will contain a 'translation' property, holding the translation of the message, and a 'translated_message' property, which will contain the original message before being translated. Additionally, the 'translation' property will hold the translation of the 'translated_message' property.",
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
role: ChatGptMessage_1.ChatGptRole.USER,
|
|
55
|
-
content: translateText,
|
|
56
|
-
}
|
|
57
|
-
],
|
|
58
|
-
};
|
|
59
|
-
try {
|
|
60
|
-
const response = yield this.request.post('', requestBody);
|
|
61
|
-
return {
|
|
62
|
-
firstChoice: this.getResponseFirstChoice(response),
|
|
63
|
-
usageTokens: this.getResponseUsageTokens(response),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
this.handleErrors(e);
|
|
68
|
-
return Promise.reject(e);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
findTextLanguage(text) {
|
|
73
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
if (!text) {
|
|
75
|
-
logger_1.default.error('translation text should be provided');
|
|
76
|
-
return Promise.reject(new Error('text must be provided'));
|
|
77
|
-
}
|
|
78
|
-
// instruction on what to do with the text
|
|
79
|
-
const translateText = `In which language is this text in '${text}'? The response should be {'languageCode': 'language_code_here', 'isError': 'true or false based on whether you did find the language code or not'}. Other responses or explanations are not allowed.`,
|
|
80
|
-
// the body we need to send to the request
|
|
81
|
-
requestBody = {
|
|
82
|
-
model: this.chatGptModel,
|
|
83
|
-
messages: [
|
|
84
|
-
{
|
|
85
|
-
role: ChatGptMessage_1.ChatGptRole.SYSTEM,
|
|
86
|
-
content: "You are a translator that provides a response in JSON format only—a JSON that contains 'languageCode' and 'isError' if you cannot detect the language.",
|
|
87
|
-
},
|
|
88
|
-
{
|
|
42
|
+
messages: [{
|
|
89
43
|
role: ChatGptMessage_1.ChatGptRole.USER,
|
|
90
44
|
content: translateText,
|
|
91
|
-
}
|
|
92
|
-
],
|
|
45
|
+
}],
|
|
93
46
|
};
|
|
94
47
|
try {
|
|
95
48
|
const response = yield this.request.post('', requestBody);
|
|
96
|
-
return
|
|
97
|
-
firstChoice: this.getResponseFirstChoice(response),
|
|
98
|
-
usageTokens: this.getResponseUsageTokens(response),
|
|
99
|
-
};
|
|
49
|
+
return this.getResponseFirstChoice(response);
|
|
100
50
|
}
|
|
101
51
|
catch (e) {
|
|
102
52
|
this.handleErrors(e);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cobrowser/chatgpt",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "chatgpt services to connect our projects with chatgpt api",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chatgpt",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@cobrowser/logger": "^1.0.0",
|
|
25
|
-
"axios": "^1.
|
|
26
|
-
"axios-mock-adapter": "^1.
|
|
25
|
+
"axios": "^1.6.1",
|
|
26
|
+
"axios-mock-adapter": "^1.22.0"
|
|
27
27
|
},
|
|
28
28
|
"directories": {
|
|
29
29
|
"dist": "dist"
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"bugs": {
|
|
39
39
|
"url": "https://bitbucket.org/cobrowser/cb_utils/issues"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "9a912216d362a55aff403525d19c21ff9c31b513"
|
|
42
42
|
}
|
|
File without changes
|