@getflip/bridge 0.1.0-alpha.1 → 0.1.0-alpha.10

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 (72) hide show
  1. package/README.md +253 -6
  2. package/dist/dialog/dialog.d.ts +10 -0
  3. package/dist/dialog/dialog.js +45 -0
  4. package/dist/dialog/dialog.js.map +1 -0
  5. package/dist/dialog/dialog.spec.d.ts +1 -0
  6. package/dist/dialog/dialog.spec.js +83 -0
  7. package/dist/dialog/dialog.spec.js.map +1 -0
  8. package/dist/dialog/dialog.types.d.ts +33 -0
  9. package/dist/dialog/dialog.types.js +2 -0
  10. package/dist/dialog/dialog.types.js.map +1 -0
  11. package/dist/dialog/index.d.ts +2 -0
  12. package/dist/dialog/index.js +3 -0
  13. package/dist/dialog/index.js.map +1 -0
  14. package/dist/events/events.d.ts +3 -0
  15. package/dist/events/events.js +44 -0
  16. package/dist/events/events.js.map +1 -0
  17. package/dist/events/events.spec.d.ts +1 -0
  18. package/dist/events/events.spec.js +64 -0
  19. package/dist/events/events.spec.js.map +1 -0
  20. package/dist/events/events.types.d.ts +27 -0
  21. package/dist/events/events.types.js +8 -0
  22. package/dist/events/events.types.js.map +1 -0
  23. package/dist/events/index.d.ts +2 -0
  24. package/dist/events/index.js +3 -0
  25. package/dist/events/index.js.map +1 -0
  26. package/dist/i18n/i18n.spec.d.ts +1 -0
  27. package/dist/i18n/i18n.spec.js +27 -0
  28. package/dist/i18n/i18n.spec.js.map +1 -0
  29. package/dist/i18n/i18n.types.d.ts +2 -1
  30. package/dist/index.cjs.js +240 -0
  31. package/dist/index.cjs.js.map +1 -0
  32. package/dist/index.d.ts +10 -0
  33. package/dist/index.js +10 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +228 -0
  36. package/dist/index.mjs.map +1 -0
  37. package/dist/index.spec.d.ts +1 -0
  38. package/dist/index.spec.js +20 -0
  39. package/dist/index.spec.js.map +1 -0
  40. package/dist/logging/logging.js +2 -1
  41. package/dist/logging/logging.js.map +1 -1
  42. package/dist/logging/logging.spec.d.ts +1 -0
  43. package/dist/logging/logging.spec.js +19 -0
  44. package/dist/logging/logging.spec.js.map +1 -0
  45. package/dist/messaging/index.d.ts +1 -0
  46. package/dist/messaging/index.js +1 -0
  47. package/dist/messaging/index.js.map +1 -1
  48. package/dist/messaging/messaging.d.ts +12 -1
  49. package/dist/messaging/messaging.js +52 -25
  50. package/dist/messaging/messaging.js.map +1 -1
  51. package/dist/messaging/messaging.spec.d.ts +1 -0
  52. package/dist/messaging/messaging.spec.js +59 -0
  53. package/dist/messaging/messaging.spec.js.map +1 -0
  54. package/dist/messaging/messaging.types.d.ts +11 -0
  55. package/dist/messaging/messaging.types.js +2 -0
  56. package/dist/messaging/messaging.types.js.map +1 -0
  57. package/dist/navigation/navigation.js.map +1 -1
  58. package/dist/navigation/navigation.spec.d.ts +1 -0
  59. package/dist/navigation/navigation.spec.js +22 -0
  60. package/dist/navigation/navigation.spec.js.map +1 -0
  61. package/dist/navigation/navigation.types.d.ts +3 -2
  62. package/dist/theming/theming.spec.d.ts +1 -0
  63. package/dist/theming/theming.spec.js +19 -0
  64. package/dist/theming/theming.spec.js.map +1 -0
  65. package/dist/theming/theming.types.d.ts +3 -2
  66. package/dist/types.d.ts +22 -13
  67. package/dist/types.js +7 -0
  68. package/dist/types.js.map +1 -1
  69. package/package.json +17 -4
  70. package/dist/bridge.d.ts +0 -7
  71. package/dist/bridge.js +0 -19
  72. package/dist/bridge.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ export var BridgeEventType;
