@retter/sdk 0.1.13 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Auth.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import RetterRequest from './Request';
2
+ import { RetterAuthChangedEvent, RetterClientConfig, RetterTokenData, RetterTokenPayload } from './types';
3
+ export default class Auth {
4
+ private http?;
5
+ private clientConfig?;
6
+ private tokenStorageKey?;
7
+ private currentTokenData?;
8
+ constructor(config: RetterClientConfig);
9
+ setHttp(http: RetterRequest): void;
10
+ storeTokenData(tokenData: RetterTokenData): Promise<void>;
11
+ clearTokenData(): Promise<void>;
12
+ getCurrentTokenData(): Promise<RetterTokenData | undefined>;
13
+ getCurrentUser(): Promise<RetterTokenPayload | undefined>;
14
+ getTokenData(): Promise<RetterTokenData | undefined>;
15
+ protected decodeToken(token: string): RetterTokenPayload;
16
+ protected getFreshToken(refreshToken: string, userId: string): Promise<RetterTokenData>;
17
+ protected getAnonymousToken(): Promise<RetterTokenData>;
18
+ signIn(token: string): Promise<RetterTokenData>;
19
+ signOut(): Promise<void>;
20
+ getAuthStatus(tokenData?: RetterTokenData): RetterAuthChangedEvent;
21
+ }
package/dist/Auth.js ADDED
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var jwt_decode_1 = __importDefault(require("jwt-decode"));
43
+ var async_storage_1 = __importDefault(require("@react-native-async-storage/async-storage"));
44
+ var helpers_1 = require("./helpers");
45
+ var types_1 = require("./types");
46
+ var Auth = /** @class */ (function () {
47
+ function Auth(config) {
48
+ this.clientConfig = config;
49
+ this.tokenStorageKey = "RBS_TOKENS_KEY.".concat(config.projectId);
50
+ }
51
+ Auth.prototype.setHttp = function (http) {
52
+ this.http = http;
53
+ };
54
+ // Token
55
+ Auth.prototype.storeTokenData = function (tokenData) {
56
+ return __awaiter(this, void 0, void 0, function () {
57
+ var runtime;
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0:
61
+ runtime = (0, helpers_1.getRuntime)();
62
+ if (runtime === 'web') {
63
+ localStorage.setItem(this.tokenStorageKey, JSON.stringify(tokenData));
64
+ }
65
+ if (!(runtime === 'react-native')) return [3 /*break*/, 2];
66
+ return [4 /*yield*/, async_storage_1.default.setItem(this.tokenStorageKey, JSON.stringify(tokenData))];
67
+ case 1:
68
+ _a.sent();
69
+ _a.label = 2;
70
+ case 2:
71
+ this.currentTokenData = tokenData;
72
+ return [2 /*return*/];
73
+ }
74
+ });
75
+ });
76
+ };
77
+ Auth.prototype.clearTokenData = function () {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var runtime;
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0:
83
+ runtime = (0, helpers_1.getRuntime)();
84
+ if (runtime === 'web') {
85
+ localStorage.removeItem(this.tokenStorageKey);
86
+ }
87
+ if (!(runtime === 'react-native')) return [3 /*break*/, 2];
88
+ return [4 /*yield*/, async_storage_1.default.removeItem(this.tokenStorageKey)];
89
+ case 1:
90
+ _a.sent();
91
+ _a.label = 2;
92
+ case 2:
93
+ this.currentTokenData = undefined;
94
+ return [2 /*return*/];
95
+ }
96
+ });
97
+ });
98
+ };
99
+ Auth.prototype.getCurrentTokenData = function () {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var runtime, data, data;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ runtime = (0, helpers_1.getRuntime)();
106
+ if (runtime === 'web') {
107
+ data = localStorage.getItem(this.tokenStorageKey);
108
+ if (data)
109
+ return [2 /*return*/, JSON.parse(data)];
110
+ }
111
+ if (!(runtime === 'react-native')) return [3 /*break*/, 2];
112
+ return [4 /*yield*/, async_storage_1.default.getItem(this.tokenStorageKey)];
113
+ case 1:
114
+ data = _a.sent();
115
+ if (data)
116
+ return [2 /*return*/, JSON.parse(data)];
117
+ _a.label = 2;
118
+ case 2: return [2 /*return*/, this.currentTokenData];
119
+ }
120
+ });
121
+ });
122
+ };
123
+ Auth.prototype.getCurrentUser = function () {
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ var tokenData;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, this.getCurrentTokenData()];
129
+ case 1:
130
+ tokenData = _a.sent();
131
+ if (tokenData)
132
+ return [2 /*return*/, this.decodeToken(tokenData.accessToken)];
133
+ return [2 /*return*/, undefined];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ Auth.prototype.getTokenData = function () {
139
+ var _a, _b;
140
+ return __awaiter(this, void 0, void 0, function () {
141
+ var tokenData, now, accessTokenExpiresAt, refreshTokenExpiresAt, freshTokenData, anonymousTokenData;
142
+ return __generator(this, function (_c) {
143
+ switch (_c.label) {
144
+ case 0: return [4 /*yield*/, this.getCurrentTokenData()];
145
+ case 1:
146
+ tokenData = _c.sent();
147
+ if (!tokenData) return [3 /*break*/, 4];
148
+ now = Math.round(new Date().getTime() / 1000) + 30 // Plus 30 seconds, just in case.
149
+ ;
150
+ tokenData.accessTokenDecoded = this.decodeToken(tokenData.accessToken);
151
+ tokenData.refreshTokenDecoded = this.decodeToken(tokenData.refreshToken);
152
+ accessTokenExpiresAt = (_a = tokenData.accessTokenDecoded.exp) !== null && _a !== void 0 ? _a : 0;
153
+ refreshTokenExpiresAt = (_b = tokenData.refreshTokenDecoded.exp) !== null && _b !== void 0 ? _b : 0;
154
+ if (!(refreshTokenExpiresAt > now && accessTokenExpiresAt <= now)) return [3 /*break*/, 3];
155
+ return [4 /*yield*/, this.getFreshToken(tokenData.refreshToken, tokenData.refreshTokenDecoded.userId)];
156
+ case 2:
157
+ freshTokenData = _c.sent();
158
+ return [2 /*return*/, freshTokenData];
159
+ case 3: return [2 /*return*/, tokenData];
160
+ case 4: return [4 /*yield*/, this.getAnonymousToken()];
161
+ case 5:
162
+ anonymousTokenData = _c.sent();
163
+ anonymousTokenData.accessTokenDecoded = this.decodeToken(anonymousTokenData.accessToken);
164
+ anonymousTokenData.refreshTokenDecoded = this.decodeToken(anonymousTokenData.refreshToken);
165
+ return [2 /*return*/, anonymousTokenData];
166
+ }
167
+ });
168
+ });
169
+ };
170
+ Auth.prototype.decodeToken = function (token) {
171
+ return (0, jwt_decode_1.default)(token);
172
+ };
173
+ Auth.prototype.getFreshToken = function (refreshToken, userId) {
174
+ return __awaiter(this, void 0, void 0, function () {
175
+ var path;
176
+ return __generator(this, function (_a) {
177
+ switch (_a.label) {
178
+ case 0:
179
+ path = "/CALL/ProjectUser/refreshToken/".concat(this.clientConfig.projectId, "_").concat(userId);
180
+ return [4 /*yield*/, this.http.call('root', path, { method: 'get', params: { refreshToken: refreshToken } })];
181
+ case 1: return [2 /*return*/, _a.sent()];
182
+ }
183
+ });
184
+ });
185
+ };
186
+ Auth.prototype.getAnonymousToken = function () {
187
+ return __awaiter(this, void 0, void 0, function () {
188
+ var path, data;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ path = "/INSTANCE/ProjectUser";
193
+ return [4 /*yield*/, this.http.call('root', path, {
194
+ method: 'get',
195
+ params: { projectId: this.clientConfig.projectId },
196
+ })];
197
+ case 1:
198
+ data = _a.sent();
199
+ return [2 /*return*/, data.response];
200
+ }
201
+ });
202
+ });
203
+ };
204
+ // Remote Request
205
+ Auth.prototype.signIn = function (token) {
206
+ return __awaiter(this, void 0, void 0, function () {
207
+ var userId, path, tokenData;
208
+ return __generator(this, function (_a) {
209
+ switch (_a.label) {
210
+ case 0:
211
+ userId = this.decodeToken(token).userId;
212
+ path = "/CALL/ProjectUser/authWithCustomToken/".concat(this.clientConfig.projectId, "_").concat(userId);
213
+ return [4 /*yield*/, this.http.call('root', path, { method: 'get', params: { customToken: token } })];
214
+ case 1:
215
+ tokenData = _a.sent();
216
+ tokenData.accessTokenDecoded = this.decodeToken(tokenData.accessToken);
217
+ tokenData.refreshTokenDecoded = this.decodeToken(tokenData.refreshToken);
218
+ return [2 /*return*/, tokenData];
219
+ }
220
+ });
221
+ });
222
+ };
223
+ Auth.prototype.signOut = function () {
224
+ return __awaiter(this, void 0, void 0, function () {
225
+ var tokenData, path, error_1;
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ _a.trys.push([0, 4, , 5]);
230
+ return [4 /*yield*/, this.getCurrentTokenData()];
231
+ case 1:
232
+ tokenData = _a.sent();
233
+ if (!tokenData) return [3 /*break*/, 3];
234
+ path = "/CALL/ProjectUser/signOut/".concat(this.clientConfig.projectId, "_").concat(tokenData.accessTokenDecoded.userId);
235
+ return [4 /*yield*/, this.http.call('root', path, { method: 'get' })];
236
+ case 2:
237
+ _a.sent();
238
+ _a.label = 3;
239
+ case 3: return [3 /*break*/, 5];
240
+ case 4:
241
+ error_1 = _a.sent();
242
+ return [3 /*break*/, 5];
243
+ case 5: return [2 /*return*/];
244
+ }
245
+ });
246
+ });
247
+ };
248
+ // Status
249
+ Auth.prototype.getAuthStatus = function (tokenData) {
250
+ if (tokenData && tokenData.accessTokenDecoded) {
251
+ var data = tokenData.accessTokenDecoded;
252
+ return {
253
+ uid: data.userId,
254
+ identity: data.identity,
255
+ authStatus: data.anonymous ? types_1.RetterAuthStatus.SIGNED_IN_ANONYM : types_1.RetterAuthStatus.SIGNED_IN,
256
+ };
257
+ }
258
+ return { authStatus: types_1.RetterAuthStatus.SIGNED_OUT };
259
+ };
260
+ return Auth;
261
+ }());
262
+ exports.default = Auth;
263
+ //# sourceMappingURL=Auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RetterClientConfig } from './types';
2
+ export default class Request {
3
+ private region?;
4
+ private axiosInstance?;
5
+ constructor(config: RetterClientConfig);
6
+ protected createAxiosInstance(): void;
7
+ protected buildUrl(projectId: string, path: string): string;
8
+ call<T>(projectId: string, path: string, params?: any): Promise<T>;
9
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var axios_1 = __importDefault(require("axios"));
54
+ var types_1 = require("./types");
55
+ var RetterRegions = [
56
+ {
57
+ id: types_1.RetterRegion.euWest1,
58
+ url: 'api.rtbs.io',
59
+ },
60
+ {
61
+ id: types_1.RetterRegion.euWest1Beta,
62
+ url: 'test-api.rtbs.io',
63
+ },
64
+ ];
65
+ var Request = /** @class */ (function () {
66
+ function Request(config) {
67
+ this.createAxiosInstance();
68
+ this.region = RetterRegions.find(function (region) { return region.id === config.region; });
69
+ }
70
+ Request.prototype.createAxiosInstance = function () {
71
+ this.axiosInstance = axios_1.default.create({
72
+ responseType: 'json',
73
+ headers: {
74
+ 'Content-Type': 'application/json',
75
+ },
76
+ timeout: 30000,
77
+ });
78
+ };
79
+ Request.prototype.buildUrl = function (projectId, path) {
80
+ var url = "https://".concat(projectId, ".").concat(this.region.url, "/").concat(path);
81
+ return url;
82
+ };
83
+ Request.prototype.call = function (projectId, path, params) {
84
+ var _a;
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var response, error_1;
87
+ return __generator(this, function (_b) {
88
+ switch (_b.label) {
89
+ case 0:
90
+ _b.trys.push([0, 2, , 3]);
91
+ return [4 /*yield*/, this.axiosInstance(__assign({ url: this.buildUrl(projectId, path) }, params))];
92
+ case 1:
93
+ response = _b.sent();
94
+ return [2 /*return*/, response.data];
95
+ case 2:
96
+ error_1 = _b.sent();
97
+ console.log((_a = error_1.response) !== null && _a !== void 0 ? _a : error_1);
98
+ throw error_1;
99
+ case 3: return [2 /*return*/];
100
+ }
101
+ });
102
+ });
103
+ };
104
+ return Request;
105
+ }());
106
+ exports.default = Request;
107
+ //# sourceMappingURL=Request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgE;AAEhE,iCAA8E;AAE9E,IAAM,aAAa,GAAyB;IACxC;QACI,EAAE,EAAE,oBAAY,CAAC,OAAO;QACxB,GAAG,EAAE,aAAa;KACrB;IACD;QACI,EAAE,EAAE,oBAAY,CAAC,WAAW;QAC5B,GAAG,EAAE,kBAAkB;KAC1B;CACJ,CAAA;AAED;IAKI,iBAAY,MAA0B;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,EAA3B,CAA2B,CAAC,CAAA;IAC3E,CAAC;IAES,qCAAmB,GAA7B;QACI,IAAI,CAAC,aAAc,GAAG,eAAK,CAAC,MAAM,CAAC;YAC/B,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;aACrC;YACD,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;IACN,CAAC;IAES,0BAAQ,GAAlB,UAAmB,SAAiB,EAAE,IAAY;QAC9C,IAAM,GAAG,GAAG,kBAAW,SAAS,cAAI,IAAI,CAAC,MAAO,CAAC,GAAG,cAAI,IAAI,CAAE,CAAA;QAE9D,OAAO,GAAG,CAAA;IACd,CAAC;IAEY,sBAAI,GAAjB,UAAqB,SAAiB,EAAE,IAAY,EAAE,MAAY;;;;;;;;wBAEzC,qBAAM,IAAI,CAAC,aAAc,YAAG,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAK,MAAM,EAAG,EAAA;;wBAAxF,QAAQ,GAAG,SAA6E;wBAC9F,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,OAAO,CAAC,GAAG,CAAC,MAAA,OAAK,CAAC,QAAQ,mCAAI,OAAK,CAAC,CAAA;wBACpC,MAAM,OAAK,CAAA;;;;;KAElB;IACL,cAAC;AAAD,CAAC,AAnCD,IAmCC"}
package/dist/helpers.d.ts CHANGED
@@ -1,63 +1 @@
1
- export interface ActionEvent {
2
- action: string;
3
- actionType: string;
4
- projectId: string;
5
- identity: string;
6
- userId: string;
7
- serviceId: string;
8
- actionPayload: any;
9
- processExecutionId: string;
10
- processId: string;
11
- processExecutorId: string;
12
- processExecutorRole: string;
13
- claims: any;
14
- isAnonymous: boolean;
15
- culture: string;
16
- platform: string;
17
- }
18
- export declare const headers: any;
19
- export declare enum RESPONSE_TYPE {
20
- SUCCESS = 0,
21
- NO_CONTENT = 1,
22
- METHOD_NOT_ALLOWED = 2,
23
- BAD_REQUEST = 3,
24
- AUTH_FAILED = 4,
25
- PERMISSION_DENIED = 5,
26
- NOT_FOUND = 6,
27
- INTERNAL_SERVER_ERROR = 7
28
- }
29
- export interface RbsServiceResponse {
30
- responseType: RESPONSE_TYPE;
31
- errorCode?: string;
32
- message?: any;
33
- culture?: string;
34
- data?: any;
35
- transform?: boolean;
36
- transformContext?: {
37
- [key: string]: string;
38
- };
39
- errors?: string[];
40
- cacheForDuration?: Duration;
41
- headers?: {
42
- [key: string]: string;
43
- };
44
- }
45
- export declare class Duration {
46
- private _seconds;
47
- static seconds: (amount: number) => Duration;
48
- static minutes: (amount: number) => Duration;
49
- static hours: (amount: number) => Duration;
50
- static days: (amount: number) => Duration;
51
- getSeconds: () => number;
52
- }
53
- export declare const createResponse: (response: RbsServiceResponse) => any;
54
- export interface ValidationError {
55
- target?: Object;
56
- property?: string;
57
- value?: any;
58
- constraints?: {
59
- [type: string]: string;
60
- };
61
- children?: ValidationError[];
62
- }
63
- export declare const parseClassValidatorErrors: (errors: ValidationError[]) => string[];
1
+ export declare function getRuntime(): 'web' | 'react-native' | 'node';
package/dist/helpers.js CHANGED
@@ -1,146 +1,12 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
2
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.parseClassValidatorErrors = exports.createResponse = exports.Duration = exports.RESPONSE_TYPE = exports.headers = void 0;
24
- var Buffer = require('buffer/').Buffer;
25
- exports.headers = {
26
- 'Access-Control-Allow-Headers': '*',
27
- 'Access-Control-Allow-Origin': '*',
28
- 'Access-Control-Allow-Method': '*',
29
- 'Access-Control-Allow-Credentials': true,
30
- };
31
- var RESPONSE_TYPE;
32
- (function (RESPONSE_TYPE) {
33
- RESPONSE_TYPE[RESPONSE_TYPE["SUCCESS"] = 0] = "SUCCESS";
34
- RESPONSE_TYPE[RESPONSE_TYPE["NO_CONTENT"] = 1] = "NO_CONTENT";
35
- RESPONSE_TYPE[RESPONSE_TYPE["METHOD_NOT_ALLOWED"] = 2] = "METHOD_NOT_ALLOWED";
36
- RESPONSE_TYPE[RESPONSE_TYPE["BAD_REQUEST"] = 3] = "BAD_REQUEST";
37
- RESPONSE_TYPE[RESPONSE_TYPE["AUTH_FAILED"] = 4] = "AUTH_FAILED";
38
- RESPONSE_TYPE[RESPONSE_TYPE["PERMISSION_DENIED"] = 5] = "PERMISSION_DENIED";
39
- RESPONSE_TYPE[RESPONSE_TYPE["NOT_FOUND"] = 6] = "NOT_FOUND";
40
- RESPONSE_TYPE[RESPONSE_TYPE["INTERNAL_SERVER_ERROR"] = 7] = "INTERNAL_SERVER_ERROR";
41
- })(RESPONSE_TYPE = exports.RESPONSE_TYPE || (exports.RESPONSE_TYPE = {}));
42
- var getStatus = function (responseType) {
43
- switch (responseType) {
44
- case RESPONSE_TYPE.SUCCESS:
45
- return 200;
46
- case RESPONSE_TYPE.NO_CONTENT:
47
- return 204;
48
- case RESPONSE_TYPE.BAD_REQUEST:
49
- return 400;
50
- case RESPONSE_TYPE.AUTH_FAILED:
51
- return 401;
52
- case RESPONSE_TYPE.PERMISSION_DENIED:
53
- return 403;
54
- case RESPONSE_TYPE.NOT_FOUND:
55
- return 404;
56
- case RESPONSE_TYPE.METHOD_NOT_ALLOWED:
57
- return 405;
58
- case RESPONSE_TYPE.INTERNAL_SERVER_ERROR:
59
- return 500;
60
- }
61
- };
62
- var Duration = /** @class */ (function () {
63
- function Duration() {
64
- var _this = this;
65
- this._seconds = 0;
66
- this.getSeconds = function () {
67
- return _this._seconds;
68
- };
69
- }
70
- Duration.seconds = function (amount) {
71
- var d = new Duration();
72
- d._seconds = amount;
73
- return d;
74
- };
75
- Duration.minutes = function (amount) {
76
- var d = new Duration();
77
- d._seconds = amount * 60;
78
- return d;
79
- };
80
- Duration.hours = function (amount) {
81
- var d = new Duration();
82
- d._seconds = amount * 3600;
83
- return d;
84
- };
85
- Duration.days = function (amount) {
86
- var d = new Duration();
87
- d._seconds = amount * 3600 * 24;
88
- return d;
89
- };
90
- return Duration;
91
- }());
92
- exports.Duration = Duration;
93
- var createResponse = function (response) {
94
- //message: response.message ? response.message : JSON.stringify(response.responseType),
95
- var _a;
96
- if (!response.transform)
97
- response.transform = false;
98
- //if(!response.transformContext) response.transform = false
99
- if (!response.culture)
100
- response.culture = 'en-US';
101
- var reqHeaders = __assign(__assign(__assign({}, exports.headers), (_a = {}, _a['x-rbs-errorcode'] = response.errorCode, _a['Cache-Control'] = response.cacheForDuration ? "max-age=" + response.cacheForDuration.getSeconds() : 'max-age=0', _a)), response.headers);
102
- if (response.transform) {
103
- reqHeaders['x-rbs-transform'] = response.transform;
104
- if (response.transformContext)
105
- reqHeaders['x-rbs-transform-context'] = Buffer.from(JSON.stringify(response.transformContext)).toString('base64');
106
- }
107
- reqHeaders['x-rbs-culture'] = response.culture;
108
- return {
109
- statusCode: getStatus(response.responseType),
110
- headers: reqHeaders,
111
- body: JSON.stringify({
112
- errors: response.errors,
113
- data: response.data,
114
- }),
115
- };
116
- };
117
- exports.createResponse = createResponse;
118
- var parseClassValidatorErrors = function (errors) {
119
- var root = {
120
- target: {},
121
- property: '',
122
- value: '',
123
- children: errors,
124
- };
125
- return parseClassValidatorErrorObject('root', root);
126
- };
127
- exports.parseClassValidatorErrors = parseClassValidatorErrors;
128
- var parseClassValidatorErrorObject = function (path, validationError) {
129
- var errStrings = [];
130
- if (validationError.constraints) {
131
- var keys = Object.keys(validationError.constraints);
132
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
133
- var k = keys_1[_i];
134
- errStrings.push(path + '.' + String(validationError.constraints[k]));
135
- }
136
- }
137
- path = path + (validationError.property ? '.' + validationError.property : '');
138
- if (validationError.children && validationError.children.length > 0) {
139
- for (var _a = 0, _b = validationError.children; _a < _b.length; _a++) {
140
- var c = _b[_a];
141
- errStrings = __spreadArray(__spreadArray([], errStrings, true), parseClassValidatorErrorObject(path, c), true);
142
- }
143
- }
144
- return errStrings;
145
- };
3
+ exports.getRuntime = void 0;
4
+ function getRuntime() {
5
+ if (typeof document != 'undefined')
6
+ return 'web';
7
+ if (typeof navigator != 'undefined' && navigator.product == 'ReactNative')
8
+ return 'react-native';
9
+ return 'node';
10
+ }
11
+ exports.getRuntime = getRuntime;
146
12
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU;IACtB,IAAI,OAAO,QAAQ,IAAI,WAAW;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI,OAAO,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,OAAO,IAAI,aAAa;QAAE,OAAO,cAAc,CAAA;IAChG,OAAO,MAAM,CAAA;AACjB,CAAC;AAJD,gCAIC"}