@octostar/platform-api 0.5.18 → 0.5.20

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/dist/types.d.ts CHANGED
@@ -62,5 +62,19 @@ export type RemoteApiError = Error & {
62
62
  export type EnsureMethodsReturnPromise<T> = {
63
63
  [K in keyof T]: T[K] extends (...args: any[]) => any ? (...args: Parameters<T[K]>) => Promise<Awaited<ReturnType<T[K]>>> : T[K];
64
64
  };
65
+ /**
66
+ * @beta
67
+ * Type representing a context listener.
68
+ */
69
+ export type ContextListener<T> = (context: T) => void;
70
+ /**
71
+ * @beta
72
+ * Type representing the context API.
73
+ */
74
+ export type ContextApi<T> = {
75
+ getContext: () => Promise<T>;
76
+ subscribeToChanges: (id: string | ContextListener<T>, callback?: ContextListener<T>) => Promise<void>;
77
+ unsubscribeFromChanges: (id: string) => Promise<void>;
78
+ };
65
79
  export {};
66
80
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9E,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI;IACnC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAC5D,IAAI,EACJ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B,wBAAwB,GACxB,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjE,CAAC,CAAC,CAAC,CAAC;CACT,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9E,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI;IACnC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAC5D,IAAI,EACJ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B,wBAAwB,GACxB,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjE,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAClB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AA4EA,yCAAyC;AACzC,mBAAmB;AACnB,gCAAgC;AAChC,yCAAyC;AACzC,cAAc;AACd,qBAAqB;AACrB,kCAAkC;AAClC,2CAA2C;AAC3C,OAAO;AACP,MAAM;AAEN,sBAAsB;AACtB,EAAE;AACF,6BAA6B;AAC7B,wBAAwB;AACxB,wBAAwB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AA+FA,yCAAyC;AACzC,mBAAmB;AACnB,gCAAgC;AAChC,yCAAyC;AACzC,cAAc;AACd,qBAAqB;AACrB,kCAAkC;AAClC,2CAA2C;AAC3C,OAAO;AACP,MAAM;AAEN,sBAAsB;AACtB,EAAE;AACF,6BAA6B;AAC7B,wBAAwB;AACxB,wBAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octostar/platform-api",
3
- "version": "0.5.18",
3
+ "version": "0.5.20",
4
4
  "description": "Provides access to the API exposed by Octostar platform to an application run in an iframe",
5
5
  "keywords": [
6
6
  "octostar",
@@ -28,21 +28,21 @@
28
28
  "module": "dist/index.js",
29
29
  "types": "dist/index.d.ts",
30
30
  "dependencies": {
31
+ "@types/post-robot": "^10.0.6",
31
32
  "@types/uuid": "^9.0.2",
32
33
  "post-robot": "^10.0.46",
33
34
  "uuid": "^9.0.0"
34
35
  },
35
36
  "devDependencies": {
36
- "@types/post-robot": "^10.0.6",
37
37
  "babelify": "^10.0.0",
38
38
  "browserify": "^17.0.0",
39
39
  "rimraf": "^5.0.5",
40
40
  "tsup": "^8.4.0",
41
41
  "typescript": "^5.8.2",
42
- "@octostar/platform-types": "0.5.22"
42
+ "@octostar/platform-types": "0.5.24"
43
43
  },
44
44
  "peerDependencies": {
45
- "@octostar/platform-types": "^0.5.22"
45
+ "@octostar/platform-types": "^0.5.24"
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public"
@@ -1,27 +0,0 @@
1
- import { Context, ContextAPISetParams, ContextListener } from '@octostar/platform-types';
2
- export declare class ContextAPI<ContextData extends Record<string, any>> implements Context<ContextData> {
3
- private contextData;
4
- private listeners;
5
- private postRobotListener;
6
- private type;
7
- private channelId;
8
- private iframeChannelAttr;
9
- constructor(contextData: ContextData);
10
- private getTargetWindow;
11
- private setContextAndNotify;
12
- private getPostRobotEventName;
13
- private connect;
14
- private sendContextUpdate;
15
- getContext(): ContextData;
16
- setContext(context: ContextAPISetParams<ContextData>): void;
17
- subscribeToChanges(contextListener: ContextListener<ContextData>): string;
18
- subscribeToChanges(id: string, contextListener: ContextListener<ContextData>): string;
19
- unsubscribeFromChanges(id: string): void;
20
- connectToIframe(): {
21
- channelId: string;
22
- onIframeLoad: React.ReactEventHandler<HTMLIFrameElement>;
23
- };
24
- connectToParent(): void;
25
- destroy(): void;
26
- }
27
- //# sourceMappingURL=ContextAPI.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextAPI.d.ts","sourceRoot":"","sources":["../../src/lib/ContextAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAMlC,qBAAa,UAAU,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,YAAW,OAAO,CAAC,WAAW,CAAC;IAE9F,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAoD;IACrE,OAAO,CAAC,iBAAiB,CAAgD;IACzE,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,WAAW,EAAE,WAAW;IAOpC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,iBAAiB;IAYzB,UAAU;IAIV,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAKpD,kBAAkB,CAAC,eAAe,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,MAAM;IAEzE,kBAAkB,CAChB,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,eAAe,CAAC,WAAW,CAAC,GAC5C,MAAM;IAsBT,sBAAsB,CAAC,EAAE,EAAE,MAAM;IAIjC,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;KAAE;IAalG,eAAe;IAQf,OAAO;CAGR"}
@@ -1,104 +0,0 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import * as postRobot from 'post-robot';
3
- const CONTEXT_UPDATE_EVENT = 'context-update';
4
- export class ContextAPI {
5
- constructor(contextData) {
6
- this.listeners = {};
7
- this.iframeChannelAttr = 'data-octostar-iframe-channel';
8
- this.contextData = contextData;
9
- const iframeChannelId = window.frameElement?.getAttribute(this.iframeChannelAttr);
10
- this.channelId = iframeChannelId || uuidv4();
11
- this.type = iframeChannelId ? 'iframe' : 'parent';
12
- }
13
- getTargetWindow() {
14
- if (this.type === 'iframe') {
15
- return window.top;
16
- }
17
- return document.querySelector(`iframe[${this.iframeChannelAttr}='${this.channelId}']`)?.contentWindow || undefined;
18
- }
19
- setContextAndNotify(context) {
20
- if (typeof context === 'function') {
21
- this.contextData = context(this.contextData);
22
- }
23
- else {
24
- this.contextData = context;
25
- }
26
- Object.values(this.listeners).forEach(listener => listener(this.contextData));
27
- }
28
- getPostRobotEventName(channelId) {
29
- return `${channelId}-${CONTEXT_UPDATE_EVENT}`;
30
- }
31
- connect(channelId) {
32
- const targetWindow = this.getTargetWindow();
33
- if (!targetWindow) {
34
- const error = new Error('Target window not found');
35
- throw error;
36
- }
37
- const postRobotEventName = this.getPostRobotEventName(channelId);
38
- this.postRobotListener = (postRobot.on(postRobotEventName, { window: targetWindow }, (event) => {
39
- if (event.data.type === 'init') {
40
- this.setContext((context) => ({ ...context, ...event.data.context }));
41
- }
42
- else {
43
- this.setContextAndNotify((context) => ({ ...context, ...event.data.context }));
44
- }
45
- return Promise.resolve();
46
- }));
47
- this.sendContextUpdate(true);
48
- }
49
- sendContextUpdate(isInit = false) {
50
- const targetWindow = this.getTargetWindow();
51
- if (!targetWindow) {
52
- return;
53
- }
54
- try {
55
- postRobot.send(targetWindow, this.getPostRobotEventName(this.channelId), { context: this.contextData, ...(isInit && { type: 'init' }) });
56
- }
57
- catch (error) {
58
- // do nothing
59
- }
60
- }
61
- getContext() {
62
- return this.contextData;
63
- }
64
- setContext(context) {
65
- this.setContextAndNotify(context);
66
- this.sendContextUpdate();
67
- }
68
- subscribeToChanges(idOrContextListener, contextListenerOrNothing) {
69
- const id = typeof idOrContextListener === 'string' ? idOrContextListener : uuidv4();
70
- const contextListener = typeof idOrContextListener === 'function'
71
- ? idOrContextListener
72
- : contextListenerOrNothing;
73
- if (!contextListener) {
74
- const error = new Error('Context listener is required');
75
- throw error;
76
- }
77
- this.listeners[id] = contextListener;
78
- return id;
79
- }
80
- unsubscribeFromChanges(id) {
81
- delete this.listeners[id];
82
- }
83
- connectToIframe() {
84
- if (this.type !== 'parent') {
85
- const error = new Error('ContextAPI is not a parent');
86
- throw error;
87
- }
88
- const onIframeLoad = () => {
89
- this.connect(this.channelId);
90
- };
91
- return { channelId: this.channelId, onIframeLoad };
92
- }
93
- connectToParent() {
94
- if (this.type !== 'iframe') {
95
- const error = new Error('ContextAPI is not an iframe');
96
- throw error;
97
- }
98
- this.connect(this.channelId);
99
- }
100
- destroy() {
101
- this.postRobotListener?.cancel();
102
- }
103
- }
104
- //# sourceMappingURL=ContextAPI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextAPI.js","sourceRoot":"","sources":["../../src/lib/ContextAPI.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export declare const classInstanceToObject: <T extends {
2
- [key: string]: any;
3
- }>(instance: T, options?: {
4
- globals?: {
5
- canCallAction?: (prams: {
6
- method: string;
7
- class: string;
8
- }) => boolean;
9
- };
10
- methodWrappers?: { [K in keyof T]?: (fn: T[K], ...args: T[K] extends (...args: infer P) => any ? P : never) => T[K] extends (...args: any) => infer R ? R : never; };
11
- }) => Record<string, any>;
12
- //# sourceMappingURL=classInstanceToObject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classInstanceToObject.d.ts","sourceRoot":"","sources":["../../src/lib/classInstanceToObject.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACpE,UAAU,CAAC,EACX,UAAU;IACR,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC;KACvE,CAAC;IACF,cAAc,CAAC,EAAE,GACd,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CACf,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACR,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,KACxD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GACxD,CAAC;CACH,KACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAsCpB,CAAC"}
@@ -1,48 +0,0 @@
1
- // Check if an object contains functions deeply
2
- const containsDeepFunction = (obj) => {
3
- if (obj === null || obj === undefined) {
4
- return false;
5
- }
6
- if (typeof obj === 'function') {
7
- return true;
8
- }
9
- if (typeof obj !== 'object') {
10
- return false;
11
- }
12
- if (Array.isArray(obj)) {
13
- return obj.some(item => containsDeepFunction(item));
14
- }
15
- return Object.values(obj).some(value => containsDeepFunction(value));
16
- };
17
- export const classInstanceToObject = (instance, options) => {
18
- // Handle null or undefined
19
- if (instance === null || instance === undefined) {
20
- return instance;
21
- }
22
- // Handle primitive values
23
- if (typeof instance !== 'object' || instance instanceof Date) {
24
- return instance;
25
- }
26
- // Handle arrays
27
- if (Array.isArray(instance)) {
28
- return instance.map(item => classInstanceToObject(item, options));
29
- }
30
- // Handle objects
31
- const obj = {};
32
- // Get all own properties (data properties, not methods)
33
- Object.keys(instance).forEach(key => {
34
- const value = instance[key];
35
- // Skip functions directly
36
- if (typeof value === 'function') {
37
- return;
38
- }
39
- // Skip properties that contain functions deeply
40
- if (typeof value === 'object' && value !== null && containsDeepFunction(value)) {
41
- return;
42
- }
43
- // Recursively convert nested objects
44
- obj[key] = classInstanceToObject(value, options);
45
- });
46
- return obj;
47
- };
48
- //# sourceMappingURL=classInstanceToObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classInstanceToObject.js","sourceRoot":"","sources":["../../src/lib/classInstanceToObject.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,oBAAoB,GAAG,CAAC,GAAQ,EAAW,EAAE;IACjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAW,EACX,OAUC,EACoB,EAAE;IACvB,2BAA2B;IAC3B,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,QAAe,CAAC;IACzB,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,YAAY,IAAI,EAAE,CAAC;QAC7D,OAAO,QAAe,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAQ,CAAC;IAC3E,CAAC;IAED,iBAAiB;IACjB,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,wDAAwD;IACxD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE5B,0BAA0B;QAC1B,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}