@elliemae/microfe-common 2.0.0-next.30

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 (44) hide show
  1. package/dist/cjs/app.config.json +17 -0
  2. package/dist/cjs/common.js +16 -0
  3. package/dist/cjs/event.js +67 -0
  4. package/dist/cjs/eventManager.js +201 -0
  5. package/dist/cjs/guest.js +16 -0
  6. package/dist/cjs/index.html +12 -0
  7. package/dist/cjs/index.js +35 -0
  8. package/dist/cjs/messageType.js +37 -0
  9. package/dist/cjs/package.json +4 -0
  10. package/dist/cjs/remoting.js +386 -0
  11. package/dist/cjs/remotingEventMessage.js +16 -0
  12. package/dist/cjs/scriptingObject.js +119 -0
  13. package/dist/cjs/tests/scriptingObjects/appraisalServiceModule.js +101 -0
  14. package/dist/cjs/tests/scriptingObjects/constant.js +26 -0
  15. package/dist/cjs/tests/scriptingObjects/global.js +61 -0
  16. package/dist/esm/app.config.json +17 -0
  17. package/dist/esm/common.js +0 -0
  18. package/dist/esm/event.js +47 -0
  19. package/dist/esm/eventManager.js +182 -0
  20. package/dist/esm/guest.js +0 -0
  21. package/dist/esm/index.html +12 -0
  22. package/dist/esm/index.js +15 -0
  23. package/dist/esm/messageType.js +17 -0
  24. package/dist/esm/package.json +4 -0
  25. package/dist/esm/remoting.js +367 -0
  26. package/dist/esm/remotingEventMessage.js +0 -0
  27. package/dist/esm/scriptingObject.js +100 -0
  28. package/dist/esm/tests/scriptingObjects/appraisalServiceModule.js +82 -0
  29. package/dist/esm/tests/scriptingObjects/constant.js +6 -0
  30. package/dist/esm/tests/scriptingObjects/global.js +42 -0
  31. package/dist/types/common.d.ts +35 -0
  32. package/dist/types/event.d.ts +82 -0
  33. package/dist/types/eventManager.d.ts +125 -0
  34. package/dist/types/guest.d.ts +90 -0
  35. package/dist/types/index.d.ts +12 -0
  36. package/dist/types/messageType.d.ts +13 -0
  37. package/dist/types/remoting.d.ts +237 -0
  38. package/dist/types/remotingEventMessage.d.ts +26 -0
  39. package/dist/types/scriptingObject.d.ts +37 -0
  40. package/dist/types/tests/eventManager.test.d.ts +1 -0
  41. package/dist/types/tests/scriptingObjects/appraisalServiceModule.d.ts +33 -0
  42. package/dist/types/tests/scriptingObjects/constant.d.ts +2 -0
  43. package/dist/types/tests/scriptingObjects/global.d.ts +10 -0
  44. package/package.json +62 -0
