firstock 1.0.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.
@@ -0,0 +1,2 @@
1
+ import Firstock from "./Classes/Firstock";
2
+ export default Firstock;
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Firstock_1 = __importDefault(require("./Classes/Firstock"));
7
+ exports.default = Firstock_1.default;
@@ -0,0 +1,26 @@
1
+ interface BasketMarginObject {
2
+ exchange?: string;
3
+ tradingSymbol?: string;
4
+ quantity?: string | number;
5
+ transactionType?: string;
6
+ [key: string]: any;
7
+ }
8
+ interface JsonData {
9
+ [key: string]: {
10
+ jKey: string;
11
+ [key: string]: any;
12
+ };
13
+ }
14
+ declare const saveData: (data: any, file: string, callback: (err: NodeJS.ErrnoException | null) => void) => void;
15
+ declare const readData: (callback: (err: Error | string | null, data: JsonData | null) => void) => void;
16
+ declare const checkifUserLoggedIn: ({ userId, jsonData }: {
17
+ userId: string;
18
+ jsonData: JsonData;
19
+ }, callback: (err: string | null, jKey: string | null) => void) => void;
20
+ declare const errorMessageMapping: (jsonData: {
21
+ message?: string;
22
+ }) => string;
23
+ declare const validateBasketMarginObject: (data: BasketMarginObject) => boolean;
24
+ declare const validateBasketMargin: (data: BasketMarginObject[]) => boolean;
25
+ declare const handleError: (error: any) => any;
26
+ export { saveData, readData, validateBasketMarginObject, validateBasketMargin, handleError, checkifUserLoggedIn, errorMessageMapping, };
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.errorMessageMapping = exports.checkifUserLoggedIn = exports.handleError = exports.validateBasketMargin = exports.validateBasketMarginObject = exports.readData = exports.saveData = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const saveData = (data, file, callback) => {
39
+ const path = "./config.json";
40
+ const jsonData = JSON.stringify(data, null, 2);
41
+ fs.writeFile(path, jsonData, callback);
42
+ };
43
+ exports.saveData = saveData;
44
+ const readData = (callback) => {
45
+ const path = "./config.json";
46
+ fs.readFile(path, "utf-8", (err, jsonString) => {
47
+ if (err) {
48
+ callback(err, null);
49
+ }
50
+ else {
51
+ try {
52
+ const data = JSON.parse(jsonString);
53
+ callback(null, data);
54
+ }
55
+ catch (error) {
56
+ callback(error, null);
57
+ }
58
+ }
59
+ });
60
+ };
61
+ exports.readData = readData;
62
+ const checkifUserLoggedIn = ({ userId, jsonData }, callback) => {
63
+ if (jsonData[userId]) {
64
+ const jKey = jsonData[userId].jKey;
65
+ callback(null, jKey);
66
+ }
67
+ else {
68
+ callback("Please login to Firstock", null);
69
+ }
70
+ };
71
+ exports.checkifUserLoggedIn = checkifUserLoggedIn;
72
+ const jsonErrorMessage = {
73
+ "Unexpected end of JSON input": "Please login to Firstock",
74
+ };
75
+ const errorMessageMapping = (jsonData) => {
76
+ var _a, _b;
77
+ return (_b = (_a = jsonErrorMessage[jsonData.message || ""]) !== null && _a !== void 0 ? _a : jsonData.message) !== null && _b !== void 0 ? _b : "Unknown error";
78
+ };
79
+ exports.errorMessageMapping = errorMessageMapping;
80
+ const validateBasketMarginObject = (data) => {
81
+ if (data["exchange"] &&
82
+ data["tradingSymbol"] &&
83
+ data["quantity"] &&
84
+ data["transactionType"]) {
85
+ return true;
86
+ }
87
+ return false;
88
+ };
89
+ exports.validateBasketMarginObject = validateBasketMarginObject;
90
+ const validateBasketMargin = (data) => {
91
+ return data.every((a) => validateBasketMarginObject(a));
92
+ };
93
+ exports.validateBasketMargin = validateBasketMargin;
94
+ const handleError = (error) => {
95
+ if (error) {
96
+ if (error.response) {
97
+ if (error.response.data) {
98
+ return error.response.data;
99
+ }
100
+ else {
101
+ return error.response;
102
+ }
103
+ }
104
+ else {
105
+ return error;
106
+ }
107
+ }
108
+ return "error";
109
+ };
110
+ exports.handleError = handleError;
@@ -0,0 +1,2 @@
1
+ declare const API_LINK = "https://api.firstock.in/V1";
2
+ export { API_LINK };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.API_LINK = void 0;
4
+ const API_LINK = "https://api.firstock.in/V1";
5
+ exports.API_LINK = API_LINK;
package/dist/test.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/test.js ADDED
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Firstock_1 = __importDefault(require("./Classes/Firstock"));
7
+ const firstock = new Firstock_1.default();
8
+ let orderNumber = "";
9
+ const userDetails = {
10
+ userId: "",
11
+ password: "",
12
+ TOTP: "",
13
+ vendorCode: "",
14
+ apiKey: "",
15
+ };
16
+ // Login and user Details start
17
+ // firstock.login(
18
+ // {
19
+ // userId: userDetails.userId,
20
+ // password: userDetails.password,
21
+ // TOTP: userDetails.TOTP,
22
+ // vendorCode: userDetails.vendorCode,
23
+ // apiKey: userDetails.apiKey,
24
+ // },
25
+ // (err: Error | null, result: any) => {
26
+ // console.log("Error: ", err);
27
+ // console.log("Result: ", result);
28
+ // }
29
+ // );
30
+ // // Order and report start
31
+ // firstock.placeOrder(
32
+ // {
33
+ // userId: userDetails.userId,
34
+ // exchange: "NSE",
35
+ // tradingSymbol: "IDEA-EQ",
36
+ // quantity: "1",
37
+ // price: "7.00",
38
+ // product: "C",
39
+ // transactionType: "B",
40
+ // priceType: "LMT",
41
+ // retention: "DAY",
42
+ // triggerPrice: "0",
43
+ // remarks: "Add market protection",
44
+ // },
45
+ // (err: Error | string | null, result: any) => {
46
+ // console.log("Error, ", err);
47
+ // console.log("placeOrder Result: ", result);
48
+ // if (result?.data?.orderNumber) {
49
+ // orderNumber = result.data.orderNumber;
50
+ // modifyOrder(orderNumber);
51
+ // } else {
52
+ // console.log("No orderNumber returned");
53
+ // }
54
+ // }
55
+ // );
56
+ // const modifyOrder = (orderNumber: string) => {
57
+ // firstock.modifyOrder(
58
+ // {
59
+ // userId: userDetails.userId,
60
+ // orderNumber: orderNumber,
61
+ // price: "7.01",
62
+ // quantity: "1",
63
+ // triggerPrice: "0",
64
+ // tradingSymbol: "IDEA-EQ",
65
+ // exchange: "NSE",
66
+ // priceType: "LMT",
67
+ // product:"C",
68
+ // retention:"DAY"
69
+ // },
70
+ // (err: Error | string | null, result: any) => {
71
+ // console.log("Error, ", err);
72
+ // console.log("modifyOrder Result: ", result);
73
+ // if (!err) {
74
+ // singleOrderHistory(orderNumber);
75
+ // }
76
+ // }
77
+ // );
78
+ // }
79
+ // const singleOrderHistory = (orderNumber: string) => {
80
+ // firstock.singleOrderHistory({ userId: userDetails.userId, orderNumber: orderNumber }, (err: Error | string | null, result: any) => {
81
+ // console.log("Error, ", err);
82
+ // console.log("singleOrderHistory Result: ", result);
83
+ // if (!err) {
84
+ // cancelOrder(orderNumber);
85
+ // }
86
+ // });
87
+ // };
88
+ // const cancelOrder = (orderNumber: string) => {
89
+ // firstock.cancelOrder({ userId: userDetails.userId, orderNumber: orderNumber }, (err: Error | string | null, result: any) => {
90
+ // console.log("Error, ", err);
91
+ // console.log("Cancel Result: ", result);
92
+ // });
93
+ // };
94
+ // // Get User Details
95
+ // firstock.userDetails(
96
+ // { userId: userDetails.userId },
97
+ // (err: Error | string | null, result: any) => {
98
+ // console.log("getUserDetails Error, ", err);
99
+ // console.log("getUserDetails Result: ", result);
100
+ // }
101
+ // );
102
+ // // Order Margin
103
+ // firstock.orderMargin(
104
+ // {
105
+ // userId: userDetails.userId,
106
+ // exchange: "NSE",
107
+ // tradingSymbol: "IDEA-EQ",
108
+ // quantity: "1",
109
+ // price: "10.00",
110
+ // product: "C",
111
+ // transactionType: "B",
112
+ // priceType: "LMT",
113
+ // },
114
+ // (err: Error | string | null, result: any) => {
115
+ // console.log("orderMargin Error, ", err);
116
+ // console.log("orderMargin Result: ", result);
117
+ // }
118
+ // );
119
+ // // Order Book
120
+ // firstock.orderBook(
121
+ // { userId: userDetails.userId },
122
+ // (err: Error | string | null, result: any) => {
123
+ // console.log("Error, ", err);
124
+ // console.log("orderBook Result: ", result);
125
+ // }
126
+ // );
127
+ // // Trade Book
128
+ // firstock.tradeBook(
129
+ // { userId: userDetails.userId },
130
+ // (err: Error | string | null, result: any) => {
131
+ // console.log("tradeBook Error, ", err);
132
+ // console.log("tradeBook Result: ", result);
133
+ // }
134
+ // );
135
+ // // Positions Book
136
+ // firstock.positionBook(
137
+ // { userId: userDetails.userId },
138
+ // (err: Error | string | null, result: any) => {
139
+ // console.log("positionsBook Error, ", err);
140
+ // console.log("positionsBook Result: ", result);
141
+ // }
142
+ // );
143
+ // Product Conversion
144
+ // firstock.productConversion(
145
+ // {
146
+ // userId: userDetails.userId,
147
+ // exchange: "NFO",
148
+ // tradingSymbol: "NIFTY",
149
+ // quantity: "250",
150
+ // product: "C",
151
+ // previousProduct: "I"
152
+ // },
153
+ // (err: Error | string | null, result: any) => {
154
+ // console.log("productConversion Error, ", err);
155
+ // console.log("productConversion Result: ", result);
156
+ // }
157
+ // );
158
+ // Holdings
159
+ // firstock.holdings(
160
+ // { userId: userDetails.userId},//, product: "C"
161
+ // (err: Error | string | null, result: any) => {
162
+ // console.log("holdings Error, ", err);
163
+ // console.log("holdings Result: ", result);
164
+ // }
165
+ // );
166
+ // Limits
167
+ // firstock.limit(
168
+ // { userId: userDetails.userId },
169
+ // (err: Error | string | null, result: any) => {
170
+ // console.log("Error, ", err);
171
+ // console.log("limits Result: ", result);
172
+ // }
173
+ // );
174
+ // Basket Margin
175
+ // firstock.basketMargin(
176
+ // {
177
+ // userId: userDetails.userId,
178
+ // exchange: "NSE",
179
+ // transactionType: "B",
180
+ // product: "C",
181
+ // tradingSymbol: "RELIANCE-EQ",
182
+ // quantity: "1",
183
+ // priceType: "MKT",
184
+ // price: "0",
185
+ // BasketList_Params: [
186
+ // {
187
+ // exchange: "NSE",
188
+ // transactionType: "B",
189
+ // product: "C",
190
+ // tradingSymbol: "IDEA-EQ",
191
+ // quantity: "1",
192
+ // priceType: "MKT",
193
+ // price: "0"
194
+ // }
195
+ // ],
196
+ // },
197
+ // (err: Error | string | null, result: any) => {
198
+ // console.log("basketMargin Error, ", err);
199
+ // console.log("basketMargin Result: ", result);
200
+ // }
201
+ // );
202
+ // Get Quotes
203
+ // firstock.getQuote(
204
+ // {
205
+ // userId: userDetails.userId,
206
+ // exchange: "NSE",
207
+ // tradingSymbol: "IDEA-EQ",
208
+ // },
209
+ // (err: Error | string | null, result: any) => {
210
+ // console.log("getQuotes Error, ", err);
211
+ // console.log("getQuotes Result: ", result);
212
+ // }
213
+ // );
214
+ // Get Quote LTP
215
+ // firstock.getQuoteltp(
216
+ // {
217
+ // userId: userDetails.userId,
218
+ // exchange: "NSE",
219
+ // tradingSymbol: "RELIANCE-EQ",
220
+ // },
221
+ // (err: Error | string | null, result: any) => {
222
+ // console.log("getQuoteltp Error, ", err);
223
+ // console.log("getQuoteltp Result: ", result);
224
+ // }
225
+ // );
226
+ // Get Multi Quotes
227
+ // firstock.getMultiQuotes(
228
+ // {
229
+ // userId: userDetails.userId,
230
+ // data: [
231
+ // { exchange: "NSE", tradingSymbol: "Nifty 50" },
232
+ // { exchange: "NSE", tradingSymbol: "NIFTY03APR25C23500" },
233
+ // { exchange: "NFO", tradingSymbol: "Nifty 50" },
234
+ // { exchange: "NFO", tradingSymbol: "NIFTY03APR25C23500" },
235
+ // ],
236
+ // },
237
+ // (err: Error | string | null, result: any) => {
238
+ // console.log("getMultiQuotes Error, ", err);
239
+ // console.log("getMultiQuotes Result: ", result);
240
+ // }
241
+ // );
242
+ // Get Multi Quotes LTP
243
+ // firstock.getMultiQuotesltp(
244
+ // {
245
+ // userId: userDetails.userId,
246
+ // data: [{ exchange: "NSE", tradingSymbol: "Nifty 50" }],
247
+ // },
248
+ // (err: Error | string | null, result: any) => {
249
+ // console.log("getMultiQuotesltp Error, ", err);
250
+ // console.log("getMultiQuotesltp Result: ", result);
251
+ // }
252
+ // );
253
+ // Search Scripts
254
+ // firstock.searchScrips(
255
+ // { userId: userDetails.userId, stext: "ITC" },
256
+ // (err: Error | string | null, result: any) => {
257
+ // console.log("searchScripts Error, ", err);
258
+ // console.log("searchScripts Result: ", result);
259
+ // }
260
+ // );
261
+ // firstock.securityInfo(
262
+ // {
263
+ // userId: userDetails.userId,
264
+ // exchange: "NSE",
265
+ // tradingSymbol: "NIFTY",
266
+ // },
267
+ // (err: Error | string | null, result: any) => {
268
+ // console.log("getSecurityInfo Error, ", err);
269
+ // console.log("getSecurityInfo Result: ", result);
270
+ // }
271
+ // );
272
+ // Get Index List
273
+ // firstock.indexList(
274
+ // { userId: userDetails.userId, exchange: "NSE" },
275
+ // (err: Error | string | null, result: any) => {
276
+ // console.log("getIndexList Error, ", err);
277
+ // console.log("getIndexList Result: ", result);
278
+ // }
279
+ // );
280
+ // Get Option Chain
281
+ // firstock.optionChain(
282
+ // {
283
+ // userId: userDetails.userId,
284
+ // exchange: "NFO",
285
+ // symbol: "NIFTY",
286
+ // expiry: "17APR25",
287
+ // count: "5",
288
+ // strikePrice: "23150"
289
+ // },
290
+ // (err: Error | string | null, result: any) => {
291
+ // console.log("optionChain Error, ", err);
292
+ // console.log("optionChain Result: ", result);
293
+ // }
294
+ // );
295
+ // firstock.timePriceSeries(
296
+ // {
297
+ // userId: userDetails.userId,
298
+ // exchange: "NSE",
299
+ // tradingSymbol: "NIFTY",
300
+ // startTime: "09:15:00 23-04-2025",
301
+ // endTime: "15:29:00 23-04-2025",
302
+ // interval: "1mi",
303
+ // },
304
+ // (err: Error | string | null, result: any) => {
305
+ // console.log("timePriceSeries Error, ", err);
306
+ // console.log("timePriceSeries Result: ", result);
307
+ // }
308
+ // );
309
+ // firstock.getExpiry(
310
+ // {
311
+ // userId: userDetails.userId,
312
+ // exchange: "NSE",
313
+ // tradingSymbol: "NIFTY"
314
+ // },
315
+ // (err: Error | string | null, result: any) => {
316
+ // console.log("getExpiry Error, ", err);
317
+ // console.log("getExpiry Result: ", result);
318
+ // }
319
+ // );
320
+ // firstock.brokerageCalculator(
321
+ // {
322
+ // userId: userDetails.userId,
323
+ // exchange: "NFO",
324
+ // tradingSymbol: "RELIANCE27FEB25F",
325
+ // transactionType: "B",
326
+ // Product: "M",
327
+ // quantity: "500",
328
+ // price: "125930",
329
+ // strike_price: "0",
330
+ // inst_name: "FUTSTK",
331
+ // lot_size: "1"
332
+ // },
333
+ // (err: Error | string | null, result: any) => {
334
+ // console.log("brokerageCalculator Error, ", err);
335
+ // console.log("brokerageCalculator Result: ", result)
336
+ // }
337
+ // )
338
+ // Logout
339
+ // firstock.logout(
340
+ // { userId: userDetails.userId },
341
+ // (err: Error | string | null, result: any) => {
342
+ // console.log("Error, ", err);
343
+ // console.log("Result: ", result);
344
+ // }
345
+ // );
package/index.js ADDED
@@ -0,0 +1,4 @@
1
+ const Firstock = require("./Classes/Firstock");
2
+
3
+
4
+ module.exports = Firstock;
package/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ import Firstock from "./Classes/Firstock";
2
+
3
+
4
+ export default Firstock;
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "firstock",
3
+ "version": "1.0.0",
4
+ "description": "Node js package for using firstock developer apis",
5
+ "main": "dist/index.js",
6
+ "type": "commonjs",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "test": "echo \"Error: no test specified\" && exit 1"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/the-firstock/firstock-developer-sdk-nodejs"
14
+ },
15
+ "keywords": [
16
+ "firstock"
17
+ ],
18
+ "author": "firstock",
19
+ "license": "MIT",
20
+ "bugs": {
21
+ "url": "https://github.com/the-firstock/firstock-developer-sdk-nodejs"
22
+ },
23
+ "homepage": "https://github.com/the-firstock/firstock-developer-sdk-nodejs#readme",
24
+ "dependencies": {
25
+ "axios": "^1.10.0",
26
+ "sha256": "^0.2.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/sha256": "^0.2.2",
30
+ "typescript": "^5.8.3"
31
+ }
32
+ }
@@ -0,0 +1,99 @@
1
+ import * as fs from "fs";
2
+
3
+ interface BasketMarginObject {
4
+ exchange?: string;
5
+ tradingSymbol?: string;
6
+ quantity?: string | number;
7
+ transactionType?: string;
8
+ [key: string]: any;
9
+ }
10
+
11
+ interface JsonData {
12
+ [key: string]: {
13
+ jKey: string;
14
+ [key: string]: any;
15
+ };
16
+ }
17
+
18
+ const saveData = (data: any, file: string, callback: (err: NodeJS.ErrnoException | null) => void): void => {
19
+ const path = "./config.json";
20
+ const jsonData = JSON.stringify(data, null, 2);
21
+ fs.writeFile(path, jsonData, callback);
22
+ };
23
+
24
+ const readData = (callback: (err: Error | string | null, data: JsonData | null) => void): void => {
25
+ const path = "./config.json";
26
+ fs.readFile(path, "utf-8", (err: NodeJS.ErrnoException | null, jsonString: string) => {
27
+ if (err) {
28
+ callback(err, null);
29
+ } else {
30
+ try {
31
+ const data = JSON.parse(jsonString);
32
+ callback(null, data);
33
+ } catch (error) {
34
+ callback(error as Error, null);
35
+ }
36
+ }
37
+ });
38
+ };
39
+
40
+ const checkifUserLoggedIn = (
41
+ { userId, jsonData }: { userId: string; jsonData: JsonData },
42
+ callback: (err: string | null, jKey: string | null) => void
43
+ ): void => {
44
+ if (jsonData[userId]) {
45
+ const jKey = jsonData[userId].jKey;
46
+ callback(null, jKey);
47
+ } else {
48
+ callback("Please login to Firstock", null);
49
+ }
50
+ };
51
+
52
+ const jsonErrorMessage: { [key: string]: string } = {
53
+ "Unexpected end of JSON input": "Please login to Firstock",
54
+ };
55
+
56
+ const errorMessageMapping = (jsonData: { message?: string }): string => {
57
+ return jsonErrorMessage[jsonData.message || ""] ?? jsonData.message ?? "Unknown error";
58
+ };
59
+
60
+ const validateBasketMarginObject = (data: BasketMarginObject): boolean => {
61
+ if (
62
+ data["exchange"] &&
63
+ data["tradingSymbol"] &&
64
+ data["quantity"] &&
65
+ data["transactionType"]
66
+ ) {
67
+ return true;
68
+ }
69
+ return false;
70
+ };
71
+
72
+ const validateBasketMargin = (data: BasketMarginObject[]): boolean => {
73
+ return data.every((a) => validateBasketMarginObject(a));
74
+ };
75
+
76
+ const handleError = (error: any): any => {
77
+ if (error) {
78
+ if (error.response) {
79
+ if (error.response.data) {
80
+ return error.response.data;
81
+ } else {
82
+ return error.response;
83
+ }
84
+ } else {
85
+ return error;
86
+ }
87
+ }
88
+ return "error";
89
+ };
90
+
91
+ export {
92
+ saveData,
93
+ readData,
94
+ validateBasketMarginObject,
95
+ validateBasketMargin,
96
+ handleError,
97
+ checkifUserLoggedIn,
98
+ errorMessageMapping,
99
+ };
@@ -0,0 +1,4 @@
1
+ const API_LINK = "https://api.firstock.in/V1";
2
+
3
+
4
+ export { API_LINK };