@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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/allend/Access.d.ts +12 -0
  4. package/dist/allend/Access.d.ts.map +1 -0
  5. package/dist/allend/Access.js +43 -0
  6. package/dist/allend/Access.js.map +1 -0
  7. package/dist/allend/DClient/Client.d.ts +11 -0
  8. package/dist/allend/DClient/Client.d.ts.map +1 -0
  9. package/dist/allend/DClient/Client.js +50 -0
  10. package/dist/allend/DClient/Client.js.map +1 -0
  11. package/dist/allend/DClient/Event.d.ts +19 -0
  12. package/dist/allend/DClient/Event.d.ts.map +1 -0
  13. package/dist/allend/DClient/Event.js +74 -0
  14. package/dist/allend/DClient/Event.js.map +1 -0
  15. package/dist/allend/DClient/Order.d.ts +50 -0
  16. package/dist/allend/DClient/Order.d.ts.map +1 -0
  17. package/dist/allend/DClient/Order.js +321 -0
  18. package/dist/allend/DClient/Order.js.map +1 -0
  19. package/dist/allend/MSI/Controls.d.ts +232 -0
  20. package/dist/allend/MSI/Controls.d.ts.map +1 -0
  21. package/dist/allend/MSI/Controls.js +668 -0
  22. package/dist/allend/MSI/Controls.js.map +1 -0
  23. package/dist/allend/MSI/Handles.d.ts +89 -0
  24. package/dist/allend/MSI/Handles.d.ts.map +1 -0
  25. package/dist/allend/MSI/Handles.js +328 -0
  26. package/dist/allend/MSI/Handles.js.map +1 -0
  27. package/dist/allend/MSI/Plugins.d.ts +23 -0
  28. package/dist/allend/MSI/Plugins.d.ts.map +1 -0
  29. package/dist/allend/MSI/Plugins.js +29 -0
  30. package/dist/allend/MSI/Plugins.js.map +1 -0
  31. package/dist/allend/MSI/index.d.ts +38 -0
  32. package/dist/allend/MSI/index.d.ts.map +1 -0
  33. package/dist/allend/MSI/index.js +176 -0
  34. package/dist/allend/MSI/index.js.map +1 -0
  35. package/dist/allend/index.d.ts +16 -0
  36. package/dist/allend/index.d.ts.map +1 -0
  37. package/dist/allend/index.js +12 -0
  38. package/dist/allend/index.js.map +1 -0
  39. package/dist/backend/Auth.d.ts +14 -0
  40. package/dist/backend/Auth.d.ts.map +1 -0
  41. package/dist/backend/Auth.js +84 -0
  42. package/dist/backend/Auth.js.map +1 -0
  43. package/dist/index.d.ts +13 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +12 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/utils/index.d.ts +6 -0
  48. package/dist/utils/index.d.ts.map +1 -0
  49. package/dist/utils/index.js +3 -0
  50. package/dist/utils/index.js.map +1 -0
  51. package/dist/utils/stream.d.ts +21 -0
  52. package/dist/utils/stream.d.ts.map +1 -0
  53. package/dist/utils/stream.js +59 -0
  54. package/dist/utils/stream.js.map +1 -0
  55. package/package.json +81 -0
  56. package/src/allend/Access.ts +58 -0
  57. package/src/allend/DClient/Client.ts +76 -0
  58. package/src/allend/DClient/Event.ts +76 -0
  59. package/src/allend/DClient/Order.ts +452 -0
  60. package/src/allend/MSI/Controls.ts +703 -0
  61. package/src/allend/MSI/Handles.ts +387 -0
  62. package/src/allend/MSI/Plugins.ts +52 -0
  63. package/src/allend/MSI/index.tsx +254 -0
  64. package/src/allend/index.ts +14 -0
  65. package/src/backend/Auth.ts +112 -0
  66. package/src/index.ts +18 -0
  67. package/src/types/access.d.ts +7 -0
  68. package/src/types/auth.d.ts +26 -0
  69. package/src/types/index.d.ts +275 -0
  70. package/src/utils/index.ts +4 -0
  71. 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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"}
@@ -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,6 @@
1
+ import Stream from './stream';
2
+ declare const _default: {
3
+ Stream: typeof Stream;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ import Stream from './stream';
2
+ export default { Stream };
3
+ //# sourceMappingURL=index.js.map
@@ -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
+ }