2
+ (function (BridgeEventType) {
3
+ BridgeEventType["PRIMARY_ACTION_CLICK"] = "PRIMARY_ACTION_CLICK";
4
+ BridgeEventType["LANG_CHANGE"] = "LANG_CHANGE";
5
+ BridgeEventType["SECONDARY_ACTION_CLICK"] = "SECONDARY_ACTION_CLICK";
6
+ BridgeEventType["THEME_CHANGE"] = "THEME_CHANGE";
7
+ })(BridgeEventType || (BridgeEventType = {}));
8
+ //# sourceMappingURL=events.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.types.js","sourceRoot":"","sources":["../../src/events/events.types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,gEAA6C,CAAA;IAC7C,8CAA2B,CAAA;IAC3B,oEAAiD,CAAA;IACjD,gDAA6B,CAAA;AAC/B,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B"}
@@ -0,0 +1,2 @@
1
+ export * from "./events.types";
2
+ export * from "./events";
@@ -0,0 +1,3 @@
1
+ export * from "./events.types";
2
+ export * from "./events";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ import { makeRequest } from "../messaging";
2
+ import { getAvailableLangs, getLang } from "./i18n";
3
+ jest.mock("../messaging", () => ({
4
+ makeRequest: jest.fn(),
5
+ }));
6
+ describe("i18n", () => {
7
+ beforeAll(() => {
8
+ global.flipBridgeOptions = { hostAppOrigin: "http://localhost" };
9
+ });
10
+ test("'getAvailableLangs' sends correct request", async () => {
11
+ await getAvailableLangs();
12
+ const makeRequestMock = makeRequest;
13
+ expect(makeRequestMock).toHaveBeenCalledWith({
14
+ id: makeRequestMock.mock.calls[0][0].id,
15
+ method: "GET_AVAILABLE_LANGS",
16
+ });
17
+ });
18
+ test("'getLang' sends correct request", async () => {
19
+ await getLang();
20
+ const makeRequestMock = makeRequest;
21
+ expect(makeRequestMock).toHaveBeenCalledWith({
22
+ id: makeRequestMock.mock.calls[0][0].id,
23
+ method: "GET_LANG",
24
+ });
25
+ });
26
+ });
27
+ //# sourceMappingURL=i18n.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.spec.js","sourceRoot":"","sources":["../../src/i18n/i18n.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEpD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,SAAS,CAAC,GAAG,EAAE;QACZ,MAAc,CAAC,iBAAiB,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,iBAAiB,EAAE,CAAC;QAE1B,MAAM,eAAe,GAAG,WAEvB,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC;YAC3C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACvC,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,OAAO,EAAE,CAAC;QAEhB,MAAM,eAAe,GAAG,WAEvB,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC;YAC3C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACvC,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { BridgeMethod, BridgeRequest } from "../types";
1
+ import { BridgeMethod } from "../types";
2
+ import { BridgeRequest } from "../messaging/messaging.types";
2
3
  export type GetAvailableLangsRequest = BridgeRequest<BridgeMethod.GET_AVAILABLE_LANGS, undefined>;
3
4
  export type GetAvailableLangsResult = string[];
4
5
  export type GetLangRequest = BridgeRequest<BridgeMethod.GET_LANG, undefined>;
