@enfuce/nextgen-sdk 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/esm/exchange-rate/api.d.ts +409 -0
  2. package/dist/esm/exchange-rate/api.js +403 -0
  3. package/dist/esm/exchange-rate/base.d.ts +42 -0
  4. package/dist/esm/exchange-rate/base.js +41 -0
  5. package/dist/esm/exchange-rate/common.d.ts +34 -0
  6. package/dist/esm/exchange-rate/common.js +126 -0
  7. package/dist/esm/exchange-rate/configuration.d.ts +98 -0
  8. package/dist/esm/exchange-rate/configuration.js +40 -0
  9. package/dist/esm/exchange-rate/index.d.ts +13 -0
  10. package/dist/esm/exchange-rate/index.js +15 -0
  11. package/dist/esm/index.d.ts +1 -0
  12. package/dist/esm/index.js +1 -0
  13. package/dist/esm/oauth/axios.d.ts +10 -4
  14. package/dist/esm/oauth/axios.js +15 -4
  15. package/dist/esm/oauth/index.js +5 -2
  16. package/dist/exchange-rate/api.d.ts +409 -0
  17. package/dist/exchange-rate/api.js +418 -0
  18. package/dist/exchange-rate/base.d.ts +42 -0
  19. package/dist/exchange-rate/base.js +46 -0
  20. package/dist/exchange-rate/common.d.ts +34 -0
  21. package/dist/exchange-rate/common.js +139 -0
  22. package/dist/exchange-rate/configuration.d.ts +98 -0
  23. package/dist/exchange-rate/configuration.js +44 -0
  24. package/dist/exchange-rate/index.d.ts +13 -0
  25. package/dist/exchange-rate/index.js +31 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.js +2 -1
  28. package/dist/oauth/axios.d.ts +10 -4
  29. package/dist/oauth/axios.js +15 -4
  30. package/dist/oauth/index.js +5 -2
  31. package/package.json +1 -1
  32. package/src/exchange-rate/api.ts +615 -0
  33. package/src/exchange-rate/base.ts +62 -0
  34. package/src/exchange-rate/common.ts +127 -0
  35. package/src/exchange-rate/configuration.ts +121 -0
  36. package/src/exchange-rate/index.ts +18 -0
  37. package/src/index.ts +1 -0
  38. package/src/oauth/axios.ts +16 -4
  39. package/src/oauth/index.ts +5 -2
  40. package/test/oauth.test.ts +19 -0
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Exchange Rates API
6
+ * Endpoint for querying FX rates of payment scheme (including benchmark to ECB FX rates). API enables the issuer to comply with regulation (EU) 2019/518) and provide the cardholder with a better user experience by providing real-time visibility to scheme FX rates that are used for card transactions.
7
+ *
8
+ * The version of the OpenAPI document: 1
9
+ * Contact: info@enfuce.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.replaceWithSerializableTypeIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
26
+ const base_1 = require("./base");
27
+ exports.DUMMY_BASE_URL = 'https://example.com';
28
+ /**
29
+ *
30
+ * @throws {RequiredError}
31
+ */
32
+ const assertParamExists = function (functionName, paramName, paramValue) {
33
+ if (paramValue === null || paramValue === undefined) {
34
+ throw new base_1.RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
35
+ }
36
+ };
37
+ exports.assertParamExists = assertParamExists;
38
+ const setApiKeyToObject = function (object, keyParamName, configuration) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (configuration && configuration.apiKey) {
41
+ const localVarApiKeyValue = typeof configuration.apiKey === 'function'
42
+ ? yield configuration.apiKey(keyParamName)
43
+ : yield configuration.apiKey;
44
+ object[keyParamName] = localVarApiKeyValue;
45
+ }
46
+ });
47
+ };
48
+ exports.setApiKeyToObject = setApiKeyToObject;
49
+ const setBasicAuthToObject = function (object, configuration) {
50
+ if (configuration && (configuration.username || configuration.password)) {
51
+ object["auth"] = { username: configuration.username, password: configuration.password };
52
+ }
53
+ };
54
+ exports.setBasicAuthToObject = setBasicAuthToObject;
55
+ const setBearerAuthToObject = function (object, configuration) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ if (configuration && configuration.accessToken) {
58
+ const accessToken = typeof configuration.accessToken === 'function'
59
+ ? yield configuration.accessToken()
60
+ : yield configuration.accessToken;
61
+ object["Authorization"] = "Bearer " + accessToken;
62
+ }
63
+ });
64
+ };
65
+ exports.setBearerAuthToObject = setBearerAuthToObject;
66
+ const setOAuthToObject = function (object, name, scopes, configuration) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ if (configuration && configuration.accessToken) {
69
+ const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
70
+ ? yield configuration.accessToken(name, scopes)
71
+ : yield configuration.accessToken;
72
+ object["Authorization"] = "Bearer " + localVarAccessTokenValue;
73
+ }
74
+ });
75
+ };
76
+ exports.setOAuthToObject = setOAuthToObject;
77
+ function setFlattenedQueryParams(urlSearchParams, parameter, key = "") {
78
+ if (parameter == null)
79
+ return;
80
+ if (typeof parameter === "object") {
81
+ if (Array.isArray(parameter) || parameter instanceof Set) {
82
+ parameter.forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
83
+ }
84
+ else {
85
+ Object.keys(parameter).forEach(currentKey => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));
86
+ }
87
+ }
88
+ else {
89
+ if (urlSearchParams.has(key)) {
90
+ urlSearchParams.append(key, parameter);
91
+ }
92
+ else {
93
+ urlSearchParams.set(key, parameter);
94
+ }
95
+ }
96
+ }
97
+ const setSearchParams = function (url, ...objects) {
98
+ const searchParams = new URLSearchParams(url.search);
99
+ setFlattenedQueryParams(searchParams, objects);
100
+ url.search = searchParams.toString();
101
+ };
102
+ exports.setSearchParams = setSearchParams;
103
+ /**
104
+ * JSON serialization helper function which replaces instances of unserializable types with serializable ones.
105
+ * This function will run for every key-value pair encountered by JSON.stringify while traversing an object.
106
+ * Converting a set to a string will return an empty object, so an intermediate conversion to an array is required.
107
+ */
108
+ // @ts-ignore
109
+ const replaceWithSerializableTypeIfNeeded = function (key, value) {
110
+ if (value instanceof Set) {
111
+ return Array.from(value);
112
+ }
113
+ else {
114
+ return value;
115
+ }
116
+ };
117
+ exports.replaceWithSerializableTypeIfNeeded = replaceWithSerializableTypeIfNeeded;
118
+ const serializeDataIfNeeded = function (value, requestOptions, configuration) {
119
+ const nonString = typeof value !== 'string';
120
+ const needsSerialization = nonString && configuration && configuration.isJsonMime
121
+ ? configuration.isJsonMime(requestOptions.headers['Content-Type'])
122
+ : nonString;
123
+ return needsSerialization
124
+ ? JSON.stringify(value !== undefined ? value : {}, exports.replaceWithSerializableTypeIfNeeded)
125
+ : (value || "");
126
+ };
127
+ exports.serializeDataIfNeeded = serializeDataIfNeeded;
128
+ const toPathString = function (url) {
129
+ return url.pathname + url.search + url.hash;
130
+ };
131
+ exports.toPathString = toPathString;
132
+ const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
133
+ return (axios = globalAxios, basePath = BASE_PATH) => {
134
+ var _a;
135
+ const axiosRequestArgs = Object.assign(Object.assign({}, axiosArgs.options), { url: (axios.defaults.baseURL ? '' : (_a = configuration === null || configuration === void 0 ? void 0 : configuration.basePath) !== null && _a !== void 0 ? _a : basePath) + axiosArgs.url });
136
+ return axios.request(axiosRequestArgs);
137
+ };
138
+ };
139
+ exports.createRequestFunction = createRequestFunction;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Exchange Rates API
3
+ * Endpoint for querying FX rates of payment scheme (including benchmark to ECB FX rates). API enables the issuer to comply with regulation (EU) 2019/518) and provide the cardholder with a better user experience by providing real-time visibility to scheme FX rates that are used for card transactions.
4
+ *
5
+ * The version of the OpenAPI document: 1
6
+ * Contact: info@enfuce.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ interface AWSv4Configuration {
13
+ options?: {
14
+ region?: string;
15
+ service?: string;
16
+ };
17
+ credentials?: {
18
+ accessKeyId?: string;
19
+ secretAccessKey?: string;
20
+ sessionToken?: string;
21
+ };
22
+ }
23
+ export interface ConfigurationParameters {
24
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
25
+ username?: string;
26
+ password?: string;
27
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
28
+ awsv4?: AWSv4Configuration;
29
+ basePath?: string;
30
+ serverIndex?: number;
31
+ baseOptions?: any;
32
+ formDataCtor?: new () => any;
33
+ }
34
+ export declare class Configuration {
35
+ /**
36
+ * parameter for apiKey security
37
+ * @param name security name
38
+ */
39
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
40
+ /**
41
+ * parameter for basic security
42
+ */
43
+ username?: string;
44
+ /**
45
+ * parameter for basic security
46
+ */
47
+ password?: string;
48
+ /**
49
+ * parameter for oauth2 security
50
+ * @param name security name
51
+ * @param scopes oauth2 scope
52
+ */
53
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
54
+ /**
55
+ * parameter for aws4 signature security
56
+ * @param {Object} AWS4Signature - AWS4 Signature security
57
+ * @param {string} options.region - aws region
58
+ * @param {string} options.service - name of the service.
59
+ * @param {string} credentials.accessKeyId - aws access key id
60
+ * @param {string} credentials.secretAccessKey - aws access key
61
+ * @param {string} credentials.sessionToken - aws session token
62
+ * @memberof Configuration
63
+ */
64
+ awsv4?: AWSv4Configuration;
65
+ /**
66
+ * override base path
67
+ */
68
+ basePath?: string;
69
+ /**
70
+ * override server index
71
+ */
72
+ serverIndex?: number;
73
+ /**
74
+ * base options for axios calls
75
+ */
76
+ baseOptions?: any;
77
+ /**
78
+ * The FormData constructor that will be used to create multipart form data
79
+ * requests. You can inject this here so that execution environments that
80
+ * do not support the FormData class can still run the generated client.
81
+ *
82
+ * @type {new () => FormData}
83
+ */
84
+ formDataCtor?: new () => any;
85
+ constructor(param?: ConfigurationParameters);
86
+ /**
87
+ * Check if the given MIME is a JSON MIME.
88
+ * JSON MIME examples:
89
+ * application/json
90
+ * application/json; charset=UTF8
91
+ * APPLICATION/JSON
92
+ * application/vnd.company+json
93
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
94
+ * @return True if the given MIME is JSON, false otherwise.
95
+ */
96
+ isJsonMime(mime: string): boolean;
97
+ }
98
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /**
4
+ * Exchange Rates API
5
+ * Endpoint for querying FX rates of payment scheme (including benchmark to ECB FX rates). API enables the issuer to comply with regulation (EU) 2019/518) and provide the cardholder with a better user experience by providing real-time visibility to scheme FX rates that are used for card transactions.
6
+ *
7
+ * The version of the OpenAPI document: 1
8
+ * Contact: info@enfuce.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Configuration = void 0;
16
+ class Configuration {
17
+ constructor(param = {}) {
18
+ var _a;
19
+ this.apiKey = param.apiKey;
20
+ this.username = param.username;
21
+ this.password = param.password;
22
+ this.accessToken = param.accessToken;
23
+ this.awsv4 = param.awsv4;
24
+ this.basePath = param.basePath;
25
+ this.serverIndex = param.serverIndex;
26
+ this.baseOptions = Object.assign(Object.assign({}, param.baseOptions), { headers: Object.assign({}, (_a = param.baseOptions) === null || _a === void 0 ? void 0 : _a.headers) });
27
+ this.formDataCtor = param.formDataCtor;
28
+ }
29
+ /**
30
+ * Check if the given MIME is a JSON MIME.
31
+ * JSON MIME examples:
32
+ * application/json
33
+ * application/json; charset=UTF8
34
+ * APPLICATION/JSON
35
+ * application/vnd.company+json
36
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
37
+ * @return True if the given MIME is JSON, false otherwise.
38
+ */
39
+ isJsonMime(mime) {
40
+ const jsonMime = /^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$/i;
41
+ return mime !== null && jsonMime.test(mime);
42
+ }
43
+ }
44
+ exports.Configuration = Configuration;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Exchange Rates API
3
+ * Endpoint for querying FX rates of payment scheme (including benchmark to ECB FX rates). API enables the issuer to comply with regulation (EU) 2019/518) and provide the cardholder with a better user experience by providing real-time visibility to scheme FX rates that are used for card transactions.
4
+ *
5
+ * The version of the OpenAPI document: 1
6
+ * Contact: info@enfuce.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export * from "./api";
13
+ export * from "./configuration";
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Exchange Rates API
6
+ * Endpoint for querying FX rates of payment scheme (including benchmark to ECB FX rates). API enables the issuer to comply with regulation (EU) 2019/518) and provide the cardholder with a better user experience by providing real-time visibility to scheme FX rates that are used for card transactions.
7
+ *
8
+ * The version of the OpenAPI document: 1
9
+ * Contact: info@enfuce.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ __exportStar(require("./api"), exports);
31
+ __exportStar(require("./configuration"), exports);
package/dist/index.d.ts CHANGED
@@ -10,3 +10,4 @@ export * as threeds from './threeds';
10
10
  export * as threedsOob from './threeds-oob';
