@managespace/sdk 0.1.183 → 0.1.184-mpj.dev
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/generated/apis/default-api.d.ts +11 -1
- package/dist/generated/apis/default-api.d.ts.map +1 -1
- package/dist/generated/apis/default-api.js +32 -0
- package/dist/generated/models/contact.d.ts +18 -0
- package/dist/generated/models/contact.d.ts.map +1 -1
- package/dist/generated/models/contact.js +12 -0
- package/dist/generated/models/create-payment-method.d.ts +50 -8
- package/dist/generated/models/create-payment-method.d.ts.map +1 -1
- package/dist/generated/models/create-payment-method.js +20 -12
- package/dist/generated/models/custom-create-contact.d.ts +18 -0
- package/dist/generated/models/custom-create-contact.d.ts.map +1 -1
- package/dist/generated/models/custom-create-contact.js +6 -0
- package/dist/generated/models/custom-create-customer.d.ts +0 -6
- package/dist/generated/models/custom-create-customer.d.ts.map +1 -1
- package/dist/generated/models/custom-create-customer.js +0 -2
- package/dist/generated/models/custom-update-contact.d.ts +18 -0
- package/dist/generated/models/custom-update-contact.d.ts.map +1 -1
- package/dist/generated/models/custom-update-contact.js +6 -0
- package/dist/generated/models/customer-payment-method.d.ts +1 -1
- package/dist/generated/models/customer-payment-method.d.ts.map +1 -1
- package/dist/generated/models/customer-payment-method.js +3 -3
- package/dist/generated/models/index.d.ts +1 -0
- package/dist/generated/models/index.d.ts.map +1 -1
- package/dist/generated/models/index.js +1 -0
- package/dist/generated/models/payment-method.d.ts +37 -13
- package/dist/generated/models/payment-method.d.ts.map +1 -1
- package/dist/generated/models/payment-method.js +18 -16
- package/dist/generated/models/reveal-ssn-response.d.ts +33 -0
- package/dist/generated/models/reveal-ssn-response.d.ts.map +1 -0
- package/dist/generated/models/reveal-ssn-response.js +51 -0
- package/dist/generated/models/template-field.d.ts +12 -0
- package/dist/generated/models/template-field.d.ts.map +1 -1
- package/package.deploy.json +4 -8
- package/package.json +2 -3
- package/package.original.json +23 -0
- package/src/generated/.openapi-generator/FILES +1 -0
- package/src/generated/apis/default-api.ts +54 -0
- package/src/generated/models/contact.ts +27 -0
- package/src/generated/models/create-payment-method.ts +70 -17
- package/src/generated/models/custom-create-contact.ts +24 -0
- package/src/generated/models/custom-create-customer.ts +0 -8
- package/src/generated/models/custom-update-contact.ts +24 -0
- package/src/generated/models/customer-payment-method.ts +4 -4
- package/src/generated/models/index.ts +1 -0
- package/src/generated/models/payment-method.ts +55 -26
- package/src/generated/models/reveal-ssn-response.ts +67 -0
- package/src/generated/models/template-field.ts +12 -0
- package/dist/extensions/host-bridge.d.ts +0 -166
- package/dist/extensions/host-bridge.d.ts.map +0 -1
- package/dist/extensions/host-bridge.js +0 -259
- package/dist/extensions/index.d.ts +0 -40
- package/dist/extensions/index.d.ts.map +0 -1
- package/dist/extensions/index.js +0 -55
- package/dist/extensions/types.d.ts +0 -111
- package/dist/extensions/types.d.ts.map +0 -1
- package/dist/extensions/types.js +0 -2
- package/dist/generated/apis/extensions-api.d.ts +0 -98
- package/dist/generated/apis/extensions-api.d.ts.map +0 -1
- package/dist/generated/apis/extensions-api.js +0 -295
- package/dist/generated/models/extension-org.d.ts +0 -64
- package/dist/generated/models/extension-org.d.ts.map +0 -1
- package/dist/generated/models/extension-org.js +0 -70
- package/dist/generated/models/extension.d.ts +0 -106
- package/dist/generated/models/extension.d.ts.map +0 -1
- package/dist/generated/models/extension.js +0 -98
- package/dist/generated/models/update-document-type.d.ts +0 -43
- package/dist/generated/models/update-document-type.d.ts.map +0 -1
- package/dist/generated/models/update-document-type.js +0 -61
|
@@ -20,6 +20,12 @@ import { mapValues } from '../runtime';
|
|
|
20
20
|
* @interface PaymentMethod
|
|
21
21
|
*/
|
|
22
22
|
export interface PaymentMethod {
|
|
23
|
+
/**
|
|
24
|
+
* Customers payment gateway id
|
|
25
|
+
* @type {string}
|
|
26
|
+
* @memberof PaymentMethod
|
|
27
|
+
*/
|
|
28
|
+
customerPaymentGatewayId?: string;
|
|
23
29
|
/**
|
|
24
30
|
* Payment type
|
|
25
31
|
* @type {string}
|
|
@@ -27,41 +33,41 @@ export interface PaymentMethod {
|
|
|
27
33
|
*/
|
|
28
34
|
paymentType: string;
|
|
29
35
|
/**
|
|
30
|
-
*
|
|
36
|
+
* Type of card
|
|
31
37
|
* @type {string}
|
|
32
38
|
* @memberof PaymentMethod
|
|
33
39
|
*/
|
|
34
|
-
|
|
40
|
+
type?: string;
|
|
35
41
|
/**
|
|
36
|
-
*
|
|
37
|
-
* @type {
|
|
42
|
+
* Credit card or bank account number
|
|
43
|
+
* @type {string}
|
|
38
44
|
* @memberof PaymentMethod
|
|
39
45
|
*/
|
|
40
|
-
|
|
46
|
+
accountNumber: string;
|
|
41
47
|
/**
|
|
42
|
-
*
|
|
48
|
+
* Routing number for bank accounts
|
|
43
49
|
* @type {string}
|
|
44
50
|
* @memberof PaymentMethod
|
|
45
51
|
*/
|
|
46
|
-
|
|
52
|
+
routingNumber?: string;
|
|
47
53
|
/**
|
|
48
|
-
*
|
|
54
|
+
* Name on card or account
|
|
49
55
|
* @type {string}
|
|
50
56
|
* @memberof PaymentMethod
|
|
51
57
|
*/
|
|
52
|
-
|
|
58
|
+
accountHolderName?: string;
|
|
53
59
|
/**
|
|
54
|
-
*
|
|
60
|
+
* Type of acccount owner
|
|
55
61
|
* @type {string}
|
|
56
62
|
* @memberof PaymentMethod
|
|
57
63
|
*/
|
|
58
|
-
|
|
64
|
+
accountHolderType?: string;
|
|
59
65
|
/**
|
|
60
|
-
*
|
|
66
|
+
* Country of the account holder
|
|
61
67
|
* @type {string}
|
|
62
68
|
* @memberof PaymentMethod
|
|
63
69
|
*/
|
|
64
|
-
|
|
70
|
+
country?: string;
|
|
65
71
|
/**
|
|
66
72
|
* Credit card expiration date
|
|
67
73
|
* @type {string}
|
|
@@ -74,6 +80,24 @@ export interface PaymentMethod {
|
|
|
74
80
|
* @memberof PaymentMethod
|
|
75
81
|
*/
|
|
76
82
|
status?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Enable defaule payment method
|
|
85
|
+
* @type {boolean}
|
|
86
|
+
* @memberof PaymentMethod
|
|
87
|
+
*/
|
|
88
|
+
_default?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* CVC, security code for payment method
|
|
91
|
+
* @type {string}
|
|
92
|
+
* @memberof PaymentMethod
|
|
93
|
+
*/
|
|
94
|
+
cvc?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Payment method ID
|
|
97
|
+
* @type {string}
|
|
98
|
+
* @memberof PaymentMethod
|
|
99
|
+
*/
|
|
100
|
+
paymentMethodId: string;
|
|
77
101
|
}
|
|
78
102
|
|
|
79
103
|
/**
|
|
@@ -81,10 +105,7 @@ export interface PaymentMethod {
|
|
|
81
105
|
*/
|
|
82
106
|
export function instanceOfPaymentMethod(value: object): value is PaymentMethod {
|
|
83
107
|
if (!('paymentType' in value) || value['paymentType'] === undefined) return false;
|
|
84
|
-
if (!('country' in value) || value['country'] === undefined) return false;
|
|
85
|
-
if (!('isDefault' in value) || value['isDefault'] === undefined) return false;
|
|
86
108
|
if (!('accountNumber' in value) || value['accountNumber'] === undefined) return false;
|
|
87
|
-
if (!('token' in value) || value['token'] === undefined) return false;
|
|
88
109
|
if (!('paymentMethodId' in value) || value['paymentMethodId'] === undefined) return false;
|
|
89
110
|
return true;
|
|
90
111
|
}
|
|
@@ -99,15 +120,19 @@ export function PaymentMethodFromJSONTyped(json: any, ignoreDiscriminator: boole
|
|
|
99
120
|
}
|
|
100
121
|
return {
|
|
101
122
|
|
|
123
|
+
'customerPaymentGatewayId': json['customerPaymentGatewayId'] == null ? undefined : json['customerPaymentGatewayId'],
|
|
102
124
|
'paymentType': json['paymentType'],
|
|
103
|
-
'country': json['country'],
|
|
104
|
-
'isDefault': json['isDefault'],
|
|
105
|
-
'accountNumber': json['accountNumber'],
|
|
106
|
-
'token': json['token'],
|
|
107
|
-
'paymentMethodId': json['paymentMethodId'],
|
|
108
125
|
'type': json['type'] == null ? undefined : json['type'],
|
|
126
|
+
'accountNumber': json['accountNumber'],
|
|
127
|
+
'routingNumber': json['routingNumber'] == null ? undefined : json['routingNumber'],
|
|
128
|
+
'accountHolderName': json['accountHolderName'] == null ? undefined : json['accountHolderName'],
|
|
129
|
+
'accountHolderType': json['accountHolderType'] == null ? undefined : json['accountHolderType'],
|
|
130
|
+
'country': json['country'] == null ? undefined : json['country'],
|
|
109
131
|
'expiry': json['expiry'] == null ? undefined : json['expiry'],
|
|
110
132
|
'status': json['status'] == null ? undefined : json['status'],
|
|
133
|
+
'_default': json['default'] == null ? undefined : json['default'],
|
|
134
|
+
'cvc': json['cvc'] == null ? undefined : json['cvc'],
|
|
135
|
+
'paymentMethodId': json['paymentMethodId'],
|
|
111
136
|
};
|
|
112
137
|
}
|
|
113
138
|
|
|
@@ -122,15 +147,19 @@ export function PaymentMethodToJSONTyped(value?: PaymentMethod | null, ignoreDis
|
|
|
122
147
|
|
|
123
148
|
return {
|
|
124
149
|
|
|
150
|
+
'customerPaymentGatewayId': value['customerPaymentGatewayId'],
|
|
125
151
|
'paymentType': value['paymentType'],
|
|
126
|
-
'country': value['country'],
|
|
127
|
-
'isDefault': value['isDefault'],
|
|
128
|
-
'accountNumber': value['accountNumber'],
|
|
129
|
-
'token': value['token'],
|
|
130
|
-
'paymentMethodId': value['paymentMethodId'],
|
|
131
152
|
'type': value['type'],
|
|
153
|
+
'accountNumber': value['accountNumber'],
|
|
154
|
+
'routingNumber': value['routingNumber'],
|
|
155
|
+
'accountHolderName': value['accountHolderName'],
|
|
156
|
+
'accountHolderType': value['accountHolderType'],
|
|
157
|
+
'country': value['country'],
|
|
132
158
|
'expiry': value['expiry'],
|
|
133
159
|
'status': value['status'],
|
|
160
|
+
'default': value['_default'],
|
|
161
|
+
'cvc': value['cvc'],
|
|
162
|
+
'paymentMethodId': value['paymentMethodId'],
|
|
134
163
|
};
|
|
135
164
|
}
|
|
136
165
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
/**
|
|
5
|
+
* ManageSpace API
|
|
6
|
+
* ManageSpace API Documentation
|
|
7
|
+
*
|
|
8
|
+
* The version of the OpenAPI document: 1.0.0
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
|
+
* https://openapi-generator.tech
|
|
13
|
+
* Do not edit the class manually.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { mapValues } from '../runtime';
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @export
|
|
20
|
+
* @interface RevealSsnResponse
|
|
21
|
+
*/
|
|
22
|
+
export interface RevealSsnResponse {
|
|
23
|
+
/**
|
|
24
|
+
* Full SSN (9 digits)
|
|
25
|
+
* @type {string}
|
|
26
|
+
* @memberof RevealSsnResponse
|
|
27
|
+
*/
|
|
28
|
+
ssn: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Check if a given object implements the RevealSsnResponse interface.
|
|
33
|
+
*/
|
|
34
|
+
export function instanceOfRevealSsnResponse(value: object): value is RevealSsnResponse {
|
|
35
|
+
if (!('ssn' in value) || value['ssn'] === undefined) return false;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function RevealSsnResponseFromJSON(json: any): RevealSsnResponse {
|
|
40
|
+
return RevealSsnResponseFromJSONTyped(json, false);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function RevealSsnResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RevealSsnResponse {
|
|
44
|
+
if (json == null) {
|
|
45
|
+
return json;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
|
|
49
|
+
'ssn': json['ssn'],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function RevealSsnResponseToJSON(json: any): RevealSsnResponse {
|
|
54
|
+
return RevealSsnResponseToJSONTyped(json, false);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function RevealSsnResponseToJSONTyped(value?: RevealSsnResponse | null, ignoreDiscriminator: boolean = false): any {
|
|
58
|
+
if (value == null) {
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
|
|
64
|
+
'ssn': value['ssn'],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
@@ -66,6 +66,18 @@ export interface TemplateField {
|
|
|
66
66
|
* @memberof TemplateField
|
|
67
67
|
*/
|
|
68
68
|
areas: Array<FieldArea>;
|
|
69
|
+
wh /**
|
|
70
|
+
* The option value for radio or multiple select fields
|
|
71
|
+
* @type {string}
|
|
72
|
+
* @memberof TemplateField
|
|
73
|
+
*/
|
|
74
|
+
option?: string;
|
|
75
|
+
/**
|
|
76
|
+
* The options for select fields
|
|
77
|
+
* @type {Array<string>}
|
|
78
|
+
* @memberof TemplateField
|
|
79
|
+
*/
|
|
80
|
+
options?: Array<string>;
|
|
69
81
|
/**
|
|
70
82
|
* The preferences of the field
|
|
71
83
|
* @type {FieldPreferences}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import type { EntityEventHandler, ExtensionContext } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Get the extension context from the ManageSpace host.
|
|
4
|
-
*
|
|
5
|
-
* This returns a promise that resolves when the context is received from the host.
|
|
6
|
-
* Call this early in your extension's lifecycle to get authentication and org context.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { getContext } from '@managespace/sdk/extensions';
|
|
11
|
-
*
|
|
12
|
-
* const context = await getContext();
|
|
13
|
-
* console.log('Org ID:', context.orgId);
|
|
14
|
-
* console.log('API URL:', context.apiBaseUrl);
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export declare function getContext(): Promise<ExtensionContext>;
|
|
18
|
-
/**
|
|
19
|
-
* Get the current context synchronously.
|
|
20
|
-
*
|
|
21
|
-
* Returns null if the context has not yet been received from the host.
|
|
22
|
-
* Prefer using `getContext()` which waits for the context to be available.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* import { getCurrentContext } from '@managespace/sdk/extensions';
|
|
27
|
-
*
|
|
28
|
-
* const context = getCurrentContext();
|
|
29
|
-
* if (context) {
|
|
30
|
-
* console.log('Already have context:', context.orgId);
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare function getCurrentContext(): ExtensionContext | null;
|
|
35
|
-
/**
|
|
36
|
-
* Navigate the ManageSpace host application to a specific path.
|
|
37
|
-
*
|
|
38
|
-
* Use this to navigate users to pages within ManageSpace, such as
|
|
39
|
-
* customer profiles, asset details, or other views.
|
|
40
|
-
*
|
|
41
|
-
* @param path - The path to navigate to (e.g., "/customer/123")
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```typescript
|
|
45
|
-
* import { navigate } from '@managespace/sdk/extensions';
|
|
46
|
-
*
|
|
47
|
-
* // Navigate to a customer profile
|
|
48
|
-
* navigate('/customer/abc-123');
|
|
49
|
-
*
|
|
50
|
-
* // Navigate to the assets page
|
|
51
|
-
* navigate('/assets');
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
export declare function navigate(path: string): void;
|
|
55
|
-
/**
|
|
56
|
-
* Show a toast notification in the ManageSpace host application.
|
|
57
|
-
*
|
|
58
|
-
* Use this for user feedback after actions complete.
|
|
59
|
-
*
|
|
60
|
-
* @param message - The message to display
|
|
61
|
-
* @param variant - The toast type: 'success' or 'error' (default: 'success')
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* import { showToast } from '@managespace/sdk/extensions';
|
|
66
|
-
*
|
|
67
|
-
* // Success notification
|
|
68
|
-
* showToast('Customer updated successfully');
|
|
69
|
-
*
|
|
70
|
-
* // Error notification
|
|
71
|
-
* showToast('Failed to save changes', 'error');
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
export declare function showToast(message: string, variant?: 'success' | 'error'): void;
|
|
75
|
-
/**
|
|
76
|
-
* Signal to the ManageSpace host that the extension is ready to receive context.
|
|
77
|
-
*
|
|
78
|
-
* Call this after your extension has loaded and set up its message listeners.
|
|
79
|
-
* The host will respond with a CONTEXT_INIT message containing the ExtensionContext.
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```typescript
|
|
83
|
-
* import { signalReady, getContext } from '@managespace/sdk/extensions';
|
|
84
|
-
*
|
|
85
|
-
* // Signal ready and wait for context
|
|
86
|
-
* signalReady();
|
|
87
|
-
* const context = await getContext();
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export declare function signalReady(): void;
|
|
91
|
-
/**
|
|
92
|
-
* Subscribe to entity events from the ManageSpace host.
|
|
93
|
-
*
|
|
94
|
-
* The host sends events when entities (customers, assets, etc.) are
|
|
95
|
-
* created, updated, or deleted. Use this to keep your extension in sync.
|
|
96
|
-
*
|
|
97
|
-
* @param handler - Callback function to handle entity events
|
|
98
|
-
* @returns Unsubscribe function to remove the handler
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```typescript
|
|
102
|
-
* import { onEntityEvent } from '@managespace/sdk/extensions';
|
|
103
|
-
*
|
|
104
|
-
* const unsubscribe = onEntityEvent((event) => {
|
|
105
|
-
* if (event.entityType === 'customer' && event.action === 'updated') {
|
|
106
|
-
* console.log('Customer updated:', event.entityId);
|
|
107
|
-
* refreshCustomerData();
|
|
108
|
-
* }
|
|
109
|
-
* });
|
|
110
|
-
*
|
|
111
|
-
* // Later, to stop listening:
|
|
112
|
-
* unsubscribe();
|
|
113
|
-
* ```
|
|
114
|
-
*/
|
|
115
|
-
export declare function onEntityEvent(handler: EntityEventHandler): () => void;
|
|
116
|
-
/**
|
|
117
|
-
* Create a configured fetch function for calling the ManageSpace API.
|
|
118
|
-
*
|
|
119
|
-
* This returns a fetch wrapper that automatically includes credentials
|
|
120
|
-
* and sets the correct headers for API calls.
|
|
121
|
-
*
|
|
122
|
-
* @param context - The extension context from getContext()
|
|
123
|
-
* @returns A fetch function configured for ManageSpace API calls
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```typescript
|
|
127
|
-
* import { getContext, createApiFetch } from '@managespace/sdk/extensions';
|
|
128
|
-
*
|
|
129
|
-
* const context = await getContext();
|
|
130
|
-
* const apiFetch = createApiFetch(context);
|
|
131
|
-
*
|
|
132
|
-
* // Fetch customers
|
|
133
|
-
* const response = await apiFetch('/api/crm/customers/queries', {
|
|
134
|
-
* method: 'POST',
|
|
135
|
-
* body: JSON.stringify({
|
|
136
|
-
* pageOptions: { offset: 0, limit: 20 }
|
|
137
|
-
* })
|
|
138
|
-
* });
|
|
139
|
-
* const data = await response.json();
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export declare function createApiFetch(context: ExtensionContext): (path: string, options?: RequestInit) => Promise<Response>;
|
|
143
|
-
/**
|
|
144
|
-
* Create a configured fetch function for calling your extension's BFF.
|
|
145
|
-
*
|
|
146
|
-
* This returns a fetch wrapper that forwards credentials to your BFF,
|
|
147
|
-
* allowing it to make authenticated calls to the ManageSpace API.
|
|
148
|
-
*
|
|
149
|
-
* @param context - The extension context from getContext()
|
|
150
|
-
* @returns A fetch function configured for BFF calls, or null if no BFF is configured
|
|
151
|
-
*
|
|
152
|
-
* @example
|
|
153
|
-
* ```typescript
|
|
154
|
-
* import { getContext, createBffFetch } from '@managespace/sdk/extensions';
|
|
155
|
-
*
|
|
156
|
-
* const context = await getContext();
|
|
157
|
-
* const bffFetch = createBffFetch(context);
|
|
158
|
-
*
|
|
159
|
-
* if (bffFetch) {
|
|
160
|
-
* const response = await bffFetch('/api/enriched-customers');
|
|
161
|
-
* const data = await response.json();
|
|
162
|
-
* }
|
|
163
|
-
* ```
|
|
164
|
-
*/
|
|
165
|
-
export declare function createBffFetch(context: ExtensionContext): ((path: string, options?: RequestInit) => Promise<Response>) | null;
|
|
166
|
-
//# sourceMappingURL=host-bridge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"host-bridge.d.ts","sourceRoot":"","sources":["../../src/extensions/host-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,gBAAgB,EAGnB,MAAM,SAAS,CAAC;AAiCjB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAQtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,IAAI,CAE3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM3C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,SAAS,GAAG,OAAmB,GACzC,IAAI,CAMN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAKrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,gBAAgB,GAC1B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAY5D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,gBAAgB,GAC1B,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAgBrE"}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getContext = getContext;
|
|
4
|
-
exports.getCurrentContext = getCurrentContext;
|
|
5
|
-
exports.navigate = navigate;
|
|
6
|
-
exports.showToast = showToast;
|
|
7
|
-
exports.signalReady = signalReady;
|
|
8
|
-
exports.onEntityEvent = onEntityEvent;
|
|
9
|
-
exports.createApiFetch = createApiFetch;
|
|
10
|
-
exports.createBffFetch = createBffFetch;
|
|
11
|
-
let contextResolve = null;
|
|
12
|
-
let currentContext = null;
|
|
13
|
-
const entityEventHandlers = new Set();
|
|
14
|
-
// Set up message listener when this module loads
|
|
15
|
-
if (typeof window !== 'undefined') {
|
|
16
|
-
window.addEventListener('message', (event) => {
|
|
17
|
-
if (!event.data?.type)
|
|
18
|
-
return;
|
|
19
|
-
switch (event.data.type) {
|
|
20
|
-
case 'CONTEXT_INIT':
|
|
21
|
-
currentContext = event.data.payload;
|
|
22
|
-
if (contextResolve) {
|
|
23
|
-
contextResolve(event.data.payload);
|
|
24
|
-
contextResolve = null;
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
case 'ENTITY_EVENT':
|
|
28
|
-
for (const handler of entityEventHandlers) {
|
|
29
|
-
try {
|
|
30
|
-
handler(event.data.payload);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
console.error('Entity event handler error:', error);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get the extension context from the ManageSpace host.
|
|
42
|
-
*
|
|
43
|
-
* This returns a promise that resolves when the context is received from the host.
|
|
44
|
-
* Call this early in your extension's lifecycle to get authentication and org context.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```typescript
|
|
48
|
-
* import { getContext } from '@managespace/sdk/extensions';
|
|
49
|
-
*
|
|
50
|
-
* const context = await getContext();
|
|
51
|
-
* console.log('Org ID:', context.orgId);
|
|
52
|
-
* console.log('API URL:', context.apiBaseUrl);
|
|
53
|
-
* ```
|
|
54
|
-
*/
|
|
55
|
-
function getContext() {
|
|
56
|
-
if (currentContext) {
|
|
57
|
-
return Promise.resolve(currentContext);
|
|
58
|
-
}
|
|
59
|
-
return new Promise((resolve) => {
|
|
60
|
-
contextResolve = resolve;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Get the current context synchronously.
|
|
65
|
-
*
|
|
66
|
-
* Returns null if the context has not yet been received from the host.
|
|
67
|
-
* Prefer using `getContext()` which waits for the context to be available.
|
|
68
|
-
*
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* import { getCurrentContext } from '@managespace/sdk/extensions';
|
|
72
|
-
*
|
|
73
|
-
* const context = getCurrentContext();
|
|
74
|
-
* if (context) {
|
|
75
|
-
* console.log('Already have context:', context.orgId);
|
|
76
|
-
* }
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
function getCurrentContext() {
|
|
80
|
-
return currentContext;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Navigate the ManageSpace host application to a specific path.
|
|
84
|
-
*
|
|
85
|
-
* Use this to navigate users to pages within ManageSpace, such as
|
|
86
|
-
* customer profiles, asset details, or other views.
|
|
87
|
-
*
|
|
88
|
-
* @param path - The path to navigate to (e.g., "/customer/123")
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```typescript
|
|
92
|
-
* import { navigate } from '@managespace/sdk/extensions';
|
|
93
|
-
*
|
|
94
|
-
* // Navigate to a customer profile
|
|
95
|
-
* navigate('/customer/abc-123');
|
|
96
|
-
*
|
|
97
|
-
* // Navigate to the assets page
|
|
98
|
-
* navigate('/assets');
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
function navigate(path) {
|
|
102
|
-
const message = {
|
|
103
|
-
type: 'NAVIGATE',
|
|
104
|
-
payload: { path },
|
|
105
|
-
};
|
|
106
|
-
window.parent.postMessage(message, '*');
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Show a toast notification in the ManageSpace host application.
|
|
110
|
-
*
|
|
111
|
-
* Use this for user feedback after actions complete.
|
|
112
|
-
*
|
|
113
|
-
* @param message - The message to display
|
|
114
|
-
* @param variant - The toast type: 'success' or 'error' (default: 'success')
|
|
115
|
-
*
|
|
116
|
-
* @example
|
|
117
|
-
* ```typescript
|
|
118
|
-
* import { showToast } from '@managespace/sdk/extensions';
|
|
119
|
-
*
|
|
120
|
-
* // Success notification
|
|
121
|
-
* showToast('Customer updated successfully');
|
|
122
|
-
*
|
|
123
|
-
* // Error notification
|
|
124
|
-
* showToast('Failed to save changes', 'error');
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
function showToast(message, variant = 'success') {
|
|
128
|
-
const msg = {
|
|
129
|
-
type: 'SHOW_TOAST',
|
|
130
|
-
payload: { message, variant },
|
|
131
|
-
};
|
|
132
|
-
window.parent.postMessage(msg, '*');
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Signal to the ManageSpace host that the extension is ready to receive context.
|
|
136
|
-
*
|
|
137
|
-
* Call this after your extension has loaded and set up its message listeners.
|
|
138
|
-
* The host will respond with a CONTEXT_INIT message containing the ExtensionContext.
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* ```typescript
|
|
142
|
-
* import { signalReady, getContext } from '@managespace/sdk/extensions';
|
|
143
|
-
*
|
|
144
|
-
* // Signal ready and wait for context
|
|
145
|
-
* signalReady();
|
|
146
|
-
* const context = await getContext();
|
|
147
|
-
* ```
|
|
148
|
-
*/
|
|
149
|
-
function signalReady() {
|
|
150
|
-
const message = { type: 'READY' };
|
|
151
|
-
window.parent.postMessage(message, '*');
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Subscribe to entity events from the ManageSpace host.
|
|
155
|
-
*
|
|
156
|
-
* The host sends events when entities (customers, assets, etc.) are
|
|
157
|
-
* created, updated, or deleted. Use this to keep your extension in sync.
|
|
158
|
-
*
|
|
159
|
-
* @param handler - Callback function to handle entity events
|
|
160
|
-
* @returns Unsubscribe function to remove the handler
|
|
161
|
-
*
|
|
162
|
-
* @example
|
|
163
|
-
* ```typescript
|
|
164
|
-
* import { onEntityEvent } from '@managespace/sdk/extensions';
|
|
165
|
-
*
|
|
166
|
-
* const unsubscribe = onEntityEvent((event) => {
|
|
167
|
-
* if (event.entityType === 'customer' && event.action === 'updated') {
|
|
168
|
-
* console.log('Customer updated:', event.entityId);
|
|
169
|
-
* refreshCustomerData();
|
|
170
|
-
* }
|
|
171
|
-
* });
|
|
172
|
-
*
|
|
173
|
-
* // Later, to stop listening:
|
|
174
|
-
* unsubscribe();
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
177
|
-
function onEntityEvent(handler) {
|
|
178
|
-
entityEventHandlers.add(handler);
|
|
179
|
-
return () => {
|
|
180
|
-
entityEventHandlers.delete(handler);
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Create a configured fetch function for calling the ManageSpace API.
|
|
185
|
-
*
|
|
186
|
-
* This returns a fetch wrapper that automatically includes credentials
|
|
187
|
-
* and sets the correct headers for API calls.
|
|
188
|
-
*
|
|
189
|
-
* @param context - The extension context from getContext()
|
|
190
|
-
* @returns A fetch function configured for ManageSpace API calls
|
|
191
|
-
*
|
|
192
|
-
* @example
|
|
193
|
-
* ```typescript
|
|
194
|
-
* import { getContext, createApiFetch } from '@managespace/sdk/extensions';
|
|
195
|
-
*
|
|
196
|
-
* const context = await getContext();
|
|
197
|
-
* const apiFetch = createApiFetch(context);
|
|
198
|
-
*
|
|
199
|
-
* // Fetch customers
|
|
200
|
-
* const response = await apiFetch('/api/crm/customers/queries', {
|
|
201
|
-
* method: 'POST',
|
|
202
|
-
* body: JSON.stringify({
|
|
203
|
-
* pageOptions: { offset: 0, limit: 20 }
|
|
204
|
-
* })
|
|
205
|
-
* });
|
|
206
|
-
* const data = await response.json();
|
|
207
|
-
* ```
|
|
208
|
-
*/
|
|
209
|
-
function createApiFetch(context) {
|
|
210
|
-
return (path, options = {}) => {
|
|
211
|
-
const url = `${context.apiBaseUrl}${path}`;
|
|
212
|
-
return fetch(url, {
|
|
213
|
-
...options,
|
|
214
|
-
credentials: 'include',
|
|
215
|
-
headers: {
|
|
216
|
-
'Content-Type': 'application/json',
|
|
217
|
-
...options.headers,
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Create a configured fetch function for calling your extension's BFF.
|
|
224
|
-
*
|
|
225
|
-
* This returns a fetch wrapper that forwards credentials to your BFF,
|
|
226
|
-
* allowing it to make authenticated calls to the ManageSpace API.
|
|
227
|
-
*
|
|
228
|
-
* @param context - The extension context from getContext()
|
|
229
|
-
* @returns A fetch function configured for BFF calls, or null if no BFF is configured
|
|
230
|
-
*
|
|
231
|
-
* @example
|
|
232
|
-
* ```typescript
|
|
233
|
-
* import { getContext, createBffFetch } from '@managespace/sdk/extensions';
|
|
234
|
-
*
|
|
235
|
-
* const context = await getContext();
|
|
236
|
-
* const bffFetch = createBffFetch(context);
|
|
237
|
-
*
|
|
238
|
-
* if (bffFetch) {
|
|
239
|
-
* const response = await bffFetch('/api/enriched-customers');
|
|
240
|
-
* const data = await response.json();
|
|
241
|
-
* }
|
|
242
|
-
* ```
|
|
243
|
-
*/
|
|
244
|
-
function createBffFetch(context) {
|
|
245
|
-
if (!context.bffUrl) {
|
|
246
|
-
return null;
|
|
247
|
-
}
|
|
248
|
-
return (path, options = {}) => {
|
|
249
|
-
const url = `${context.bffUrl}${path}`;
|
|
250
|
-
return fetch(url, {
|
|
251
|
-
...options,
|
|
252
|
-
credentials: 'include',
|
|
253
|
-
headers: {
|
|
254
|
-
'Content-Type': 'application/json',
|
|
255
|
-
...options.headers,
|
|
256
|
-
},
|
|
257
|
-
});
|
|
258
|
-
};
|
|
259
|
-
}
|