snaptrade-typescript-sdk 8.28.1 → 8.29.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.
- package/README.md +1719 -152
- package/dist/api/account-information-api-generated.d.ts +519 -529
- package/dist/api/account-information-api-generated.js +769 -769
- package/dist/api/account-information-api.d.ts +4 -4
- package/dist/api/account-information-api.js +22 -22
- package/dist/api/api-status-api-generated.d.ts +59 -69
- package/dist/api/api-status-api-generated.js +131 -131
- package/dist/api/api-status-api.d.ts +4 -4
- package/dist/api/api-status-api.js +22 -22
- package/dist/api/authentication-api-generated.d.ts +256 -266
- package/dist/api/authentication-api-generated.js +461 -461
- package/dist/api/authentication-api.d.ts +4 -4
- package/dist/api/authentication-api.js +22 -22
- package/dist/api/connections-api-generated.d.ts +264 -274
- package/dist/api/connections-api-generated.js +411 -411
- package/dist/api/connections-api.d.ts +4 -4
- package/dist/api/connections-api.js +22 -22
- package/dist/api/error-logs-api-generated.d.ts +83 -93
- package/dist/api/error-logs-api-generated.js +152 -152
- package/dist/api/error-logs-api.d.ts +4 -4
- package/dist/api/error-logs-api.js +22 -22
- package/dist/api/options-api-generated.d.ts +358 -368
- package/dist/api/options-api-generated.js +530 -530
- package/dist/api/options-api.d.ts +4 -4
- package/dist/api/options-api.js +22 -22
- package/dist/api/reference-data-api-generated.d.ts +457 -467
- package/dist/api/reference-data-api-generated.js +872 -872
- package/dist/api/reference-data-api.d.ts +4 -4
- package/dist/api/reference-data-api.js +22 -22
- package/dist/api/trading-api-generated.d.ts +392 -402
- package/dist/api/trading-api-generated.js +613 -613
- package/dist/api/trading-api.d.ts +4 -4
- package/dist/api/trading-api.js +22 -22
- package/dist/api/transactions-and-reporting-api-generated.d.ts +207 -217
- package/dist/api/transactions-and-reporting-api-generated.js +287 -287
- package/dist/api/transactions-and-reporting-api.d.ts +4 -4
- package/dist/api/transactions-and-reporting-api.js +22 -22
- package/dist/api.d.ts +9 -19
- package/dist/api.js +37 -37
- package/dist/base.d.ts +44 -54
- package/dist/base.js +60 -60
- package/dist/browser.js +1 -1
- package/dist/client-custom.d.ts +4 -4
- package/dist/client-custom.js +7 -7
- package/dist/client.d.ts +15 -25
- package/dist/client.js +32 -32
- package/dist/common.d.ts +61 -71
- package/dist/common.js +207 -207
- package/dist/configuration.d.ts +89 -99
- package/dist/configuration.js +53 -53
- package/dist/error.d.ts +46 -56
- package/dist/error.js +104 -104
- package/dist/index.d.ts +5 -15
- package/dist/index.js +33 -33
- package/dist/jest.config.d.ts +3 -3
- package/dist/jest.config.js +13 -13
- package/dist/mock.test.d.ts +1 -1
- package/dist/mock.test.js +29 -29
- package/dist/models/account-holdings-account.d.ts +43 -53
- package/dist/models/account-holdings-account.js +12 -14
- package/dist/models/account-holdings.d.ts +36 -46
- package/dist/models/account-holdings.js +12 -14
- package/dist/models/account-order-record-status.d.ts +6 -16
- package/dist/models/account-order-record-status.js +12 -14
- package/dist/models/account-order-record.d.ts +122 -132
- package/dist/models/account-order-record.js +12 -14
- package/dist/models/account-simple.d.ts +33 -43
- package/dist/models/account-simple.js +12 -14
- package/dist/models/account-sync-status.d.ts +14 -24
- package/dist/models/account-sync-status.js +12 -14
- package/dist/models/account.d.ts +72 -82
- package/dist/models/account.js +12 -14
- package/dist/models/action.d.ts +6 -16
- package/dist/models/action.js +12 -14
- package/dist/models/authentication-login-snap-trade-user200-response.d.ts +7 -17
- package/dist/models/authentication-login-snap-trade-user200-response.js +12 -14
- package/dist/models/balance.d.ts +21 -31
- package/dist/models/balance.js +12 -14
- package/dist/models/brokerage-authorization-type-read-only-brokerage.d.ts +26 -36
- package/dist/models/brokerage-authorization-type-read-only-brokerage.js +12 -14
- package/dist/models/brokerage-authorization-type-read-only.d.ts +36 -46
- package/dist/models/brokerage-authorization-type-read-only.js +12 -14
- package/dist/models/brokerage-authorization-type.d.ts +16 -26
- package/dist/models/brokerage-authorization-type.js +12 -14
- package/dist/models/brokerage-authorization.d.ts +65 -75
- package/dist/models/brokerage-authorization.js +12 -14
- package/dist/models/brokerage-symbol-option-symbol.d.ts +64 -66
- package/dist/models/brokerage-symbol-option-symbol.js +12 -14
- package/dist/models/brokerage-symbol-symbol.d.ts +58 -68
- package/dist/models/brokerage-symbol-symbol.js +12 -14
- package/dist/models/brokerage-symbol.d.ts +47 -57
- package/dist/models/brokerage-symbol.js +12 -14
- package/dist/models/brokerage-type.d.ts +20 -30
- package/dist/models/brokerage-type.js +12 -14
- package/dist/models/brokerage.d.ts +117 -127
- package/dist/models/brokerage.js +12 -14
- package/dist/models/calculated-trade.d.ts +21 -31
- package/dist/models/calculated-trade.js +12 -14
- package/dist/models/cash-restriction.d.ts +40 -50
- package/dist/models/cash-restriction.js +12 -14
- package/dist/models/connections-session-events200-response-inner.d.ts +6 -16
- package/dist/models/connections-session-events200-response-inner.js +12 -14
- package/dist/models/currency.d.ts +26 -36
- package/dist/models/currency.js +12 -14
- package/dist/models/delete-user-response.d.ts +20 -30
- package/dist/models/delete-user-response.js +12 -14
- package/dist/models/dividend-at-date.d.ts +26 -36
- package/dist/models/dividend-at-date.js +12 -14
- package/dist/models/encrypted-response-encrypted-message-data.d.ts +26 -36
- package/dist/models/encrypted-response-encrypted-message-data.js +12 -14
- package/dist/models/encrypted-response.d.ts +20 -30
- package/dist/models/encrypted-response.js +12 -14
- package/dist/models/exchange-rate-pairs.d.ts +27 -37
- package/dist/models/exchange-rate-pairs.js +12 -14
- package/dist/models/exchange.d.ts +56 -66
- package/dist/models/exchange.js +12 -14
- package/dist/models/excluded-asset.d.ts +15 -25
- package/dist/models/excluded-asset.js +12 -14
- package/dist/models/index.d.ts +111 -111
- package/dist/models/index.js +127 -127
- package/dist/models/jwt.d.ts +14 -24
- package/dist/models/jwt.js +12 -14
- package/dist/models/login-redirect-uri.d.ts +19 -29
- package/dist/models/login-redirect-uri.js +12 -14
- package/dist/models/manual-trade-and-impact.d.ts +28 -38
- package/dist/models/manual-trade-and-impact.js +12 -14
- package/dist/models/manual-trade-balance.d.ts +28 -38
- package/dist/models/manual-trade-balance.js +12 -14
- package/dist/models/manual-trade-form.d.ts +58 -68
- package/dist/models/manual-trade-form.js +12 -14
- package/dist/models/manual-trade-symbol.d.ts +45 -55
- package/dist/models/manual-trade-symbol.js +12 -14
- package/dist/models/manual-trade.d.ts +60 -70
- package/dist/models/manual-trade.js +12 -14
- package/dist/models/model-asset-class-details.d.ts +22 -32
- package/dist/models/model-asset-class-details.js +12 -14
- package/dist/models/model-asset-class-target.d.ts +15 -25
- package/dist/models/model-asset-class-target.js +12 -14
- package/dist/models/model-asset-class.d.ts +20 -30
- package/dist/models/model-asset-class.js +12 -14
- package/dist/models/model-portfolio-asset-class.d.ts +21 -31
- package/dist/models/model-portfolio-asset-class.js +12 -14
- package/dist/models/model-portfolio-details.d.ts +29 -39
- package/dist/models/model-portfolio-details.js +12 -14
- package/dist/models/model-portfolio-security.d.ts +21 -31
- package/dist/models/model-portfolio-security.js +12 -14
- package/dist/models/model-portfolio.d.ts +28 -38
- package/dist/models/model-portfolio.js +12 -14
- package/dist/models/model400-failed-request-response.d.ts +20 -30
- package/dist/models/model400-failed-request-response.js +12 -14
- package/dist/models/model401-failed-request-response.d.ts +20 -30
- package/dist/models/model401-failed-request-response.js +12 -14
- package/dist/models/model403-failed-request-response.d.ts +20 -30
- package/dist/models/model403-failed-request-response.js +12 -14
- package/dist/models/model404-failed-request-response.d.ts +20 -30
- package/dist/models/model404-failed-request-response.js +12 -14
- package/dist/models/monthly-dividends.d.ts +21 -31
- package/dist/models/monthly-dividends.js +12 -14
- package/dist/models/net-contributions.d.ts +26 -36
- package/dist/models/net-contributions.js +12 -14
- package/dist/models/net-dividend.d.ts +27 -37
- package/dist/models/net-dividend.js +12 -14
- package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.d.ts +26 -36
- package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.js +12 -14
- package/dist/models/option-chain-inner-chain-per-root-inner.d.ts +27 -37
- package/dist/models/option-chain-inner-chain-per-root-inner.js +12 -14
- package/dist/models/option-chain-inner.d.ts +39 -49
- package/dist/models/option-chain-inner.js +12 -14
- package/dist/models/option-leg.d.ts +28 -38
- package/dist/models/option-leg.js +12 -14
- package/dist/models/option-strategy-legs-inner.d.ts +31 -41
- package/dist/models/option-strategy-legs-inner.js +12 -14
- package/dist/models/option-strategy.d.ts +40 -50
- package/dist/models/option-strategy.js +12 -14
- package/dist/models/options-get-option-strategy-request.d.ts +28 -38
- package/dist/models/options-get-option-strategy-request.js +12 -14
- package/dist/models/options-holdings.d.ts +46 -56
- package/dist/models/options-holdings.js +12 -14
- package/dist/models/options-place-option-strategy-request.d.ts +28 -38
- package/dist/models/options-place-option-strategy-request.js +12 -14
- package/dist/models/options-position-currency.d.ts +25 -35
- package/dist/models/options-position-currency.js +12 -14
- package/dist/models/options-position.d.ts +52 -62
- package/dist/models/options-position.js +12 -14
- package/dist/models/options-symbol.d.ts +65 -67
- package/dist/models/options-symbol.js +12 -14
- package/dist/models/order-type.d.ts +6 -16
- package/dist/models/order-type.js +12 -14
- package/dist/models/partner-data.d.ts +81 -91
- package/dist/models/partner-data.js +12 -14
- package/dist/models/past-value.d.ts +26 -36
- package/dist/models/past-value.js +12 -14
- package/dist/models/performance-custom.d.ts +127 -137
- package/dist/models/performance-custom.js +12 -14
- package/dist/models/portfolio-group-info.d.ts +82 -92
- package/dist/models/portfolio-group-info.js +12 -14
- package/dist/models/portfolio-group-position.d.ts +27 -37
- package/dist/models/portfolio-group-position.js +12 -14
- package/dist/models/portfolio-group-settings.d.ts +39 -49
- package/dist/models/portfolio-group-settings.js +12 -14
- package/dist/models/portfolio-group.d.ts +20 -30
- package/dist/models/portfolio-group.js +12 -14
- package/dist/models/position-symbol.d.ts +45 -55
- package/dist/models/position-symbol.js +12 -14
- package/dist/models/position.d.ts +45 -55
- package/dist/models/position.js +12 -14
- package/dist/models/redirect-tokenand-pin.d.ts +20 -30
- package/dist/models/redirect-tokenand-pin.js +12 -14
- package/dist/models/security-type.d.ts +32 -42
- package/dist/models/security-type.js +12 -14
- package/dist/models/session-event.d.ts +52 -62
- package/dist/models/session-event.js +12 -14
- package/dist/models/snap-trade-apidisclaimer-accept-status.d.ts +20 -30
- package/dist/models/snap-trade-apidisclaimer-accept-status.js +12 -14
- package/dist/models/snap-trade-holdings-account-account-id.d.ts +65 -75
- package/dist/models/snap-trade-holdings-account-account-id.js +12 -14
- package/dist/models/snap-trade-holdings-account.d.ts +60 -70
- package/dist/models/snap-trade-holdings-account.js +12 -14
- package/dist/models/snap-trade-holdings-total-value.d.ts +20 -30
- package/dist/models/snap-trade-holdings-total-value.js +12 -14
- package/dist/models/snap-trade-login-user-request-body.d.ts +39 -49
- package/dist/models/snap-trade-login-user-request-body.js +12 -14
- package/dist/models/snap-trade-register-user-request-body.d.ts +19 -29
- package/dist/models/snap-trade-register-user-request-body.js +12 -14
- package/dist/models/status.d.ts +26 -36
- package/dist/models/status.js +12 -14
- package/dist/models/strategy-impact-legs-inner.d.ts +50 -60
- package/dist/models/strategy-impact-legs-inner.js +12 -14
- package/dist/models/strategy-impact.d.ts +75 -85
- package/dist/models/strategy-impact.js +12 -14
- package/dist/models/strategy-order-place-orders-inner-legs-inner.d.ts +50 -60
- package/dist/models/strategy-order-place-orders-inner-legs-inner.js +12 -14
- package/dist/models/strategy-order-place-orders-inner.d.ts +267 -277
- package/dist/models/strategy-order-place-orders-inner.js +12 -14
- package/dist/models/strategy-order-place.d.ts +21 -31
- package/dist/models/strategy-order-place.js +12 -14
- package/dist/models/strategy-order-record.d.ts +79 -89
- package/dist/models/strategy-order-record.js +12 -14
- package/dist/models/strategy-quotes-greek.d.ts +38 -48
- package/dist/models/strategy-quotes-greek.js +12 -14
- package/dist/models/strategy-quotes.d.ts +46 -56
- package/dist/models/strategy-quotes.js +12 -14
- package/dist/models/sub-period-return-rate.d.ts +26 -36
- package/dist/models/sub-period-return-rate.js +12 -14
- package/dist/models/symbol-query.d.ts +13 -23
- package/dist/models/symbol-query.js +12 -14
- package/dist/models/symbol.d.ts +53 -63
- package/dist/models/symbol.js +12 -14
- package/dist/models/symbols-quotes-inner.d.ts +44 -54
- package/dist/models/symbols-quotes-inner.js +12 -14
- package/dist/models/target-asset.d.ts +47 -57
- package/dist/models/target-asset.js +12 -14
- package/dist/models/time-in-force.d.ts +6 -16
- package/dist/models/time-in-force.js +12 -14
- package/dist/models/trade-execution-status.d.ts +70 -80
- package/dist/models/trade-execution-status.js +12 -14
- package/dist/models/trade-impact.d.ts +40 -50
- package/dist/models/trade-impact.js +12 -14
- package/dist/models/trade.d.ts +61 -71
- package/dist/models/trade.js +12 -14
- package/dist/models/trading-cancel-user-account-order-request.d.ts +13 -23
- package/dist/models/trading-cancel-user-account-order-request.js +12 -14
- package/dist/models/trading-place-ocoorder-request.d.ts +19 -29
- package/dist/models/trading-place-ocoorder-request.js +12 -14
- package/dist/models/transactions-status.d.ts +19 -29
- package/dist/models/transactions-status.js +12 -14
- package/dist/models/underlying-symbol.d.ts +53 -63
- package/dist/models/underlying-symbol.js +12 -14
- package/dist/models/universal-activity.d.ts +114 -124
- package/dist/models/universal-activity.js +12 -14
- package/dist/models/universal-symbol-ticker.d.ts +59 -69
- package/dist/models/universal-symbol-ticker.js +12 -14
- package/dist/models/universal-symbol.d.ts +59 -69
- package/dist/models/universal-symbol.js +12 -14
- package/dist/models/user-error-log.d.ts +44 -54
- package/dist/models/user-error-log.js +12 -14
- package/dist/models/user-idand-secret.d.ts +20 -30
- package/dist/models/user-idand-secret.js +12 -14
- package/dist/models/user-settings.d.ts +69 -79
- package/dist/models/user-settings.js +12 -14
- package/dist/models/usexchange.d.ts +62 -72
- package/dist/models/usexchange.js +12 -14
- package/dist/pagination/page-types.d.ts +16 -26
- package/dist/pagination/page-types.js +12 -12
- package/dist/pagination/page.d.ts +25 -35
- package/dist/pagination/page.js +32 -32
- package/dist/pagination/pageable.d.ts +47 -57
- package/dist/pagination/pageable.js +70 -70
- package/dist/pagination/paginate.d.ts +6 -16
- package/dist/pagination/paginate.js +39 -39
- package/dist/requestAfterHook.d.ts +8 -8
- package/dist/requestAfterHook.js +82 -82
- package/dist/requestBeforeHook.d.ts +9 -9
- package/dist/requestBeforeHook.js +8 -8
- package/dist/requestBeforeUrlHook.d.ts +7 -7
- package/dist/requestBeforeUrlHook.js +5 -5
- package/package.json +48 -45
package/dist/requestAfterHook.js
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.requestAfterHook = void 0;
|
|
13
|
-
// Function to check if the code is running in a Node.js environment
|
|
14
|
-
function isNodeEnvironment() {
|
|
15
|
-
return (typeof process !== "undefined" && process.versions && process.versions.node);
|
|
16
|
-
}
|
|
17
|
-
// Compute HMAC SHA256
|
|
18
|
-
function computeHmacSha256(message, key) {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
if (isNodeEnvironment()) {
|
|
21
|
-
// Node.js environment
|
|
22
|
-
const crypto = require("crypto");
|
|
23
|
-
const hmac = crypto.createHmac("sha256", key);
|
|
24
|
-
hmac.update(message);
|
|
25
|
-
return hmac.digest("base64"); // or return Buffer if you want raw bytes
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// Browser environment
|
|
29
|
-
const encoder = new TextEncoder();
|
|
30
|
-
const keyBuffer = encoder.encode(key);
|
|
31
|
-
const msgBuffer = encoder.encode(message);
|
|
32
|
-
const cryptoKey = yield window.crypto.subtle.importKey("raw", keyBuffer, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
33
|
-
const signature = yield window.crypto.subtle.sign("HMAC", cryptoKey, msgBuffer);
|
|
34
|
-
const byteArray = new Uint8Array(signature);
|
|
35
|
-
// Convert byte array to base64
|
|
36
|
-
const base64 = btoa(String.fromCharCode.apply(null, byteArray));
|
|
37
|
-
return base64;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
const JSONstringifyOrder = (obj) => {
|
|
42
|
-
var allKeys = [];
|
|
43
|
-
var seen = {};
|
|
44
|
-
JSON.stringify(obj, function (key, value) {
|
|
45
|
-
if (!(key in seen)) {
|
|
46
|
-
allKeys.push(key);
|
|
47
|
-
seen[key] = null;
|
|
48
|
-
}
|
|
49
|
-
return value;
|
|
50
|
-
});
|
|
51
|
-
allKeys.sort();
|
|
52
|
-
return JSON.stringify(obj, allKeys);
|
|
53
|
-
};
|
|
54
|
-
function requestAfterHook(request) {
|
|
55
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const { configuration, basePath, axiosArgs, url } = request;
|
|
57
|
-
if ((configuration === null || configuration === void 0 ? void 0 : configuration.consumerKey) === undefined)
|
|
58
|
-
throw Error("Consumer key is required");
|
|
59
|
-
const consumerKey = encodeURI(configuration.consumerKey);
|
|
60
|
-
const requestData = axiosArgs.options.data === undefined || axiosArgs.options.data === "{}"
|
|
61
|
-
? null
|
|
62
|
-
: JSON.parse(axiosArgs.options.data);
|
|
63
|
-
const path = axiosArgs.url.indexOf("?") === -1
|
|
64
|
-
? `${axiosArgs.url}`
|
|
65
|
-
: `${axiosArgs.url.split("?")[0]}`;
|
|
66
|
-
const requestPath = `/api/v1${path}`;
|
|
67
|
-
const requestQuery = url
|
|
68
|
-
.replace(basePath, "")
|
|
69
|
-
.replace(path, "")
|
|
70
|
-
.replace("?", "");
|
|
71
|
-
const sigObject = {
|
|
72
|
-
content: requestData,
|
|
73
|
-
path: requestPath,
|
|
74
|
-
query: requestQuery,
|
|
75
|
-
};
|
|
76
|
-
const sigContent = JSONstringifyOrder(sigObject);
|
|
77
|
-
const signature = yield computeHmacSha256(sigContent, consumerKey);
|
|
78
|
-
if (axiosArgs.options.headers)
|
|
79
|
-
axiosArgs.options.headers["Signature"] = signature;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
exports.requestAfterHook = requestAfterHook;
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.requestAfterHook = void 0;
|
|
13
|
+
// Function to check if the code is running in a Node.js environment
|
|
14
|
+
function isNodeEnvironment() {
|
|
15
|
+
return (typeof process !== "undefined" && process.versions && process.versions.node);
|
|
16
|
+
}
|
|
17
|
+
// Compute HMAC SHA256
|
|
18
|
+
function computeHmacSha256(message, key) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
if (isNodeEnvironment()) {
|
|
21
|
+
// Node.js environment
|
|
22
|
+
const crypto = require("crypto");
|
|
23
|
+
const hmac = crypto.createHmac("sha256", key);
|
|
24
|
+
hmac.update(message);
|
|
25
|
+
return hmac.digest("base64"); // or return Buffer if you want raw bytes
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Browser environment
|
|
29
|
+
const encoder = new TextEncoder();
|
|
30
|
+
const keyBuffer = encoder.encode(key);
|
|
31
|
+
const msgBuffer = encoder.encode(message);
|
|
32
|
+
const cryptoKey = yield window.crypto.subtle.importKey("raw", keyBuffer, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
33
|
+
const signature = yield window.crypto.subtle.sign("HMAC", cryptoKey, msgBuffer);
|
|
34
|
+
const byteArray = new Uint8Array(signature);
|
|
35
|
+
// Convert byte array to base64
|
|
36
|
+
const base64 = btoa(String.fromCharCode.apply(null, byteArray));
|
|
37
|
+
return base64;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const JSONstringifyOrder = (obj) => {
|
|
42
|
+
var allKeys = [];
|
|
43
|
+
var seen = {};
|
|
44
|
+
JSON.stringify(obj, function (key, value) {
|
|
45
|
+
if (!(key in seen)) {
|
|
46
|
+
allKeys.push(key);
|
|
47
|
+
seen[key] = null;
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
});
|
|
51
|
+
allKeys.sort();
|
|
52
|
+
return JSON.stringify(obj, allKeys);
|
|
53
|
+
};
|
|
54
|
+
function requestAfterHook(request) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const { configuration, basePath, axiosArgs, url } = request;
|
|
57
|
+
if ((configuration === null || configuration === void 0 ? void 0 : configuration.consumerKey) === undefined)
|
|
58
|
+
throw Error("Consumer key is required");
|
|
59
|
+
const consumerKey = encodeURI(configuration.consumerKey);
|
|
60
|
+
const requestData = axiosArgs.options.data === undefined || axiosArgs.options.data === "{}"
|
|
61
|
+
? null
|
|
62
|
+
: JSON.parse(axiosArgs.options.data);
|
|
63
|
+
const path = axiosArgs.url.indexOf("?") === -1
|
|
64
|
+
? `${axiosArgs.url}`
|
|
65
|
+
: `${axiosArgs.url.split("?")[0]}`;
|
|
66
|
+
const requestPath = `/api/v1${path}`;
|
|
67
|
+
const requestQuery = url
|
|
68
|
+
.replace(basePath, "")
|
|
69
|
+
.replace(path, "")
|
|
70
|
+
.replace("?", "");
|
|
71
|
+
const sigObject = {
|
|
72
|
+
content: requestData,
|
|
73
|
+
path: requestPath,
|
|
74
|
+
query: requestQuery,
|
|
75
|
+
};
|
|
76
|
+
const sigContent = JSONstringifyOrder(sigObject);
|
|
77
|
+
const signature = yield computeHmacSha256(sigContent, consumerKey);
|
|
78
|
+
if (axiosArgs.options.headers)
|
|
79
|
+
axiosArgs.options.headers["Signature"] = signature;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
exports.requestAfterHook = requestAfterHook;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Configuration } from "./configuration";
|
|
2
|
-
import { AxiosRequestConfig } from "axios";
|
|
3
|
-
export declare function requestBeforeHook(request: {
|
|
4
|
-
requestBody?: any;
|
|
5
|
-
queryParameters: Record<string, any>;
|
|
6
|
-
path: string;
|
|
7
|
-
requestConfig: AxiosRequestConfig;
|
|
8
|
-
configuration?: Configuration;
|
|
9
|
-
}): void;
|
|
1
|
+
import { Configuration } from "./configuration";
|
|
2
|
+
import { AxiosRequestConfig } from "axios";
|
|
3
|
+
export declare function requestBeforeHook(request: {
|
|
4
|
+
requestBody?: any;
|
|
5
|
+
queryParameters: Record<string, any>;
|
|
6
|
+
path: string;
|
|
7
|
+
requestConfig: AxiosRequestConfig;
|
|
8
|
+
configuration?: Configuration;
|
|
9
|
+
}): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requestBeforeHook = void 0;
|
|
4
|
-
function requestBeforeHook(request) {
|
|
5
|
-
const { queryParameters } = request;
|
|
6
|
-
queryParameters["timestamp"] = Math.round(new Date().getTime() / 1000).toString();
|
|
7
|
-
}
|
|
8
|
-
exports.requestBeforeHook = requestBeforeHook;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestBeforeHook = void 0;
|
|
4
|
+
function requestBeforeHook(request) {
|
|
5
|
+
const { queryParameters } = request;
|
|
6
|
+
queryParameters["timestamp"] = Math.round(new Date().getTime() / 1000).toString();
|
|
7
|
+
}
|
|
8
|
+
exports.requestBeforeHook = requestBeforeHook;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { RequestArgs } from "./base";
|
|
2
|
-
import { Configuration } from "./configuration";
|
|
3
|
-
export declare function requestBeforeUrlHook(request: {
|
|
4
|
-
axiosArgs: RequestArgs;
|
|
5
|
-
basePath: string;
|
|
6
|
-
configuration?: Configuration;
|
|
7
|
-
}): void;
|
|
1
|
+
import { RequestArgs } from "./base";
|
|
2
|
+
import { Configuration } from "./configuration";
|
|
3
|
+
export declare function requestBeforeUrlHook(request: {
|
|
4
|
+
axiosArgs: RequestArgs;
|
|
5
|
+
basePath: string;
|
|
6
|
+
configuration?: Configuration;
|
|
7
|
+
}): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requestBeforeUrlHook = void 0;
|
|
4
|
-
function requestBeforeUrlHook(request) { }
|
|
5
|
-
exports.requestBeforeUrlHook = requestBeforeUrlHook;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestBeforeUrlHook = void 0;
|
|
4
|
+
function requestBeforeUrlHook(request) { }
|
|
5
|
+
exports.requestBeforeUrlHook = requestBeforeUrlHook;
|
package/package.json
CHANGED
|
@@ -1,45 +1,48 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "snaptrade-typescript-sdk",
|
|
3
|
-
"version": "8.
|
|
4
|
-
"description": "Client for SnapTrade",
|
|
5
|
-
"author": "Konfig",
|
|
6
|
-
"engines": {
|
|
7
|
-
"node": ">=10"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/passiv/snaptrade-sdks/tree/master/sdks/typescript"
|
|
12
|
-
},
|
|
13
|
-
"keywords": [
|
|
14
|
-
"axios",
|
|
15
|
-
"typescript",
|
|
16
|
-
"konfig",
|
|
17
|
-
"snaptrade-typescript-sdk"
|
|
18
|
-
],
|
|
19
|
-
"license": "Unlicense",
|
|
20
|
-
"files": [
|
|
21
|
-
"./dist/**/*"
|
|
22
|
-
],
|
|
23
|
-
"main": "./dist/index.js",
|
|
24
|
-
"typings": "./dist/index.d.ts",
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "npm run clean && tsc && webpack",
|
|
27
|
-
"clean": "rm -rf dist/",
|
|
28
|
-
"prepack": "npm run build",
|
|
29
|
-
"test": "jest"
|
|
30
|
-
},
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"axios": "0.27.2"
|
|
33
|
-
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "snaptrade-typescript-sdk",
|
|
3
|
+
"version": "8.29.0",
|
|
4
|
+
"description": "Client for SnapTrade",
|
|
5
|
+
"author": "Konfig",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=10"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/passiv/snaptrade-sdks/tree/master/sdks/typescript"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"axios",
|
|
15
|
+
"typescript",
|
|
16
|
+
"konfig",
|
|
17
|
+
"snaptrade-typescript-sdk"
|
|
18
|
+
],
|
|
19
|
+
"license": "Unlicense",
|
|
20
|
+
"files": [
|
|
21
|
+
"./dist/**/*"
|
|
22
|
+
],
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"typings": "./dist/index.d.ts",
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "npm run clean && tsc && webpack",
|
|
27
|
+
"clean": "rm -rf dist/",
|
|
28
|
+
"prepack": "npm run build",
|
|
29
|
+
"test": "jest"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"axios": "0.27.2"
|
|
33
|
+
},
|
|
34
|
+
"resolutions": {
|
|
35
|
+
"semver": "^7.5.2"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/jest": "^29.2.4",
|
|
39
|
+
"@types/node": "^12.11.5",
|
|
40
|
+
"jest": "^29.3.1",
|
|
41
|
+
"ts-jest": "^29.0.3",
|
|
42
|
+
"ts-loader": "^9.4.4",
|
|
43
|
+
"ts-node": "^10.9.1",
|
|
44
|
+
"typescript": "^4.0",
|
|
45
|
+
"webpack": "^5.88.2",
|
|
46
|
+
"webpack-cli": "^5.1.4"
|
|
47
|
+
}
|
|
48
|
+
}
|