@@ -0,0 +1,240 @@
1
+ 'use strict';
2
+
3
+ var uuid = require('uuid');
4
+
5
+ exports.BridgeErrorCode = void 0;
6
+ (function (BridgeErrorCode) {
7
+ BridgeErrorCode["FORBIDDEN_ORIGIN"] = "FORBIDDEN_ORIGIN";
8
+ BridgeErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
9
+ })(exports.BridgeErrorCode || (exports.BridgeErrorCode = {}));
10
+ exports.BridgeMethod = void 0;
11
+ (function (BridgeMethod) {
12
+ BridgeMethod["CLOSE_DIALOG"] = "CLOSE_DIALOG";
13
+ BridgeMethod["CREATE_DIALOG"] = "CREATE_DIALOG";
14
+ BridgeMethod["DESTROY_DIALOG"] = "DESTROY_DIALOG";
15
+ BridgeMethod["GET_AVAILABLE_LANGS"] = "GET_AVAILABLE_LANGS";
16
+ BridgeMethod["GET_LANG"] = "GET_LANG";
17
+ BridgeMethod["GET_THEME"] = "GET_THEME";
18
+ BridgeMethod["NAVIGATE"] = "NAVIGATE";
19
+ BridgeMethod["OPEN_DIALOG"] = "OPEN_DIALOG";
20
+ BridgeMethod["SUBSCRIBE"] = "SUBSCRIBE";
21
+ BridgeMethod["UNSUBSCRIBE"] = "UNSUBSCRIBE";
22
+ })(exports.BridgeMethod || (exports.BridgeMethod = {}));
23
+
24
+ function log(message, details) {
25
+ var _a;
26
+ const debug = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.debug;
27
+ if (debug) {
28
+ console.log(`${message} – `, details);
29
+ }
30
+ }
31
+
32
+ function isFlutterApp() {
33
+ return "FlipFlutter" in window;
34
+ }
35
+ function postMessage(message) {
36
+ var _a, _b;
37
+ const isFlutter = isFlutterApp();
38
+ if (!window.top && !isFlutter) {
39
+ return;
40
+ }
41
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
42
+ if (!hostAppOrigin) {
43
+ throw Error(`Please call 'initFlipBridge'.`);
44
+ }
45
+ if (isFlutter) {
46
+ window.FlipFlutter.postMessage(JSON.stringify(message));
47
+ }
48
+ else {
49
+ (_b = window.top) === null || _b === void 0 ? void 0 : _b.postMessage(message, hostAppOrigin);
50
+ }
51
+ log("postMessage", {
52
+ message,
53
+ isFlutter,
54
+ targetOrigin: hostAppOrigin,
55
+ });
56
+ }
57
+ function makeRequest(request) {
58
+ return new Promise((resolve, reject) => {
59
+ const handler = getRequestHandler(request, resolve, reject);
60
+ window.addEventListener("message", handler);
61
+ postMessage(request);
62
+ });
63
+ }
64
+ function getRequestHandler(request, resolve, reject) {
65
+ const handler = (event) => {
66
+ if (!isResponse(event.data) || event.data.id !== request.id) {
67
+ return;
68
+ }
69
+ if (!isAllowedOrigin(event.origin)) {
70
+ reject({
71
+ code: exports.BridgeErrorCode.FORBIDDEN_ORIGIN,
72
+ });
73
+ return;
74
+ }
75
+ log("handleResponse", event.data);
76
+ window.removeEventListener("message", handler);
77
+ if (event.data.error) {
78
+ reject(event.data.error);
79
+ }
80
+ else {
81
+ resolve(event.data.result);
82
+ }
83
+ };
84
+ return handler;
85
+ }
86
+ function isResponse(message) {
87
+ return (typeof message === "object" &&
88
+ "id" in message &&
89
+ ("result" in message || "error" in message));
90
+ }
91
+ function isAllowedOrigin(origin) {
92
+ var _a;
93
+ if (isFlutterApp()) {
94
+ return true;
95
+ }
96
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
97
+ return origin === hostAppOrigin;
98
+ }
99
+
100
+ async function createDialog(params) {
101
+ const request = {
102
+ id: uuid.v4(),
103
+ method: exports.BridgeMethod.CREATE_DIALOG,
104
+ params,
105
+ };
106
+ const result = await makeRequest(request);
107
+ if (!result) {
108
+ return;
109
+ }
110
+ return {
111
+ id: params.id,
112
+ open: async () => openDialog({ id: params.id }),
113
+ close: async () => closeDialog({ id: params.id }),
114
+ destroy: async () => destroyDialog({ id: params.id }),
115
+ };
116
+ }
117
+ async function openDialog(params) {
118
+ const request = {
119
+ id: uuid.v4(),
120
+ method: exports.BridgeMethod.OPEN_DIALOG,
121
+ params,
122
+ };
123
+ return makeRequest(request);
124
+ }
125
+ async function closeDialog(params) {
126
+ const request = {
127
+ id: uuid.v4(),
128
+ method: exports.BridgeMethod.CLOSE_DIALOG,
129
+ params,
130
+ };
131
+ return makeRequest(request);
132
+ }
133
+ async function destroyDialog(params) {
134
+ const request = {
135
+ id: uuid.v4(),
136
+ method: exports.BridgeMethod.DESTROY_DIALOG,
137
+ params,
138
+ };
139
+ return makeRequest(request);
140
+ }
141
+
142
+ exports.BridgeEventType = void 0;
143
+ (function (BridgeEventType) {
144
+ BridgeEventType["PRIMARY_ACTION_CLICK"] = "PRIMARY_ACTION_CLICK";
145
+ BridgeEventType["LANG_CHANGE"] = "LANG_CHANGE";
146
+ BridgeEventType["SECONDARY_ACTION_CLICK"] = "SECONDARY_ACTION_CLICK";
147
+ BridgeEventType["THEME_CHANGE"] = "THEME_CHANGE";
148
+ })(exports.BridgeEventType || (exports.BridgeEventType = {}));
149
+
150
+ async function subscribe(type, callback, options) {
151
+ const subscriptionId = (options === null || options === void 0 ? void 0 : options.id) || uuid.v4();
152
+ const subscribeRequest = {
153
+ id: uuid.v4(),
154
+ method: exports.BridgeMethod.SUBSCRIBE,
155
+ params: { id: subscriptionId, type },
156
+ };
157
+ const eventHandler = (event) => {
158
+ if (!isAllowedOrigin(event.origin) ||
159
+ !isEvent(event.data) ||
160
+ event.data.type !== type ||
161
+ event.data.id !== subscriptionId) {
162
+ return;
163
+ }
164
+ log("handleEvent", event.data);
165
+ callback(event.data);
166
+ };
167
+ window.addEventListener("message", eventHandler);
168
+ const subscribed = await makeRequest(subscribeRequest);
169
+ if (!subscribed) {
170
+ window.removeEventListener("message", eventHandler);
171
+ throw new Error(`Could not subscribe to event "${type}".`);
172
+ }
173
+ return async () => {
174
+ const unsubscribeRequest = {
175
+ id: uuid.v4(),
176
+ method: exports.BridgeMethod.UNSUBSCRIBE,
177
+ params: { id: subscriptionId, type },
178
+ };
179
+ await makeRequest(unsubscribeRequest);
180
+ window.removeEventListener("message", eventHandler);
181
+ };
182
+ }
183
+ function isEvent(message) {
184
+ return (typeof message === "object" &&
185
+ "type" in message &&
186
+ Object.values(exports.BridgeEventType).includes(message.type));
187
+ }
188
+
189
+ function getAvailableLangs() {
190
+ const request = {
191
+ id: uuid.v4(),
192
+ method: exports.BridgeMethod.GET_AVAILABLE_LANGS,
193
+ };
194
+ return makeRequest(request);
195
+ }
196
+ function getLang() {
197
+ const request = {
198
+ id: uuid.v4(),
199
+ method: exports.BridgeMethod.GET_LANG,
200
+ };
201
+ return makeRequest(request);
202
+ }
203
+
204
+ function navigate(path) {
205
+ const request = {
206
+ id: uuid.v4(),
207
+ method: exports.BridgeMethod.NAVIGATE,
208
+ params: { path },
209
+ };
210
+ return makeRequest(request);
211
+ }
212
+
213
+ function getTheme() {
214
+ const request = {
215
+ id: uuid.v4(),
216
+ method: exports.BridgeMethod.GET_THEME,
217
+ };
218
+ return makeRequest(request);
219
+ }
220
+
221
+ function initFlipBridge(options) {
222
+ if (window.flipBridgeOptions) {
223
+ console.warn(`'initFlipBridge' has already been called.`);
224
+ return;
225
+ }
226
+ window.flipBridgeOptions = options;
227
+ }
228
+
229
+ exports.closeDialog = closeDialog;
230
+ exports.createDialog = createDialog;
231
+ exports.destroyDialog = destroyDialog;
232
+ exports.getAvailableLangs = getAvailableLangs;
233
+ exports.getLang = getLang;
234
+ exports.getTheme = getTheme;
235
+ exports.initFlipBridge = initFlipBridge;
236
+ exports.isEvent = isEvent;
237
+ exports.navigate = navigate;
238
+ exports.openDialog = openDialog;
239
+ exports.subscribe = subscribe;
240
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/types.ts","../src/logging/logging.ts","../src/messaging/messaging.ts","../src/dialog/dialog.ts","../src/events/events.types.ts","../src/events/events.ts","../src/i18n/i18n.ts","../src/navigation/navigation.ts","../src/theming/theming.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["BridgeErrorCode","BridgeMethod","uuidv4","BridgeEventType"],"mappings":";;;;AAoBYA,iCAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACrC,CAAC,EAHWA,uBAAe,KAAfA,uBAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEWC,8BAWX;AAXD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAXWA,oBAAY,KAAZA,oBAAY,GAWvB,EAAA,CAAA,CAAA;;ACpCe,SAAA,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAA;;IACnD,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAE9C,IAAA,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,OAAO,CAAK,GAAA,CAAA,EAAE,OAAO,CAAC,CAAC;AACvC,KAAA;AACH;;SCMgB,YAAY,GAAA;IAC1B,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAEK,SAAU,WAAW,CAAC,OAAsB,EAAA;;AAChD,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AAEjC,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;QAC7B,OAAO;AACR,KAAA;IAED,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC;IAE9D,IAAI,CAAC,aAAa,EAAE;AAClB,QAAA,MAAM,KAAK,CAAC,CAA+B,6BAAA,CAAA,CAAC,CAAC;AAC9C,KAAA;AAED,IAAA,IAAI,SAAS,EAAE;AACb,QAAA,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,KAAA;AAAM,SAAA;QACL,CAAA,EAAA,GAAA,MAAM,CAAC,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACjD,KAAA;IAED,GAAG,CAAC,aAAa,EAAE;QACjB,OAAO;QACP,SAAS;AACT,QAAA,YAAY,EAAE,aAAa;AAC5B,KAAA,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,WAAW,CACzB,OAAsB,EAAA;IAEtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;QACrC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE5D,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,WAAW,CAAC,OAAO,CAAC,CAAC;AACvB,KAAC,CAAC,CAAC;AACL,CAAC;SAEe,iBAAiB,CAC/B,OAAsB,EACtB,OAAsD,EACtD,MAAoC,EAAA;AAEpC,IAAA,MAAM,OAAO,GAAG,CAAC,KAAmC,KAAI;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE;YAC3D,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAClC,YAAA,MAAM,CAAC;gBACL,IAAI,EAAED,uBAAe,CAAC,gBAAgB;AACxB,aAAA,CAAC,CAAC;YAElB,OAAO;AACR,SAAA;AAED,QAAA,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAElC,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE/C,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,YAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;AACtC,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAEK,SAAU,UAAU,CAAC,OAAe,EAAA;AACxC,IAAA,QACE,OAAO,OAAO,KAAK,QAAQ;AAC3B,QAAA,IAAI,IAAI,OAAO;SACd,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,EAC3C;AACJ,CAAC;AAEK,SAAU,eAAe,CAAC,MAAc,EAAA;;IAC5C,IAAI,YAAY,EAAE,EAAE;AAClB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC;IAE9D,OAAO,MAAM,KAAK,aAAa,CAAC;AAClC;;ACvFO,eAAe,YAAY,CAAC,MAAiC,EAAA;AAClE,IAAA,MAAM,OAAO,GAAwB;QACnC,EAAE,EAAEE,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,aAAa;QAClC,MAAM;KACP,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG,MAAM,WAAW,CAAsB,OAAO,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;AACR,KAAA;IAED,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;AACb,QAAA,IAAI,EAAE,YAAY,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AAC/C,QAAA,KAAK,EAAE,YAAY,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AACjD,QAAA,OAAO,EAAE,YAAY,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAEM,eAAe,UAAU,CAAC,MAA+B,EAAA;AAC9D,IAAA,MAAM,OAAO,GAAsB;QACjC,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,WAAW;QAChC,MAAM;KACP,CAAC;AAEF,IAAA,OAAO,WAAW,CAAoB,OAAO,CAAC,CAAC;AACjD,CAAC;AAEM,eAAe,WAAW,CAAC,MAAgC,EAAA;AAChE,IAAA,MAAM,OAAO,GAAuB;QAClC,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,YAAY;QACjC,MAAM;KACP,CAAC;AAEF,IAAA,OAAO,WAAW,CAAqB,OAAO,CAAC,CAAC;AAClD,CAAC;AAEM,eAAe,aAAa,CAAC,MAAkC,EAAA;AACpE,IAAA,MAAM,OAAO,GAAyB;QACpC,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,cAAc;QACnC,MAAM;KACP,CAAC;AAEF,IAAA,OAAO,WAAW,CAAuB,OAAO,CAAC,CAAC;AACpD;;AC5DYE,iCAKX;AALD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,eAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EALWA,uBAAe,KAAfA,uBAAe,GAK1B,EAAA,CAAA,CAAA;;ACOM,eAAe,SAAS,CAC7B,IAAqB,EACrB,QAAsD,EACtD,OAA0B,EAAA;AAE1B,IAAA,MAAM,cAAc,GAAG,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,EAAE,KAAID,OAAM,EAAE,CAAC;AAE/C,IAAA,MAAM,gBAAgB,GAAqB;QACzC,EAAE,EAAEA,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,SAAS;AAC9B,QAAA,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACrC,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,CAAC,KAA+C,KAAI;AACvE,QAAA,IACE,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,YAAA,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACpB,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;AACxB,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,cAAc,EAChC;YACA,OAAO;AACR,SAAA;AAED,QAAA,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAE/B,QAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,KAAC,CAAC;AAEF,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEjD,IAAA,MAAM,UAAU,GAAG,MAAM,WAAW,CAAkB,gBAAgB,CAAC,CAAC;IAExE,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACpD,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAA,EAAA,CAAI,CAAC,CAAC;AAC5D,KAAA;IAED,OAAO,YAAW;AAChB,QAAA,MAAM,kBAAkB,GAAuB;YAC7C,EAAE,EAAEC,OAAM,EAAE;YACZ,MAAM,EAAED,oBAAY,CAAC,WAAW;AAChC,YAAA,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;SACrC,CAAC;AAEF,QAAA,MAAM,WAAW,CAAoB,kBAAkB,CAAC,CAAC;AAEzD,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtD,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,OAAO,CAAC,OAAe,EAAA;AACrC,IAAA,QACE,OAAO,OAAO,KAAK,QAAQ;AAC3B,QAAA,MAAM,IAAI,OAAO;AACjB,QAAA,MAAM,CAAC,MAAM,CAACE,uBAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAuB,CAAC,EACxE;AACJ;;SC7DgB,iBAAiB,GAAA;AAC/B,IAAA,MAAM,OAAO,GAA6B;QACxC,EAAE,EAAED,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,mBAAmB;KACzC,CAAC;AAEF,IAAA,OAAO,WAAW,CAA0B,OAAO,CAAC,CAAC;AACvD,CAAC;SAEe,OAAO,GAAA;AACrB,IAAA,MAAM,OAAO,GAAmB;QAC9B,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,QAAQ;KAC9B,CAAC;AAEF,IAAA,OAAO,WAAW,CAAgB,OAAO,CAAC,CAAC;AAC7C;;ACrBM,SAAU,QAAQ,CAAC,IAAY,EAAA;AACnC,IAAA,MAAM,OAAO,GAAoB;QAC/B,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,QAAQ;QAC7B,MAAM,EAAE,EAAE,IAAI,EAAE;KACjB,CAAC;AAEF,IAAA,OAAO,WAAW,CAAiB,OAAO,CAAC,CAAC;AAC9C;;SCRgB,QAAQ,GAAA;AACtB,IAAA,MAAM,OAAO,GAAoB;QAC/B,EAAE,EAAEC,OAAM,EAAE;QACZ,MAAM,EAAED,oBAAY,CAAC,SAAS;KAC/B,CAAC;AAEF,IAAA,OAAO,WAAW,CAAiB,OAAO,CAAC,CAAC;AAC9C;;ACKM,SAAU,cAAc,CAAC,OAAsB,EAAA;IACnD,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC5B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAA,yCAAA,CAA2C,CAAC,CAAC;QAC1D,OAAO;AACR,KAAA;AAED,IAAA,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC;AACrC;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,14 @@
1
+ import { BridgeOptions } from "./types";
1
2
  export * from "./types";
