@adobe/exc-app 1.4.19 → 1.4.24
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/RuntimeConfiguration.d.ts +8 -0
- package/ai.d.ts +13 -4
- package/ai.js +1 -0
- package/ai.js.map +1 -1
- package/appapi.d.ts +3 -1
- package/appapi.js +3 -1
- package/appapi.js.map +1 -1
- package/config/jest/setup.js +18 -3
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/featureflags.d.ts +8 -0
- package/featureflags.js.map +1 -1
- package/ims/ImsProfile.d.ts +1 -0
- package/index.d.ts +8 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/interframe.d.ts +181 -0
- package/interframe.js +88 -0
- package/interframe.js.map +1 -0
- package/jest.config.js +1 -0
- package/network.d.ts +4 -0
- package/network.js.map +1 -1
- package/package.json +1 -1
- package/runInShell.d.ts +11 -0
- package/runInShell.js +16 -0
- package/runInShell.js.map +1 -0
- package/src/Global.d.ts +10 -6
- package/src/Global.js +6 -4
- package/src/Global.js.map +1 -1
- package/tests/agreements.test.js +3 -9
- package/tests/agreements.test.js.map +1 -1
- package/tests/ai.test.js +40 -10
- package/tests/ai.test.js.map +1 -1
- package/tests/appapi.test.js +31 -47
- package/tests/appapi.test.js.map +1 -1
- package/tests/cache.test.js +3 -4
- package/tests/cache.test.js.map +1 -1
- package/tests/component.test.js +3 -7
- package/tests/component.test.js.map +1 -1
- package/tests/consent.test.js +3 -4
- package/tests/consent.test.js.map +1 -1
- package/tests/featureflags.test.js +3 -2
- package/tests/featureflags.test.js.map +1 -1
- package/tests/helpCenter.test.js +25 -25
- package/tests/helpCenter.test.js.map +1 -1
- package/tests/index.test.js +15 -19
- package/tests/index.test.js.map +1 -1
- package/tests/interframe.test.d.ts +1 -0
- package/tests/interframe.test.js +90 -0
- package/tests/interframe.test.js.map +1 -0
- package/tests/internal.test.js +4 -8
- package/tests/internal.test.js.map +1 -1
- package/tests/metrics.test.js +7 -11
- package/tests/metrics.test.js.map +1 -1
- package/tests/modules.test.js +3 -2
- package/tests/modules.test.js.map +1 -1
- package/tests/network.test.js +3 -7
- package/tests/network.test.js.map +1 -1
- package/tests/nps.test.js +11 -12
- package/tests/nps.test.js.map +1 -1
- package/tests/page.test.js +42 -46
- package/tests/page.test.js.map +1 -1
- package/tests/permissions.test.js +3 -2
- package/tests/permissions.test.js.map +1 -1
- package/tests/pulse.test.js +6 -7
- package/tests/pulse.test.js.map +1 -1
- package/tests/runInShell.test.d.ts +1 -0
- package/tests/runInShell.test.js +57 -0
- package/tests/runInShell.test.js.map +1 -0
- package/tests/session.test.js +3 -4
- package/tests/session.test.js.map +1 -1
- package/tests/shell.test.js +3 -6
- package/tests/shell.test.js.map +1 -1
- package/tests/sidenav.test.js +3 -6
- package/tests/sidenav.test.js.map +1 -1
- package/tests/topbar.test.js +25 -26
- package/tests/topbar.test.js.map +1 -1
- package/tests/user.test.js +4 -7
- package/tests/user.test.js.map +1 -1
- package/tests/userprofile.test.js +6 -7
- package/tests/userprofile.test.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/interframe.d.ts
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/*************************************************************************
|
|
2
|
+
* Copyright 2024 Adobe
|
|
3
|
+
* All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
6
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
7
|
+
* it. If you have received this file from a source other than Adobe,
|
|
8
|
+
* then your use, modification, or distribution of it requires the prior
|
|
9
|
+
* written permission of Adobe.
|
|
10
|
+
**************************************************************************/
|
|
11
|
+
export declare enum FrameTarget {
|
|
12
|
+
APP = "app",
|
|
13
|
+
RAIL = "rail"
|
|
14
|
+
}
|
|
15
|
+
export declare const InterFrameTarget: typeof FrameTarget;
|
|
16
|
+
export declare enum InterFrameResponseStatus {
|
|
17
|
+
IN_PROGRESS = "in_progress",
|
|
18
|
+
COMPLETED = "completed",
|
|
19
|
+
FAILED = "failed",
|
|
20
|
+
ACKNOWLEDGED = "acknowledged"
|
|
21
|
+
}
|
|
22
|
+
export declare enum InterFrameMessageType {
|
|
23
|
+
INTER_FRAME_ACKNOWLEDGE = "INTER_FRAME_ACKNOWLEDGE",
|
|
24
|
+
INTER_FRAME_REQUEST = "INTER_FRAME_REQUEST",
|
|
25
|
+
INTER_FRAME_RESPONSE = "INTER_FRAME_RESPONSE"
|
|
26
|
+
}
|
|
27
|
+
export declare enum InterFrameError {
|
|
28
|
+
NO_HANDLER = "NO_HANDLER",
|
|
29
|
+
TARGET_NOT_FOUND = "TARGET_NOT_FOUND",
|
|
30
|
+
UNKNOWN_ERROR = "ERROR"
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Inter-frame request message.
|
|
34
|
+
* Used when one frame (app or rail) needs to send a message to another frame.
|
|
35
|
+
*/
|
|
36
|
+
export interface InterFrameRequest {
|
|
37
|
+
type: InterFrameMessageType.INTER_FRAME_REQUEST;
|
|
38
|
+
/**
|
|
39
|
+
* Action is the event name that will be sent and emitted. In the future, we
|
|
40
|
+
* may restrict this type to an enum of valid actions.
|
|
41
|
+
*/
|
|
42
|
+
action: string;
|
|
43
|
+
/**
|
|
44
|
+
* Data accompanying the action to be sent and emitted.
|
|
45
|
+
*/
|
|
46
|
+
data: any;
|
|
47
|
+
requestId: string;
|
|
48
|
+
source: FrameTarget;
|
|
49
|
+
target: FrameTarget;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Inter-frame response message.
|
|
53
|
+
* Sent back to the requesting frame with results or errors.
|
|
54
|
+
*/
|
|
55
|
+
export interface InterFrameResponse {
|
|
56
|
+
data?: any;
|
|
57
|
+
error?: {
|
|
58
|
+
code: string;
|
|
59
|
+
details?: any;
|
|
60
|
+
message: string;
|
|
61
|
+
};
|
|
62
|
+
requestId: string;
|
|
63
|
+
status: InterFrameResponseStatus;
|
|
64
|
+
source: FrameTarget;
|
|
65
|
+
target: FrameTarget;
|
|
66
|
+
type: InterFrameMessageType.INTER_FRAME_RESPONSE;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Inter-frame acknowledgment message.
|
|
70
|
+
* Sent immediately upon receiving a request to confirm receipt.
|
|
71
|
+
*/
|
|
72
|
+
export interface InterFrameAcknowledge {
|
|
73
|
+
type: InterFrameMessageType.INTER_FRAME_ACKNOWLEDGE;
|
|
74
|
+
requestId: string;
|
|
75
|
+
source: FrameTarget;
|
|
76
|
+
target: FrameTarget;
|
|
77
|
+
status: InterFrameResponseStatus.ACKNOWLEDGED;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Union type for all inter-frame messages.
|
|
81
|
+
* These messages enable communication between the app and rail frames.
|
|
82
|
+
*/
|
|
83
|
+
export type InterFrameMessage = InterFrameRequest | InterFrameResponse | InterFrameAcknowledge;
|
|
84
|
+
/**
|
|
85
|
+
* Callbacks provided to the send() method for handling responses.
|
|
86
|
+
*/
|
|
87
|
+
export interface SendCallbacks {
|
|
88
|
+
/**
|
|
89
|
+
* Called when the operation completes successfully.
|
|
90
|
+
*/
|
|
91
|
+
onComplete?: (data?: any) => void;
|
|
92
|
+
/**
|
|
93
|
+
* Called when the operation fails.
|
|
94
|
+
*/
|
|
95
|
+
onError?: (data?: any) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Called when the operation progresses.
|
|
98
|
+
*/
|
|
99
|
+
onProgress?: (data?: any) => void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Functions provided to request handlers for sending responses.
|
|
103
|
+
*/
|
|
104
|
+
export interface ResponseCallbacks {
|
|
105
|
+
/**
|
|
106
|
+
* Send a successful completion response.
|
|
107
|
+
*/
|
|
108
|
+
sendCompleted: (data?: any) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Send an error response.
|
|
111
|
+
*/
|
|
112
|
+
sendError: (error: {
|
|
113
|
+
code: string;
|
|
114
|
+
message: string;
|
|
115
|
+
details?: any;
|
|
116
|
+
} | any) => void;
|
|
117
|
+
/**
|
|
118
|
+
* Send a progress update.
|
|
119
|
+
*/
|
|
120
|
+
sendProgress: (data: any) => void;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Payload received by request handlers registered via interFrame.on().
|
|
124
|
+
*/
|
|
125
|
+
export interface RequestPayload {
|
|
126
|
+
/**
|
|
127
|
+
* The request data.
|
|
128
|
+
*/
|
|
129
|
+
data: any;
|
|
130
|
+
/**
|
|
131
|
+
* Callbacks for sending responses back to the requester.
|
|
132
|
+
*/
|
|
133
|
+
callbacks: ResponseCallbacks;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* APIs for inter-frame communication between app and rail iframes.
|
|
137
|
+
*/
|
|
138
|
+
export interface InterFrameApi {
|
|
139
|
+
/**
|
|
140
|
+
* Invoke all handlers for the given action.
|
|
141
|
+
* @param action The action type to invoke.
|
|
142
|
+
* @param event The RequestPayload to pass to handlers.
|
|
143
|
+
*/
|
|
144
|
+
emit(action: string, event?: RequestPayload): void;
|
|
145
|
+
/**
|
|
146
|
+
* Remove an event handler for the given action.
|
|
147
|
+
* @param action The action to unregister handler from.
|
|
148
|
+
* @param handler Handler function to remove.
|
|
149
|
+
*/
|
|
150
|
+
off(action: string, handler: (event?: RequestPayload) => void): void;
|
|
151
|
+
/**
|
|
152
|
+
* Register an event handler for the given action.
|
|
153
|
+
* @param action The action to listen for.
|
|
154
|
+
* @param handler Function to call in response to the action.
|
|
155
|
+
*/
|
|
156
|
+
on(action: string, handler: (event?: RequestPayload) => void): void;
|
|
157
|
+
/**
|
|
158
|
+
* Send a message between the app and rail iframes.
|
|
159
|
+
* Automatically handles routing between app and rail frames. When the target receives
|
|
160
|
+
* the message via the "on" event listener, it can optionally send responses to the
|
|
161
|
+
* error, progress, and completion callbacks.
|
|
162
|
+
*
|
|
163
|
+
* ***Example:***
|
|
164
|
+
*
|
|
165
|
+
* ```typescript
|
|
166
|
+
* interFrame.send('CREATE', {
|
|
167
|
+
* onComplete: (data) => console.log('Created:', data),
|
|
168
|
+
* onError: (error) => console.error('Failed:', error),
|
|
169
|
+
* onProgress: (data) => console.log('Progress:', data)
|
|
170
|
+
* }, {type: 'event', name: 'New Event'});
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @param action - The action to perform (CREATE, UPDATE, etc.)
|
|
174
|
+
* @param callbacks - Optional callbacks for handling responses
|
|
175
|
+
* @param data - The optional payload data
|
|
176
|
+
* @param target - The target frame to send the message to. This is determined by the current frame identity if none is provided.
|
|
177
|
+
*/
|
|
178
|
+
send: (action: string, callbacks?: SendCallbacks, data?: any, target?: FrameTarget) => void;
|
|
179
|
+
}
|
|
180
|
+
declare const interFrame: InterFrameApi;
|
|
181
|
+
export default interFrame;
|
package/interframe.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*************************************************************************
|
|
3
|
+
* Copyright 2024 Adobe
|
|
4
|
+
* All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
7
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
8
|
+
* it. If you have received this file from a source other than Adobe,
|
|
9
|
+
* then your use, modification, or distribution of it requires the prior
|
|
10
|
+
* written permission of Adobe.
|
|
11
|
+
**************************************************************************/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.InterFrameError = exports.InterFrameMessageType = exports.InterFrameResponseStatus = exports.InterFrameTarget = exports.FrameTarget = void 0;
|
|
14
|
+
/**
|
|
15
|
+
* APIs for inter-frame communication between app and rail iframes.
|
|
16
|
+
*
|
|
17
|
+
* ***Import:***
|
|
18
|
+
*
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import interFrame from '@adobe/exc-app/interframe';
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ***Default export:***
|
|
24
|
+
*
|
|
25
|
+
* [InterFrameApi](../interfaces/interframe.interframeapi.md#interface-interframeapi)
|
|
26
|
+
*
|
|
27
|
+
* ***Usage:***
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Send a message to the other frame
|
|
31
|
+
* interFrame.send('CREATE', {
|
|
32
|
+
* onComplete: (data) => console.log('Created:', data),
|
|
33
|
+
* onError: (error) => console.error('Failed:', error),
|
|
34
|
+
* onProgress: (data) => console.log('Progress:', data)
|
|
35
|
+
* }, {type: 'event', name: 'New Event'});
|
|
36
|
+
*
|
|
37
|
+
* // Listen for incoming messages
|
|
38
|
+
* interFrame.on('CREATE', ({data, callbacks}) => {
|
|
39
|
+
* // Handle the request
|
|
40
|
+
* callbacks.sendCompleted({id: 123});
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
* @packageDocumentation
|
|
44
|
+
* @module interframe
|
|
45
|
+
*/
|
|
46
|
+
const Global_1 = require("./src/Global");
|
|
47
|
+
var FrameTarget;
|
|
48
|
+
(function (FrameTarget) {
|
|
49
|
+
FrameTarget["APP"] = "app";
|
|
50
|
+
FrameTarget["RAIL"] = "rail";
|
|
51
|
+
})(FrameTarget || (exports.FrameTarget = FrameTarget = {}));
|
|
52
|
+
// Alias for backwards compatibility
|
|
53
|
+
exports.InterFrameTarget = FrameTarget;
|
|
54
|
+
var InterFrameResponseStatus;
|
|
55
|
+
(function (InterFrameResponseStatus) {
|
|
56
|
+
InterFrameResponseStatus["IN_PROGRESS"] = "in_progress";
|
|
57
|
+
InterFrameResponseStatus["COMPLETED"] = "completed";
|
|
58
|
+
InterFrameResponseStatus["FAILED"] = "failed";
|
|
59
|
+
InterFrameResponseStatus["ACKNOWLEDGED"] = "acknowledged";
|
|
60
|
+
})(InterFrameResponseStatus || (exports.InterFrameResponseStatus = InterFrameResponseStatus = {}));
|
|
61
|
+
var InterFrameMessageType;
|
|
62
|
+
(function (InterFrameMessageType) {
|
|
63
|
+
InterFrameMessageType["INTER_FRAME_ACKNOWLEDGE"] = "INTER_FRAME_ACKNOWLEDGE";
|
|
64
|
+
InterFrameMessageType["INTER_FRAME_REQUEST"] = "INTER_FRAME_REQUEST";
|
|
65
|
+
InterFrameMessageType["INTER_FRAME_RESPONSE"] = "INTER_FRAME_RESPONSE";
|
|
66
|
+
})(InterFrameMessageType || (exports.InterFrameMessageType = InterFrameMessageType = {}));
|
|
67
|
+
var InterFrameError;
|
|
68
|
+
(function (InterFrameError) {
|
|
69
|
+
InterFrameError["NO_HANDLER"] = "NO_HANDLER";
|
|
70
|
+
InterFrameError["TARGET_NOT_FOUND"] = "TARGET_NOT_FOUND";
|
|
71
|
+
InterFrameError["UNKNOWN_ERROR"] = "ERROR";
|
|
72
|
+
})(InterFrameError || (exports.InterFrameError = InterFrameError = {}));
|
|
73
|
+
const interFrame = {
|
|
74
|
+
emit: (type, evt) => {
|
|
75
|
+
return (0, Global_1.getImpl)('interFrame')().emit(type, evt);
|
|
76
|
+
},
|
|
77
|
+
off: (type, handler) => {
|
|
78
|
+
return (0, Global_1.getImpl)('interFrame')().off(type, handler);
|
|
79
|
+
},
|
|
80
|
+
on: (type, handler) => {
|
|
81
|
+
return (0, Global_1.getImpl)('interFrame')().on(type, handler);
|
|
82
|
+
},
|
|
83
|
+
send: (action, callbacks, data, target) => {
|
|
84
|
+
return (0, Global_1.getImpl)('interFrame')().send(action, callbacks, data, target);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.default = interFrame;
|
|
88
|
+
//# sourceMappingURL=interframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interframe.js","sourceRoot":"","sources":["interframe.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,yCAAqC;AAErC,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,oCAAoC;AACvB,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAE5C,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,uDAA2B,CAAA;IAC3B,mDAAuB,CAAA;IACvB,6CAAiB,CAAA;IACjB,yDAA6B,CAAA;AAC/B,CAAC,EALW,wBAAwB,wCAAxB,wBAAwB,QAKnC;AAED,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,4EAAmD,CAAA;IACnD,oEAA2C,CAAA;IAC3C,sEAA6C,CAAA;AAC/C,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,wDAAqC,CAAA;IACrC,0CAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAoKD,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClB,OAAO,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACrB,OAAO,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACpB,OAAO,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,EAAE,CAAC,MAAc,EAAE,SAAyB,EAAE,IAAU,EAAE,MAAoB,EAAE,EAAE;QACpF,OAAO,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;CACe,CAAC;AAEnB,kBAAe,UAAU,CAAC"}
|
package/jest.config.js
CHANGED
|
@@ -12,6 +12,7 @@ const base = require('../../jest.config.base');
|
|
|
12
12
|
|
|
13
13
|
module.exports = {
|
|
14
14
|
...base,
|
|
15
|
+
setupFiles: [...base.setupFiles, '<rootDir>/config/jest/setup.js'],
|
|
15
16
|
testMatch: ['**/?(*.)+(test).ts'],
|
|
16
17
|
testEnvironmentOptions: {
|
|
17
18
|
url: 'https://localhost.corp.adobe.com:1234'
|
package/network.d.ts
CHANGED
|
@@ -340,6 +340,10 @@ export interface QueryRequest {
|
|
|
340
340
|
* Pass enum to set headers according to the requirements
|
|
341
341
|
*/
|
|
342
342
|
scope?: FetchScope;
|
|
343
|
+
/**
|
|
344
|
+
* Signal object to use to abort query
|
|
345
|
+
*/
|
|
346
|
+
signal?: AbortSignal;
|
|
343
347
|
/**
|
|
344
348
|
* HTTP Status Codes which will prompt a retry. If not provided only network failures
|
|
345
349
|
* will prompt a retry.
|
package/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["network.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["network.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAskB5E,sBAEC;AAYD,sCAEC;AAkCD,sBAEC;AAsBD,0CAOC;AAED,gDAKC;AAtmBD,yCAAqC;AAIrC;;GAEG;AACU,QAAA,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAoMlE,IAAY,OAaX;AAbD,WAAY,OAAO;IACjB;;OAEG;IACH,+DAAiB,CAAA;IACjB;;OAEG;IACH,2CAAO,CAAA;IACP;;OAEG;IACH,yEAAsB,CAAA;AACxB,CAAC,EAbW,OAAO,uBAAP,OAAO,QAalB;AAqGD;;GAEG;AACH,IAAY,UAqCX;AArCD,WAAY,UAAU;IACpB;;;OAGG;IACH,2BAAa,CAAA;IACb;;;;OAIG;IACH,2BAAa,CAAA;IACb;;;;;OAKG;IACH,yBAAW,CAAA;IACX;;;;;;OAMG;IACH,iCAAmB,CAAA;IACnB;;;;;;;;OAQG;IACH,2CAA6B,CAAA;AAC/B,CAAC,EArCW,UAAU,0BAAV,UAAU,QAqCrB;AAgJD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,KAAK,CAAC,KAAkB,EAAE,IAAgB;IACxD,OAAO,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAAI,GAAW,EAAE,OAAyB;IACrE,OAAO,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,KAAK,CAAC,KAAmB;IACvC,OAAO,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,eAAe,CAC7B,OAAmC;IAKnC,OAAO,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,kBAAkB,CAChC,oBAA2C,EAC3C,OAA+C;IAE/C,OAAO,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC"}
|
package/package.json
CHANGED
package/runInShell.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*************************************************************************
|
|
2
|
+
* Copyright 2025 Adobe
|
|
3
|
+
* All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
6
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
7
|
+
* it. If you have received this file from a source other than Adobe,
|
|
8
|
+
* then your use, modification, or distribution of it requires the prior
|
|
9
|
+
* written permission of Adobe.
|
|
10
|
+
**************************************************************************/
|
|
11
|
+
export {};
|
package/runInShell.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*************************************************************************
|
|
3
|
+
* Copyright 2025 Adobe
|
|
4
|
+
* All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
7
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
8
|
+
* it. If you have received this file from a source other than Adobe,
|
|
9
|
+
* then your use, modification, or distribution of it requires the prior
|
|
10
|
+
* written permission of Adobe.
|
|
11
|
+
**************************************************************************/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const Global_1 = require("./src/Global");
|
|
14
|
+
// Set the global name to 'shell' - Unified Shell uses shell-module-runtime.
|
|
15
|
+
(0, Global_1.changeGlobalName)('shell');
|
|
16
|
+
//# sourceMappingURL=runInShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInShell.js","sourceRoot":"","sources":["runInShell.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;AAE5E,yCAA8C;AAE9C,4EAA4E;AAC5E,IAAA,yBAAgB,EAAC,OAAO,CAAC,CAAC"}
|
package/src/Global.d.ts
CHANGED
|
@@ -35,7 +35,6 @@ import Runtime from './Runtime';
|
|
|
35
35
|
import { SessionApi } from '../session';
|
|
36
36
|
import { SettingsApi } from '../settings';
|
|
37
37
|
import { ShellApi } from '../shell';
|
|
38
|
-
import { SidebarApi } from '../sidebar';
|
|
39
38
|
import { SidenavApi } from '../sidenav';
|
|
40
39
|
import { TopbarApi } from '../topbar';
|
|
41
40
|
import { UserApi } from '../user';
|
|
@@ -67,21 +66,26 @@ export interface Modules extends CommonModules {
|
|
|
67
66
|
readonly session: () => SessionApi;
|
|
68
67
|
readonly settings: () => SettingsApi;
|
|
69
68
|
readonly shell: () => ShellApi;
|
|
70
|
-
readonly sidebar: SidebarApi;
|
|
71
69
|
readonly sidenav: () => SidenavApi;
|
|
72
70
|
readonly topbar: TopbarApi;
|
|
73
71
|
readonly user: () => UserApi;
|
|
74
72
|
readonly userProfile: UserProfileApi;
|
|
75
73
|
}
|
|
74
|
+
export type Writeable<T> = {
|
|
75
|
+
-readonly [P in keyof T]: T[P];
|
|
76
|
+
};
|
|
77
|
+
export interface EMR extends Modules {
|
|
78
|
+
'exc-app-version'?: string;
|
|
79
|
+
isNested?: boolean;
|
|
80
|
+
}
|
|
76
81
|
type Global = typeof window & {
|
|
77
|
-
readonly 'exc-module-runtime':
|
|
78
|
-
|
|
79
|
-
isNested?: boolean;
|
|
80
|
-
};
|
|
82
|
+
readonly 'exc-module-runtime': EMR;
|
|
83
|
+
readonly 'shell-module-runtime'?: CommonModules;
|
|
81
84
|
EXC_MR_READY?: (() => void) & {
|
|
82
85
|
autoDelete?: boolean;
|
|
83
86
|
};
|
|
84
87
|
};
|
|
88
|
+
export declare const changeGlobalName: (name: string) => keyof Window;
|
|
85
89
|
export declare const getEMR: (win?: Window) => any;
|
|
86
90
|
/**
|
|
87
91
|
* Gets the implementation for the module.
|
package/src/Global.js
CHANGED
|
@@ -10,11 +10,13 @@
|
|
|
10
10
|
* written permission of Adobe.
|
|
11
11
|
**************************************************************************/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.getEMR = void 0;
|
|
13
|
+
exports.getEMR = exports.changeGlobalName = void 0;
|
|
14
14
|
exports.getImpl = getImpl;
|
|
15
15
|
exports.connect = connect;
|
|
16
|
-
|
|
17
|
-
const
|
|
16
|
+
let emrGlobalName = 'exc-module-runtime';
|
|
17
|
+
const changeGlobalName = (name) => emrGlobalName = `${name}-module-runtime`;
|
|
18
|
+
exports.changeGlobalName = changeGlobalName;
|
|
19
|
+
const getEMR = (win = window) => win === window ? win[emrGlobalName] : win['exc-module-runtime'];
|
|
18
20
|
exports.getEMR = getEMR;
|
|
19
21
|
/**
|
|
20
22
|
* Gets the implementation for the module.
|
|
@@ -25,7 +27,7 @@ exports.getEMR = getEMR;
|
|
|
25
27
|
function getImpl(moduleName) {
|
|
26
28
|
const emr = (0, exports.getEMR)();
|
|
27
29
|
if (!emr) {
|
|
28
|
-
throw new Error(`module-runtime APIs not available (Fetching ${moduleName}).`);
|
|
30
|
+
throw new Error(`module-runtime APIs not available (Fetching ${moduleName} from ${emrGlobalName}).`);
|
|
29
31
|
}
|
|
30
32
|
return emr[moduleName];
|
|
31
33
|
}
|
package/src/Global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Global.js","sourceRoot":"","sources":["Global.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;
|
|
1
|
+
{"version":3,"file":"Global.js","sourceRoot":"","sources":["Global.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AA6F5E,0BAMC;AASD,0BAoBC;AA/CD,IAAI,aAAa,GAAG,oBAAoC,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,IAAI,iBAAiC,CAAC;AAA9F,QAAA,gBAAgB,oBAA8E;AAEpG,MAAM,MAAM,GAAG,CAAC,MAAM,MAAgB,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC,oBAAoB,CAAC,CAAC;AAAjH,QAAA,MAAM,UAA2G;AAE9H;;;;;GAKG;AACH,SAAgB,OAAO,CAA0B,UAAa;IAC5D,MAAM,GAAG,GAAG,IAAA,cAAM,GAAE,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,UAAU,SAAS,aAAuB,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAA0B,OAAU,EAAE,UAA0C;IACrG,MAAM,GAAG,GAAG,EAAgB,CAAC;IAC7B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACrC,OAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAQ,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;gBACtC,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;gBACD,GAAG,EAAE,KAAK,CAAC,EAAE;oBACX,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kBAAgB,MAAiB,CAAC"}
|
package/tests/agreements.test.js
CHANGED
|
@@ -31,9 +31,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
35
|
/*************************************************************************
|
|
39
36
|
* Copyright 2024 Adobe
|
|
@@ -46,7 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
46
43
|
* written permission of Adobe.
|
|
47
44
|
**************************************************************************/
|
|
48
45
|
const agreements_1 = __importStar(require("../agreements"));
|
|
49
|
-
const Global_1 =
|
|
46
|
+
const Global_1 = require("../src/Global");
|
|
50
47
|
describe('agreements.ts', () => {
|
|
51
48
|
const agreementsMock = {
|
|
52
49
|
clearResponse: () => Promise.resolve(true),
|
|
@@ -54,11 +51,8 @@ describe('agreements.ts', () => {
|
|
|
54
51
|
showAgreement: () => Promise.resolve({ accepted: true, date: 1234 })
|
|
55
52
|
};
|
|
56
53
|
beforeEach(() => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return agreementsMock;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
54
|
+
const emr = (0, Global_1.getEMR)();
|
|
55
|
+
jest.spyOn(emr, 'agreements').mockImplementation(() => agreementsMock);
|
|
62
56
|
});
|
|
63
57
|
it('can getResponse()', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
58
|
const spy = jest.spyOn(agreementsMock, 'getResponse');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agreements.test.js","sourceRoot":"","sources":["agreements.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agreements.test.js","sourceRoot":"","sources":["agreements.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;4EAS4E;AAC5E,4DAAyD;AAEzD,0CAAqC;AAErC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,cAAc,GAAG;QACrB,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;QAChE,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;KAClD,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,GAAG,IAAA,eAAM,GAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAS,EAAE;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,oBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACtD,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAS,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,oBAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAS,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,oBAAU,CAAC,aAAa,CAAC,KAAK,EAAE,EAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,2BAAc,CAAC,IAAI,EAAC,CAAC,CAAC;QACtG,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACtD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/tests/ai.test.js
CHANGED
|
@@ -22,9 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
/*************************************************************************
|
|
30
27
|
* Copyright 2021 Adobe
|
|
@@ -37,12 +34,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
37
34
|
* written permission of Adobe.
|
|
38
35
|
**************************************************************************/
|
|
39
36
|
const ai_1 = __importStar(require("../ai"));
|
|
40
|
-
const Global_1 =
|
|
37
|
+
const Global_1 = require("../src/Global");
|
|
41
38
|
describe('ai', () => {
|
|
42
39
|
const evt = {};
|
|
43
40
|
const handler = () => { };
|
|
44
41
|
const aiMock = {
|
|
45
|
-
appContext: () => Promise.resolve({
|
|
42
|
+
appContext: () => Promise.resolve({ mainAppId: 'test-app', mainAppRoot: 'test-root' }),
|
|
46
43
|
closeChat: () => { },
|
|
47
44
|
context: {},
|
|
48
45
|
emit: (type, evt) => ({ evt, type }),
|
|
@@ -60,11 +57,8 @@ describe('ai', () => {
|
|
|
60
57
|
togglePanel: (isOpen) => isOpen
|
|
61
58
|
};
|
|
62
59
|
beforeEach(() => {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return aiMock;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
60
|
+
const emr = (0, Global_1.getEMR)();
|
|
61
|
+
jest.spyOn(emr, 'ai').mockImplementation(() => aiMock);
|
|
68
62
|
});
|
|
69
63
|
it('can emit()', () => {
|
|
70
64
|
const spy = jest.spyOn(aiMock, 'emit');
|
|
@@ -133,5 +127,41 @@ describe('ai', () => {
|
|
|
133
127
|
ai_1.default.appContext();
|
|
134
128
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
135
129
|
});
|
|
130
|
+
it('can setProvisioningButton()', () => {
|
|
131
|
+
const spy = jest.spyOn(aiMock, 'setProvisioningButton');
|
|
132
|
+
const callback = jest.fn();
|
|
133
|
+
ai_1.default.setProvisioningButton(callback);
|
|
134
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
135
|
+
expect(spy).toHaveBeenCalledWith(callback);
|
|
136
|
+
});
|
|
137
|
+
it('can setUserPermission()', () => {
|
|
138
|
+
const spy = jest.spyOn(aiMock, 'setUserPermission');
|
|
139
|
+
ai_1.default.setUserPermission(true);
|
|
140
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
141
|
+
expect(spy).toHaveBeenCalledWith(true);
|
|
142
|
+
});
|
|
143
|
+
it('can toggleButtonActive()', () => {
|
|
144
|
+
const spy = jest.spyOn(aiMock, 'toggleButtonActive');
|
|
145
|
+
ai_1.default.toggleButtonActive(false);
|
|
146
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
147
|
+
expect(spy).toHaveBeenCalledWith(false);
|
|
148
|
+
});
|
|
149
|
+
it('can toggleButtonVisible()', () => {
|
|
150
|
+
const spy = jest.spyOn(aiMock, 'toggleButtonVisible');
|
|
151
|
+
ai_1.default.toggleButtonVisible(true);
|
|
152
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
153
|
+
expect(spy).toHaveBeenCalledWith(true);
|
|
154
|
+
});
|
|
155
|
+
it('can get context', () => {
|
|
156
|
+
const testContext = { testKey: 'testValue' };
|
|
157
|
+
aiMock.context = testContext;
|
|
158
|
+
const result = ai_1.default.context;
|
|
159
|
+
expect(result).toEqual(testContext);
|
|
160
|
+
});
|
|
161
|
+
it('can set context', () => {
|
|
162
|
+
const testContext = { testKey: 'testValue' };
|
|
163
|
+
ai_1.default.context = testContext;
|
|
164
|
+
expect(aiMock.context).toEqual(testContext);
|
|
165
|
+
});
|
|
136
166
|
});
|
|
137
167
|
//# sourceMappingURL=ai.test.js.map
|
package/tests/ai.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.test.js","sourceRoot":"","sources":["ai.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai.test.js","sourceRoot":"","sources":["ai.test.ts"],"names":[],"mappings":"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"}
|