11
11
  export * as clearingFileCopy from './clearing-file-copy';
12
12
  export * as transactionEvent from './transaction-event';
13
+ export * as exchangeRate from './exchange-rate';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /* AUTO-GENERATED by scripts/generate.sh - do not edit. */
3
3
  /* One namespaced export per API. Usage: import { card } from '@enfuce/nextgen-sdk'; */
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.transactionEvent = exports.clearingFileCopy = exports.threedsOob = exports.threeds = exports.cards = exports.authorisationControl = exports.issuerEvents = exports.pin = exports.cardholder = exports.wallet = exports.card = exports.oauth = void 0;
5
+ exports.exchangeRate = exports.transactionEvent = exports.clearingFileCopy = exports.threedsOob = exports.threeds = exports.cards = exports.authorisationControl = exports.issuerEvents = exports.pin = exports.cardholder = exports.wallet = exports.card = exports.oauth = void 0;
6
6
  exports.oauth = require("./oauth");
7
7
  exports.card = require("./card");
8
8
  exports.wallet = require("./wallet");
@@ -15,3 +15,4 @@ exports.threeds = require("./threeds");
15
15
  exports.threedsOob = require("./threeds-oob");
16
16
  exports.clearingFileCopy = require("./clearing-file-copy");
17
17
  exports.transactionEvent = require("./transaction-event");
