@kwiz/node 1.0.49 → 1.0.50
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/.vscode/settings.json +5 -0
- package/dist/exports-index.d.ts +1 -0
- package/dist/exports-index.js +1 -0
- package/dist/exports-index.js.map +1 -1
- package/dist/ns/exports-index.d.ts +6 -0
- package/dist/ns/exports-index.js +23 -0
- package/dist/ns/exports-index.js.map +1 -0
- package/dist/ns/ns-rest.d.ts +12 -0
- package/dist/ns/ns-rest.js +28 -0
- package/dist/ns/ns-rest.js.map +1 -0
- package/dist/ns/ns-restlet.d.ts +10 -0
- package/dist/ns/ns-restlet.js +23 -0
- package/dist/ns/ns-restlet.js.map +1 -0
- package/dist/ns/ns-soap.d.ts +29 -0
- package/dist/ns/ns-soap.js +112 -0
- package/dist/ns/ns-soap.js.map +1 -0
- package/dist/ns/ns-suiteql.d.ts +6 -0
- package/dist/ns/ns-suiteql.js +27 -0
- package/dist/ns/ns-suiteql.js.map +1 -0
- package/dist/ns/ns.d.ts +13 -0
- package/dist/ns/ns.js +71 -0
- package/dist/ns/ns.js.map +1 -0
- package/dist/ns/oauth1.d.ts +42 -0
- package/dist/ns/oauth1.js +133 -0
- package/dist/ns/oauth1.js.map +1 -0
- package/dist/utilities/exports-index.d.ts +1 -0
- package/dist/utilities/exports-index.js +1 -0
- package/dist/utilities/exports-index.js.map +1 -1
- package/dist/utilities/xml.d.ts +29 -0
- package/dist/utilities/xml.js +16 -0
- package/dist/utilities/xml.js.map +1 -0
- package/package.json +6 -5
package/dist/exports-index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './SPO/exports-index';
|
|
|
2
2
|
export * from './auth/exports-index';
|
|
3
3
|
export * from './graph/exports-index';
|
|
4
4
|
export * from './next-js/exports-index';
|
|
5
|
+
export * from './ns/exports-index';
|
|
5
6
|
export * from './sf/exports-index';
|
|
6
7
|
export * from './storage/exports-index';
|
|
7
8
|
export * from './utilities/exports-index';
|
package/dist/exports-index.js
CHANGED
|
@@ -18,6 +18,7 @@ __exportStar(require("./SPO/exports-index"), exports);
|
|
|
18
18
|
__exportStar(require("./auth/exports-index"), exports);
|
|
19
19
|
__exportStar(require("./graph/exports-index"), exports);
|
|
20
20
|
__exportStar(require("./next-js/exports-index"), exports);
|
|
21
|
+
__exportStar(require("./ns/exports-index"), exports);
|
|
21
22
|
__exportStar(require("./sf/exports-index"), exports);
|
|
22
23
|
__exportStar(require("./storage/exports-index"), exports);
|
|
23
24
|
__exportStar(require("./utilities/exports-index"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports-index.js","sourceRoot":"","sources":["../src/exports-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,4DAA0C;AAC1C,0CAAwB;AACxB,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"exports-index.js","sourceRoot":"","sources":["../src/exports-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,qDAAmC;AACnC,qDAAmC;AACnC,0DAAwC;AACxC,4DAA0C;AAC1C,0CAAwB;AACxB,mDAAiC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ns-rest"), exports);
|
|
18
|
+
__exportStar(require("./ns-restlet"), exports);
|
|
19
|
+
__exportStar(require("./ns-soap"), exports);
|
|
20
|
+
__exportStar(require("./ns-suiteql"), exports);
|
|
21
|
+
__exportStar(require("./ns"), exports);
|
|
22
|
+
__exportStar(require("./oauth1"), exports);
|
|
23
|
+
//# sourceMappingURL=exports-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-index.js","sourceRoot":"","sources":["../../src/ns/exports-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,4CAA0B;AAC1B,+CAA6B;AAC7B,uCAAqB;AACrB,2CAAyB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { tnsContext } from "@kwiz/common";
|
|
2
|
+
import { insRestOptions } from "./ns";
|
|
3
|
+
/** pass in a type for a single result or type[] for a collection result */
|
|
4
|
+
export declare function callNSRest<T>(ctx: tnsContext,
|
|
5
|
+
/** API path after the services/rest/record/v1/ - or starts with / to call other non services-rest endpoints lie /services/rest/auth */
|
|
6
|
+
path: string, options?: insRestOptions<T> & {
|
|
7
|
+
queryString?: {
|
|
8
|
+
/** select fields - split by , */
|
|
9
|
+
fields?: string;
|
|
10
|
+
[param: string]: string;
|
|
11
|
+
};
|
|
12
|
+
}): Promise<T extends (infer SingleDataItem)[] ? import("@kwiz/common").insSuiteTalkRecordsResponseCollection<SingleDataItem> : T & import("@kwiz/common").insSuiteTalkRecordResponseBase>;
|
|
@@ -0,0 +1,28 @@
|
|
|
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.callNSRest = callNSRest;
|
|
13
|
+
const common_1 = require("@kwiz/common");
|
|
14
|
+
const ns_1 = require("./ns");
|
|
15
|
+
//Valid filters: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545222128.html#Record-Collection-Filtering
|
|
16
|
+
//REST API documentation: https://system.netsuite.com/help/helpcenter/en_US/APIs/REST_API_Browser/record/v1/2023.1/index.html#/definitions/contact
|
|
17
|
+
//https://timdietrich.me/blog/netsuite-suitetalk-rest-overview-issues-advice/
|
|
18
|
+
/** pass in a type for a single result or type[] for a collection result */
|
|
19
|
+
function callNSRest(ctx,
|
|
20
|
+
/** API path after the services/rest/record/v1/ - or starts with / to call other non services-rest endpoints lie /services/rest/auth */
|
|
21
|
+
path, options) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
let query = Object.keys((options === null || options === void 0 ? void 0 : options.queryString) || {}).map((qs, index) => `${index === 0 ? '?' : '&'}${qs}=${encodeURIComponent(options.queryString[qs])}`).join('');
|
|
24
|
+
const url = `${(0, common_1.getNSSuitetalkApiHost)(ctx.accountId)}${path.startsWith('/') ? path : `/services/rest/record/v1/${path}`}${query}`;
|
|
25
|
+
return yield (0, ns_1.getNSRESTResponse)(ctx, url, options);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ns-rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-rest.js","sourceRoot":"","sources":["../../src/ns/ns-rest.ts"],"names":[],"mappings":";;;;;;;;;;;AAQA,gCAeC;AAvBD,yCAAiE;AACjE,6BAAyD;AAEzD,kIAAkI;AAClI,kJAAkJ;AAClJ,6EAA6E;AAE7E,2EAA2E;AAC3E,SAAsB,UAAU,CAC5B,GAAe;AACf,uIAAuI;AACvI,IAAY,EAAE,OAMb;;QACD,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElK,MAAM,GAAG,GAAG,GAAG,IAAA,8BAAqB,EAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;QAEjI,OAAO,MAAM,IAAA,sBAAiB,EAAI,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDictionary, tnsContext } from "@kwiz/common";
|
|
2
|
+
import { insRestOptions } from "./ns";
|
|
3
|
+
interface insTenantInfoRestlet {
|
|
4
|
+
script: string;
|
|
5
|
+
deploy: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function callNSRestlet<T>(ctx: tnsContext, restlet: insTenantInfoRestlet, options?: insRestOptions<T> & {
|
|
8
|
+
queryString?: IDictionary<string>;
|
|
9
|
+
}): Promise<T extends (infer SingleDataItem)[] ? import("@kwiz/common").insSuiteTalkRecordsResponseCollection<SingleDataItem> : T & import("@kwiz/common").insSuiteTalkRecordResponseBase>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
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.callNSRestlet = callNSRestlet;
|
|
13
|
+
const common_1 = require("@kwiz/common");
|
|
14
|
+
const ns_1 = require("./ns");
|
|
15
|
+
function callNSRestlet(ctx, restlet, options) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const query = Object.keys((options === null || options === void 0 ? void 0 : options.queryString) || {}).map(qs => `&${qs}=${encodeURIComponent(options.queryString[qs])}`).join('');
|
|
18
|
+
//call custom script
|
|
19
|
+
const url = `${(0, common_1.getNSRestletsApiHost)(ctx.accountId)}/app/site/hosting/restlet.nl?script=${restlet.script}&deploy=${restlet.deploy}${query}`;
|
|
20
|
+
return (0, ns_1.getNSRESTResponse)(ctx, url, options);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ns-restlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-restlet.js","sourceRoot":"","sources":["../../src/ns/ns-restlet.ts"],"names":[],"mappings":";;;;;;;;;;;AAQA,sCASC;AAjBD,yCAA6E;AAC7E,6BAAyD;AAOzD,SAAsB,aAAa,CAAI,GAAe,EAAE,OAA6B,EACjF,OAEC;;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClI,oBAAoB;QACpB,MAAM,GAAG,GAAG,GAAG,IAAA,6BAAoB,EAAC,GAAG,CAAC,SAAS,CAAC,uCAAuC,OAAO,CAAC,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAE3I,OAAO,IAAA,sBAAiB,EAAI,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { insBaseResponse, insSoapResponseError, insTokenInfo, tnsSoapRequest } from "@kwiz/common";
|
|
2
|
+
import { AxiosError, AxiosResponse } from "axios";
|
|
3
|
+
export declare class NSSoapRequestTypes {
|
|
4
|
+
tagName: string;
|
|
5
|
+
requestName: string;
|
|
6
|
+
constructor(name: tnsSoapRequest);
|
|
7
|
+
static get: NSSoapRequestTypes;
|
|
8
|
+
/** getAll only allows for GetAllRecordType types.
|
|
9
|
+
* Payload should be: <record recordType="currency"/> for example */
|
|
10
|
+
static getAll: NSSoapRequestTypes;
|
|
11
|
+
static upsert: NSSoapRequestTypes;
|
|
12
|
+
static update: NSSoapRequestTypes;
|
|
13
|
+
static upsertList: NSSoapRequestTypes;
|
|
14
|
+
static search: NSSoapRequestTypes;
|
|
15
|
+
static add: NSSoapRequestTypes;
|
|
16
|
+
static delete: NSSoapRequestTypes;
|
|
17
|
+
}
|
|
18
|
+
export declare function callNSSoap<T extends insBaseResponse>(ctx: insTokenInfo, requestType: NSSoapRequestTypes, payload: string, options?: {
|
|
19
|
+
additionalHeaders?: string;
|
|
20
|
+
}): Promise<{
|
|
21
|
+
error?: false;
|
|
22
|
+
envelope: T;
|
|
23
|
+
axiosResponse?: AxiosResponse;
|
|
24
|
+
} | {
|
|
25
|
+
error: true;
|
|
26
|
+
errorMessage: string;
|
|
27
|
+
envelope?: insSoapResponseError;
|
|
28
|
+
axiosError?: AxiosError;
|
|
29
|
+
}>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//https://github.com/minmyatoo/netsuite-record-fetcher-ts/blob/main/oauth1Utils.ts
|
|
3
|
+
//get WSDL: https://www.netsuite.com/portal/developers/resources/suitetalk-documentation.shtml
|
|
4
|
+
//https://www.npmjs.com/package/wsdl-tsclient
|
|
5
|
+
//https://www.npmjs.com/package/wsdl-to-ts
|
|
6
|
+
//https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2018_1/schema/record/address.html?mode=package
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.NSSoapRequestTypes = void 0;
|
|
18
|
+
exports.callNSSoap = callNSSoap;
|
|
19
|
+
const common_1 = require("@kwiz/common");
|
|
20
|
+
const axios_1 = require("axios");
|
|
21
|
+
const exports_index_1 = require("../exports-index");
|
|
22
|
+
const oauth1_1 = require("./oauth1");
|
|
23
|
+
class NSSoapRequestTypes {
|
|
24
|
+
constructor(name) {
|
|
25
|
+
this.tagName = name;
|
|
26
|
+
this.requestName = `${(0, common_1.capitalizeFirstLetter)(name)}Request`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.NSSoapRequestTypes = NSSoapRequestTypes;
|
|
30
|
+
NSSoapRequestTypes.get = new NSSoapRequestTypes("get");
|
|
31
|
+
/** getAll only allows for GetAllRecordType types.
|
|
32
|
+
* Payload should be: <record recordType="currency"/> for example */
|
|
33
|
+
NSSoapRequestTypes.getAll = new NSSoapRequestTypes("getAll");
|
|
34
|
+
NSSoapRequestTypes.upsert = new NSSoapRequestTypes("upsert");
|
|
35
|
+
NSSoapRequestTypes.update = new NSSoapRequestTypes("update");
|
|
36
|
+
NSSoapRequestTypes.upsertList = new NSSoapRequestTypes("upsertList");
|
|
37
|
+
NSSoapRequestTypes.search = new NSSoapRequestTypes("search");
|
|
38
|
+
NSSoapRequestTypes.add = new NSSoapRequestTypes("add");
|
|
39
|
+
NSSoapRequestTypes.delete = new NSSoapRequestTypes("delete");
|
|
40
|
+
;
|
|
41
|
+
function callNSSoap(ctx, requestType, payload, options) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const NSSoapURL = `${(0, common_1.getNSSuitetalkApiHost)(ctx.accountId)}/services/NetSuitePort_2023_1`;
|
|
44
|
+
let oauth = new oauth1_1.nsOAuth1({
|
|
45
|
+
key: ctx.clientId,
|
|
46
|
+
secret: ctx.clientSecret
|
|
47
|
+
});
|
|
48
|
+
let soapAuthentication = oauth._getSoapAuthHeader({
|
|
49
|
+
account: ctx.accountId,
|
|
50
|
+
token: ctx.tokenId,
|
|
51
|
+
tokenSecret: ctx.tokenSecret
|
|
52
|
+
});
|
|
53
|
+
let body = `<soapenv:Envelope
|
|
54
|
+
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
|
|
55
|
+
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
|
|
56
|
+
xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
|
|
57
|
+
xmlns:platformCore='urn:core_2023_1.platform.webservices.netsuite.com'
|
|
58
|
+
xmlns:actSched='urn:scheduling_2023_1.activities.webservices.netsuite.com'
|
|
59
|
+
xmlns:listRel='urn:relationships_2023_1.lists.webservices.netsuite.com'
|
|
60
|
+
xmlns:platformCommon='urn:common_2023_1.platform.webservices.netsuite.com'
|
|
61
|
+
xmlns:generalComm='urn:communication_2023_1.general.webservices.netsuite.com'
|
|
62
|
+
xmlns:platformMsgs='urn:messages_2023_1.platform.webservices.netsuite.com'>
|
|
63
|
+
<soapenv:Header>
|
|
64
|
+
<tokenPassport xsi:type='platformCore:TokenPassport'>
|
|
65
|
+
<account xsi:type='xsd:string'>${soapAuthentication.account}</account>
|
|
66
|
+
<consumerKey xsi:type='xsd:string'>${soapAuthentication.consumerKey}</consumerKey>
|
|
67
|
+
<token xsi:type='xsd:string'>${soapAuthentication.token}</token>
|
|
68
|
+
<nonce xsi:type='xsd:string'>${soapAuthentication.nonce}</nonce>
|
|
69
|
+
<timestamp xsi:type='xsd:long'>${soapAuthentication.timestamp}</timestamp>
|
|
70
|
+
<signature algorithm='HMAC_SHA256' xsi:type='platformCore:TokenPassportSignature'>${soapAuthentication.signature}</signature>
|
|
71
|
+
</tokenPassport>
|
|
72
|
+
${options && options.additionalHeaders || ""}
|
|
73
|
+
</soapenv:Header>
|
|
74
|
+
<soapenv:Body>
|
|
75
|
+
<${requestType.tagName} xsi:type='platformMsgs:${requestType.requestName}'>${payload}</${requestType.tagName}>
|
|
76
|
+
</soapenv:Body>
|
|
77
|
+
</soapenv:Envelope>`;
|
|
78
|
+
try {
|
|
79
|
+
const axiosResponse = yield axios_1.default.post(NSSoapURL, body, {
|
|
80
|
+
headers: {
|
|
81
|
+
"Content-Type": "text/xml",
|
|
82
|
+
"SOAPAction": requestType.tagName,
|
|
83
|
+
Accept: "application/xml"
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const envelope = yield (0, exports_index_1.parseXml)(axiosResponse.data);
|
|
87
|
+
return { envelope, axiosResponse };
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
if ((0, axios_1.isAxiosError)(e)) {
|
|
91
|
+
try {
|
|
92
|
+
const envelope = yield (0, exports_index_1.parseXml)(e.response.data);
|
|
93
|
+
return {
|
|
94
|
+
error: true,
|
|
95
|
+
errorMessage: envelope.Body.Fault.faultstring,
|
|
96
|
+
envelope,
|
|
97
|
+
axiosError: e
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (e2) {
|
|
101
|
+
return {
|
|
102
|
+
error: true,
|
|
103
|
+
errorMessage: e.message,
|
|
104
|
+
axiosError: e
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return { error: true, errorMessage: (0, common_1.GetError)(e) };
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=ns-soap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-soap.js","sourceRoot":"","sources":["../../src/ns/ns-soap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { tnsContext } from "@kwiz/common";
|
|
2
|
+
import { insRestOptions } from "./ns";
|
|
3
|
+
export declare function callNSSuiteQL<T>(ctx: tnsContext, payload: {
|
|
4
|
+
q?: string;
|
|
5
|
+
[param: string]: string;
|
|
6
|
+
} | string, options?: Omit<insRestOptions<T>, "payload">): Promise<import("@kwiz/common").insSuiteTalkRecordsResponseCollection<T>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
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.callNSSuiteQL = callNSSuiteQL;
|
|
13
|
+
const common_1 = require("@kwiz/common");
|
|
14
|
+
const ns_1 = require("./ns");
|
|
15
|
+
function callNSSuiteQL(ctx,
|
|
16
|
+
/* SuiteQL Query, or {q:string} with query */
|
|
17
|
+
payload, options) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const url = `${(0, common_1.getNSSuitetalkApiHost)(ctx.accountId)}/services/rest/query/v1/suiteql`;
|
|
20
|
+
return yield (0, ns_1.getNSRESTResponse)(ctx, url, {
|
|
21
|
+
method: "post",
|
|
22
|
+
payload: (0, common_1.isString)(payload) ? { q: payload } : payload,
|
|
23
|
+
headers: Object.assign({ Prefer: "transient" }, ((options === null || options === void 0 ? void 0 : options.headers) || {}))
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ns-suiteql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-suiteql.js","sourceRoot":"","sources":["../../src/ns/ns-suiteql.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,sCAmBC;AAtBD,yCAA2E;AAC3E,6BAAyD;AAEzD,SAAsB,aAAa,CAAI,GAAe;AAClD,6CAA6C;AAC7C,OAIU,EACV,OAA4C;;QAE5C,MAAM,GAAG,GAAG,GAAG,IAAA,8BAAqB,EAAC,GAAG,CAAC,SAAS,CAAC,iCAAiC,CAAC;QAErF,OAAO,MAAM,IAAA,sBAAiB,EAAM,GAAG,EAAE,GAAG,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;YACrD,OAAO,kBACH,MAAM,EAAE,WAAW,IAChB,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,EAAE,CAAC,CAC9B;SACJ,CAAC,CAAC;IACP,CAAC;CAAA"}
|
package/dist/ns/ns.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IDictionary, insSuiteTalkRecordResponseBase, insSuiteTalkRecordsResponseCollection, tnsContext, tnsFieldValueTypes } from "@kwiz/common";
|
|
2
|
+
import { AxiosResponse } from "axios";
|
|
3
|
+
import { tnsOAuthRequestMethods } from "./oauth1";
|
|
4
|
+
type toResultType<DataType> = DataType extends (infer SingleDataItem)[] ? insSuiteTalkRecordsResponseCollection<SingleDataItem> : (DataType & insSuiteTalkRecordResponseBase);
|
|
5
|
+
export interface insRestOptions<DataType, ResultType = toResultType<DataType>> {
|
|
6
|
+
method?: tnsOAuthRequestMethods;
|
|
7
|
+
payload?: IDictionary<tnsFieldValueTypes>;
|
|
8
|
+
headers?: IDictionary<string>;
|
|
9
|
+
responseDigest?: (response: AxiosResponse) => ResultType;
|
|
10
|
+
}
|
|
11
|
+
/** url should start with . after the account id. */
|
|
12
|
+
export declare function getNSRESTResponse<DataType, ResultType = toResultType<DataType>>(ctx: tnsContext, url: string, options?: insRestOptions<DataType, ResultType>): Promise<ResultType>;
|
|
13
|
+
export {};
|
package/dist/ns/ns.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
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.getNSRESTResponse = getNSRESTResponse;
|
|
13
|
+
const common_1 = require("@kwiz/common");
|
|
14
|
+
const axios_1 = require("axios");
|
|
15
|
+
const axios_2 = require("../axios");
|
|
16
|
+
const oauth1_1 = require("./oauth1");
|
|
17
|
+
/** url should start with . after the account id. */
|
|
18
|
+
function getNSRESTResponse(ctx, url, options) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
let config;
|
|
21
|
+
let method = (0, common_1.isNotEmptyString)(options === null || options === void 0 ? void 0 : options.method)
|
|
22
|
+
? options.method
|
|
23
|
+
: (0, common_1.isNullOrUndefined)(options === null || options === void 0 ? void 0 : options.payload)
|
|
24
|
+
? "get"
|
|
25
|
+
: "post";
|
|
26
|
+
if ((0, common_1.isnsAccessToken)(ctx)) {
|
|
27
|
+
config = (0, axios_2.getAxiosConfigBearer)(ctx.accessToken, { contantType: "application/json" });
|
|
28
|
+
}
|
|
29
|
+
else if ((0, common_1.isnsTokenInfo)(ctx)) {
|
|
30
|
+
let oauth = new oauth1_1.nsOAuth1({
|
|
31
|
+
key: ctx.clientId,
|
|
32
|
+
secret: ctx.clientSecret
|
|
33
|
+
});
|
|
34
|
+
let restAuthentication = oauth._getRestAuthHeader({
|
|
35
|
+
url: url,
|
|
36
|
+
method: method
|
|
37
|
+
}, {
|
|
38
|
+
account: ctx.accountId,
|
|
39
|
+
token: ctx.tokenId,
|
|
40
|
+
tokenSecret: ctx.tokenSecret
|
|
41
|
+
});
|
|
42
|
+
config = (0, axios_2.getAxiosConfig)(restAuthentication, { contantType: "application/json" });
|
|
43
|
+
}
|
|
44
|
+
else
|
|
45
|
+
throw Error("Invalid context");
|
|
46
|
+
if (options === null || options === void 0 ? void 0 : options.headers) {
|
|
47
|
+
Object.keys(options.headers).forEach(h => {
|
|
48
|
+
config.headers[h] = options.headers[h];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
let result = null;
|
|
52
|
+
switch (method) {
|
|
53
|
+
case "patch":
|
|
54
|
+
result = yield axios_1.default.patch(url, options.payload, config);
|
|
55
|
+
break;
|
|
56
|
+
case "post":
|
|
57
|
+
result = yield axios_1.default.post(url, options.payload, config);
|
|
58
|
+
break;
|
|
59
|
+
case "get":
|
|
60
|
+
result = yield axios_1.default.get(url, config);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
if (options === null || options === void 0 ? void 0 : options.responseDigest)
|
|
64
|
+
return options.responseDigest(result);
|
|
65
|
+
else if (typeof (result.data) === "string")
|
|
66
|
+
return (0, common_1.jsonParse)(result.data);
|
|
67
|
+
else
|
|
68
|
+
return result.data;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=ns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns.js","sourceRoot":"","sources":["../../src/ns/ns.ts"],"names":[],"mappings":";;;;;;;;;;;AAcA,8CAuDC;AArED,yCAAkO;AAClO,iCAAiE;AACjE,oCAAgE;AAChE,qCAA4D;AAU5D,oDAAoD;AACpD,SAAsB,iBAAiB,CAClC,GAAe,EAAE,GAAW,EAAE,OAA8C;;QAE7E,IAAI,MAA0B,CAAC;QAC/B,IAAI,MAAM,GAA2B,IAAA,yBAAgB,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC;YAClE,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,IAAA,0BAAiB,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC;gBACjC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,MAAM,CAAC;QAEjB,IAAI,IAAA,wBAAe,EAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxF,CAAC;aACI,IAAI,IAAA,sBAAa,EAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,IAAI,iBAAQ,CAAC;gBAErB,GAAG,EAAE,GAAG,CAAC,QAAQ;gBACjB,MAAM,EAAE,GAAG,CAAC,YAAY;aAC3B,CAAC,CAAC;YACH,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBAC9C,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,MAAM;aACjB,EAAE;gBACC,OAAO,EAAE,GAAG,CAAC,SAAS;gBACtB,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,MAAM,GAAG,IAAA,sBAAc,EAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrF,CAAC;;YACI,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEpC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,OAAO;gBACR,MAAM,GAAG,MAAM,eAAK,CAAC,KAAK,CAAW,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,GAAG,MAAM,eAAK,CAAC,IAAI,CAAW,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAClE,MAAM;YACV,KAAK,KAAK;gBACN,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAAW,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChD,MAAM;QACd,CAAC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvB,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACrC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ;YACtC,OAAO,IAAA,kBAAS,EAAa,MAAM,CAAC,IAAI,CAAC,CAAC;;YAE1C,OAAO,MAAM,CAAC,IAAkB,CAAC;IACzC,CAAC;CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type tnsOAuthRequestMethods = "get" | "post" | "patch";
|
|
2
|
+
export interface insOAuth1RequestConfig {
|
|
3
|
+
key: string;
|
|
4
|
+
secret: string;
|
|
5
|
+
}
|
|
6
|
+
interface insOauthToken {
|
|
7
|
+
token: string;
|
|
8
|
+
tokenSecret: string;
|
|
9
|
+
account: string;
|
|
10
|
+
callback?: string;
|
|
11
|
+
verifier?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class nsOAuth1 {
|
|
14
|
+
private version;
|
|
15
|
+
private signatureMethod;
|
|
16
|
+
private consumer;
|
|
17
|
+
constructor(requestConfig: insOAuth1RequestConfig);
|
|
18
|
+
private _setConsumer;
|
|
19
|
+
private _getParameterString;
|
|
20
|
+
private _getSigningKey;
|
|
21
|
+
private _getSignature;
|
|
22
|
+
private _getRestSignature;
|
|
23
|
+
private _getSoapSignature;
|
|
24
|
+
private _encode;
|
|
25
|
+
private _sortObject;
|
|
26
|
+
private _getTimestamp;
|
|
27
|
+
private _getNonce;
|
|
28
|
+
_getSoapAuthHeader(authToken: insOauthToken): {
|
|
29
|
+
token: string;
|
|
30
|
+
signature: string;
|
|
31
|
+
nonce: string;
|
|
32
|
+
timestamp: number;
|
|
33
|
+
account: string;
|
|
34
|
+
consumerKey: string;
|
|
35
|
+
};
|
|
36
|
+
_getRestAuthHeader(request: {
|
|
37
|
+
method: tnsOAuthRequestMethods;
|
|
38
|
+
url: string;
|
|
39
|
+
}, token: insOauthToken): string;
|
|
40
|
+
private _initializeConfig;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nsOAuth1 = void 0;
|
|
4
|
+
const common_1 = require("@kwiz/common");
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
class nsOAuth1 {
|
|
7
|
+
constructor(requestConfig) {
|
|
8
|
+
this.version = '1.0';
|
|
9
|
+
this.signatureMethod = 'HMAC-SHA256';
|
|
10
|
+
this.consumer = null;
|
|
11
|
+
if ((0, common_1.isNullOrUndefined)(requestConfig))
|
|
12
|
+
throw new Error('Missing parameters --key or --secret when using -m or --vm.');
|
|
13
|
+
this._initializeConfig(requestConfig);
|
|
14
|
+
}
|
|
15
|
+
_setConsumer(key, secret) {
|
|
16
|
+
if (key && secret) {
|
|
17
|
+
this.consumer = { key: key, secret: secret };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
_getParameterString(oauthHeaders, request) {
|
|
21
|
+
var url = request.url;
|
|
22
|
+
var searchParams = (0, common_1.parseQueryString)(url);
|
|
23
|
+
var params = this._sortObject(Object.assign(Object.assign({}, oauthHeaders), searchParams));
|
|
24
|
+
var paramsString = params
|
|
25
|
+
.map(function (param) {
|
|
26
|
+
return param.name + "=" + param.value;
|
|
27
|
+
})
|
|
28
|
+
.join('&');
|
|
29
|
+
return paramsString;
|
|
30
|
+
}
|
|
31
|
+
_getSigningKey(tokenSecret) {
|
|
32
|
+
if (tokenSecret === void 0) {
|
|
33
|
+
tokenSecret = '';
|
|
34
|
+
}
|
|
35
|
+
var signingKey = [this._encode(this.consumer.secret), this._encode(tokenSecret)].join('&');
|
|
36
|
+
return signingKey;
|
|
37
|
+
}
|
|
38
|
+
_getSignature(baseString, tokenSecret) {
|
|
39
|
+
var key = this._getSigningKey(tokenSecret);
|
|
40
|
+
var hmacsignature = (0, crypto_1.createHmac)('sha256', Buffer.from(key, 'utf8'))
|
|
41
|
+
.update(baseString)
|
|
42
|
+
.digest()
|
|
43
|
+
.toString('base64');
|
|
44
|
+
return hmacsignature;
|
|
45
|
+
}
|
|
46
|
+
_getRestSignature(oauthHeaders, request, tokenSecret) {
|
|
47
|
+
var method = request.method, url = request.url;
|
|
48
|
+
var baseUrl = url.split('?')[0];
|
|
49
|
+
var baseString = [
|
|
50
|
+
method.toUpperCase(),
|
|
51
|
+
this._encode(baseUrl.toLowerCase()),
|
|
52
|
+
this._encode(this._getParameterString(oauthHeaders, request))
|
|
53
|
+
].join('&');
|
|
54
|
+
return this._getSignature(baseString, tokenSecret);
|
|
55
|
+
}
|
|
56
|
+
_getSoapSignature(account, token, nonce, timestamp) {
|
|
57
|
+
//https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1534941088.html#subsect_1520523663
|
|
58
|
+
var baseString = [account, this.consumer.key, token.token, nonce, timestamp].join('&');
|
|
59
|
+
return this._getSignature(baseString, token.tokenSecret);
|
|
60
|
+
}
|
|
61
|
+
_encode(data) {
|
|
62
|
+
return encodeURIComponent(data)
|
|
63
|
+
.replace(/!/g, '%21')
|
|
64
|
+
.replace(/\*/g, '%2A')
|
|
65
|
+
.replace(/'/g, '%27')
|
|
66
|
+
.replace(/\(/g, '%28')
|
|
67
|
+
.replace(/\)/g, '%29');
|
|
68
|
+
}
|
|
69
|
+
_sortObject(headers) {
|
|
70
|
+
var _this = this;
|
|
71
|
+
var keys = Object.keys(headers).sort();
|
|
72
|
+
return keys.map(function (name) {
|
|
73
|
+
return { name: _this._encode(name), value: _this._encode(headers[name]) };
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
_getTimestamp() {
|
|
77
|
+
let now = new Date(new Date().toUTCString());
|
|
78
|
+
return Math.round(now.getTime() / 1000);
|
|
79
|
+
}
|
|
80
|
+
_getNonce() {
|
|
81
|
+
return (0, common_1.newGuid)().replace(/-/g, '');
|
|
82
|
+
}
|
|
83
|
+
_getSoapAuthHeader(authToken) {
|
|
84
|
+
var nonce = this._getNonce();
|
|
85
|
+
var timestamp = this._getTimestamp();
|
|
86
|
+
var account = authToken.account, token = authToken.token;
|
|
87
|
+
var signature = this._getSoapSignature(account, authToken, nonce, timestamp);
|
|
88
|
+
return {
|
|
89
|
+
token: token,
|
|
90
|
+
signature: signature,
|
|
91
|
+
nonce: nonce,
|
|
92
|
+
timestamp: timestamp,
|
|
93
|
+
account: account,
|
|
94
|
+
consumerKey: this.consumer.key
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
_getRestAuthHeader(request, token) {
|
|
98
|
+
var HEADER = 'OAuth';
|
|
99
|
+
var oauthHeaders = {
|
|
100
|
+
oauth_consumer_key: this.consumer.key,
|
|
101
|
+
oauth_timestamp: this._getTimestamp(),
|
|
102
|
+
oauth_nonce: this._getNonce(),
|
|
103
|
+
oauth_version: this.version,
|
|
104
|
+
oauth_signature_method: this.signatureMethod
|
|
105
|
+
};
|
|
106
|
+
if (token.token) {
|
|
107
|
+
oauthHeaders.oauth_token = token.token;
|
|
108
|
+
}
|
|
109
|
+
if (token.callback) {
|
|
110
|
+
oauthHeaders.oauth_callback = token.callback;
|
|
111
|
+
}
|
|
112
|
+
if (token.verifier) {
|
|
113
|
+
oauthHeaders.oauth_verifier = token.verifier;
|
|
114
|
+
}
|
|
115
|
+
oauthHeaders.oauth_signature = this._getRestSignature(oauthHeaders, request, token.tokenSecret);
|
|
116
|
+
var sortedHeaders = this._sortObject(oauthHeaders);
|
|
117
|
+
var account = token.account;
|
|
118
|
+
if (account) {
|
|
119
|
+
sortedHeaders.push({ name: 'realm', value: account.replace('-', '_') });
|
|
120
|
+
}
|
|
121
|
+
var headerString = sortedHeaders
|
|
122
|
+
.map(function (header) {
|
|
123
|
+
return header.name + "=\"" + header.value + "\"";
|
|
124
|
+
})
|
|
125
|
+
.join(', ');
|
|
126
|
+
return HEADER + " " + headerString;
|
|
127
|
+
}
|
|
128
|
+
_initializeConfig(requestConfig) {
|
|
129
|
+
this._setConsumer(requestConfig.key, requestConfig.secret);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.nsOAuth1 = nsOAuth1;
|
|
133
|
+
//# sourceMappingURL=oauth1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth1.js","sourceRoot":"","sources":["../../src/ns/oauth1.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./email"), exports);
|
|
18
|
+
__exportStar(require("./xml"), exports);
|
|
18
19
|
//# sourceMappingURL=exports-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports-index.js","sourceRoot":"","sources":["../../src/utilities/exports-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"exports-index.js","sourceRoot":"","sources":["../../src/utilities/exports-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wCAAsB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
interface iOptions {
|
|
2
|
+
attrkey?: string | undefined;
|
|
3
|
+
charkey?: string | undefined;
|
|
4
|
+
explicitCharkey?: boolean | undefined;
|
|
5
|
+
trim?: boolean | undefined;
|
|
6
|
+
normalizeTags?: boolean | undefined;
|
|
7
|
+
normalize?: boolean | undefined;
|
|
8
|
+
explicitRoot?: boolean | undefined;
|
|
9
|
+
emptyTag?: (() => any) | string;
|
|
10
|
+
explicitArray?: boolean | undefined;
|
|
11
|
+
ignoreAttrs?: boolean | undefined;
|
|
12
|
+
mergeAttrs?: boolean | undefined;
|
|
13
|
+
validator?: Function | undefined;
|
|
14
|
+
xmlns?: boolean | undefined;
|
|
15
|
+
explicitChildren?: boolean | undefined;
|
|
16
|
+
childkey?: string | undefined;
|
|
17
|
+
preserveChildrenOrder?: boolean | undefined;
|
|
18
|
+
charsAsChildren?: boolean | undefined;
|
|
19
|
+
includeWhiteChars?: boolean | undefined;
|
|
20
|
+
async?: boolean | undefined;
|
|
21
|
+
strict?: boolean | undefined;
|
|
22
|
+
attrNameProcessors?: Array<(name: string) => any> | undefined;
|
|
23
|
+
attrValueProcessors?: Array<(value: string, name: string) => any> | undefined;
|
|
24
|
+
tagNameProcessors?: Array<(name: string) => any> | undefined;
|
|
25
|
+
valueProcessors?: Array<(value: string, name: string) => any> | undefined;
|
|
26
|
+
chunkSize?: number | undefined;
|
|
27
|
+
}
|
|
28
|
+
export declare function parseXml<T>(xml: string, options?: iOptions): T;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseXml = parseXml;
|
|
4
|
+
const xml2js_1 = require("xml2js");
|
|
5
|
+
const processors_1 = require("xml2js/lib/processors");
|
|
6
|
+
function parseXml(xml, options) {
|
|
7
|
+
xml = xml.replace(/\r/g, ''); //\r\n will be replaced with " " instead of \n
|
|
8
|
+
return (0, xml2js_1.parseStringPromise)(xml, Object.assign({ normalize: true, trim: true, explicitRoot: false, explicitArray: false, xmlns: false, tagNameProcessors: [processors_1.stripPrefix],
|
|
9
|
+
//breaking values in text that have :
|
|
10
|
+
//valueProcessors: [stripPrefix],
|
|
11
|
+
attrNameProcessors: [name => {
|
|
12
|
+
let names = name.split(":");
|
|
13
|
+
return names[names.length - 1];
|
|
14
|
+
}], attrValueProcessors: [processors_1.stripPrefix] }, (options || {})));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/utilities/xml.ts"],"names":[],"mappings":";;AA8BA,4BAkBC;AAhDD,mCAA4C;AAC5C,sDAAoD;AA6BpD,SAAgB,QAAQ,CAAI,GAAW,EAAE,OAAkB;IACvD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA,8CAA8C;IAC3E,OAAO,IAAA,2BAAkB,EAAC,GAAG,kBACzB,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,KAAK,EACnB,aAAa,EAAE,KAAK,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,CAAC,wBAAW,CAAC;QAChC,qCAAqC;QACrC,iCAAiC;QACjC,kBAAkB,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,EACF,mBAAmB,EAAE,CAAC,wBAAW,CAAC,IAC/B,CAAC,OAAO,IAAI,EAAE,CAAC,EACf,CAAC;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kwiz/node",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.50",
|
|
4
4
|
"description": "KWIZ utilities and helpers for node applications",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,14 +18,13 @@
|
|
|
18
18
|
"build-explain": "tsc --explainFiles",
|
|
19
19
|
"check-dependencies": "madge --circular ./src",
|
|
20
20
|
"yalc-link": "yalc publish",
|
|
21
|
-
"create-link": "npm link",
|
|
22
21
|
"test": "node --import tsx --test src",
|
|
23
22
|
"npm-v-patch": "npm version patch && git push origin main:main && git push --tags",
|
|
24
23
|
"npm-v-major": "npm version major && git push origin main:main && git push --tags",
|
|
25
24
|
"npm-publish": "npm publish --access public",
|
|
26
25
|
"reset-repo": "git fetch origin && git reset --hard origin/main",
|
|
27
26
|
"__update-kwiz-packages": "npm install @kwiz/common@latest",
|
|
28
|
-
"link-local-common": "
|
|
27
|
+
"link-local-common": "yalc add @kwiz/common",
|
|
29
28
|
"reindex-project": "cti create ./src -i _dependencies -w -b -n -o exports-index.ts && node fix-folder-imports.js",
|
|
30
29
|
"install-packages": "npm install azurite -g && npm ci",
|
|
31
30
|
"startDevStorage": "azurite -s -l",
|
|
@@ -64,6 +63,7 @@
|
|
|
64
63
|
"devDependencies": {
|
|
65
64
|
"@types/node": "^18.19.21",
|
|
66
65
|
"@types/nodemailer": "^7.0.9",
|
|
66
|
+
"@types/xml2js": "^0.4.14",
|
|
67
67
|
"check-node-version": "^4.2.1",
|
|
68
68
|
"create-ts-index": "^1.14.0",
|
|
69
69
|
"fs-extra": "^11.2.0",
|
|
@@ -77,12 +77,13 @@
|
|
|
77
77
|
"@azure/msal-node": "^2.6.4",
|
|
78
78
|
"@azure/storage-blob": "^12.31.0",
|
|
79
79
|
"@jsforce/jsforce-node": "^3.10.14",
|
|
80
|
-
"@kwiz/common": "^1.0.
|
|
80
|
+
"@kwiz/common": "^1.0.211",
|
|
81
81
|
"axios": "^1.6.7",
|
|
82
82
|
"esbuild": "^0.19.12",
|
|
83
83
|
"get-tsconfig": "^4.7.2",
|
|
84
84
|
"nodemailer": "^8.0.1",
|
|
85
|
-
"resolve-pkg-maps": "^1.0.0"
|
|
85
|
+
"resolve-pkg-maps": "^1.0.0",
|
|
86
|
+
"xml2js": "^0.6.2"
|
|
86
87
|
},
|
|
87
88
|
"peerDependencies": {
|
|
88
89
|
"@jsforce/jsforce-node": "^3.10.14"
|