@getflip/bridge 0.0.0-new-shell-20231128130728

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 (109) hide show
  1. package/LICENSE.md +25 -0
  2. package/README.md +472 -0
  3. package/dist/dialog/dialog.d.ts +10 -0
  4. package/dist/dialog/dialog.js +45 -0
  5. package/dist/dialog/dialog.js.map +1 -0
  6. package/dist/dialog/dialog.spec.d.ts +1 -0
  7. package/dist/dialog/dialog.spec.js +83 -0
  8. package/dist/dialog/dialog.spec.js.map +1 -0
  9. package/dist/dialog/dialog.types.d.ts +33 -0
  10. package/dist/dialog/dialog.types.js +2 -0
  11. package/dist/dialog/dialog.types.js.map +1 -0
  12. package/dist/dialog/index.d.ts +2 -0
  13. package/dist/dialog/index.js +3 -0
  14. package/dist/dialog/index.js.map +1 -0
  15. package/dist/events/events.d.ts +3 -0
  16. package/dist/events/events.js +44 -0
  17. package/dist/events/events.js.map +1 -0
  18. package/dist/events/events.spec.d.ts +1 -0
  19. package/dist/events/events.spec.js +64 -0
  20. package/dist/events/events.spec.js.map +1 -0
  21. package/dist/events/events.types.d.ts +27 -0
  22. package/dist/events/events.types.js +8 -0
  23. package/dist/events/events.types.js.map +1 -0
  24. package/dist/events/index.d.ts +2 -0
  25. package/dist/events/index.js +3 -0
  26. package/dist/events/index.js.map +1 -0
  27. package/dist/i18n/i18n.d.ts +3 -0
  28. package/dist/i18n/i18n.js +18 -0
  29. package/dist/i18n/i18n.js.map +1 -0
  30. package/dist/i18n/i18n.spec.d.ts +1 -0
  31. package/dist/i18n/i18n.spec.js +27 -0
  32. package/dist/i18n/i18n.spec.js.map +1 -0
  33. package/dist/i18n/i18n.types.d.ts +6 -0
  34. package/dist/i18n/i18n.types.js +2 -0
  35. package/dist/i18n/i18n.types.js.map +1 -0
  36. package/dist/i18n/index.d.ts +2 -0
  37. package/dist/i18n/index.js +3 -0
  38. package/dist/i18n/index.js.map +1 -0
  39. package/dist/index.cjs.js +290 -0
  40. package/dist/index.cjs.js.map +1 -0
  41. package/dist/index.d.ts +15 -0
  42. package/dist/index.js +16 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/index.mjs +274 -0
  45. package/dist/index.mjs.map +1 -0
  46. package/dist/index.spec.d.ts +1 -0
  47. package/dist/index.spec.js +20 -0
  48. package/dist/index.spec.js.map +1 -0
  49. package/dist/logging/index.d.ts +1 -0
  50. package/dist/logging/index.js +2 -0
  51. package/dist/logging/index.js.map +1 -0
  52. package/dist/logging/logging.d.ts +1 -0
  53. package/dist/logging/logging.js +8 -0
  54. package/dist/logging/logging.js.map +1 -0
  55. package/dist/logging/logging.spec.d.ts +1 -0
  56. package/dist/logging/logging.spec.js +19 -0
  57. package/dist/logging/logging.spec.js.map +1 -0
  58. package/dist/messaging/index.d.ts +2 -0
  59. package/dist/messaging/index.js +3 -0
  60. package/dist/messaging/index.js.map +1 -0
  61. package/dist/messaging/messaging.d.ts +15 -0
  62. package/dist/messaging/messaging.js +70 -0
  63. package/dist/messaging/messaging.js.map +1 -0
  64. package/dist/messaging/messaging.spec.d.ts +1 -0
  65. package/dist/messaging/messaging.spec.js +59 -0
  66. package/dist/messaging/messaging.spec.js.map +1 -0
  67. package/dist/messaging/messaging.types.d.ts +11 -0
  68. package/dist/messaging/messaging.types.js +2 -0
  69. package/dist/messaging/messaging.types.js.map +1 -0
  70. package/dist/modal/index.d.ts +2 -0
  71. package/dist/modal/index.js +3 -0
  72. package/dist/modal/index.js.map +1 -0
  73. package/dist/modal/modal.d.ts +10 -0
  74. package/dist/modal/modal.js +45 -0
  75. package/dist/modal/modal.js.map +1 -0
  76. package/dist/modal/modal.spec.d.ts +1 -0
  77. package/dist/modal/modal.spec.js +81 -0
  78. package/dist/modal/modal.spec.js.map +1 -0
  79. package/dist/modal/modal.types.d.ts +30 -0
  80. package/dist/modal/modal.types.js +2 -0
  81. package/dist/modal/modal.types.js.map +1 -0
  82. package/dist/navigation/index.d.ts +2 -0
  83. package/dist/navigation/index.js +3 -0
  84. package/dist/navigation/index.js.map +1 -0
  85. package/dist/navigation/navigation.d.ts +1 -0
  86. package/dist/navigation/navigation.js +12 -0
  87. package/dist/navigation/navigation.js.map +1 -0
  88. package/dist/navigation/navigation.spec.d.ts +1 -0
  89. package/dist/navigation/navigation.spec.js +22 -0
  90. package/dist/navigation/navigation.spec.js.map +1 -0
  91. package/dist/navigation/navigation.types.d.ts +6 -0
  92. package/dist/navigation/navigation.types.js +2 -0
  93. package/dist/navigation/navigation.types.js.map +1 -0
  94. package/dist/theming/index.d.ts +2 -0
  95. package/dist/theming/index.js +3 -0
  96. package/dist/theming/index.js.map +1 -0
  97. package/dist/theming/theming.d.ts +2 -0
  98. package/dist/theming/theming.js +11 -0
  99. package/dist/theming/theming.js.map +1 -0
  100. package/dist/theming/theming.spec.d.ts +1 -0
  101. package/dist/theming/theming.spec.js +19 -0
  102. package/dist/theming/theming.spec.js.map +1 -0
  103. package/dist/theming/theming.types.d.ts +8 -0
  104. package/dist/theming/theming.types.js +2 -0
  105. package/dist/theming/theming.types.js.map +1 -0
  106. package/dist/types.d.ts +49 -0
  107. package/dist/types.js +23 -0
  108. package/dist/types.js.map +1 -0
  109. package/package.json +37 -0
