median-js-bridge 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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Median Javascript Bridge
2
+
3
+ Create your app using Median App Studio at https://median.co/app
package/index.js ADDED
@@ -0,0 +1,79 @@
1
+ import {
2
+ admob,
3
+ appreview,
4
+ appsflyer,
5
+ auth,
6
+ auth0,
7
+ autorefresh,
8
+ backgroundLocation,
9
+ backgroundMedia,
10
+ barcode,
11
+ beacon,
12
+ braze,
13
+ card_io,
14
+ contacts,
15
+ cordial,
16
+ documentScanner,
17
+ downloads,
18
+ esmiley,
19
+ facebook,
20
+ firebaseAnalytics,
21
+ haptics,
22
+ iap,
23
+ intercom,
24
+ kaltura,
25
+ localpreferences,
26
+ modal,
27
+ moengage,
28
+ moxo,
29
+ nativebridge,
30
+ onesignal,
31
+ opentok,
32
+ permissions,
33
+ plaid,
34
+ purchase,
35
+ socialLogin,
36
+ storage,
37
+ twilio,
38
+ } from "./plugin";
39
+
40
+ const median = {
41
+ admob,
42
+ appreview,
43
+ appsflyer,
44
+ auth,
45
+ auth0,
46
+ autorefresh,
47
+ backgroundLocation,
48
+ backgroundMedia,
49
+ barcode,
50
+ beacon,
51
+ braze,
52
+ card_io,
53
+ contacts,
54
+ cordial,
55
+ documentScanner,
56
+ downloads,
57
+ esmiley,
58
+ facebook,
59
+ firebaseAnalytics,
60
+ haptics,
61
+ iap,
62
+ intercom,
63
+ kaltura,
64
+ localpreferences,
65
+ modal,
66
+ moengage,
67
+ moxo,
68
+ nativebridge,
69
+ onesignal,
70
+ opentok,
71
+ permissions,
72
+ plaid,
73
+ purchase,
74
+ socialLogin,
75
+ storage,
76
+ twilio,
77
+ };
78
+
79
+ export default median;
package/index.ts ADDED
@@ -0,0 +1,313 @@
1
+ declare module "median" {
2
+ type Params = Record<string, string | number | boolean | null>;
3
+
4
+ interface AdMob {
5
+ showInterstitialIfReady: () => void;
6
+ showInterstitialOnNextPageLoadIfReady: () => void;
7
+ banner: {
8
+ enable: () => void;
9
+ disable: () => void;
10
+ };
11
+ request: { tracking: (params: Params) => Promise<any> };
12
+ }
13
+
14
+ interface AppReview {
15
+ prompt: (params?: {
16
+ callback?: (data: any) => void;
17
+ }) => void | Promise<any>;
18
+ }
19
+
20
+ interface AppsFlyer {
21
+ logEvent: (eventName: string, eventValues: Record<string, any>) => void;
22
+ setCustomerUserId: (userId: string) => void;
23
+ }
24
+
25
+ interface Auth {
26
+ status: (params?: Params) => Promise<any>;
27
+ save: (params: { secret: string | Record<string, any> }) => void;
28
+ get: (params: Params) => void;
29
+ delete: (params: Params) => void;
30
+ }
31
+
32
+ interface Auth0 {
33
+ loginUniversal: (params: Params) => void;
34
+ logout: (params: Params) => void;
35
+ status: (params?: Params) => Promise<any>;
36
+ save: (params: { secret: string | Record<string, any> }) => void;
37
+ profile: (params: Params) => void;
38
+ get: (params: Params) => void;
39
+ delete: (params: Params) => void;
40
+ }
41
+
42
+ interface AutoRefresh {
43
+ set: (params: Params) => void;
44
+ }
45
+
46
+ interface BackgroundLocation {
47
+ start: (params: Params) => void;
48
+ stop: () => void;
49
+ }
50
+
51
+ interface BackgroundMedia {
52
+ playTrack: (params: number | Params) => void;
53
+ streamPlaylist: (params: Params) => void;
54
+ pause: () => void;
55
+ stop: () => void;
56
+ play: () => void;
57
+ resume: () => void;
58
+ getPlayerStatus: (params: Params) => Promise<any>;
59
+ }
60
+
61
+ interface Barcode {
62
+ scan: (params: Params) => Promise<any>;
63
+ setPrompt: (params: string) => void;
64
+ }
65
+
66
+ interface Beacon {
67
+ scan: (params: Params) => void;
68
+ }
69
+
70
+ interface Braze {
71
+ changeUser: (params: Params) => Promise<any>;
72
+ notificationEnabled: (params: Params) => Promise<any>;
73
+ promptNotification: (params: Params) => Promise<any>;
74
+ logCustomEvent: (eventName: string, data: any) => void;
75
+ }
76
+
77
+ interface CardIO {
78
+ scanCard: (params: Params) => Promise<any>;
79
+ }
80
+
81
+ interface Contacts {
82
+ getAll: (params: Params) => Promise<any>;
83
+ getPermissionStatus: (params: Params) => Promise<any>;
84
+ }
85
+
86
+ interface Cordial {
87
+ unsetContact: (params?: Params) => Promise<any> | void;
88
+ setContact: (params?: Params) => Promise<any> | void;
89
+ permissionStatus: (params: Params) => Promise<any>;
90
+ requestPermission: (params: Params) => Promise<any>;
91
+ }
92
+
93
+ interface DocumentScanner {
94
+ scanPage: (params: Params) => Promise<any>;
95
+ init: (params: Params) => void;
96
+ }
97
+
98
+ interface Downloads {
99
+ init: (params: Params) => Promise<any>;
100
+ downloadFile: (params: Params) => void;
101
+ showUI: () => void;
102
+ }
103
+
104
+ interface Esmiley {
105
+ scan: (timeout: any) => Promise<any>;
106
+ connect: (deviceId: string) => Promise<any>;
107
+ disconnect: () => void;
108
+ send: (object: any) => Promise<any>;
109
+ }
110
+
111
+ interface Facebook {
112
+ events: {
113
+ send: (params: Params) => void;
114
+ sendPurchase: (params: Params) => void;
115
+ };
116
+ }
117
+
118
+ interface FirebaseAnalytics {
119
+ event: {
120
+ collection: (enabled: boolean) => void;
121
+ setUser: (params: Params) => void;
122
+ setUserProperty: (params: Params) => void;
123
+ defaultEventParameters: (params: Params) => void;
124
+ logEvent: (params: Params) => void;
125
+ logScreen: (params: Params) => void;
126
+ viewItem: (params: Params) => void;
127
+ addToWishlist: (params: Params) => void;
128
+ addToCart: (params: Params) => void;
129
+ removeFromCart: (params: Params) => void;
130
+ };
131
+ }
132
+
133
+ interface Haptics {
134
+ trigger: (params: Params) => void;
135
+ }
136
+
137
+ interface IAP {
138
+ purchase: (params: Params) => Promise<any>;
139
+ manageSubscription: (params: Params) => void;
140
+ manageAllSubscriptions: () => void;
141
+ restorePurchases: () => void;
142
+ info: () => Promise<any>;
143
+ refresh: () => void;
144
+ }
145
+
146
+ interface Intercom {
147
+ registerPush: (params: Params) => Promise<any>;
148
+ updateUser: (params: Params) => void;
149
+ logEvent: (params: Params) => void;
150
+ logout: () => void;
151
+ presentCarousel: (params: Params) => void;
152
+ permissionStatus: (params: Params) => Promise<any>;
153
+ requestPermission: (params: Params) => Promise<any>;
154
+ }
155
+
156
+ interface Kaltura {
157
+ play: (params: Params) => void;
158
+ }
159
+
160
+ interface LocalPreferencesMethods {
161
+ set: (params: Params) => void;
162
+ get: (params: Params) => Promise<any>;
163
+ delete: (params: Params) => void;
164
+ deleteAll: (params: Params) => void;
165
+ }
166
+
167
+ interface LocalPreferences {
168
+ nonpersistent: LocalPreferencesMethods;
169
+ persistent: LocalPreferencesMethods;
170
+ filesystem: {
171
+ save: (params: Params) => void;
172
+ read: (params: Params) => Promise<any>;
173
+ delete: (params: Params) => void;
174
+ };
175
+ }
176
+
177
+ interface Modal {
178
+ launch: (params?: Params) => Promise<any>;
179
+ }
180
+
181
+ interface Moengage {
182
+ notificationEnabled: (params?: Params) => Promise<any>;
183
+ promptNotification: (params?: Params) => Promise<any>;
184
+ setUniqueID: (uniqueId: string) => Promise<any>;
185
+ resetUser: () => Promise<any>;
186
+ setAlias: (alias: string) => Promise<any>;
187
+ trackEvent: (eventName: string, eventData: any) => Promise<any>;
188
+ launchInbox: () => Promise<any>;
189
+ }
190
+
191
+ interface Moxo {
192
+ login: (params?: Params) => Promise<any>;
193
+ registerNotifications: (params?: Params) => Promise<any>;
194
+ requestPermission: (params?: Params) => Promise<any>;
195
+ permissionStatus: (params?: Params) => Promise<any>;
196
+ isLinked: (params?: Params) => Promise<any>;
197
+ unlink: (params?: Params) => Promise<any>;
198
+ localUnlink: (params?: Params) => Promise<any>;
199
+ showDashboard: () => void;
200
+ openLiveChatWithCompletion: () => void;
201
+ openLiveChatWithChannelId: (params: Params) => void;
202
+ openChat: (params: Params) => void;
203
+ getUnreadMessageCount: (params: Params) => Promise<any>;
204
+ }
205
+
206
+ interface NativeBridge {
207
+ custom: (params: Params) => void;
208
+ }
209
+
210
+ interface OneSignal {
211
+ run: {
212
+ onesignalInfo: () => void;
213
+ };
214
+ onesignalInfo: (params?: Params) => Promise<any>;
215
+ register: () => void;
216
+ userPrivacyConsent: {
217
+ grant: () => void;
218
+ revoke: () => void;
219
+ };
220
+ tags: {
221
+ getTags: (params?: Params) => Promise<any>;
222
+ setTags: (params: Params) => void;
223
+ deleteTags: (params: Params) => void;
224
+ };
225
+ showTagsUI: () => void;
226
+ promptLocation: () => void;
227
+ iam: {
228
+ addTrigger: (triggers: Record<string, string | number>) => void;
229
+ addTriggers: (params: Params) => void;
230
+ removeTriggerForKey: (key: string) => void;
231
+ getTriggerValueForKey: (key: string) => void;
232
+ pauseInAppMessages: () => void;
233
+ resumeInAppMessages: () => void;
234
+ setInAppMessageClickHandler: (handler: string) => void;
235
+ };
236
+ externalUserId: {
237
+ set: (params: Params) => void;
238
+ remove: () => void;
239
+ };
240
+ enableForegroundNotifications: (enabled: boolean) => void;
241
+ }
242
+
243
+ interface Opentok {
244
+ video: { join: (params?: Params) => Promise<any> | void };
245
+ }
246
+
247
+ interface Permissions {
248
+ requestPhoneCallMgmt: (params?: Params) => Promise<any> | void;
249
+ }
250
+
251
+ interface Plaid {
252
+ linkBank: (params: Params) => Promise<any>;
253
+ verifyIdentity: (params: Params) => Promise<any>;
254
+ }
255
+
256
+ interface SocialLoginMethods {
257
+ login: (params?: Params) => void | Promise<any>;
258
+ logout: (params?: Params) => void | Promise<any>;
259
+ }
260
+
261
+ interface SocialLogin {
262
+ facebook: SocialLoginMethods;
263
+ google: SocialLoginMethods;
264
+ apple: {
265
+ login: (params?: Params) => void | Promise<any>;
266
+ };
267
+ }
268
+
269
+ interface Twilio {
270
+ video: {
271
+ join: (params?: Params) => Promise<any> | void;
272
+ };
273
+ }
274
+
275
+ export default interface Median {
276
+ admob: AdMob;
277
+ appreview: AppReview;
278
+ appsflyer: AppsFlyer;
279
+ auth: Auth;
280
+ auth0: Auth0;
281
+ autorefresh: AutoRefresh;
282
+ backgroundLocation: BackgroundLocation;
283
+ backgroundMedia: BackgroundMedia;
284
+ barcode: Barcode;
285
+ beacon: Beacon;
286
+ braze: Braze;
287
+ card_io: CardIO;
288
+ contacts: Contacts;
289
+ cordial: Cordial;
290
+ documentScanner: DocumentScanner;
291
+ downloads: Downloads;
292
+ esmiley: Esmiley;
293
+ facebook: Facebook;
294
+ firebaseAnalytics: FirebaseAnalytics;
295
+ haptics: Haptics;
296
+ iap: IAP;
297
+ intercom: Intercom;
298
+ kaltura: Kaltura;
299
+ localpreferences: LocalPreferences;
300
+ modal: Modal;
301
+ moengage: Moengage;
302
+ moxo: Moxo;
303
+ nativebridge: NativeBridge;
304
+ onesignal: OneSignal;
305
+ opentok: Opentok;
306
+ permissions: Permissions;
307
+ plaid: Plaid;
308
+ purchase: (params: Params) => Promise<any>;
309
+ socialLogin: SocialLogin;
310
+ storage: LocalPreferences;
311
+ twilio: Twilio;
312
+ }
313
+ }
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "median-js-bridge",
3
+ "version": "1.0.0",
4
+ "description": "Median bridge and utilities for JS web frameworks",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/gonativeio/median-javacript-bridge.git"
13
+ },
14
+ "keywords": ["median", "gonative"],
15
+ "author": {
16
+ "name": "Hunaid Hassan",
17
+ "email": "hunaid@median.co"
18
+ },
19
+ "license": "ISC"
20
+ }
@@ -0,0 +1,25 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const admob = {
4
+ showInterstitialIfReady: function () {
5
+ addCommand("mdian://admob/showInterstitialIfReady");
6
+ },
7
+ showInterstitialOnNextPageLoadIfReady: function () {
8
+ addCommand("median://admob/showInterstitialOnNextPageLoadIfReady");
9
+ },
10
+ banner: {
11
+ enable: function () {
12
+ addCommand("median://admob/banner/enable");
13
+ },
14
+ disable: function () {
15
+ addCommand("median://admob/banner/disable");
16
+ },
17
+ },
18
+ request: {
19
+ tracking: function (params) {
20
+ return addCommandCallback("median://admob/request/tracking", params);
21
+ },
22
+ },
23
+ };
24
+
25
+ export default admob;
@@ -0,0 +1,11 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const appreview = {
4
+ prompt: function (params) {
5
+ if (params?.callback) {
6
+ return addCommandCallback("median://appReview/prompt", params);
7
+ } else addCommand("median://appReview/prompt");
8
+ },
9
+ };
10
+
11
+ export default appreview;
@@ -0,0 +1,12 @@
1
+ import { addCommand } from "../utilities";
2
+
3
+ const appsflyer = {
4
+ logEvent: function (eventName, eventValues) {
5
+ addCommand("median://appsflyer/logEvent", { eventName, eventValues });
6
+ },
7
+ setCustomerUserId: function (userId) {
8
+ addCommand("median://appsflyer/setCustomerUserId", { userId });
9
+ },
10
+ };
11
+
12
+ export default appsflyer;
package/plugin/auth.js ADDED
@@ -0,0 +1,21 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const auth = {
4
+ status: function (params) {
5
+ return addCommandCallback("median://auth/status", params);
6
+ },
7
+ save: function (params) {
8
+ if (!(typeof params.secret === "string")) {
9
+ params.secret = JSON.stringify(params.secret);
10
+ }
11
+ addCommand("median://auth/save", params);
12
+ },
13
+ get: function (params) {
14
+ addCommand("median://auth/get", params);
15
+ },
16
+ delete: function (params) {
17
+ addCommand("median://auth/delete", params);
18
+ },
19
+ };
20
+
21
+ export default auth;
@@ -0,0 +1,30 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const auth0 = {
4
+ loginUniversal: function (params) {
5
+ addCommand("median://auth0/loginUniversal", params);
6
+ },
7
+ logout: function (params) {
8
+ addCommand("median://auth0/logout", params);
9
+ },
10
+ status: function (params) {
11
+ return addCommandCallback("median://auth0/status", params);
12
+ },
13
+ save: function (params) {
14
+ if (typeof params.secret !== "string") {
15
+ params.secret = JSON.stringify(params.secret);
16
+ }
17
+ addCommand("median://auth0/save", params);
18
+ },
19
+ profile: function (params) {
20
+ addCommandCallback("median://auth0/profile", params);
21
+ },
22
+ get: function (params) {
23
+ addCommand("median://auth0/get", params);
24
+ },
25
+ delete: function (params) {
26
+ addCommand("median://auth0/delete", params);
27
+ },
28
+ };
29
+
30
+ export default auth0;
@@ -0,0 +1,9 @@
1
+ import { addCommand } from "../utilities";
2
+
3
+ const autorefresh = {
4
+ set: function (params) {
5
+ addCommand("median://autorefresh/set", params);
6
+ },
7
+ };
8
+
9
+ export default autorefresh;
@@ -0,0 +1,12 @@
1
+ import { addCommand } from "../utilities";
2
+
3
+ const backgroundLocation = {
4
+ start: function (params) {
5
+ addCommand("median://backgroundLocation/start", params, true);
6
+ },
7
+ stop: function () {
8
+ addCommand("median://backgroundLocation/stop");
9
+ },
10
+ };
11
+
12
+ export default backgroundLocation;
@@ -0,0 +1,35 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const backgroundMedia = {
4
+ playTrack: function (params) {
5
+ if (typeof params === "number") {
6
+ params = {
7
+ time: params,
8
+ };
9
+ }
10
+ addCommand("median://backgroundMedia/playTrack", params);
11
+ },
12
+ streamPlaylist: function (params) {
13
+ addCommand("median://backgroundMedia/streamPlaylist", params);
14
+ },
15
+ pause: function () {
16
+ addCommand("median://backgroundMedia/pause");
17
+ },
18
+ stop: function () {
19
+ addCommand("median://backgroundMedia/stop");
20
+ },
21
+ play: function () {
22
+ addCommand("median://backgroundMedia/play");
23
+ },
24
+ resume: function () {
25
+ addCommand("median://backgroundMedia/resume");
26
+ },
27
+ getPlayerStatus: function (params) {
28
+ return addCommandCallback(
29
+ "median://backgroundMedia/getPlayerStatus",
30
+ params
31
+ );
32
+ },
33
+ };
34
+
35
+ export default backgroundMedia;
@@ -0,0 +1,12 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const barcode = {
4
+ scan: function (params) {
5
+ return addCommandCallback("median://barcode/scan", params);
6
+ },
7
+ setPrompt: function (params) {
8
+ return addCommand("median://barcode/setPrompt", { prompt: params });
9
+ },
10
+ };
11
+
12
+ export default barcode;
@@ -0,0 +1,9 @@
1
+ import { addCommand } from "../utilities";
2
+
3
+ const beacon = {
4
+ scan: function (params) {
5
+ addCommand("median://beacon/scan", params);
6
+ },
7
+ };
8
+
9
+ export default beacon;
@@ -0,0 +1,30 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const braze = {
4
+ changeUser: function (params) {
5
+ return addCommandCallback("median://braze/changeUser", params, true);
6
+ },
7
+ notificationEnabled: function (params) {
8
+ return addCommandCallback(
9
+ "median://braze/notificationEnabled",
10
+ params,
11
+ true
12
+ );
13
+ },
14
+ promptNotification: function (params) {
15
+ return addCommandCallback(
16
+ "median://braze/promptNotification",
17
+ params,
18
+ true
19
+ );
20
+ },
21
+ logCustomEvent: function (eventName, data) {
22
+ var params = {
23
+ eventName: eventName,
24
+ data: data,
25
+ };
26
+ addCommand("median://braze/logCustomEvent", params);
27
+ },
28
+ };
29
+
30
+ export default braze;
@@ -0,0 +1,9 @@
1
+ import { addCommandCallback } from "../utilities";
2
+
3
+ const card_io = {
4
+ scanCard: function (params) {
5
+ return addCommandCallback("median://card.io/scanCard", params);
6
+ },
7
+ };
8
+
9
+ export default card_io;
@@ -0,0 +1,12 @@
1
+ import { addCommandCallback } from "../utilities";
2
+
3
+ const contacts = {
4
+ getAll: function (params) {
5
+ return addCommandCallback("median://contacts/getAll", params);
6
+ },
7
+ getPermissionStatus: function (params) {
8
+ return addCommandCallback("median://contacts/getPermissionStatus", params);
9
+ },
10
+ };
11
+
12
+ export default contacts;
@@ -0,0 +1,30 @@
1
+ import { addCommand, addCommandCallback } from "../utilities";
2
+
3
+ const cordial = {
4
+ unsetContact: function (params) {
5
+ if (params && params.callback) {
6
+ return addCommandCallback("median://cordial/unsetContact", params);
7
+ } else addCommand("median://cordial/unsetContact", params);
8
+ },
9
+ setContact: function (params) {
10
+ if (params && params.callback) {
11
+ return addCommandCallback("median://cordial/setContact", params);
12
+ } else addCommand("median://cordial/setContact", params);
13
+ },
14
+ permissionStatus: function (params) {
15
+ return addCommandCallback(
16
+ "median://cordial/permissionStatus",
17
+ params,
18
+ true
19
+ );
20
+ },
21
+ requestPermission: function (params) {
22
+ return addCommandCallback(
23
+ "median://cordial/requestPermission",
24
+ params,
25
+ true
26
+ );
27
+ },
28
+ };
29
+
30
+ export default cordial;