18
+ exports.exchangeRate = require("./exchange-rate");
@@ -1,13 +1,19 @@
1
1
  import { AxiosInstance } from 'axios';
2
2
  import { TokenManager } from './tokenManager';
3
3
  /**
4
- * Returns an {@link AxiosInstance} with a response interceptor that, on a `401`,
5
- * forces a token refresh and retries the request exactly once with the new bearer
6
- * token. Pass it as the third argument of a generated API class:
4
+ * Returns an {@link AxiosInstance} with OAuth bearer-token handling built in:
5
+ *
6
+ * - **Proactive:** a request interceptor attaches a fresh bearer token (from the
7
+ * {@link TokenManager}) to *every* request. This authenticates API modules whose spec declares no
8
+ * security scheme (e.g. exchange-rate), so no `accessToken` on the `Configuration` is required.
9
+ * - **Reactive:** a response interceptor, on a `401`, forces a token refresh and retries the request
10
+ * exactly once with the new bearer token.
11
+ *
12
+ * Pass it as the third argument of a generated API class:
7
13
  *
8
14
  * ```ts
9
15
  * const http = createOAuthAxios(tokens);
10
- * const config = new card.Configuration({ accessToken: () => tokens.getToken() });
16
+ * const config = new card.Configuration({ basePath });
11
17
  * const api = new card.CardApi(config, undefined, http);
12
18
  * ```
13
19
  */
