@de./sdk-rn 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/dist/allend/Access.d.ts +12 -0
- package/dist/allend/Access.d.ts.map +1 -0
- package/dist/allend/Access.js +43 -0
- package/dist/allend/Access.js.map +1 -0
- package/dist/allend/DClient/Client.d.ts +11 -0
- package/dist/allend/DClient/Client.d.ts.map +1 -0
- package/dist/allend/DClient/Client.js +50 -0
- package/dist/allend/DClient/Client.js.map +1 -0
- package/dist/allend/DClient/Event.d.ts +19 -0
- package/dist/allend/DClient/Event.d.ts.map +1 -0
- package/dist/allend/DClient/Event.js +74 -0
- package/dist/allend/DClient/Event.js.map +1 -0
- package/dist/allend/DClient/Order.d.ts +50 -0
- package/dist/allend/DClient/Order.d.ts.map +1 -0
- package/dist/allend/DClient/Order.js +321 -0
- package/dist/allend/DClient/Order.js.map +1 -0
- package/dist/allend/MSI/Controls.d.ts +232 -0
- package/dist/allend/MSI/Controls.d.ts.map +1 -0
- package/dist/allend/MSI/Controls.js +668 -0
- package/dist/allend/MSI/Controls.js.map +1 -0
- package/dist/allend/MSI/Handles.d.ts +89 -0
- package/dist/allend/MSI/Handles.d.ts.map +1 -0
- package/dist/allend/MSI/Handles.js +328 -0
- package/dist/allend/MSI/Handles.js.map +1 -0
- package/dist/allend/MSI/Plugins.d.ts +23 -0
- package/dist/allend/MSI/Plugins.d.ts.map +1 -0
- package/dist/allend/MSI/Plugins.js +29 -0
- package/dist/allend/MSI/Plugins.js.map +1 -0
- package/dist/allend/MSI/index.d.ts +38 -0
- package/dist/allend/MSI/index.d.ts.map +1 -0
- package/dist/allend/MSI/index.js +176 -0
- package/dist/allend/MSI/index.js.map +1 -0
- package/dist/allend/index.d.ts +16 -0
- package/dist/allend/index.d.ts.map +1 -0
- package/dist/allend/index.js +12 -0
- package/dist/allend/index.js.map +1 -0
- package/dist/backend/Auth.d.ts +14 -0
- package/dist/backend/Auth.d.ts.map +1 -0
- package/dist/backend/Auth.js +84 -0
- package/dist/backend/Auth.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/stream.d.ts +21 -0
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/stream.js +59 -0
- package/dist/utils/stream.js.map +1 -0
- package/package.json +81 -0
- package/src/allend/Access.ts +58 -0
- package/src/allend/DClient/Client.ts +76 -0
- package/src/allend/DClient/Event.ts +76 -0
- package/src/allend/DClient/Order.ts +452 -0
- package/src/allend/MSI/Controls.ts +703 -0
- package/src/allend/MSI/Handles.ts +387 -0
- package/src/allend/MSI/Plugins.ts +52 -0
- package/src/allend/MSI/index.tsx +254 -0
- package/src/allend/index.ts +14 -0
- package/src/backend/Auth.ts +112 -0
- package/src/index.ts +18 -0
- package/src/types/access.d.ts +7 -0
- package/src/types/auth.d.ts +26 -0
- package/src/types/index.d.ts +275 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/stream.ts +68 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* de.sdk-rn
|
|
3
|
+
* React Native SDK for MSI (Map Service Interface)
|
|
4
|
+
*/
|
|
5
|
+
import React, { useRef, useEffect, useState, forwardRef, useImperativeHandle } from 'react';
|
|
6
|
+
import { View, StyleSheet, AppState } from 'react-native';
|
|
7
|
+
import { WebView } from 'react-native-webview';
|
|
8
|
+
import WIO from 'webview.io';
|
|
9
|
+
import Controls from './Controls';
|
|
10
|
+
import Handles from './Handles';
|
|
11
|
+
import Plugins from './Plugins';
|
|
12
|
+
const REQUIRED_FEATURES = ['geolocation'];
|
|
13
|
+
const REGISTERED_PLUGINS = {};
|
|
14
|
+
// MSI Component
|
|
15
|
+
export default forwardRef((props, ref) => {
|
|
16
|
+
var _a;
|
|
17
|
+
const webViewRef = useRef(null);
|
|
18
|
+
const wioRef = useRef(null);
|
|
19
|
+
const controlsRef = useRef(null);
|
|
20
|
+
const handlesRef = useRef(null);
|
|
21
|
+
const pluginsRef = useRef(null);
|
|
22
|
+
const [isConnected, setIsConnected] = useState(false);
|
|
23
|
+
const [hasError, setHasError] = useState(false);
|
|
24
|
+
// Expose API via ref
|
|
25
|
+
useImperativeHandle(ref, () => ({
|
|
26
|
+
controls: controlsRef.current,
|
|
27
|
+
handles: handlesRef.current,
|
|
28
|
+
plugins: pluginsRef.current,
|
|
29
|
+
isReady: () => isConnected
|
|
30
|
+
}));
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
// Initialize WIO bridge
|
|
33
|
+
wioRef.current = new WIO({
|
|
34
|
+
type: 'WEBVIEW',
|
|
35
|
+
debug: props.env === 'dev'
|
|
36
|
+
});
|
|
37
|
+
const baseURL = props.env === 'dev'
|
|
38
|
+
? 'http://localhost:4800'
|
|
39
|
+
: 'https://msi.dedot.io';
|
|
40
|
+
wioRef.current.initiate(webViewRef, baseURL);
|
|
41
|
+
// Setup event listeners
|
|
42
|
+
wioRef.current
|
|
43
|
+
.once('connect', () => {
|
|
44
|
+
const wio = wioRef.current;
|
|
45
|
+
// Bind with access token and origin
|
|
46
|
+
wio.emit('bind', Object.assign(Object.assign({}, props), { origin: 'react-native' }), (error) => {
|
|
47
|
+
var _a;
|
|
48
|
+
if (error) {
|
|
49
|
+
const errorObj = new Error(typeof error === 'string' ? error : 'Connection failed');
|
|
50
|
+
setHasError(true);
|
|
51
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, errorObj);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
setIsConnected(true);
|
|
55
|
+
});
|
|
56
|
+
})
|
|
57
|
+
.on('error', (error) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const errorObj = typeof error === 'object' ? error : new Error(error);
|
|
60
|
+
setHasError(true);
|
|
61
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, errorObj);
|
|
62
|
+
})
|
|
63
|
+
.on('ready', () => {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
console.log('MSI ready');
|
|
66
|
+
(_a = props.onReady) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
67
|
+
// Initialize API
|
|
68
|
+
if (wioRef.current && isConnected && !controlsRef.current) {
|
|
69
|
+
const controls = new Controls(wioRef.current, props), handles = new Handles(wioRef.current, controls, props), plugins = new Plugins(wioRef.current, handles, controls, props);
|
|
70
|
+
plugins.mount(REGISTERED_PLUGINS);
|
|
71
|
+
controlsRef.current = controls;
|
|
72
|
+
handlesRef.current = handles;
|
|
73
|
+
pluginsRef.current = plugins;
|
|
74
|
+
(_b = props.onLoaded) === null || _b === void 0 ? void 0 : _b.call(props, {
|
|
75
|
+
controls,
|
|
76
|
+
handles,
|
|
77
|
+
plugins
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// Handle app state changes
|
|
82
|
+
const subscription = AppState.addEventListener('change', (nextAppState) => {
|
|
83
|
+
if (nextAppState === 'background') {
|
|
84
|
+
// Pause updates when app goes to background
|
|
85
|
+
console.log('App backgrounded - pausing map updates');
|
|
86
|
+
}
|
|
87
|
+
else if (nextAppState === 'active') {
|
|
88
|
+
// Resume when app comes to foreground
|
|
89
|
+
console.log('App active - resuming map updates');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return () => {
|
|
93
|
+
var _a;
|
|
94
|
+
subscription.remove();
|
|
95
|
+
(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
96
|
+
};
|
|
97
|
+
}, []);
|
|
98
|
+
const handleMessage = (event) => {
|
|
99
|
+
var _a;
|
|
100
|
+
(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.handleMessage(event);
|
|
101
|
+
};
|
|
102
|
+
const baseURL = props.env === 'dev'
|
|
103
|
+
? 'http://localhost:4800'
|
|
104
|
+
: 'https://msi.dedot.io', mapUrl = `${baseURL}?token=${props.accessToken}&v=${props.version || 1}`;
|
|
105
|
+
return (<View style={styles.container}>
|
|
106
|
+
<WebView ref={webViewRef} source={{ uri: mapUrl }} style={styles.webview} onMessage={handleMessage} injectedJavaScript={(_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.getInjectedJavaScript()} javaScriptEnabled={true} domStorageEnabled={true} geolocationEnabled={true} allowsInlineMediaPlayback={true} cacheEnabled={true} androidLayerType="hardware" allowsBackForwardNavigationGestures={false} bounces={false} scrollEnabled={false} mixedContentMode="always" originWhitelist={['*']} onLoadStart={() => console.log('WebView loading...')} onLoadEnd={() => {
|
|
107
|
+
console.log('WebView loaded');
|
|
108
|
+
setTimeout(() => { var _a; return (_a = wioRef.current) === null || _a === void 0 ? void 0 : _a.emit('ping'); }, 300);
|
|
109
|
+
}} onError={(syntheticEvent) => {
|
|
110
|
+
var _a;
|
|
111
|
+
const { nativeEvent } = syntheticEvent;
|
|
112
|
+
console.error('WebView error:', nativeEvent);
|
|
113
|
+
setHasError(true);
|
|
114
|
+
(_a = props.onError) === null || _a === void 0 ? void 0 : _a.call(props, new Error(nativeEvent.description || 'WebView error'));
|
|
115
|
+
}}/>
|
|
116
|
+
|
|
117
|
+
{hasError && (<View style={styles.errorOverlay}>
|
|
118
|
+
<View style={styles.errorCard}>
|
|
119
|
+
{/* Error UI can be added here */}
|
|
120
|
+
</View>
|
|
121
|
+
</View>)}
|
|
122
|
+
</View>);
|
|
123
|
+
});
|
|
124
|
+
const styles = StyleSheet.create({
|
|
125
|
+
container: {
|
|
126
|
+
flex: 1,
|
|
127
|
+
backgroundColor: '#f0f0f0'
|
|
128
|
+
},
|
|
129
|
+
webview: {
|
|
130
|
+
flex: 1,
|
|
131
|
+
backgroundColor: 'transparent'
|
|
132
|
+
},
|
|
133
|
+
errorOverlay: Object.assign(Object.assign({}, StyleSheet.absoluteFillObject), { backgroundColor: 'rgba(0,0,0,0.5)', justifyContent: 'center', alignItems: 'center' }),
|
|
134
|
+
errorCard: {
|
|
135
|
+
backgroundColor: 'white',
|
|
136
|
+
padding: 20,
|
|
137
|
+
borderRadius: 12,
|
|
138
|
+
margin: 20
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// =====================================================
|
|
142
|
+
// MSI CLASS
|
|
143
|
+
// =====================================================
|
|
144
|
+
export class MSIClass {
|
|
145
|
+
constructor(options) {
|
|
146
|
+
this.options = options;
|
|
147
|
+
if (!this.options.accessToken)
|
|
148
|
+
throw new Error('Invalid Access Token');
|
|
149
|
+
}
|
|
150
|
+
plugin(name, fn) {
|
|
151
|
+
REGISTERED_PLUGINS[name] = fn;
|
|
152
|
+
}
|
|
153
|
+
once(event, handler) {
|
|
154
|
+
if (event === 'ready')
|
|
155
|
+
this.onReady = handler;
|
|
156
|
+
else if (event === 'error')
|
|
157
|
+
this.onError = handler;
|
|
158
|
+
return this;
|
|
159
|
+
}
|
|
160
|
+
on(event, handler) {
|
|
161
|
+
return this.once(event, handler);
|
|
162
|
+
}
|
|
163
|
+
getOptions() {
|
|
164
|
+
return this.options;
|
|
165
|
+
}
|
|
166
|
+
load() {
|
|
167
|
+
return new Promise((resolve, reject) => {
|
|
168
|
+
this.onLoaded = resolve;
|
|
169
|
+
this.onError = reject;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
isReady() {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/allend/MSI/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Order from './DClient/Order';
|
|
2
|
+
import Event from './DClient/Event';
|
|
3
|
+
import Client from './DClient/Client';
|
|
4
|
+
declare const _default: {
|
|
5
|
+
MSI: import("react").ForwardRefExoticComponent<import("./MSI").MSIProps & import("react").RefAttributes<import("./MSI").MSIRef>>;
|
|
6
|
+
Utils: {
|
|
7
|
+
Stream: typeof import("../utils/stream").default;
|
|
8
|
+
};
|
|
9
|
+
DClient: {
|
|
10
|
+
Client: typeof Client;
|
|
11
|
+
Order: typeof Order;
|
|
12
|
+
Event: typeof Event;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export default _default;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/allend/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,MAAM,MAAM,kBAAkB,CAAA;;;;;;;;;;;;AAIrC,wBAIC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import MSI from './MSI';
|
|
2
|
+
import Utils from '../utils';
|
|
3
|
+
import Order from './DClient/Order';
|
|
4
|
+
import Event from './DClient/Event';
|
|
5
|
+
import Client from './DClient/Client';
|
|
6
|
+
const DClient = { Client, Order, Event };
|
|
7
|
+
export default {
|
|
8
|
+
MSI,
|
|
9
|
+
Utils,
|
|
10
|
+
DClient
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/allend/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,KAAK,MAAM,UAAU,CAAA;AAE5B,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,MAAM,MAAM,kBAAkB,CAAA;AAErC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAExC,eAAe;IACb,GAAG;IACH,KAAK;IACL,OAAO;CACR,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AuthCredentials, AuthOptions } from '../types/auth';
|
|
2
|
+
export default class Auth {
|
|
3
|
+
private version;
|
|
4
|
+
protected creds: AuthCredentials;
|
|
5
|
+
private expiryTime?;
|
|
6
|
+
private autorefresh?;
|
|
7
|
+
private baseURL;
|
|
8
|
+
accessToken?: string;
|
|
9
|
+
constructor(creds: AuthCredentials, options?: AuthOptions);
|
|
10
|
+
private request;
|
|
11
|
+
getToken(): Promise<string>;
|
|
12
|
+
rotateToken(): Promise<string>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/backend/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAUrF,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,SAAS,CAAC,KAAK,EAAE,eAAe,CAAA;IAChC,OAAO,CAAC,UAAU,CAAC,CAAK;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAQ;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;gBAEd,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,WAAW;YAa5C,OAAO;IA+Bf,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB3B,WAAW;CA4BlB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const ACCESS_TOKEN_EXPIRY = 3.75; // in 3 minutes 45 seconds
|
|
2
|
+
export default class Auth {
|
|
3
|
+
constructor(creds, options) {
|
|
4
|
+
if (!creds)
|
|
5
|
+
throw new Error('Undefined Credentials. Check https://doc.dedot.io/sdk/auth');
|
|
6
|
+
if (!creds.workspace)
|
|
7
|
+
throw new Error('Undefined Workspace Reference. Check https://doc.dedot.io/sdk/auth');
|
|
8
|
+
if (!creds.remoteOrigin)
|
|
9
|
+
throw new Error('Undefined Remote Origin. Check https://doc.dedot.io/sdk/auth');
|
|
10
|
+
if (!creds.cid)
|
|
11
|
+
throw new Error('Undefined Connector ID. Check https://doc.dedot.io/sdk/auth');
|
|
12
|
+
if (!creds.secret)
|
|
13
|
+
throw new Error('Undefined Connector Secret. Check https://doc.dedot.io/sdk/auth');
|
|
14
|
+
this.creds = creds;
|
|
15
|
+
this.version = (options === null || options === void 0 ? void 0 : options.version) || 1;
|
|
16
|
+
this.baseURL = (options === null || options === void 0 ? void 0 : options.env) === 'prod' ? 'https://api.dedot.io' : 'http://api.dedot.io:24800';
|
|
17
|
+
this.autorefresh = (options === null || options === void 0 ? void 0 : options.autorefresh) || false;
|
|
18
|
+
}
|
|
19
|
+
async request(options) {
|
|
20
|
+
const rawOptions = {
|
|
21
|
+
method: 'GET',
|
|
22
|
+
headers: {
|
|
23
|
+
/**
|
|
24
|
+
* Default User agent for SDK request calls
|
|
25
|
+
*
|
|
26
|
+
* NOTE: Later replace by latest SDK version
|
|
27
|
+
*/
|
|
28
|
+
'origin': this.creds.remoteOrigin,
|
|
29
|
+
'x-user-agent': `De.remote/${this.version}.0`
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
if (this.accessToken)
|
|
33
|
+
rawOptions.headers.authorization = `Bearer ${this.accessToken}`;
|
|
34
|
+
if (options.body)
|
|
35
|
+
rawOptions.headers['content-type'] = 'application/json';
|
|
36
|
+
options = Object.assign(Object.assign({}, rawOptions), options);
|
|
37
|
+
if (!options.url)
|
|
38
|
+
throw new Error('Undefined request <url>');
|
|
39
|
+
console.log('Auth request', `${this.baseURL}/v${this.version}/${options.url.replace(/^\//, '')}`, options);
|
|
40
|
+
const response = await fetch(`${this.baseURL}/v${this.version}/${options.url.replace(/^\//, '')}`, options);
|
|
41
|
+
return await response.json();
|
|
42
|
+
}
|
|
43
|
+
async getToken() {
|
|
44
|
+
const { workspace, cid, secret } = this.creds, options = {
|
|
45
|
+
url: '/access/token',
|
|
46
|
+
method: 'POST',
|
|
47
|
+
body: this.creds
|
|
48
|
+
}, { error, message, token } = await this.request(options);
|
|
49
|
+
if (error)
|
|
50
|
+
throw new Error(message);
|
|
51
|
+
// Set auto-refresh token every 4 mins
|
|
52
|
+
if (this.autorefresh) {
|
|
53
|
+
clearTimeout(this.expiryTime);
|
|
54
|
+
this.expiryTime = setTimeout(() => this.rotateToken(), ACCESS_TOKEN_EXPIRY * 60 * 1000);
|
|
55
|
+
}
|
|
56
|
+
this.accessToken = token;
|
|
57
|
+
return token;
|
|
58
|
+
}
|
|
59
|
+
async rotateToken() {
|
|
60
|
+
if (!this.accessToken)
|
|
61
|
+
throw new Error('No access token found');
|
|
62
|
+
try {
|
|
63
|
+
const options = {
|
|
64
|
+
url: '/access/token/rotate',
|
|
65
|
+
method: 'PATCH',
|
|
66
|
+
body: { secret: this.creds.secret }
|
|
67
|
+
}, { error, message, token } = await this.request(options);
|
|
68
|
+
if (error)
|
|
69
|
+
throw new Error(message);
|
|
70
|
+
// Set auto-refresh token every 4 mins
|
|
71
|
+
if (this.autorefresh) {
|
|
72
|
+
clearTimeout(this.expiryTime);
|
|
73
|
+
this.expiryTime = setTimeout(() => this.rotateToken(), ACCESS_TOKEN_EXPIRY * 60 * 1000);
|
|
74
|
+
}
|
|
75
|
+
this.accessToken = token;
|
|
76
|
+
return token;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error(`Refresh access token failed: ${error.message}`);
|
|
80
|
+
return await this.getToken(); // Get new token instead
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=Auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/backend/Auth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Utils from './utils';
|
|
2
|
+
import MSI from './allend/MSI';
|
|
3
|
+
import Auth from './backend/Auth';
|
|
4
|
+
import Order from './allend/DClient/Order';
|
|
5
|
+
import Event from './allend/DClient/Event';
|
|
6
|
+
import Client from './allend/DClient/Client';
|
|
7
|
+
declare const DClient: {
|
|
8
|
+
Client: typeof Client;
|
|
9
|
+
Order: typeof Order;
|
|
10
|
+
Event: typeof Event;
|
|
11
|
+
};
|
|
12
|
+
export { Auth, MSI, Utils, DClient };
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,GAAG,MAAM,cAAc,CAAA;AAC9B,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,MAAM,MAAM,yBAAyB,CAAA;AAK5C,QAAA,MAAM,OAAO;;;;CAA2B,CAAA;AAExC,OAAO,EACL,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACR,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Utils from './utils';
|
|
2
|
+
import MSI from './allend/MSI';
|
|
3
|
+
import Auth from './backend/Auth';
|
|
4
|
+
import Order from './allend/DClient/Order';
|
|
5
|
+
import Event from './allend/DClient/Event';
|
|
6
|
+
import Client from './allend/DClient/Client';
|
|
7
|
+
// export const Auth = _Auth
|
|
8
|
+
// export const MSI = _MSI
|
|
9
|
+
// export const Utils = _Utils
|
|
10
|
+
const DClient = { Client, Order, Event };
|
|
11
|
+
export { Auth, MSI, Utils, DClient };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,GAAG,MAAM,cAAc,CAAA;AAC9B,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,MAAM,MAAM,yBAAyB,CAAA;AAE5C,4BAA4B;AAC5B,0BAA0B;AAC1B,8BAA8B;AAC9B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAExC,OAAO,EACL,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACR,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAA;;;;AAE7B,wBAAyB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,eAAe,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type StreamDataListener = (data: string) => void;
|
|
2
|
+
export default class Stream {
|
|
3
|
+
private _STALED;
|
|
4
|
+
private _CLOSED;
|
|
5
|
+
private _fns;
|
|
6
|
+
private _exitFn;
|
|
7
|
+
private _errorFn;
|
|
8
|
+
private _downStream?;
|
|
9
|
+
private _upStream?;
|
|
10
|
+
private _upstream;
|
|
11
|
+
private _backpressure;
|
|
12
|
+
sync(data: any): void;
|
|
13
|
+
on(_event: 'data', fn: StreamDataListener): this;
|
|
14
|
+
pipe(stream: Stream): this;
|
|
15
|
+
error(error: Error | string): this;
|
|
16
|
+
close(): void;
|
|
17
|
+
isActive(): boolean;
|
|
18
|
+
onerror(fn: (error: Error) => void): this;
|
|
19
|
+
onclose(fn: () => void): this;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,GAAG,CAAE,IAAI,EAAE,MAAM,KAAM,IAAI,CAAA;AAEzD,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAIrB,IAAI,CAAE,IAAI,EAAE,GAAG;IAIf,EAAE,CAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,kBAAkB;IAO1C,IAAI,CAAE,MAAM,EAAE,MAAM;IAMpB,KAAK,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM;IAS5B,KAAK;IAWL,QAAQ;IAER,OAAO,CAAE,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,KAAM,IAAI;IAIrC,OAAO,CAAE,EAAE,EAAE,MAAM,IAAI;CAIxB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export default class Stream {
|
|
2
|
+
constructor() {
|
|
3
|
+
this._STALED = false;
|
|
4
|
+
this._CLOSED = false;
|
|
5
|
+
this._fns = [];
|
|
6
|
+
this._exitFn = (() => { });
|
|
7
|
+
this._errorFn = ((error) => { });
|
|
8
|
+
}
|
|
9
|
+
_upstream(stream) {
|
|
10
|
+
this._upStream = stream;
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
_backpressure(data) {
|
|
14
|
+
!this._CLOSED && this._fns.map(fn => fn(data));
|
|
15
|
+
}
|
|
16
|
+
sync(data) {
|
|
17
|
+
var _a;
|
|
18
|
+
!this._CLOSED && ((_a = this._downStream) === null || _a === void 0 ? void 0 : _a._backpressure(data));
|
|
19
|
+
}
|
|
20
|
+
on(_event, fn) {
|
|
21
|
+
if (this._CLOSED)
|
|
22
|
+
throw new Error('Stream closed');
|
|
23
|
+
this._fns.push(fn);
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
pipe(stream) {
|
|
27
|
+
stream._upstream(this);
|
|
28
|
+
this._downStream = stream;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
error(error) {
|
|
32
|
+
var _a;
|
|
33
|
+
// Throw error to self
|
|
34
|
+
this._errorFn(typeof error == 'string' ? new Error(error) : error);
|
|
35
|
+
// Throw error to downstream pipe
|
|
36
|
+
(_a = this._downStream) === null || _a === void 0 ? void 0 : _a.error(error);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
close() {
|
|
40
|
+
var _a;
|
|
41
|
+
if (this._CLOSED)
|
|
42
|
+
return;
|
|
43
|
+
this._CLOSED = true;
|
|
44
|
+
this._fns = [];
|
|
45
|
+
this._exitFn();
|
|
46
|
+
(_a = this._downStream) === null || _a === void 0 ? void 0 : _a.close(); // Close down streams
|
|
47
|
+
// this._upStream?.close() // Close up streams: Recursive loop call effect
|
|
48
|
+
}
|
|
49
|
+
isActive() { return !this._CLOSED; }
|
|
50
|
+
onerror(fn) {
|
|
51
|
+
this._errorFn = fn;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
onclose(fn) {
|
|
55
|
+
this._exitFn = fn;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,MAAM;IAA3B;QACU,YAAO,GAAY,KAAK,CAAA;QACxB,YAAO,GAAY,KAAK,CAAA;QACxB,SAAI,GAAyB,EAAE,CAAA;QAC/B,YAAO,GAAG,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACpB,aAAQ,GAAG,CAAC,CAAE,KAAY,EAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IA2D7C,CAAC;IAvDS,SAAS,CAAE,MAAc;QAC/B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IACO,aAAa,CAAE,IAAS;QAC9B,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,IAAI,CAAE,CAAE,CAAA;IACpD,CAAC;IAED,IAAI,CAAE,IAAS;;QACb,CAAC,IAAI,CAAC,OAAO,KAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,aAAa,CAAE,IAAI,CAAE,CAAA,CAAA;IAC1D,CAAC;IAED,EAAE,CAAE,MAAc,EAAE,EAAsB;QACxC,IAAI,IAAI,CAAC,OAAO;YAAG,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAEnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAE,MAAc;QAClB,MAAM,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAE,KAAqB;;QAC1B,sBAAsB;QACtB,IAAI,CAAC,QAAQ,CAAE,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAE,KAAK,CAAE,CAAC,CAAC,CAAE,KAAK,CAAE,CAAA;QACvE,iCAAiC;QACjC,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAE,KAAK,CAAE,CAAA;QAEhC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;;QACH,IAAI,IAAI,CAAC,OAAO;YAAG,OAAM;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAA,CAAC,qBAAqB;QAC/C,0EAA0E;IAC5E,CAAC;IAED,QAAQ,KAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;IAElC,OAAO,CAAE,EAA4B;QACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CAAE,EAAc;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@de./sdk-rn",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Complete SDK pack for MSI React Native (Map Service Interface) and DClient services",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/",
|
|
9
|
+
"src/",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"author": "SCOREX Corporation",
|
|
19
|
+
"private": false,
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build:tsc": "rimraf ./dist && tsc",
|
|
22
|
+
"compile": "yarn build:tsc",
|
|
23
|
+
"prepack": "yarn run compile",
|
|
24
|
+
"test": "echo 'Error: No test specified' && exit 1",
|
|
25
|
+
"test:msi": "yarn build:tsc && jest test/msi.test.js",
|
|
26
|
+
"test:client": "yarn build:tsc && jest test/client.test.js",
|
|
27
|
+
"test:order": "yarn build:tsc && jest test/order.test.js",
|
|
28
|
+
"test:event": "yarn build:tsc && jest test/event.test.js"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"events": "^3.3.0",
|
|
32
|
+
"socket.io-client": "^4.6.1",
|
|
33
|
+
"webview.io": "^1.0.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"react": ">=16.8.0",
|
|
37
|
+
"react-native": ">=0.60.0",
|
|
38
|
+
"react-native-webview": ">=11.0.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/events": "^3.0.3",
|
|
42
|
+
"@types/jest": "^29.5.0",
|
|
43
|
+
"@types/react": "^18.0.0",
|
|
44
|
+
"@types/react-native": "^0.72.8",
|
|
45
|
+
"expect.js": "^0.3.1",
|
|
46
|
+
"jest": "^29.7.0",
|
|
47
|
+
"react": "^18.2.0",
|
|
48
|
+
"react-native": "^0.72.8",
|
|
49
|
+
"react-native-webview": "^13.16.0",
|
|
50
|
+
"rimraf": "^4.4.0",
|
|
51
|
+
"ts-jest": "^29.0.5",
|
|
52
|
+
"typescript": "^5.0.2"
|
|
53
|
+
},
|
|
54
|
+
"directories": {
|
|
55
|
+
"dist": "dist/",
|
|
56
|
+
"docs": "docs/",
|
|
57
|
+
"test": "test/"
|
|
58
|
+
},
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"repository": {
|
|
61
|
+
"type": "git",
|
|
62
|
+
"url": "git://github.com/de-dot/de.sdk-rn"
|
|
63
|
+
},
|
|
64
|
+
"keywords": [
|
|
65
|
+
"react-native",
|
|
66
|
+
"sdk",
|
|
67
|
+
"map",
|
|
68
|
+
"msi",
|
|
69
|
+
"webview",
|
|
70
|
+
"geolocation",
|
|
71
|
+
"navigation",
|
|
72
|
+
"routing",
|
|
73
|
+
"real-time",
|
|
74
|
+
"socket-io",
|
|
75
|
+
"delidev",
|
|
76
|
+
"mobile"
|
|
77
|
+
],
|
|
78
|
+
"engines": {
|
|
79
|
+
"node": ">=12.0.0"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { AccessOptions } from '../types/access'
|
|
2
|
+
import type { HTTPRequestOptions } from '../types'
|
|
3
|
+
|
|
4
|
+
export default class Access {
|
|
5
|
+
private version: number
|
|
6
|
+
private baseURL: string
|
|
7
|
+
protected accessToken?: string
|
|
8
|
+
protected remoteOrigin?: string
|
|
9
|
+
|
|
10
|
+
constructor( options: AccessOptions ){
|
|
11
|
+
if( !options ) throw new Error('Undefined Access Configuration')
|
|
12
|
+
if( !options.workspace ) throw new Error('Undefined Workspace Reference')
|
|
13
|
+
if( !options.accessToken ) throw new Error('Undefined Access Token')
|
|
14
|
+
|
|
15
|
+
this.version = options.version || 1
|
|
16
|
+
this.accessToken = options.accessToken
|
|
17
|
+
this.remoteOrigin = options.remoteOrigin
|
|
18
|
+
this.baseURL = options.env === 'prod'
|
|
19
|
+
? 'https://api.dedot.com'
|
|
20
|
+
: 'http://api.dedot.io:24800'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async request<Response>( options: HTTPRequestOptions ): Promise<Response> {
|
|
24
|
+
const rawOptions: any = {
|
|
25
|
+
method: 'GET',
|
|
26
|
+
headers: {
|
|
27
|
+
origin: this.remoteOrigin,
|
|
28
|
+
'x-user-agent': `De.remote/${this.version}.0`
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if( this.accessToken )
|
|
33
|
+
rawOptions.headers.authorization = `Bearer ${this.accessToken}`
|
|
34
|
+
|
|
35
|
+
if( options.body ){
|
|
36
|
+
rawOptions.headers['content-type'] = 'application/json'
|
|
37
|
+
options.body = JSON.stringify( options.body )
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if( typeof options.headers == 'object' )
|
|
41
|
+
options.headers = {
|
|
42
|
+
...options.headers,
|
|
43
|
+
...rawOptions.headers
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
options = { ...rawOptions, ...options }
|
|
47
|
+
|
|
48
|
+
if( !options.url ) throw new Error('Undefined request <url>')
|
|
49
|
+
const url = `${this.baseURL}/v${this.version}/${options.url.replace(/^\//, '')}`
|
|
50
|
+
|
|
51
|
+
// React Native has built-in fetch
|
|
52
|
+
return await ( await fetch( url, options ) ).json() as Response
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
setToken( token: string ): void {
|
|
56
|
+
this.accessToken = token
|
|
57
|
+
}
|
|
58
|
+
}
|