@uniformdev/mesh-sdk 17.2.1-alpha.134 → 17.2.1-alpha.201
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/index.d.ts +167 -40
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +5 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,108 @@
|
|
|
1
|
-
|
|
1
|
+
import { RootComponentInstance, ComponentInstance, ComponentDefinition, ComponentDefinitionParameter, DataConnection, DataConnectionInfo, DataType, CompositionDataVariables } from '@uniformdev/canvas';
|
|
2
|
+
|
|
3
|
+
/** Core shared generic for a mesh location context */
|
|
4
|
+
interface MeshLocationCore<TValue = unknown, TMetadata = unknown, TSetValue = TValue, TType extends MeshLocationTypes = MeshLocationTypes> {
|
|
5
|
+
/** The current location type (where in the Uniform app the mesh app is rendering) */
|
|
6
|
+
type: TType;
|
|
7
|
+
/** If true, any editable fields on the current location should be disabled as the user does not have permission or otherwise cannot change them. */
|
|
8
|
+
isReadOnly: boolean;
|
|
9
|
+
/** @deprecated use value property instead */
|
|
10
|
+
getValue: () => TValue;
|
|
11
|
+
/** The current value of the location. Some locations have fixed types (i.e. dataType), and others have user-selected types (i.e. paramType) */
|
|
12
|
+
value: TValue;
|
|
13
|
+
/**
|
|
14
|
+
* Sets the current value of the location.
|
|
15
|
+
* All locations other than 'settings' update into a parent form state and should be updated live as changes occur in the Mesh app.
|
|
16
|
+
* The 'settings' location writes to the database each time its value is set, and it should be treated as a form with a submit button.
|
|
17
|
+
*/
|
|
18
|
+
setValue: (value: TSetValue, options?: SetValueOptions) => Promise<void>;
|
|
19
|
+
/** @deprecated use metadata property instead */
|
|
20
|
+
getMetadata: () => TMetadata;
|
|
21
|
+
/**
|
|
22
|
+
* Gets the current location metadata, context data which is provided from the Uniform app to assist in rendering the Mesh UI
|
|
23
|
+
* Each location has a specific type of metadata that it is provided, which is typed automatically when the location is known.
|
|
24
|
+
*/
|
|
25
|
+
metadata: TMetadata;
|
|
26
|
+
/**
|
|
27
|
+
* Instructs Uniform to set the validity of the location in the parent app.
|
|
28
|
+
*/
|
|
29
|
+
setValidationResult: (value: ValidationResult) => Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Context of a location when it is rendering inside a dialog in the Uniform app.
|
|
32
|
+
* This is set when:
|
|
33
|
+
* - You pop out the app using sdk.openCurrentLocationDialog() so the location is rendered in a dialog for more screen space
|
|
34
|
+
* - The current location is a named dialog that was opened from the location using sdk.openLocationDialog()
|
|
35
|
+
*
|
|
36
|
+
* This is undefined when the current location is not a dialog.
|
|
37
|
+
*/
|
|
38
|
+
dialogContext?: DialogContext & {
|
|
39
|
+
params: unknown;
|
|
40
|
+
returnDialogValue: (value: unknown) => Promise<void>;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Known location types that can be passed to a mesh location
|
|
45
|
+
*/
|
|
46
|
+
declare type MeshLocationTypes = 'paramType' | 'paramTypeConfig' | 'settings' | 'dataConnection' | 'dataType' | 'dataTypeInstance';
|
|
47
|
+
declare type SetValueOptions = ValidationResult;
|
|
48
|
+
|
|
49
|
+
declare type ParamTypeLocationMetadata<TParamConfiguration = unknown, TIntegrationConfiguration = unknown> = {
|
|
50
|
+
rootNode: Omit<RootComponentInstance, 'slots' | '_data'>;
|
|
51
|
+
parameterConfiguration: TParamConfiguration;
|
|
52
|
+
component: Omit<ComponentInstance, 'slots' | '_parameters' | '_id'>;
|
|
53
|
+
componentDefinitions: Record<string, ComponentDefinition | undefined>;
|
|
54
|
+
parameterDefinition: ComponentDefinitionParameter;
|
|
55
|
+
settings: TIntegrationConfiguration;
|
|
56
|
+
projectId: string;
|
|
57
|
+
};
|
|
58
|
+
declare type ParamTypeLocation<TParamValue = unknown, TParamConfiguration = unknown, TParamSetValue = TParamValue, TIntegrationConfiguration = unknown> = MeshLocationCore<TParamValue, ParamTypeLocationMetadata<TParamConfiguration, TIntegrationConfiguration>, TParamSetValue, 'paramType'>;
|
|
59
|
+
|
|
60
|
+
declare type ParamTypeConfigLocationMetadata<TIntegrationConfiguration = unknown> = {
|
|
61
|
+
settings: TIntegrationConfiguration;
|
|
62
|
+
projectId: string;
|
|
63
|
+
};
|
|
64
|
+
declare type ParamTypeConfigLocation<TParamValue = unknown, TIntegrationConfiguration = unknown> = MeshLocationCore<TParamValue | undefined, ParamTypeConfigLocationMetadata<TIntegrationConfiguration>, TParamValue, 'paramTypeConfig'>;
|
|
65
|
+
|
|
66
|
+
declare type SettingsLocation<TSettingsType> = MeshLocationCore<TSettingsType, undefined, TSettingsType, 'settings'>;
|
|
67
|
+
|
|
68
|
+
declare type DataConnectionLocationValue = Pick<DataConnection, 'baseUrl' | 'custom' | 'headers' | 'parameters' | 'variables'>;
|
|
69
|
+
declare type DataConnectionLocationMetadata<TIntegrationConfiguration = unknown> = {
|
|
70
|
+
settings: TIntegrationConfiguration;
|
|
71
|
+
projectId: string;
|
|
72
|
+
};
|
|
73
|
+
declare type DataConnectionLocation = MeshLocationCore<DataConnectionLocationValue, DataConnectionLocationMetadata, DataConnectionLocationValue, 'dataConnection'>;
|
|
74
|
+
|
|
75
|
+
declare type DataTypeValue = Pick<DataType, 'body' | 'method' | 'path' | 'custom' | 'headers' | 'parameters' | 'variables'>;
|
|
76
|
+
declare type DataConnectorInfo = {
|
|
77
|
+
type: string;
|
|
78
|
+
displayName: string;
|
|
79
|
+
installedIntegrationId: string;
|
|
80
|
+
};
|
|
81
|
+
declare type DataTypeLocationMetadata<TIntegrationConfiguration = unknown> = {
|
|
82
|
+
settings: TIntegrationConfiguration;
|
|
83
|
+
projectId: string;
|
|
84
|
+
dataConnection: DataConnectionInfo;
|
|
85
|
+
dataConnector: DataConnectorInfo;
|
|
86
|
+
};
|
|
87
|
+
declare type DataTypeLocation = MeshLocationCore<DataTypeValue, DataTypeLocationMetadata, DataTypeValue, 'dataType'>;
|
|
88
|
+
|
|
89
|
+
declare type DataTypeInstanceLocationMetadata<TIntegrationConfiguration = unknown> = {
|
|
90
|
+
settings: TIntegrationConfiguration;
|
|
91
|
+
dataType: DataType;
|
|
92
|
+
dataConnector: DataConnectorInfo;
|
|
93
|
+
projectId: string;
|
|
94
|
+
};
|
|
95
|
+
declare type DataTypeInstanceLocation = MeshLocationCore<CompositionDataVariables, DataTypeInstanceLocationMetadata, CompositionDataVariables, 'dataTypeInstance'>;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Defines methods used for interacting with a Mesh location
|
|
99
|
+
* To receive useful typings, check the `type` property of the location to narrow the typing.
|
|
100
|
+
*/
|
|
101
|
+
declare type MeshLocation<TValue = unknown, TSetValue = TValue> = ParamTypeLocation<TValue, unknown, TSetValue> | ParamTypeConfigLocation<TValue> | SettingsLocation<TValue> | DataConnectionLocation | DataTypeLocation | DataTypeInstanceLocation;
|
|
102
|
+
interface MeshContextData {
|
|
2
103
|
locationKey: string;
|
|
104
|
+
locationType: MeshLocationTypes;
|
|
105
|
+
isReadOnly: boolean;
|
|
3
106
|
locationValue: any;
|
|
4
107
|
locationMetadata: any;
|
|
5
108
|
uniformApiVersion: string;
|
|
@@ -7,6 +110,7 @@ interface ContextData {
|
|
|
7
110
|
}
|
|
8
111
|
interface DialogContext {
|
|
9
112
|
dialogId: string;
|
|
113
|
+
dialogLocation?: string;
|
|
10
114
|
contentHeight?: CSSHeight;
|
|
11
115
|
}
|
|
12
116
|
interface DialogResponseHandlers {
|
|
@@ -22,7 +126,17 @@ interface DialogResponseData {
|
|
|
22
126
|
error?: string;
|
|
23
127
|
}
|
|
24
128
|
declare type DialogType = 'location' | 'confirm';
|
|
25
|
-
|
|
129
|
+
declare type OpenDialogResult = {
|
|
130
|
+
/** Unique ID of this dialog which can be used to close it */
|
|
131
|
+
dialogId: string;
|
|
132
|
+
/**
|
|
133
|
+
* For custom location based dialogs, this is the name of the location from the Mesh app manifest.
|
|
134
|
+
* e.g. if you define a dialog location in the manifestunder locations.settings.locations.fooFooFoo,
|
|
135
|
+
* this would be 'fooFooFoo'
|
|
136
|
+
*/
|
|
137
|
+
dialogLocation?: string;
|
|
138
|
+
};
|
|
139
|
+
interface DialogOptions<TDialogParams = DialogParams> {
|
|
26
140
|
/**
|
|
27
141
|
* By default, dialogs will be closed when they set a value.
|
|
28
142
|
* You can disable this behavior by setting the `disableCloseDialogOnSetValue`
|
|
@@ -41,7 +155,7 @@ interface DialogOptions {
|
|
|
41
155
|
* Parameters should be simple (serializable) types, not functions or DOM
|
|
42
156
|
* elements or similar non-serializable objects.
|
|
43
157
|
*/
|
|
44
|
-
params?:
|
|
158
|
+
params?: TDialogParams;
|
|
45
159
|
/**
|
|
46
160
|
* Allows you to specify the height of the dialog content upon open. Note: the
|
|
47
161
|
* dialog itself will always be full height to match the Uniform dashboard UI.
|
|
@@ -61,7 +175,6 @@ declare type DialogParams = {
|
|
|
61
175
|
[paramName: string]: DialogParamValue;
|
|
62
176
|
};
|
|
63
177
|
declare type CSSHeight = '-moz-initial' | 'inherit' | 'initial' | 'revert' | 'unset' | '-moz-max-content' | '-moz-min-content' | '-webkit-fit-content' | 'auto' | 'fit-content' | 'max-content' | 'min-content' | `${number}${'px' | 'em' | 'rem' | 'vh'}`;
|
|
64
|
-
declare type SetValueOptions = Pick<ValidationResult, 'isValid' | 'validationMessage'>;
|
|
65
178
|
interface ValidationResult {
|
|
66
179
|
isValid?: boolean;
|
|
67
180
|
validationMessage?: string;
|
|
@@ -84,33 +197,30 @@ interface SdkWindow {
|
|
|
84
197
|
updateHeight: (height: CSSHeight) => void;
|
|
85
198
|
}
|
|
86
199
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
closeCurrentLocationDialog(): Promise<void>;
|
|
112
|
-
dialogContext?: DialogContext;
|
|
113
|
-
}
|
|
200
|
+
declare type OpenLocationDialogOptions<TDialogParams> = {
|
|
201
|
+
/**
|
|
202
|
+
* Name of the location key in the Mesh App definition (stored on uniform.app) to open in a dialog.
|
|
203
|
+
* For example if the current location is integration settings, this would be an object key on:
|
|
204
|
+
* locations.settings.locations.<thisKey>
|
|
205
|
+
* and the URL to the dialog would be in
|
|
206
|
+
* locations.settings.locations.<thisKey>.url.
|
|
207
|
+
*/
|
|
208
|
+
locationKey: string;
|
|
209
|
+
options?: DialogOptions<TDialogParams>;
|
|
210
|
+
};
|
|
211
|
+
declare type OpenConfirmationDialogOptions = {
|
|
212
|
+
titleText: string;
|
|
213
|
+
bodyText: string;
|
|
214
|
+
options?: Omit<DialogOptions<void>, 'disableCloseDialogOnSetValue' | 'params'>;
|
|
215
|
+
};
|
|
216
|
+
declare type OpenConfirmationDialogResult = {
|
|
217
|
+
value: 'confirm' | 'cancel';
|
|
218
|
+
closeDialog: () => Promise<void>;
|
|
219
|
+
};
|
|
220
|
+
declare type CloseLocationDialogOptions = {
|
|
221
|
+
/** Id of the dialog to close. If no dialog with the given id exists, nothing will happen. */
|
|
222
|
+
dialogId: string;
|
|
223
|
+
};
|
|
114
224
|
interface LocationDialogResponse<TDialogValue> {
|
|
115
225
|
/** Generated id for the dialog. */
|
|
116
226
|
dialogId: string;
|
|
@@ -120,18 +230,35 @@ interface LocationDialogResponse<TDialogValue> {
|
|
|
120
230
|
* Typically used when `closeDialogOnSetValue` is false. */
|
|
121
231
|
closeDialog: () => Promise<void>;
|
|
122
232
|
}
|
|
233
|
+
interface UniformMeshSDK {
|
|
234
|
+
/** Gets the current location that the Mesh App is being displayed on. */
|
|
235
|
+
getCurrentLocation: <TValue = unknown, TSetValue = unknown>() => MeshLocation<TValue, TSetValue>;
|
|
236
|
+
/** The current `window` object being used for the SDK */
|
|
237
|
+
currentWindow: SdkWindow | undefined;
|
|
238
|
+
/** The version of the Mesh framework being used */
|
|
239
|
+
version: string;
|
|
240
|
+
/** Opens a dialog in the Uniform app with the URL set to a specific named dialog registered for the current location in the Mesh app manifest */
|
|
241
|
+
openLocationDialog: <TExpectedDialogResult = unknown, TDialogParams = void>(options: OpenLocationDialogOptions<TDialogParams>) => Promise<LocationDialogResponse<TExpectedDialogResult> | undefined>;
|
|
242
|
+
/** Explicitly close a location dialog. Called within the dialog. */
|
|
243
|
+
closeLocationDialog: (options: CloseLocationDialogOptions) => Promise<void>;
|
|
244
|
+
/** Opens a confirmation dialog to get a confirm/cancel question answered. Does not require any registration with the Mesh app manifest. */
|
|
245
|
+
openConfirmationDialog(options: OpenConfirmationDialogOptions): Promise<OpenConfirmationDialogResult | undefined>;
|
|
246
|
+
/** Opens the current location within a dialog, enabling to to break out of the layout it was loaded in. */
|
|
247
|
+
openCurrentLocationDialog<TLocationType extends MeshLocation['type'], TLocationSetValue = unknown, TDialogParams = void>(options?: {
|
|
248
|
+
options?: DialogOptions<TDialogParams>;
|
|
249
|
+
}): Promise<LocationDialogResponse<Parameters<Extract<MeshLocation<TLocationSetValue, TLocationSetValue>, {
|
|
250
|
+
type: TLocationType;
|
|
251
|
+
}>['setValue']>[0]> | undefined>;
|
|
252
|
+
/** Explicitly close a location dialog. Called when rendering current location in the dialog. */
|
|
253
|
+
closeCurrentLocationDialog(): Promise<void>;
|
|
254
|
+
/** @deprecated prefer getCurrentLocation().dialogContext */
|
|
255
|
+
dialogContext?: DialogContext;
|
|
256
|
+
}
|
|
123
257
|
declare global {
|
|
124
258
|
interface Window {
|
|
125
|
-
UniformMeshSDK: UniformMeshSDK;
|
|
259
|
+
UniformMeshSDK: UniformMeshSDK | undefined;
|
|
126
260
|
}
|
|
127
261
|
}
|
|
128
|
-
/** Defines methods used for interacting with a Mesh location */
|
|
129
|
-
interface MeshLocation<TValue = unknown, TMetadata = unknown, TSetValue = TValue> {
|
|
130
|
-
getValue: () => TValue;
|
|
131
|
-
setValue: (value: TSetValue, options?: SetValueOptions) => Promise<void>;
|
|
132
|
-
getMetadata: () => TMetadata;
|
|
133
|
-
setValidationResult: (value: ValidationResult) => Promise<void>;
|
|
134
|
-
}
|
|
135
262
|
/**
|
|
136
263
|
* Initializes the Uniform Mesh SDK. Intended to be called (and awaited) prior to any
|
|
137
264
|
* attempted interaction with the Uniform Mesh SDK.
|
|
@@ -140,4 +267,4 @@ declare function initializeUniformMeshSDK({ autoResizingDisabled, }?: {
|
|
|
140
267
|
autoResizingDisabled?: boolean;
|
|
141
268
|
}): Promise<UniformMeshSDK | undefined>;
|
|
142
269
|
|
|
143
|
-
export { CSSHeight,
|
|
270
|
+
export { CSSHeight, CloseLocationDialogOptions, DataConnectionLocation, DataConnectionLocationMetadata, DataConnectionLocationValue, DataConnectorInfo, DataTypeInstanceLocation, DataTypeInstanceLocationMetadata, DataTypeLocation, DataTypeLocationMetadata, DialogContext, DialogOptions, DialogParamValue, DialogParams, DialogResponseData, DialogResponseHandler, DialogResponseHandlers, DialogType, LocationDialogResponse, MeshContextData, MeshLocation, MeshLocationCore, MeshLocationTypes, OpenConfirmationDialogOptions, OpenConfirmationDialogResult, OpenDialogResult, OpenLocationDialogOptions, ParamTypeConfigLocation, ParamTypeConfigLocationMetadata, ParamTypeLocation, ParamTypeLocationMetadata, SdkWindow, SetValueOptions, SettingsLocation, UniformMeshSDK, ValidationResult, initializeUniformMeshSDK };
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var S=(n,e)=>e?{log(o,...t){return console.log(`${n}: ${o}`,...t)},error(o,...t){return console.error(`${n}: ${o}`,...t)}}:{log(){},error(){}};var
|
|
1
|
+
var S=(n,e)=>e?{log(o,...t){return console.log(`${n}: ${o}`,...t)},error(o,...t){return console.error(`${n}: ${o}`,...t)}}:{log(){},error(){}};var T=5e3;var d=class extends Error{constructor(){super("Request timed out"),Object.setPrototypeOf(this,d.prototype),this.name="RequestTimeoutError"}},c=class extends Error{constructor(){super("Client destroyed"),Object.setPrototypeOf(this,c.prototype),this.name="ClientDestroyedError"}};var E=()=>{let n=()=>{},e=()=>{},o=new Promise((t,i)=>{n=t,e=i});return{resolve:n,reject:e,promise:o}},p=(n=16)=>[...Array(n)].map(()=>(~~(Math.random()*36)).toString(36)).join(""),u=(n,e)=>{let{[e]:o,...t}=n;return t},L=n=>({message:n.message,name:n.name,stack:n.stack}),V=({name:n,message:e,stack:o})=>{switch(n){case d.name:return new d;default:{let t=new Error(e);return t.name=n,t.stack=o,t}}},D=n=>{let e=n.data,o="none";return e instanceof Error&&(o="error",e=L(e)),{...n,serialization:o,data:e}},b=n=>n.serialization==="error"?{...n,data:V(n.data)}:n;var h=class{constructor({debug:e=!1,requestTimeout:o=T}={}){this.debug=e,this.requestTimeout=o,this.channel=E(),this.eventSubscriptions={},this.responseSubscriptions={},this.requestSubscriptions={},this.onDestroyRequestHandlers={},this.destroyed=!1,this.logger=this.getLogger(),this.getChannel().then(()=>{this.logger.log("Secure parent <-> child channel established")}).catch(t=>{this.logger.log(t)})}async send(e,o){return this.postMessage("event",e,o)}on(e,o){this.eventSubscriptions[e]||(this.eventSubscriptions[e]={});let t=p(8);return this.eventSubscriptions[e][t]=o,this.logger.log(`Registered handler for event "${e}"`),()=>{this.eventSubscriptions[e]=u(this.eventSubscriptions[e],t),this.logger.log(`Unsubscribed handler for event ${e}`)}}async request(e,o,t={}){let a=(await this.postMessage("request",e,o)).id,s=()=>{this.responseSubscriptions=u(this.responseSubscriptions,a)},r=()=>{this.onDestroyRequestHandlers=u(this.responseSubscriptions,a)};return new Promise((l,g)=>{let y,x=(R,C)=>{clearTimeout(y),s(),r(),C.type==="error_response"?g(R):l(R)},O=()=>{clearTimeout(y),g(new c)};this.responseSubscriptions[a]=x,this.onDestroyRequestHandlers[a]=O,y=setTimeout(()=>{s(),r(),g(new d)},t.timeout||this.requestTimeout)})}onRequest(e,o){let t=async(i,a)=>{try{let s=await o(i,a);this.postMessage("response",e,s,a.id)}catch(s){this.postMessage("error_response",e,s,a.id)}};return this.requestSubscriptions[e]=t,()=>{this.requestSubscriptions=u(this.requestSubscriptions,e)}}async getChannel(){if(await this.channel.promise,this.destroyed)throw new c;return this.channel.promise}async messageListener(e){try{await this.getChannel();let o=this.isValidMessage(e),t=b(e.data);if(o)switch(t.type){case"event":{this.handleEvent(t);break}case"request":{this.handleRequest(t);break}case"error_response":case"response":{this.handleResponse(t);break}}else this.logger.error("Invalid message format. Skipping.")}catch(o){this.logger.error(o)}}handleEvent(e){let o=this.eventSubscriptions[e.key];o&&Object.values(o).forEach(t=>t(e.data,e))}handleRequest(e){let o=this.requestSubscriptions[e.key];o&&(o(e.data,e),this.logger.log(`Handled request type ${e.key}`))}handleResponse(e){let o=e.requestId,t=o&&this.responseSubscriptions[o];t&&t(e.data,e)}async postMessage(e,o,t,i){let{port:a}=await this.getChannel();if(this.destroyed)throw new c;let s=D({type:e,apiVersion:"framepost/v1",key:o,data:t,id:p(),requestId:i});return this.logger.log("posting message from child to parent",s),a.postMessage(s),s}initListener(e){this.isInitMessage(e)?(this.onChannelInit(e),this.messagePort&&(this.messagePort.onmessage=this.messageListener.bind(this)),this.resolveChannel(e)):this.logger.error("Invalid message format. Skipping.")}isValidMessage(e){let o=e.data;return o.type&&o.id&&o.apiVersion==="framepost/v1"}isInitMessage(e){return this.isValidMessage(e)&&e.data.type==="channel_init"}resolveChannel(e){if(this.messagePort){let o={port:this.messagePort,origin:e.origin,context:e.data.data};this.channel.resolve(o)}}getInitMessage(e){return D({type:"channel_init",apiVersion:"framepost/v1",key:"",data:e,id:p()})}destroy(){this.destroyed=!0,this.channel.reject(new c),this.messagePort&&this.messagePort.close(),Object.values(this.onDestroyRequestHandlers).forEach(e=>e())}};var m=class extends h{constructor(o={}){super(o);this.context=o.context||null,this.initListener=this.initListener.bind(this),window.addEventListener("message",this.initListener)}getLogger(){return S("child-client",this.debug)}onChannelInit(o){window.removeEventListener("message",this.initListener),this.messagePort=o.ports[0];let t=this.getInitMessage(this.context);this.logger.log("channel init, posting init message from child to parent",t),this.messagePort.postMessage(t)}destroy(){super.destroy(),window.removeEventListener("message",this.initListener)}};async function v({dialogResponseHandlers:n}){let e=new m({debug:!1});window.parent.postMessage("parents just don't understand","*");let o=await e.request("initialize");return e.onRequest("dialog-value",async t=>{let i=n[t.dialogId];!i||(t.value?i.resolve({value:t.value,dialogId:t.dialogId}):t.error&&i.reject(t.error),delete n[t.dialogId])}),{initData:o,parent:{resize:async t=>{e.request("resize",{height:t})},getValue:async()=>{let t=await e.request("getValue");return t==null?void 0:t.data},setValue:async(t,i)=>{await e.request("setValue",{uniformMeshLocationValue:t,options:i})},setValidationResult:async t=>{await e.request("setValidationResult",{value:t})},getMetadata:async()=>{let t=await e.request("getMetadata");return t==null?void 0:t.data},openDialog:async({dialogType:t,data:i,options:a})=>{if(P(a==null?void 0:a.params)>1e5)throw new Error("Dialog parameters object is too large, maximum size is 100KB");let s=await e.request("openDialog",{dialogType:t,dialogData:i,options:a}),r=s==null?void 0:s.dialogId;if(!!r)return new Promise((l,g)=>{n[r]={resolve:l,reject:g}})},closeDialog:async({dialogId:t,dialogType:i,dialogData:a})=>{await e.request("closeDialog",{dialogId:t,dialogType:i,dialogData:a})}}}}function P(n){if(!n||typeof Blob=="undefined")return 0;try{let e=JSON.stringify(n);return new Blob([e]).size}catch(e){throw new Error("Error calculating object size: "+e.message)}}var f,M=({onHeightChange:n,autoResizingDisabled:e})=>{if(typeof window=="undefined")return;let o=window,t=r=>{if(r&&r!==f){f=r,n==null||n(r);return}let l=`${Math.ceil(o.document.documentElement.getBoundingClientRect().height)}px`;l!==f&&(f=l,n==null||n(l))},i=()=>{t()},a=e?void 0:new MutationObserver(i),s={instance:o,height:o.document.documentElement.getBoundingClientRect().height,observer:a,enableAutoResizing:()=>{a==null||a.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}),o.addEventListener("resize",i)},disableAutoResizing:()=>{a==null||a.disconnect(),o.removeEventListener("resize",i)},updateHeight:t};return e||s.enableAutoResizing(),s};var k={},w=!1;async function te({autoResizingDisabled:n}={}){var e;if(typeof window!="undefined"&&typeof window.UniformMeshSDK=="undefined"&&!w){if(typeof window.parent=="undefined"||window.parent==window)throw new Error("It appears you are trying to connect with the Uniform Mesh SDK outside of an iframe. Be sure you are loading your app via a location URL configured in the Uniform dashboard.");w=!0;let o=await v({dialogResponseHandlers:k}),{initData:t,parent:i}=o,a={getCurrentLocation:()=>({type:t.locationType,isReadOnly:t.isReadOnly,getValue:()=>t.locationValue,value:t.locationValue,setValue:async(r,l)=>{t.dialogContext&&console.warn("Using setValue() inside a dialog is deprecated. Use dialogContext.returnDialogValue() instead."),await i.setValue(r,l),t.locationValue=r},getMetadata:()=>t.locationMetadata,metadata:t.locationMetadata,setValidationResult:async r=>{await i.setValidationResult(r)},dialogContext:t.dialogContext?{...t.dialogContext,params:t.locationMetadata.dialogParams,returnDialogValue:async r=>{await i.setValue(r),t.locationValue=r}}:void 0}),currentWindow:M({onHeightChange:s=>{i.resize(s)},autoResizingDisabled:(e=t.dialogContext)!=null&&e.contentHeight?!0:n}),version:t.uniformApiVersion,openLocationDialog:async({locationKey:s,options:r})=>{let l=await i.openDialog({dialogType:"location",data:{locationKey:s},options:r});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:l.dialogId,dialogType:"location"})}}},async closeLocationDialog({dialogId:s}){await i.closeDialog({dialogId:s,dialogType:"location"})},openConfirmationDialog:async({titleText:s,bodyText:r})=>{let l=await i.openDialog({dialogType:"confirm",data:{titleText:s,bodyText:r}});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"confirm"})}}},openCurrentLocationDialog:async s=>{let r=await i.openDialog({dialogType:"location",data:{},options:s==null?void 0:s.options});if(!!r)return{dialogId:r.dialogId,value:r.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})}}},closeCurrentLocationDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})},dialogContext:t.dialogContext};return window.UniformMeshSDK=a,w=!1,a}}export{te as initializeUniformMeshSDK};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var D=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var I=(n,e)=>{for(var o in e)D(n,o,{get:e[o],enumerable:!0})},q=(n,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of P(e))!k.call(n,i)&&i!==o&&D(n,i,{get:()=>e[i],enumerable:!(t=V(e,i))||t.enumerable});return n};var z=n=>q(D({},"__esModule",{value:!0}),n);var A={};I(A,{initializeUniformMeshSDK:()=>Q});module.exports=z(A);var T=(n,e)=>e?{log(o,...t){return console.log(`${n}: ${o}`,...t)},error(o,...t){return console.error(`${n}: ${o}`,...t)}}:{log(){},error(){}};var E=5e3;var d=class extends Error{constructor(){super("Request timed out"),Object.setPrototypeOf(this,d.prototype),this.name="RequestTimeoutError"}},c=class extends Error{constructor(){super("Client destroyed"),Object.setPrototypeOf(this,c.prototype),this.name="ClientDestroyedError"}};var b=()=>{let n=()=>{},e=()=>{},o=new Promise((t,i)=>{n=t,e=i});return{resolve:n,reject:e,promise:o}},p=(n=16)=>[...Array(n)].map(()=>(~~(Math.random()*36)).toString(36)).join(""),u=(n,e)=>{let{[e]:o,...t}=n;return t},H=n=>({message:n.message,name:n.name,stack:n.stack}),N=({name:n,message:e,stack:o})=>{switch(n){case d.name:return new d;default:{let t=new Error(e);return t.name=n,t.stack=o,t}}},w=n=>{let e=n.data,o="none";return e instanceof Error&&(o="error",e=H(e)),{...n,serialization:o,data:e}},v=n=>n.serialization==="error"?{...n,data:N(n.data)}:n;var h=class{constructor({debug:e=!1,requestTimeout:o=E}={}){this.debug=e,this.requestTimeout=o,this.channel=b(),this.eventSubscriptions={},this.responseSubscriptions={},this.requestSubscriptions={},this.onDestroyRequestHandlers={},this.destroyed=!1,this.logger=this.getLogger(),this.getChannel().then(()=>{this.logger.log("Secure parent <-> child channel established")}).catch(t=>{this.logger.log(t)})}async send(e,o){return this.postMessage("event",e,o)}on(e,o){this.eventSubscriptions[e]||(this.eventSubscriptions[e]={});let t=p(8);return this.eventSubscriptions[e][t]=o,this.logger.log(`Registered handler for event "${e}"`),()=>{this.eventSubscriptions[e]=u(this.eventSubscriptions[e],t),this.logger.log(`Unsubscribed handler for event ${e}`)}}async request(e,o,t={}){let a=(await this.postMessage("request",e,o)).id,s=()=>{this.responseSubscriptions=u(this.responseSubscriptions,a)},r=()=>{this.onDestroyRequestHandlers=u(this.responseSubscriptions,a)};return new Promise((l,g)=>{let y,O=(S,L)=>{clearTimeout(y),s(),r(),L.type==="error_response"?g(S):l(S)},C=()=>{clearTimeout(y),g(new c)};this.responseSubscriptions[a]=O,this.onDestroyRequestHandlers[a]=C,y=setTimeout(()=>{s(),r(),g(new d)},t.timeout||this.requestTimeout)})}onRequest(e,o){let t=async(i,a)=>{try{let s=await o(i,a);this.postMessage("response",e,s,a.id)}catch(s){this.postMessage("error_response",e,s,a.id)}};return this.requestSubscriptions[e]=t,()=>{this.requestSubscriptions=u(this.requestSubscriptions,e)}}async getChannel(){if(await this.channel.promise,this.destroyed)throw new c;return this.channel.promise}async messageListener(e){try{await this.getChannel();let o=this.isValidMessage(e),t=v(e.data);if(o)switch(t.type){case"event":{this.handleEvent(t);break}case"request":{this.handleRequest(t);break}case"error_response":case"response":{this.handleResponse(t);break}}else this.logger.error("Invalid message format. Skipping.")}catch(o){this.logger.error(o)}}handleEvent(e){let o=this.eventSubscriptions[e.key];o&&Object.values(o).forEach(t=>t(e.data,e))}handleRequest(e){let o=this.requestSubscriptions[e.key];o&&(o(e.data,e),this.logger.log(`Handled request type ${e.key}`))}handleResponse(e){let o=e.requestId,t=o&&this.responseSubscriptions[o];t&&t(e.data,e)}async postMessage(e,o,t,i){let{port:a}=await this.getChannel();if(this.destroyed)throw new c;let s=w({type:e,apiVersion:"framepost/v1",key:o,data:t,id:p(),requestId:i});return this.logger.log("posting message from child to parent",s),a.postMessage(s),s}initListener(e){this.isInitMessage(e)?(this.onChannelInit(e),this.messagePort&&(this.messagePort.onmessage=this.messageListener.bind(this)),this.resolveChannel(e)):this.logger.error("Invalid message format. Skipping.")}isValidMessage(e){let o=e.data;return o.type&&o.id&&o.apiVersion==="framepost/v1"}isInitMessage(e){return this.isValidMessage(e)&&e.data.type==="channel_init"}resolveChannel(e){if(this.messagePort){let o={port:this.messagePort,origin:e.origin,context:e.data.data};this.channel.resolve(o)}}getInitMessage(e){return w({type:"channel_init",apiVersion:"framepost/v1",key:"",data:e,id:p()})}destroy(){this.destroyed=!0,this.channel.reject(new c),this.messagePort&&this.messagePort.close(),Object.values(this.onDestroyRequestHandlers).forEach(e=>e())}};var m=class extends h{constructor(o={}){super(o);this.context=o.context||null,this.initListener=this.initListener.bind(this),window.addEventListener("message",this.initListener)}getLogger(){return T("child-client",this.debug)}onChannelInit(o){window.removeEventListener("message",this.initListener),this.messagePort=o.ports[0];let t=this.getInitMessage(this.context);this.logger.log("channel init, posting init message from child to parent",t),this.messagePort.postMessage(t)}destroy(){super.destroy(),window.removeEventListener("message",this.initListener)}};async function M({dialogResponseHandlers:n}){let e=new m({debug:!1});window.parent.postMessage("parents just don't understand","*");let o=await e.request("initialize");return e.onRequest("dialog-value",async t=>{let i=n[t.dialogId];!i||(t.value?i.resolve({value:t.value,dialogId:t.dialogId}):t.error&&i.reject(t.error),delete n[t.dialogId])}),{initData:o,parent:{resize:async t=>{e.request("resize",{height:t})},getValue:async()=>{let t=await e.request("getValue");return t==null?void 0:t.data},setValue:async(t,i)=>{await e.request("setValue",{uniformMeshLocationValue:t,options:i})},setValidationResult:async t=>{await e.request("setValidationResult",{value:t})},getMetadata:async()=>{let t=await e.request("getMetadata");return t==null?void 0:t.data},openDialog:async({dialogType:t,data:i,options:a})=>{if(U(a==null?void 0:a.params)>1e5)throw new Error("Dialog parameters object is too large, maximum size is 100KB");let s=await e.request("openDialog",{dialogType:t,dialogData:i,options:a}),r=s==null?void 0:s.dialogId;if(!!r)return new Promise((l,g)=>{n[r]={resolve:l,reject:g}})},closeDialog:async({dialogId:t,dialogType:i,dialogData:a})=>{await e.request("closeDialog",{dialogId:t,dialogType:i,dialogData:a})}}}}function U(n){if(!n||typeof Blob=="undefined")return 0;try{let e=JSON.stringify(n);return new Blob([e]).size}catch(e){throw new Error("Error calculating object size: "+e.message)}}var f,x=({onHeightChange:n,autoResizingDisabled:e})=>{if(typeof window=="undefined")return;let o=window,t=r=>{if(r&&r!==f){f=r,n==null||n(r);return}let l=`${Math.ceil(o.document.documentElement.getBoundingClientRect().height)}px`;l!==f&&(f=l,n==null||n(l))},i=()=>{t()},a=e?void 0:new MutationObserver(i),s={instance:o,height:o.document.documentElement.getBoundingClientRect().height,observer:a,enableAutoResizing:()=>{a==null||a.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}),o.addEventListener("resize",i)},disableAutoResizing:()=>{a==null||a.disconnect(),o.removeEventListener("resize",i)},updateHeight:t};return e||s.enableAutoResizing(),s};var W={},R=!1;async function Q({autoResizingDisabled:n}={}){var e;if(typeof window!="undefined"&&typeof window.UniformMeshSDK=="undefined"&&!R){if(typeof window.parent=="undefined"||window.parent==window)throw new Error("It appears you are trying to connect with the Uniform Mesh SDK outside of an iframe. Be sure you are loading your app via a location URL configured in the Uniform dashboard.");R=!0;let o=await M({dialogResponseHandlers:W}),{initData:t,parent:i}=o,a={getCurrentLocation:()=>({type:t.locationType,isReadOnly:t.isReadOnly,getValue:()=>t.locationValue,value:t.locationValue,setValue:async(r,l)=>{t.dialogContext&&console.warn("Using setValue() inside a dialog is deprecated. Use dialogContext.returnDialogValue() instead."),await i.setValue(r,l),t.locationValue=r},getMetadata:()=>t.locationMetadata,metadata:t.locationMetadata,setValidationResult:async r=>{await i.setValidationResult(r)},dialogContext:t.dialogContext?{...t.dialogContext,params:t.locationMetadata.dialogParams,returnDialogValue:async r=>{await i.setValue(r),t.locationValue=r}}:void 0}),currentWindow:x({onHeightChange:s=>{i.resize(s)},autoResizingDisabled:(e=t.dialogContext)!=null&&e.contentHeight?!0:n}),version:t.uniformApiVersion,openLocationDialog:async({locationKey:s,options:r})=>{let l=await i.openDialog({dialogType:"location",data:{locationKey:s},options:r});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:l.dialogId,dialogType:"location"})}}},async closeLocationDialog({dialogId:s}){await i.closeDialog({dialogId:s,dialogType:"location"})},openConfirmationDialog:async({titleText:s,bodyText:r})=>{let l=await i.openDialog({dialogType:"confirm",data:{titleText:s,bodyText:r}});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"confirm"})}}},openCurrentLocationDialog:async s=>{let r=await i.openDialog({dialogType:"location",data:{},options:s==null?void 0:s.options});if(!!r)return{dialogId:r.dialogId,value:r.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})}}},closeCurrentLocationDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})},dialogContext:t.dialogContext};return window.UniformMeshSDK=a,R=!1,a}}0&&(module.exports={initializeUniformMeshSDK});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var S=(n,e)=>e?{log(o,...t){return console.log(`${n}: ${o}`,...t)},error(o,...t){return console.error(`${n}: ${o}`,...t)}}:{log(){},error(){}};var
|
|
1
|
+
var S=(n,e)=>e?{log(o,...t){return console.log(`${n}: ${o}`,...t)},error(o,...t){return console.error(`${n}: ${o}`,...t)}}:{log(){},error(){}};var T=5e3;var d=class extends Error{constructor(){super("Request timed out"),Object.setPrototypeOf(this,d.prototype),this.name="RequestTimeoutError"}},c=class extends Error{constructor(){super("Client destroyed"),Object.setPrototypeOf(this,c.prototype),this.name="ClientDestroyedError"}};var E=()=>{let n=()=>{},e=()=>{},o=new Promise((t,i)=>{n=t,e=i});return{resolve:n,reject:e,promise:o}},p=(n=16)=>[...Array(n)].map(()=>(~~(Math.random()*36)).toString(36)).join(""),u=(n,e)=>{let{[e]:o,...t}=n;return t},L=n=>({message:n.message,name:n.name,stack:n.stack}),V=({name:n,message:e,stack:o})=>{switch(n){case d.name:return new d;default:{let t=new Error(e);return t.name=n,t.stack=o,t}}},D=n=>{let e=n.data,o="none";return e instanceof Error&&(o="error",e=L(e)),{...n,serialization:o,data:e}},b=n=>n.serialization==="error"?{...n,data:V(n.data)}:n;var h=class{constructor({debug:e=!1,requestTimeout:o=T}={}){this.debug=e,this.requestTimeout=o,this.channel=E(),this.eventSubscriptions={},this.responseSubscriptions={},this.requestSubscriptions={},this.onDestroyRequestHandlers={},this.destroyed=!1,this.logger=this.getLogger(),this.getChannel().then(()=>{this.logger.log("Secure parent <-> child channel established")}).catch(t=>{this.logger.log(t)})}async send(e,o){return this.postMessage("event",e,o)}on(e,o){this.eventSubscriptions[e]||(this.eventSubscriptions[e]={});let t=p(8);return this.eventSubscriptions[e][t]=o,this.logger.log(`Registered handler for event "${e}"`),()=>{this.eventSubscriptions[e]=u(this.eventSubscriptions[e],t),this.logger.log(`Unsubscribed handler for event ${e}`)}}async request(e,o,t={}){let a=(await this.postMessage("request",e,o)).id,s=()=>{this.responseSubscriptions=u(this.responseSubscriptions,a)},r=()=>{this.onDestroyRequestHandlers=u(this.responseSubscriptions,a)};return new Promise((l,g)=>{let y,x=(R,C)=>{clearTimeout(y),s(),r(),C.type==="error_response"?g(R):l(R)},O=()=>{clearTimeout(y),g(new c)};this.responseSubscriptions[a]=x,this.onDestroyRequestHandlers[a]=O,y=setTimeout(()=>{s(),r(),g(new d)},t.timeout||this.requestTimeout)})}onRequest(e,o){let t=async(i,a)=>{try{let s=await o(i,a);this.postMessage("response",e,s,a.id)}catch(s){this.postMessage("error_response",e,s,a.id)}};return this.requestSubscriptions[e]=t,()=>{this.requestSubscriptions=u(this.requestSubscriptions,e)}}async getChannel(){if(await this.channel.promise,this.destroyed)throw new c;return this.channel.promise}async messageListener(e){try{await this.getChannel();let o=this.isValidMessage(e),t=b(e.data);if(o)switch(t.type){case"event":{this.handleEvent(t);break}case"request":{this.handleRequest(t);break}case"error_response":case"response":{this.handleResponse(t);break}}else this.logger.error("Invalid message format. Skipping.")}catch(o){this.logger.error(o)}}handleEvent(e){let o=this.eventSubscriptions[e.key];o&&Object.values(o).forEach(t=>t(e.data,e))}handleRequest(e){let o=this.requestSubscriptions[e.key];o&&(o(e.data,e),this.logger.log(`Handled request type ${e.key}`))}handleResponse(e){let o=e.requestId,t=o&&this.responseSubscriptions[o];t&&t(e.data,e)}async postMessage(e,o,t,i){let{port:a}=await this.getChannel();if(this.destroyed)throw new c;let s=D({type:e,apiVersion:"framepost/v1",key:o,data:t,id:p(),requestId:i});return this.logger.log("posting message from child to parent",s),a.postMessage(s),s}initListener(e){this.isInitMessage(e)?(this.onChannelInit(e),this.messagePort&&(this.messagePort.onmessage=this.messageListener.bind(this)),this.resolveChannel(e)):this.logger.error("Invalid message format. Skipping.")}isValidMessage(e){let o=e.data;return o.type&&o.id&&o.apiVersion==="framepost/v1"}isInitMessage(e){return this.isValidMessage(e)&&e.data.type==="channel_init"}resolveChannel(e){if(this.messagePort){let o={port:this.messagePort,origin:e.origin,context:e.data.data};this.channel.resolve(o)}}getInitMessage(e){return D({type:"channel_init",apiVersion:"framepost/v1",key:"",data:e,id:p()})}destroy(){this.destroyed=!0,this.channel.reject(new c),this.messagePort&&this.messagePort.close(),Object.values(this.onDestroyRequestHandlers).forEach(e=>e())}};var m=class extends h{constructor(o={}){super(o);this.context=o.context||null,this.initListener=this.initListener.bind(this),window.addEventListener("message",this.initListener)}getLogger(){return S("child-client",this.debug)}onChannelInit(o){window.removeEventListener("message",this.initListener),this.messagePort=o.ports[0];let t=this.getInitMessage(this.context);this.logger.log("channel init, posting init message from child to parent",t),this.messagePort.postMessage(t)}destroy(){super.destroy(),window.removeEventListener("message",this.initListener)}};async function v({dialogResponseHandlers:n}){let e=new m({debug:!1});window.parent.postMessage("parents just don't understand","*");let o=await e.request("initialize");return e.onRequest("dialog-value",async t=>{let i=n[t.dialogId];!i||(t.value?i.resolve({value:t.value,dialogId:t.dialogId}):t.error&&i.reject(t.error),delete n[t.dialogId])}),{initData:o,parent:{resize:async t=>{e.request("resize",{height:t})},getValue:async()=>{let t=await e.request("getValue");return t==null?void 0:t.data},setValue:async(t,i)=>{await e.request("setValue",{uniformMeshLocationValue:t,options:i})},setValidationResult:async t=>{await e.request("setValidationResult",{value:t})},getMetadata:async()=>{let t=await e.request("getMetadata");return t==null?void 0:t.data},openDialog:async({dialogType:t,data:i,options:a})=>{if(P(a==null?void 0:a.params)>1e5)throw new Error("Dialog parameters object is too large, maximum size is 100KB");let s=await e.request("openDialog",{dialogType:t,dialogData:i,options:a}),r=s==null?void 0:s.dialogId;if(!!r)return new Promise((l,g)=>{n[r]={resolve:l,reject:g}})},closeDialog:async({dialogId:t,dialogType:i,dialogData:a})=>{await e.request("closeDialog",{dialogId:t,dialogType:i,dialogData:a})}}}}function P(n){if(!n||typeof Blob=="undefined")return 0;try{let e=JSON.stringify(n);return new Blob([e]).size}catch(e){throw new Error("Error calculating object size: "+e.message)}}var f,M=({onHeightChange:n,autoResizingDisabled:e})=>{if(typeof window=="undefined")return;let o=window,t=r=>{if(r&&r!==f){f=r,n==null||n(r);return}let l=`${Math.ceil(o.document.documentElement.getBoundingClientRect().height)}px`;l!==f&&(f=l,n==null||n(l))},i=()=>{t()},a=e?void 0:new MutationObserver(i),s={instance:o,height:o.document.documentElement.getBoundingClientRect().height,observer:a,enableAutoResizing:()=>{a==null||a.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}),o.addEventListener("resize",i)},disableAutoResizing:()=>{a==null||a.disconnect(),o.removeEventListener("resize",i)},updateHeight:t};return e||s.enableAutoResizing(),s};var k={},w=!1;async function te({autoResizingDisabled:n}={}){var e;if(typeof window!="undefined"&&typeof window.UniformMeshSDK=="undefined"&&!w){if(typeof window.parent=="undefined"||window.parent==window)throw new Error("It appears you are trying to connect with the Uniform Mesh SDK outside of an iframe. Be sure you are loading your app via a location URL configured in the Uniform dashboard.");w=!0;let o=await v({dialogResponseHandlers:k}),{initData:t,parent:i}=o,a={getCurrentLocation:()=>({type:t.locationType,isReadOnly:t.isReadOnly,getValue:()=>t.locationValue,value:t.locationValue,setValue:async(r,l)=>{t.dialogContext&&console.warn("Using setValue() inside a dialog is deprecated. Use dialogContext.returnDialogValue() instead."),await i.setValue(r,l),t.locationValue=r},getMetadata:()=>t.locationMetadata,metadata:t.locationMetadata,setValidationResult:async r=>{await i.setValidationResult(r)},dialogContext:t.dialogContext?{...t.dialogContext,params:t.locationMetadata.dialogParams,returnDialogValue:async r=>{await i.setValue(r),t.locationValue=r}}:void 0}),currentWindow:M({onHeightChange:s=>{i.resize(s)},autoResizingDisabled:(e=t.dialogContext)!=null&&e.contentHeight?!0:n}),version:t.uniformApiVersion,openLocationDialog:async({locationKey:s,options:r})=>{let l=await i.openDialog({dialogType:"location",data:{locationKey:s},options:r});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:l.dialogId,dialogType:"location"})}}},async closeLocationDialog({dialogId:s}){await i.closeDialog({dialogId:s,dialogType:"location"})},openConfirmationDialog:async({titleText:s,bodyText:r})=>{let l=await i.openDialog({dialogType:"confirm",data:{titleText:s,bodyText:r}});if(!!l)return{dialogId:l.dialogId,value:l.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"confirm"})}}},openCurrentLocationDialog:async s=>{let r=await i.openDialog({dialogType:"location",data:{},options:s==null?void 0:s.options});if(!!r)return{dialogId:r.dialogId,value:r.value,closeDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})}}},closeCurrentLocationDialog:async()=>{await i.closeDialog({dialogId:void 0,dialogType:"location"})},dialogContext:t.dialogContext};return window.UniformMeshSDK=a,w=!1,a}}export{te as initializeUniformMeshSDK};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/mesh-sdk",
|
|
3
|
-
"version": "17.2.1-alpha.
|
|
3
|
+
"version": "17.2.1-alpha.201+4882e5506",
|
|
4
4
|
"description": "Uniform Mesh Framework SDK",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,5 +28,8 @@
|
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
|
-
"
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@uniformdev/canvas": "^17.2.1-alpha.201+4882e5506"
|
|
33
|
+
},
|
|
34
|
+
"gitHead": "4882e550610b976378e7a39679f67bbebd3e023c"
|
|
32
35
|
}
|