@@ -0,0 +1,17 @@
1
+ {
2
+ "appId": "lib-boilerplate",
3
+ "activeEnv": "localhost",
4
+ "serviceEndpoints": {
5
+ "api": "",
6
+ "idp": ""
7
+ },
8
+ "env": {
9
+ "localhost": {},
10
+ "dev2": {},
11
+ "qa2": {},
12
+ "qa3": {},
13
+ "int": {},
14
+ "stage": {},
15
+ "prod": {}
16
+ }
17
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var common_exports = {};
16
+ module.exports = __toCommonJS(common_exports);
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var event_exports = {};
20
+ __export(event_exports, {
21
+ Event: () => Event,
22
+ getEventId: () => getEventId,
23
+ isEvent: () => isEvent
24
+ });
25
+ module.exports = __toCommonJS(event_exports);
26
+ class Event {
27
+ /* eslint-enable indent */
28
+ /**
29
+ * scripting object that owns this event
30
+ */
31
+ scriptingObject;
32
+ /**
33
+ * name of the event
34
+ */
35
+ name;
36
+ /**
37
+ * scripting object id that owns this event
38
+ */
39
+ objectId;
40
+ /**
41
+ * flag indicating this event requires feedback from all of the listeners
42
+ */
43
+ requiresFeedback;
44
+ /**
45
+ * unique id of the event
46
+ */
47
+ id;
48
+ /**
49
+ * Create an event object
50
+ *
51
+ * @param {EventParam} param - parameters for creating an event
52
+ */
53
+ constructor(param) {
54
+ const { name, requiresFeedback = false, so } = param;
55
+ if (!name)
56
+ throw new Error("Event name is required");
57
+ if (!so)
58
+ throw new Error("Scripting object is required");
59
+ this.scriptingObject = so;
60
+ this.objectId = so.id;
61
+ this.name = name;
62
+ this.id = `${this.objectId}.${this.name}`.toLowerCase();
63
+ this.requiresFeedback = requiresFeedback;
64
+ }
65
+ }
66
+ const isEvent = (value) => value instanceof Event;
67
+ const getEventId = (objectId, eventName) => `${objectId.toLowerCase()}.${eventName.toLowerCase()}`;
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var __publicField = (obj, key, value) => {
21
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
22
+ return value;
23
+ };
24
+ var __accessCheck = (obj, member, msg) => {
25
+ if (!member.has(obj))
26
+ throw TypeError("Cannot " + msg);
27
+ };
28
+ var __privateGet = (obj, member, getter) => {
29
+ __accessCheck(obj, member, "read from private field");
30
+ return getter ? getter.call(obj) : member.get(obj);
31
+ };
32
+ var __privateAdd = (obj, member, value) => {
33
+ if (member.has(obj))
34
+ throw TypeError("Cannot add the same private member more than once");
35
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
36
+ };
37
+ var eventManager_exports = {};
38
+ __export(eventManager_exports, {
39
+ EventManager: () => EventManager
40
+ });
41
+ module.exports = __toCommonJS(eventManager_exports);
42
+ var import_uuid = require("uuid");
43
+ var _listeners, _asyncCallwithTimeout, _emitEvent, _emitEventWithFeedback;
44
+ const flatten = (source, target = []) => {
45
+ const retVal = target || [];
46
+ if (source && source.forEach) {
47
+ source.forEach((item) => {
48
+ flatten(item, retVal);
49
+ });
50
+ } else if (typeof source !== "undefined") {
51
+ retVal.push(source);
52
+ }
53
+ return retVal;
54
+ };
55
+ class EventManager {
56
+ constructor() {
57
+ /**
58
+ * event listeners
59
+ */
60
+ __privateAdd(this, _listeners, /* @__PURE__ */ new Map());
61
+ /**
62
+ * call an async function with a timeout
63
+ *
64
+ * @param promise async function to call
65
+ * @param feedbackWaitTime timeout in milliseconds
66
+ * @returns result of the async function or undefined if timeout
67
+ */
68
+ __privateAdd(this, _asyncCallwithTimeout, (promise, feedbackWaitTime) => {
69
+ const timeout = new Promise((resolve) => {
70
+ setTimeout(() => {
71
+ resolve();
72
+ }, feedbackWaitTime);
73
+ });
74
+ return Promise.race([promise, timeout]);
75
+ });
76
+ /**
77
+ * emit an event to set of listeners
78
+ *
79
+ * @param {EmitEventParam} param - parameters for emitting an event
80
+ */
81
+ __privateAdd(this, _emitEvent, (param) => {
82
+ const { eventName, scriptingObject, eventParams, listeners } = param;
83
+ listeners.map(async (listener) => {
84
+ try {
85
+ await listener.callback({
86
+ obj: scriptingObject,
87
+ eventName,
88
+ eventParams
89
+ });
90
+ } catch (e) {
91
+ }
92
+ });
93
+ });
94
+ __privateAdd(this, _emitEventWithFeedback, async ({
95
+ eventId,
96
+ eventName,
97
+ scriptingObject,
98
+ eventParams,
99
+ feedbackWaitTime
100
+ }) => {
101
+ const listeners = __privateGet(this, _listeners).get(eventId) || [];
102
+ const promises = listeners.map(
103
+ (listener) => __privateGet(this, _asyncCallwithTimeout).call(
104
+ this,
105
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
106
+ listener.callback({
107
+ obj: scriptingObject,
108
+ eventName,
109
+ eventParams
110
+ }),
111
+ feedbackWaitTime
112
+ )
113
+ );
114
+ const retValues = await Promise.all(promises);
115
+ return flatten(retValues);
116
+ });
117
+ /**
118
+ * dispatch an event
119
+ *
120
+ * @param {DispatchEventParam<EventId, Params>} param - parameters for dispatching an event
121
+ */
122
+ __publicField(this, "dispatchEvent", async (param) => {
123
+ const {
124
+ event: { id, name, requiresFeedback, scriptingObject },
125
+ eventParams,
126
+ feedbackWaitTime = 1e3
127
+ } = param;
128
+ if (!id)
129
+ throw new Error("Event Id is required");
130
+ const listeners = __privateGet(this, _listeners).get(id) || [];
131
+ if (!requiresFeedback) {
132
+ __privateGet(this, _emitEvent).call(this, {
133
+ eventName: name,
134
+ scriptingObject,
135
+ eventParams,
136
+ listeners
137
+ });
138
+ return Promise.resolve();
139
+ }
140
+ return __privateGet(this, _emitEventWithFeedback).call(this, {
141
+ eventId: id,
142
+ eventName: name,
143
+ scriptingObject,
144
+ eventParams,
145
+ feedbackWaitTime
146
+ });
147
+ });
148
+ /**
149
+ * Subscribe to an event
150
+ *
151
+ * @param {SubscribeParam<EventId, AppEvents[EventId]>} param - parameters for subscribing to an event
152
+ */
153
+ __publicField(this, "subscribe", (param) => {
154
+ const { eventId, listener } = param;
155
+ if (!eventId)
156
+ throw new Error("eventId is required");
157
+ if (!listener)
158
+ throw new Error("Listener is required");
159
+ const listeners = __privateGet(this, _listeners).get(eventId) || [];
160
+ const subscriptionId = (0, import_uuid.v4)();
161
+ listeners.push({
162
+ subscriptionId,
163
+ callback: listener
164
+ });
165
+ __privateGet(this, _listeners).set(eventId, listeners);
166
+ return subscriptionId;
167
+ });
168
+ /**
169
+ * Unsubscribe from an event
170
+ *
171
+ * @param {UnsubscribeParam<EventId>} param - parameters for unsubscribing from an event
172
+ */
173
+ __publicField(this, "unsubscribe", (param) => {
174
+ const { eventId, subscriptionId } = param;
175
+ if (!eventId)
176
+ throw new Error("eventId id is required");
177
+ if (subscriptionId) {
178
+ const listeners = __privateGet(this, _listeners).get(eventId) || [];
179
+ const index = listeners.findIndex(
180
+ (listener) => listener.subscriptionId === subscriptionId
181
+ );
182
+ if (index > -1) {
183
+ listeners.splice(index, 1);
184
+ __privateGet(this, _listeners).set(eventId, listeners);
185
+ }
186
+ } else {
187
+ __privateGet(this, _listeners).delete(eventId);
188
+ }
189
+ });
190
+ /**
191
+ * Unsubscribe from all events
192
+ */
193
+ __publicField(this, "unsubscribeAll", () => {
194
+ __privateGet(this, _listeners).clear();
195
+ });
196
+ }
197
+ }
198
+ _listeners = new WeakMap();
199
+ _asyncCallwithTimeout = new WeakMap();
200
+ _emitEvent = new WeakMap();
201
+ _emitEventWithFeedback = new WeakMap();
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var guest_exports = {};
16
+ module.exports = __toCommonJS(guest_exports);
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Common</title>
8
+ </head>
9
+ <body>
10
+
11
+ </body>
12
+ </html>
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var lib_exports = {};
20
+ __export(lib_exports, {
21
+ Event: () => import_event2.Event,
22
+ EventManager: () => import_eventManager.EventManager,
23
+ MessageType: () => import_messageType.MessageType,
24
+ Remoting: () => import_remoting.Remoting,
25
+ ScriptingObject: () => import_scriptingObject.ScriptingObject,
26
+ getEventId: () => import_event.getEventId,
27
+ sendMessage: () => import_remoting.sendMessage
28
+ });
29
+ module.exports = __toCommonJS(lib_exports);
30
+ var import_remoting = require("./remoting.js");
31
+ var import_eventManager = require("./eventManager.js");
32
+ var import_event = require("./event.js");
33
+ var import_event2 = require("./event.js");
34
+ var import_scriptingObject = require("./scriptingObject.js");
35
+ var import_messageType = require("./messageType.js");
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var messageType_exports = {};
20
+ __export(messageType_exports, {
21
+ MessageType: () => MessageType
22
+ });
23
+ module.exports = __toCommonJS(messageType_exports);
24
+ var MessageType = /* @__PURE__ */ ((MessageType2) => {
25
+ MessageType2["GuestReady"] = "guest:ready";
26
+ MessageType2["GuestClose"] = "guest:close";
27
+ MessageType2["GuestReadyComplete"] = "guest:readyComplete";
28
+ MessageType2["GuestResize"] = "guest:resize";
29
+ MessageType2["GuestFocus"] = "guest:focus";
30
+ MessageType2["HandShake"] = "handshake";
31
+ MessageType2["HandShakeAck"] = "handshake:ack";
32
+ MessageType2["ObjectInvoke"] = "object:invoke";
33
+ MessageType2["ObjectGet"] = "object:get";
34
+ MessageType2["ObjectEvent"] = "object:event";
35
+ MessageType2["HostConfig"] = "host:config";
36
+ return MessageType2;
37
+ })(MessageType || {});
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "commonjs",
3
+ "sideEffects": false
4
+ }