@@ -25,18 +25,29 @@ function stripBearer(header) {
25
25
  : header;
26
26
  }
27
27
  /**
28
- * Returns an {@link AxiosInstance} with a response interceptor that, on a `401`,
29
- * forces a token refresh and retries the request exactly once with the new bearer
30
- * token. Pass it as the third argument of a generated API class:
28
+ * Returns an {@link AxiosInstance} with OAuth bearer-token handling built in:
29
+ *
30
+ * - **Proactive:** a request interceptor attaches a fresh bearer token (from the
31
+ * {@link TokenManager}) to *every* request. This authenticates API modules whose spec declares no
32
+ * security scheme (e.g. exchange-rate), so no `accessToken` on the `Configuration` is required.
33
+ * - **Reactive:** a response interceptor, on a `401`, forces a token refresh and retries the request
34
+ * exactly once with the new bearer token.
35
+ *
36
+ * Pass it as the third argument of a generated API class:
31
37
  *
32
38
  * ```ts
33
39
  * const http = createOAuthAxios(tokens);
34
- * const config = new card.Configuration({ accessToken: () => tokens.getToken() });
40
+ * const config = new card.Configuration({ basePath });
35
41
  * const api = new card.CardApi(config, undefined, http);
36
42
  * ```
37
43
  */