3
+ export * from "./messaging/messaging.types";
4
+ export * from "./dialog";
5
+ export * from "./events";
2
6
  export * from "./i18n";
3
7
  export * from "./navigation";
4
8
  export * from "./theming";
9
+ declare global {
10
+ interface Window {
11
+ flipBridgeOptions: BridgeOptions;
12
+ }
13
+ }
14
+ export declare function initFlipBridge(options: BridgeOptions): void;
package/dist/index.js CHANGED
@@ -1,5 +1,15 @@
1
1
  export * from "./types";
2
+ export * from "./messaging/messaging.types";
3
+ export * from "./dialog";
4
+ export * from "./events";
2
5
  export * from "./i18n";
3
6
  export * from "./navigation";
4
7
  export * from "./theming";
8
+ export function initFlipBridge(options) {
9
+ if (window.flipBridgeOptions) {
10
+ console.warn(`'initFlipBridge' has already been called.`);
11
+ return;
12
+ }
13
+ window.flipBridgeOptions = options;
14
+ }
5
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAE5C,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAQ1B,MAAM,UAAU,cAAc,CAAC,OAAsB;IACnD,IAAI,MAAM,CAAC,iBAAiB,EAAE;QAC5B,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO;KACR;IAED,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC;AACrC,CAAC"}
package/dist/index.mjs ADDED
@@ -0,0 +1,228 @@
1
+ import { v4 } from 'uuid';
2
+
3
+ var BridgeErrorCode;
4
+ (function (BridgeErrorCode) {
5
+ BridgeErrorCode["FORBIDDEN_ORIGIN"] = "FORBIDDEN_ORIGIN";
6
+ BridgeErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
7
+ })(BridgeErrorCode || (BridgeErrorCode = {}));
8
+ var BridgeMethod;
9
+ (function (BridgeMethod) {
10
+ BridgeMethod["CLOSE_DIALOG"] = "CLOSE_DIALOG";
11
+ BridgeMethod["CREATE_DIALOG"] = "CREATE_DIALOG";
12
+ BridgeMethod["DESTROY_DIALOG"] = "DESTROY_DIALOG";
13
+ BridgeMethod["GET_AVAILABLE_LANGS"] = "GET_AVAILABLE_LANGS";
14
+ BridgeMethod["GET_LANG"] = "GET_LANG";
15
+ BridgeMethod["GET_THEME"] = "GET_THEME";
16
+ BridgeMethod["NAVIGATE"] = "NAVIGATE";
17
+ BridgeMethod["OPEN_DIALOG"] = "OPEN_DIALOG";
18
+ BridgeMethod["SUBSCRIBE"] = "SUBSCRIBE";
19
+ BridgeMethod["UNSUBSCRIBE"] = "UNSUBSCRIBE";
20
+ })(BridgeMethod || (BridgeMethod = {}));
21
+
22
+ function log(message, details) {
23
+ var _a;
24
+ const debug = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.debug;
25
+ if (debug) {
26
+ console.log(`${message} – `, details);
27
+ }
28
+ }
29
+
30
+ function isFlutterApp() {
31
+ return "FlipFlutter" in window;
32
+ }
33
+ function postMessage(message) {
34
+ var _a, _b;
35
+ const isFlutter = isFlutterApp();
36
+ if (!window.top && !isFlutter) {
37
+ return;
38
+ }
39
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
40
+ if (!hostAppOrigin) {
41
+ throw Error(`Please call 'initFlipBridge'.`);
42
+ }
43
+ if (isFlutter) {
44
+ window.FlipFlutter.postMessage(JSON.stringify(message));
45
+ }
46
+ else {
47
+ (_b = window.top) === null || _b === void 0 ? void 0 : _b.postMessage(message, hostAppOrigin);
48
+ }
49
+ log("postMessage", {
50
+ message,
51
+ isFlutter,
52
+ targetOrigin: hostAppOrigin,
53
+ });
54
+ }
55
+ function makeRequest(request) {
56
+ return new Promise((resolve, reject) => {
57
+ const handler = getRequestHandler(request, resolve, reject);
58
+ window.addEventListener("message", handler);
59
+ postMessage(request);
60
+ });
61
+ }
62
+ function getRequestHandler(request, resolve, reject) {
63
+ const handler = (event) => {
64
+ if (!isResponse(event.data) || event.data.id !== request.id) {
65
+ return;
66
+ }
67
+ if (!isAllowedOrigin(event.origin)) {
68
+ reject({
69
+ code: BridgeErrorCode.FORBIDDEN_ORIGIN,
70
+ });
71
+ return;
72
+ }
73
+ log("handleResponse", event.data);
74
+ window.removeEventListener("message", handler);
75
+ if (event.data.error) {
76
+ reject(event.data.error);
77
+ }
78
+ else {
79
+ resolve(event.data.result);
80
+ }
81
+ };
82
+ return handler;
83
+ }
84
+ function isResponse(message) {
85
+ return (typeof message === "object" &&
86
+ "id" in message &&
87
+ ("result" in message || "error" in message));
88
+ }
89
+ function isAllowedOrigin(origin) {
90
+ var _a;
91
+ if (isFlutterApp()) {
92
+ return true;
93
+ }
94
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
95
+ return origin === hostAppOrigin;
96
+ }
97
+
98
+ async function createDialog(params) {
99
+ const request = {
100
+ id: v4(),
101
+ method: BridgeMethod.CREATE_DIALOG,
102
+ params,
103
+ };
104
+ const result = await makeRequest(request);
105
+ if (!result) {
106
+ return;
107
+ }
108
+ return {
109
+ id: params.id,
110
+ open: async () => openDialog({ id: params.id }),
111
+ close: async () => closeDialog({ id: params.id }),
112
+ destroy: async () => destroyDialog({ id: params.id }),
113
+ };
114
+ }
115
+ async function openDialog(params) {
116
+ const request = {
117
+ id: v4(),
118
+ method: BridgeMethod.OPEN_DIALOG,
119
+ params,
120
+ };
121
+ return makeRequest(request);
122
+ }
123
+ async function closeDialog(params) {
124
+ const request = {
125
+ id: v4(),
126
+ method: BridgeMethod.CLOSE_DIALOG,
127
+ params,
128
+ };
129
+ return makeRequest(request);
130
+ }
131
+ async function destroyDialog(params) {
132
+ const request = {
133
+ id: v4(),
134
+ method: BridgeMethod.DESTROY_DIALOG,
135
+ params,
136
+ };
137
+ return makeRequest(request);
138
+ }
139
+
140
+ var BridgeEventType;
141
+ (function (BridgeEventType) {
142
+ BridgeEventType["PRIMARY_ACTION_CLICK"] = "PRIMARY_ACTION_CLICK";
143
+ BridgeEventType["LANG_CHANGE"] = "LANG_CHANGE";
144
+ BridgeEventType["SECONDARY_ACTION_CLICK"] = "SECONDARY_ACTION_CLICK";
145
+ BridgeEventType["THEME_CHANGE"] = "THEME_CHANGE";
146
+ })(BridgeEventType || (BridgeEventType = {}));
147
+
148
+ async function subscribe(type, callback, options) {
149
+ const subscriptionId = (options === null || options === void 0 ? void 0 : options.id) || v4();
150
+ const subscribeRequest = {
151
+ id: v4(),
152
+ method: BridgeMethod.SUBSCRIBE,
153
+ params: { id: subscriptionId, type },
154
+ };
155
+ const eventHandler = (event) => {
156
+ if (!isAllowedOrigin(event.origin) ||
157
+ !isEvent(event.data) ||
158
+ event.data.type !== type ||
159
+ event.data.id !== subscriptionId) {
160
+ return;
161
+ }
162
+ log("handleEvent", event.data);
163
+ callback(event.data);
164
+ };
165
+ window.addEventListener("message", eventHandler);
166
+ const subscribed = await makeRequest(subscribeRequest);
167
+ if (!subscribed) {
168
+ window.removeEventListener("message", eventHandler);
169
+ throw new Error(`Could not subscribe to event "${type}".`);
170
+ }
171
+ return async () => {
172
+ const unsubscribeRequest = {
173
+ id: v4(),
174
+ method: BridgeMethod.UNSUBSCRIBE,
175
+ params: { id: subscriptionId, type },
176
+ };
177
+ await makeRequest(unsubscribeRequest);
178
+ window.removeEventListener("message", eventHandler);
179
+ };
180
+ }
181
+ function isEvent(message) {
182
+ return (typeof message === "object" &&
183
+ "type" in message &&
184
+ Object.values(BridgeEventType).includes(message.type));
185
+ }
186
+
187
+ function getAvailableLangs() {
188
+ const request = {
189
+ id: v4(),
190
+ method: BridgeMethod.GET_AVAILABLE_LANGS,
191
+ };
192
+ return makeRequest(request);
193
+ }
194
+ function getLang() {
195
+ const request = {
196
+ id: v4(),
197
+ method: BridgeMethod.GET_LANG,
198
+ };
199
+ return makeRequest(request);
200
+ }
201
+
202
+ function navigate(path) {
203
+ const request = {
204
+ id: v4(),
205
+ method: BridgeMethod.NAVIGATE,
206
+ params: { path },
207
+ };
208
+ return makeRequest(request);
209
+ }
210
+
211
+ function getTheme() {
212
+ const request = {
213
+ id: v4(),
214
+ method: BridgeMethod.GET_THEME,
215
+ };
216
+ return makeRequest(request);
217
+ }
218
+
219
+ function initFlipBridge(options) {
220
+ if (window.flipBridgeOptions) {
221
+ console.warn(`'initFlipBridge' has already been called.`);
222
+ return;
223
+ }
224
+ window.flipBridgeOptions = options;
225
+ }
226
+
227
+ export { BridgeErrorCode, BridgeEventType, BridgeMethod, closeDialog, createDialog, destroyDialog, getAvailableLangs, getLang, getTheme, initFlipBridge, isEvent, navigate, openDialog, subscribe };
228
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/types.ts","../src/logging/logging.ts","../src/messaging/messaging.ts","../src/dialog/dialog.ts","../src/events/events.types.ts","../src/events/events.ts","../src/i18n/i18n.ts","../src/navigation/navigation.ts","../src/theming/theming.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["uuidv4"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import { initFlipBridge } from ".";
2
+ describe("index", () => {
3
+ test("'initFlipBridge' sets global options once", async () => {
4
+ const options = {
5
+ hostAppOrigin: "http://localhost",
6
+ debug: true,
7
+ };
8
+ initFlipBridge(options);
9
+ expect(global.flipBridgeOptions).toEqual(options);
10
+ const newOptions = {
11
+ hostAppOrigin: "http://localhost:3000",
12
+ debug: false,
13
+ };
14
+ const spy = jest.spyOn(global.console, "warn").mockImplementation();
15
+ initFlipBridge(newOptions);
16
+ expect(spy).toHaveBeenCalledWith("'initFlipBridge' has already been called.");
17
+ expect(global.flipBridgeOptions).not.toEqual(newOptions);
18
+ });
19
+ });
20
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;AAGnC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAkB;YAC7B,aAAa,EAAE,kBAAkB;YACjC,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,cAAc,CAAC,OAAO,CAAC,CAAC;QAExB,MAAM,CAAE,MAAc,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAkB;YAChC,aAAa,EAAE,uBAAuB;YACtC,KAAK,EAAE,KAAK;SACb,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAEpE,cAAc,CAAC,UAAU,CAAC,CAAC;QAE3B,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAC9B,2CAA2C,CAC5C,CAAC;QAEF,MAAM,CAAE,MAAc,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- const debug = process.env.NODE_ENV === "development";
2
1
  export function log(message, details) {
2
+ var _a;
3
+ const debug = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.debug;
3
4
  if (debug) {
4
5
  console.log(`${message} – `, details);
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging/logging.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAErD,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAgB;IACnD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,EAAE,OAAO,CAAC,CAAC;KACvC;AACH,CAAC"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging/logging.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAgB;;IACnD,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,iBAAiB,0CAAE,KAAK,CAAC;IAE9C,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,EAAE,OAAO,CAAC,CAAC;KACvC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export {};