@@ -0,0 +1,3 @@
1
+ import { BridgeEvent, BridgeEventType, SubscribeOptions, UnsubscribeFunction } from "./events.types";
2
+ export declare function subscribe<EventDataType = unknown>(type: BridgeEventType, callback: (event?: BridgeEvent<EventDataType>) => void, options?: SubscribeOptions): Promise<UnsubscribeFunction>;
3
+ export declare function isEvent(message: Object): message is BridgeEvent;
@@ -0,0 +1,44 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import { log } from "../logging";
3
+ import { isAllowedOrigin, makeRequest } from "../messaging";
4
+ import { BridgeMethod } from "../types";
5
+ import { BridgeEventType, } from "./events.types";
6
+ export async function subscribe(type, callback, options) {
7
+ const subscriptionId = (options === null || options === void 0 ? void 0 : options.id) || uuidv4();
8
+ const subscribeRequest = {
9
+ id: uuidv4(),
10
+ method: BridgeMethod.SUBSCRIBE,
11
+ params: { id: subscriptionId, type },
12
+ };
13
+ const eventHandler = (event) => {
14
+ if (!isAllowedOrigin(event.origin) ||
15
+ !isEvent(event.data) ||
16
+ event.data.type !== type ||
17
+ event.data.id !== subscriptionId) {
18
+ return;
19
+ }
20
+ log("handleEvent", event.data);
21
+ callback(event.data);
22
+ };
23
+ window.addEventListener("message", eventHandler);
24
+ const subscribed = await makeRequest(subscribeRequest);
25
+ if (!subscribed) {
26
+ window.removeEventListener("message", eventHandler);
27
+ throw new Error(`Could not subscribe to event "${type}".`);
28
+ }
29
+ return async () => {
30
+ const unsubscribeRequest = {
31
+ id: uuidv4(),
32
+ method: BridgeMethod.UNSUBSCRIBE,
33
+ params: { id: subscriptionId, type },
34
+ };
35
+ await makeRequest(unsubscribeRequest);
36
+ window.removeEventListener("message", eventHandler);
37
+ };
38
+ }
39
+ export function isEvent(message) {
40
+ return (typeof message === "object" &&
41
+ "type" in message &&
42
+ Object.values(BridgeEventType).includes(message.type));
43
+ }
44
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAEL,eAAe,GAOhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAqB,EACrB,QAAsD,EACtD,OAA0B;IAE1B,MAAM,cAAc,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,KAAI,MAAM,EAAE,CAAC;IAE/C,MAAM,gBAAgB,GAAqB;QACzC,EAAE,EAAE,MAAM,EAAE;QACZ,MAAM,EAAE,YAAY,CAAC,SAAS;QAC9B,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACrC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAA+C,EAAE,EAAE;QACvE,IACE,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9B,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,cAAc,EAChC;YACA,OAAO;SACR;QAED,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAkB,gBAAgB,CAAC,CAAC;IAExE,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,IAAI,CAAC,CAAC;KAC5D;IAED,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,kBAAkB,GAAuB;YAC7C,EAAE,EAAE,MAAM,EAAE;YACZ,MAAM,EAAE,YAAY,CAAC,WAAW;YAChC,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;SACrC,CAAC;QAEF,MAAM,WAAW,CAAoB,kBAAkB,CAAC,CAAC;QAEzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,MAAM,IAAI,OAAO;QACjB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAuB,CAAC,CACzE,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import { subscribe } from "./events";
2
+ import { BridgeEventType } from "./events.types";
3
+ jest.mock("../messaging", () => {
4
+ const originalModule = jest.requireActual("../messaging");
5
+ return Object.assign(Object.assign({ __esModule: true }, originalModule), { makeRequest: async (request) => {
6
+ originalModule.makeRequest(request);
7
+ return true;
8
+ } });
9
+ });
10
+ describe("events", () => {
11
+ beforeEach(() => {
12
+ global.flipBridgeOptions = { hostAppOrigin: "http://localhost" };
13
+ });
14
+ test("'subscribe' sends subscription request", async () => {
15
+ const spy = jest.fn();
16
+ window.top.postMessage = spy;
17
+ subscribe(BridgeEventType.LANG_CHANGE, () => { });
18
+ expect(spy).toHaveBeenCalledWith({
19
+ id: spy.mock.calls[0][0].id,
20
+ method: "SUBSCRIBE",
21
+ params: {
22
+ id: spy.mock.calls[0][0].params.id,
23
+ type: "LANG_CHANGE",
24
+ },
25
+ }, "http://localhost");
26
+ });
27
+ test("'subscribe' registers listener with callback function", async () => {
28
+ const callback = jest.fn();
29
+ const unsubscribe = await subscribe(BridgeEventType.LANG_CHANGE, callback, {
30
+ id: "SUBSCRIPTION_ID",
31
+ });
32
+ global.dispatchEvent(new MessageEvent("message", {
33
+ source: window,
34
+ origin: global.flipBridgeOptions.hostAppOrigin,
35
+ data: {
36
+ data: "DATA",
37
+ id: "SUBSCRIPTION_ID",
38
+ type: BridgeEventType.LANG_CHANGE,
39
+ },
40
+ }));
41
+ expect(callback).toHaveBeenCalledWith({
42
+ data: "DATA",
43
+ id: "SUBSCRIPTION_ID",
44
+ type: "LANG_CHANGE",
45
+ });
46
+ await unsubscribe();
47
+ });
48
+ test("'subscribe' returns function to unsubscribe", async () => {
49
+ const spy = jest.fn();
50
+ window.top.postMessage = spy;
51
+ const unsubscribe = await subscribe(BridgeEventType.LANG_CHANGE, () => { });
52
+ expect(typeof unsubscribe).toBe("function");
53
+ await unsubscribe();
54
+ expect(spy).toHaveBeenCalledWith({
55
+ id: spy.mock.calls[1][0].id,
56
+ method: "UNSUBSCRIBE",
57
+ params: {
58
+ id: spy.mock.calls[1][0].params.id,
59
+ type: "LANG_CHANGE",
60
+ },
61
+ }, "http://localhost");
62
+ });
63
+ });
64
+ //# sourceMappingURL=events.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.spec.js","sourceRoot":"","sources":["../../src/events/events.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { BridgeRequest } from "../messaging/messaging.types";
2
+ import { BridgeMethod } from "../types";
3
+ export declare enum BridgeEventType {
4
+ PRIMARY_ACTION_CLICK = "PRIMARY_ACTION_CLICK",
5
+ LANG_CHANGE = "LANG_CHANGE",
6
+ SECONDARY_ACTION_CLICK = "SECONDARY_ACTION_CLICK",
7
+ THEME_CHANGE = "THEME_CHANGE"
8
+ }
9
+ export type BridgeEvent<DataType = unknown> = {
10
+ data?: DataType;
11
+ id: string;
12
+ type: BridgeEventType;
13
+ };
14
+ export type SubscribeRequest = BridgeRequest<BridgeMethod.SUBSCRIBE, {
15
+ id: string;
16
+ type: BridgeEventType;
17
+ }>;
18
+ export type UnsubscribeRequest = BridgeRequest<BridgeMethod.UNSUBSCRIBE, {
19
+ id: string;
20
+ type: BridgeEventType;
21
+ }>;
22
+ export type SubscribeResult = boolean;
23
+ export type UnsubscribeResult = boolean;
24
+ export type UnsubscribeFunction = () => Promise<void>;
25
+ export type SubscribeOptions = {
26
+ id?: string;
27
+ };
@@ -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,3 @@
1
+ import { GetAvailableLangsResult } from "./i18n.types";
2
+ export declare function getAvailableLangs(): Promise<import("../types").BridgeError | GetAvailableLangsResult>;
3
+ export declare function getLang(): Promise<string | import("../types").BridgeError>;
@@ -0,0 +1,18 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import { makeRequest } from "../messaging";
3
+ import { BridgeMethod } from "../types";
4
+ export function getAvailableLangs() {
5
+ const request = {
6
+ id: uuidv4(),
7
+ method: BridgeMethod.GET_AVAILABLE_LANGS,
8
+ };
9
+ return makeRequest(request);
10
+ }
11
+ export function getLang() {
12
+ const request = {
13
+ id: uuidv4(),
14
+ method: BridgeMethod.GET_LANG,
15
+ };
16
+ return makeRequest(request);
17
+ }
18
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQxC,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAA6B;QACxC,EAAE,EAAE,MAAM,EAAE;QACZ,MAAM,EAAE,YAAY,CAAC,mBAAmB;KACzC,CAAC;IAEF,OAAO,WAAW,CAA0B,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,OAAO,GAAmB;QAC9B,EAAE,EAAE,MAAM,EAAE;QACZ,MAAM,EAAE,YAAY,CAAC,QAAQ;KAC9B,CAAC;IAEF,OAAO,WAAW,CAAgB,OAAO,CAAC,CAAC;AAC7C,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"}
@@ -0,0 +1,6 @@
1
+ import { BridgeMethod } from "../types";
2
+ import { BridgeRequest } from "../messaging/messaging.types";
3
+ export type GetAvailableLangsRequest = BridgeRequest<BridgeMethod.GET_AVAILABLE_LANGS, undefined>;
4
+ export type GetAvailableLangsResult = string[];
5
+ export type GetLangRequest = BridgeRequest<BridgeMethod.GET_LANG, undefined>;
6
+ export type GetLangResult = string;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=i18n.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.types.js","sourceRoot":"","sources":["../../src/i18n/i18n.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./i18n.types";
2
+ export * from "./i18n";
@@ -0,0 +1,3 @@
1
+ export * from "./i18n.types";
2
+ export * from "./i18n";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,290 @@
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["CLOSE_MODAL"] = "CLOSE_MODAL";
14
+ BridgeMethod["CREATE_DIALOG"] = "CREATE_DIALOG";
15
+ BridgeMethod["CREATE_MODAL"] = "CREATE_MODAL";
16
+ BridgeMethod["DESTROY_DIALOG"] = "DESTROY_DIALOG";
17
+ BridgeMethod["DESTROY_MODAL"] = "DESTROY_MODAL";
18
+ BridgeMethod["GET_AVAILABLE_LANGS"] = "GET_AVAILABLE_LANGS";
19
+ BridgeMethod["GET_LANG"] = "GET_LANG";
20
+ BridgeMethod["GET_THEME"] = "GET_THEME";
21
+ BridgeMethod["NAVIGATE"] = "NAVIGATE";
22
+ BridgeMethod["OPEN_DIALOG"] = "OPEN_DIALOG";
23
+ BridgeMethod["OPEN_MODAL"] = "OPEN_MODAL";
24
+ BridgeMethod["SUBSCRIBE"] = "SUBSCRIBE";
25
+ BridgeMethod["UNSUBSCRIBE"] = "UNSUBSCRIBE";
26
+ })(exports.BridgeMethod || (exports.BridgeMethod = {}));
27
+
28
+ function log(message, details) {
29
+ var _a;
30
+ const debug = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.debug;
31
+ if (debug) {
32
+ console.log(`${message} – `, details);
33
+ }
34
+ }
35
+
36
+ function isFlutterApp() {
37
+ return "FlipFlutter" in window;
38
+ }
39
+ function postMessage(message) {
40
+ var _a, _b;
41
+ const isFlutter = isFlutterApp();
42
+ if (!window.top && !isFlutter) {
43
+ return;
44
+ }
45
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
46
+ if (!hostAppOrigin) {
47
+ throw Error(`Please call 'initFlipBridge'.`);
48
+ }
49
+ if (isFlutter) {
50
+ window.FlipFlutter.postMessage(JSON.stringify(message));
51
+ }
52
+ else {
53
+ (_b = window.top) === null || _b === void 0 ? void 0 : _b.postMessage(message, hostAppOrigin);
54
+ }
55
+ log("postMessage", {
56
+ message,
57
+ isFlutter,
58
+ targetOrigin: hostAppOrigin,
59
+ });
60
+ }
61
+ function makeRequest(request) {
62
+ return new Promise((resolve, reject) => {
63
+ const handler = getRequestHandler(request, resolve, reject);
64
+ window.addEventListener("message", handler);
65
+ postMessage(request);
66
+ });
67
+ }
68
+ function getRequestHandler(request, resolve, reject) {
69
+ const handler = (event) => {
70
+ if (!isResponse(event.data) || event.data.id !== request.id) {
71
+ return;
72
+ }
73
+ if (!isAllowedOrigin(event.origin)) {
74
+ reject({
75
+ code: exports.BridgeErrorCode.FORBIDDEN_ORIGIN,
76
+ });
77
+ return;
78
+ }
79
+ log("handleResponse", event.data);
80
+ window.removeEventListener("message", handler);
81
+ if (event.data.error) {
82
+ reject(event.data.error);
83
+ }
84
+ else {
85
+ resolve(event.data.result);
86
+ }
87
+ };
88
+ return handler;
89
+ }
90
+ function isResponse(message) {
91
+ return (typeof message === "object" &&
92
+ "id" in message &&
93
+ ("result" in message || "error" in message));
94
+ }
95
+ function isAllowedOrigin(origin) {
96
+ var _a;
97
+ if (isFlutterApp()) {
98
+ return true;
99
+ }
100
+ const hostAppOrigin = (_a = window.flipBridgeOptions) === null || _a === void 0 ? void 0 : _a.hostAppOrigin;
101
+ return origin === hostAppOrigin;
102
+ }
103
+
104
+ async function createDialog(params) {
105
+ const request = {
106
+ id: uuid.v4(),
107
+ method: exports.BridgeMethod.CREATE_DIALOG,
108
+ params,
109
+ };
110
+ const result = await makeRequest(request);
111
+ if (!result) {
112
+ return;
113
+ }
114
+ return {
115
+ id: params.id,
116
+ open: async () => openDialog({ id: params.id }),
117
+ close: async () => closeDialog({ id: params.id }),
118
+ destroy: async () => destroyDialog({ id: params.id }),
119
+ };
120
+ }
121
+ async function openDialog(params) {
122
+ const request = {
123
+ id: uuid.v4(),
124
+ method: exports.BridgeMethod.OPEN_DIALOG,
125
+ params,
126
+ };
127
+ return makeRequest(request);
128
+ }
129
+ async function closeDialog(params) {
130
+ const request = {
131
+ id: uuid.v4(),
132
+ method: exports.BridgeMethod.CLOSE_DIALOG,
133
+ params,
134
+ };
135
+ return makeRequest(request);
136
+ }
137
+ async function destroyDialog(params) {
138
+ const request = {
139
+ id: uuid.v4(),
140
+ method: exports.BridgeMethod.DESTROY_DIALOG,
141
+ params,
142
+ };
143
+ return makeRequest(request);
144
+ }
145
+
146
+ exports.BridgeEventType = void 0;
147
+ (function (BridgeEventType) {
148
+ BridgeEventType["PRIMARY_ACTION_CLICK"] = "PRIMARY_ACTION_CLICK";
149
+ BridgeEventType["LANG_CHANGE"] = "LANG_CHANGE";
150
+ BridgeEventType["SECONDARY_ACTION_CLICK"] = "SECONDARY_ACTION_CLICK";
151
+ BridgeEventType["THEME_CHANGE"] = "THEME_CHANGE";
152
+ })(exports.BridgeEventType || (exports.BridgeEventType = {}));
153
+
154
+ async function subscribe(type, callback, options) {
155
+ const subscriptionId = (options === null || options === void 0 ? void 0 : options.id) || uuid.v4();
156
+ const subscribeRequest = {
157
+ id: uuid.v4(),
158
+ method: exports.BridgeMethod.SUBSCRIBE,
159
+ params: { id: subscriptionId, type },
160
+ };
161
+ const eventHandler = (event) => {
162
+ if (!isAllowedOrigin(event.origin) ||
163
+ !isEvent(event.data) ||
164
+ event.data.type !== type ||
165
+ event.data.id !== subscriptionId) {
166
+ return;
167
+ }
168
+ log("handleEvent", event.data);
169
+ callback(event.data);
170
+ };
171
+ window.addEventListener("message", eventHandler);
172
+ const subscribed = await makeRequest(subscribeRequest);
173
+ if (!subscribed) {
174
+ window.removeEventListener("message", eventHandler);
175
+ throw new Error(`Could not subscribe to event "${type}".`);
176
+ }
177
+ return async () => {
178
+ const unsubscribeRequest = {
179
+ id: uuid.v4(),
180
+ method: exports.BridgeMethod.UNSUBSCRIBE,
181
+ params: { id: subscriptionId, type },
182
+ };
183
+ await makeRequest(unsubscribeRequest);
184
+ window.removeEventListener("message", eventHandler);
185
+ };
186
+ }
187
+ function isEvent(message) {
188
+ return (typeof message === "object" &&
189
+ "type" in message &&
190
+ Object.values(exports.BridgeEventType).includes(message.type));
191
+ }
192
+
193
+ function getAvailableLangs() {
194
+ const request = {
195
+ id: uuid.v4(),
196
+ method: exports.BridgeMethod.GET_AVAILABLE_LANGS,
197
+ };
198
+ return makeRequest(request);
199
+ }
200
+ function getLang() {
201
+ const request = {
202
+ id: uuid.v4(),
203
+ method: exports.BridgeMethod.GET_LANG,
204
+ };
205
+ return makeRequest(request);
206
+ }
207
+
208
+ async function createModal(params) {
209
+ const request = {
210
+ id: uuid.v4(),
211
+ method: exports.BridgeMethod.CREATE_MODAL,
212
+ params,
213
+ };
214
+ const result = await makeRequest(request);
215
+ if (!result) {
216
+ return;
217
+ }
218
+ return {
219
+ id: params.id,
220
+ open: async () => openModal({ id: params.id }),
221
+ close: async () => closeModal({ id: params.id }),
222
+ destroy: async () => destroyModal({ id: params.id }),
223
+ };
224
+ }
225
+ async function openModal(params) {
226
+ const request = {
227
+ id: uuid.v4(),
228
+ method: exports.BridgeMethod.OPEN_MODAL,
229
+ params,
230
+ };
231
+ return makeRequest(request);
232
+ }
233
+ async function closeModal(params) {
234
+ const request = {
235
+ id: uuid.v4(),
236
+ method: exports.BridgeMethod.CLOSE_MODAL,
237
+ params,
238
+ };
239
+ return makeRequest(request);
240
+ }
241
+ async function destroyModal(params) {
242
+ const request = {
243
+ id: uuid.v4(),
244
+ method: exports.BridgeMethod.DESTROY_MODAL,
245
+ params,
246
+ };
247
+ return makeRequest(request);
248
+ }
249
+
250
+ function navigate(path) {
251
+ const request = {
252
+ id: uuid.v4(),
253
+ method: exports.BridgeMethod.NAVIGATE,
254
+ params: { path },
255
+ };
256
+ return makeRequest(request);
257
+ }
258
+
259
+ function getTheme() {
260
+ const request = {
261
+ id: uuid.v4(),
262
+ method: exports.BridgeMethod.GET_THEME,
263
+ };
264
+ return makeRequest(request);
265
+ }
266
+
267
+ function initFlipBridge(options) {
268
+ if (window.flipBridgeOptions) {
269
+ console.warn(`'initFlipBridge' has already been called.`);
270
+ return;
271
+ }
272
+ window.flipBridgeOptions = options;
273
+ }
274
+
275
+ exports.closeDialog = closeDialog;
276
+ exports.closeModal = closeModal;
277
+ exports.createDialog = createDialog;
278
+ exports.createModal = createModal;
279
+ exports.destroyDialog = destroyDialog;
280
+ exports.destroyModal = destroyModal;
281
+ exports.getAvailableLangs = getAvailableLangs;
282
+ exports.getLang = getLang;
283
+ exports.getTheme = getTheme;
284
+ exports.initFlipBridge = initFlipBridge;
285
+ exports.isEvent = isEvent;
286
+ exports.navigate = navigate;
287
+ exports.openDialog = openDialog;
288
+ exports.openModal = openModal;
289
+ exports.subscribe = subscribe;
290
+ //# 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/modal/modal.ts","../src/navigation/navigation.ts","../src/theming/theming.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["BridgeErrorCode","BridgeMethod","uuidv4","BridgeEventType"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BridgeOptions } from "./types";
2
+ export * from "./types";
3
+ export * from "./messaging/messaging.types";
4
+ export * from "./dialog";
5
+ export * from "./events";
6
+ export * from "./i18n";
7
+ export * from "./modal";
8
+ export * from "./navigation";
9
+ export * from "./theming";
10
+ declare global {
11
+ interface Window {
12
+ flipBridgeOptions: BridgeOptions;
13
+ }
14
+ }
15
+ export declare function initFlipBridge(options: BridgeOptions): void;
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ export * from "./types";
2
+ export * from "./messaging/messaging.types";
3
+ export * from "./dialog";
4
+ export * from "./events";
5
+ export * from "./i18n";
6
+ export * from "./modal";
7
+ export * from "./navigation";
8
+ export * from "./theming";
9
+ export function initFlipBridge(options) {
10
+ if (window.flipBridgeOptions) {
11
+ console.warn(`'initFlipBridge' has already been called.`);
12
+ return;
13
+ }
14
+ window.flipBridgeOptions = options;
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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,SAAS,CAAC;AACxB,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"}