38
44
  function createOAuthAxios(manager, instance) {
39
45
  const http = instance !== null && instance !== void 0 ? instance : axios_1.default.create();
46
+ // Proactive: attach a fresh bearer token to every outgoing request.
47
+ http.interceptors.request.use((config) => __awaiter(this, void 0, void 0, function* () {
48
+ config.headers.set('Authorization', BEARER_PREFIX + (yield manager.getToken()));
49
+ return config;
50
+ }));
40
51
  http.interceptors.response.use(undefined, (error) => __awaiter(this, void 0, void 0, function* () {
41
52
  var _a, _b, _c;
42
53
  const response = error.response;
@@ -16,10 +16,13 @@ exports.createOAuthAxios = exports.clientCredentialsFetcher = exports.clientCred
16
16
  * clientSecret: 'my-secret',
17
17
  * scopes: ['cards:read'],
18
18
  * });
19
- * const http = oauth.createOAuthAxios(tokens);
20
- * const config = new card.Configuration({ accessToken: () => tokens.getToken() });
19
+ * const http = oauth.createOAuthAxios(tokens); // attaches the token + retries on 401
20
+ * const config = new card.Configuration({ basePath: 'https://api.example.com' });
21
21
  * const api = new card.CardApi(config, undefined, http);
22
22
  *
23
+ * The same `http` instance authenticates every API module, including ones whose spec declares no
24
+ * security scheme (e.g. exchange-rate) — no `accessToken` on the `Configuration` is required.
25
+ *
23
26
  * Server-side only — a client secret must never ship to a browser.
24
27
  */
25
28
  var tokenManager_1 = require("./tokenManager");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enfuce/nextgen-sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Enfuce nextgen client SDK (TypeScript). One namespaced export per API.",
5
5
  "publishConfig": {
6
6
  "access": "public"