@managespace/sdk 0.1.186 → 0.1.188-gl

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 (122) hide show
  1. package/dist/extensibility/functions/project/billing.d.ts +3 -1
  2. package/dist/extensibility/functions/project/billing.d.ts.map +1 -1
  3. package/dist/generated/apis/default-api.d.ts +37 -1
  4. package/dist/generated/apis/default-api.d.ts.map +1 -1
  5. package/dist/generated/apis/default-api.js +132 -0
  6. package/dist/generated/models/billing-run.d.ts +6 -0
  7. package/dist/generated/models/billing-run.d.ts.map +1 -1
  8. package/dist/generated/models/billing-run.js +2 -0
  9. package/dist/generated/models/create-billing-run.d.ts +6 -0
  10. package/dist/generated/models/create-billing-run.d.ts.map +1 -1
  11. package/dist/generated/models/create-billing-run.js +2 -0
  12. package/dist/generated/models/create-order.d.ts +6 -0
  13. package/dist/generated/models/create-order.d.ts.map +1 -1
  14. package/dist/generated/models/create-order.js +2 -0
  15. package/dist/generated/models/create-product-custom.d.ts +6 -0
  16. package/dist/generated/models/create-product-custom.d.ts.map +1 -1
  17. package/dist/generated/models/create-product-custom.js +2 -0
  18. package/dist/generated/models/create-site-custom.d.ts +12 -0
  19. package/dist/generated/models/create-site-custom.d.ts.map +1 -1
  20. package/dist/generated/models/create-site-custom.js +4 -0
  21. package/dist/generated/models/create-subscription-charge.d.ts +3 -3
  22. package/dist/generated/models/create-subscription-charge.d.ts.map +1 -1
  23. package/dist/generated/models/create-subscription-charge.js +3 -9
  24. package/dist/generated/models/custom-update-customer.d.ts +0 -6
  25. package/dist/generated/models/custom-update-customer.d.ts.map +1 -1
  26. package/dist/generated/models/custom-update-customer.js +0 -2
  27. package/dist/generated/models/document-status-value.d.ts +39 -0
  28. package/dist/generated/models/document-status-value.d.ts.map +1 -0
  29. package/dist/generated/models/document-status-value.js +55 -0
  30. package/dist/generated/models/document-status.d.ts +3 -5
  31. package/dist/generated/models/document-status.d.ts.map +1 -1
  32. package/dist/generated/models/document-status.js +3 -2
  33. package/dist/generated/models/financial-deposits-report-filters.d.ts +45 -0
  34. package/dist/generated/models/financial-deposits-report-filters.d.ts.map +1 -0
  35. package/dist/generated/models/financial-deposits-report-filters.js +57 -0
  36. package/dist/generated/models/financial-summary-report-filters.d.ts +45 -0
  37. package/dist/generated/models/financial-summary-report-filters.d.ts.map +1 -0
  38. package/dist/generated/models/financial-summary-report-filters.js +57 -0
  39. package/dist/generated/models/index.d.ts +3 -0
  40. package/dist/generated/models/index.d.ts.map +1 -1
  41. package/dist/generated/models/index.js +3 -0
  42. package/dist/generated/models/journal-entry-entries.d.ts +12 -0
  43. package/dist/generated/models/journal-entry-entries.d.ts.map +1 -1
  44. package/dist/generated/models/journal-entry-entries.js +8 -0
  45. package/dist/generated/models/journal-entry.d.ts +28 -0
  46. package/dist/generated/models/journal-entry.d.ts.map +1 -1
  47. package/dist/generated/models/journal-entry.js +22 -0
  48. package/dist/generated/models/order.d.ts +6 -0
  49. package/dist/generated/models/order.d.ts.map +1 -1
  50. package/dist/generated/models/order.js +2 -0
  51. package/dist/generated/models/product-custom.d.ts +6 -0
  52. package/dist/generated/models/product-custom.d.ts.map +1 -1
  53. package/dist/generated/models/product-custom.js +2 -0
  54. package/dist/generated/models/product-type.d.ts +3 -0
  55. package/dist/generated/models/product-type.d.ts.map +1 -1
  56. package/dist/generated/models/product-type.js +4 -1
  57. package/dist/generated/models/refund-invoice.d.ts +6 -0
  58. package/dist/generated/models/refund-invoice.d.ts.map +1 -1
  59. package/dist/generated/models/refund-invoice.js +2 -0
  60. package/dist/generated/models/site.d.ts +12 -0
  61. package/dist/generated/models/site.d.ts.map +1 -1
  62. package/dist/generated/models/site.js +8 -0
  63. package/dist/generated/models/subscription-charge.d.ts +3 -3
  64. package/dist/generated/models/subscription-charge.d.ts.map +1 -1
  65. package/dist/generated/models/subscription-charge.js +3 -9
  66. package/dist/generated/models/update-order.d.ts +6 -0
  67. package/dist/generated/models/update-order.d.ts.map +1 -1
  68. package/dist/generated/models/update-order.js +2 -0
  69. package/dist/generated/models/update-product.d.ts +6 -0
  70. package/dist/generated/models/update-product.d.ts.map +1 -1
  71. package/dist/generated/models/update-product.js +2 -0
  72. package/dist/generated/models/update-subscription-charge.d.ts +8 -8
  73. package/dist/generated/models/update-subscription-charge.d.ts.map +1 -1
  74. package/dist/generated/models/update-subscription-charge.js +4 -8
  75. package/package.json +5 -2
  76. package/src/extensibility/functions/project/billing.ts +3 -1
  77. package/src/generated/.openapi-generator/FILES +3 -0
  78. package/src/generated/apis/default-api.ts +196 -0
  79. package/src/generated/models/billing-run.ts +8 -0
  80. package/src/generated/models/create-billing-run.ts +8 -0
  81. package/src/generated/models/create-order.ts +8 -0
  82. package/src/generated/models/create-product-custom.ts +8 -0
  83. package/src/generated/models/create-site-custom.ts +16 -0
  84. package/src/generated/models/create-subscription-charge.ts +6 -9
  85. package/src/generated/models/custom-update-customer.ts +0 -8
  86. package/src/generated/models/document-status-value.ts +76 -0
  87. package/src/generated/models/document-status.ts +11 -4
  88. package/src/generated/models/financial-deposits-report-filters.ts +84 -0
  89. package/src/generated/models/financial-summary-report-filters.ts +84 -0
  90. package/src/generated/models/index.ts +3 -0
  91. package/src/generated/models/journal-entry-entries.ts +18 -0
  92. package/src/generated/models/journal-entry.ts +40 -0
  93. package/src/generated/models/order.ts +8 -0
  94. package/src/generated/models/product-custom.ts +8 -0
  95. package/src/generated/models/product-type.ts +4 -1
  96. package/src/generated/models/refund-invoice.ts +8 -0
  97. package/src/generated/models/site.ts +18 -0
  98. package/src/generated/models/subscription-charge.ts +6 -9
  99. package/src/generated/models/update-order.ts +8 -0
  100. package/src/generated/models/update-product.ts +8 -0
  101. package/src/generated/models/update-subscription-charge.ts +12 -14
  102. package/dist/extensions/host-bridge.d.ts +0 -166
  103. package/dist/extensions/host-bridge.d.ts.map +0 -1
  104. package/dist/extensions/host-bridge.js +0 -259
  105. package/dist/extensions/index.d.ts +0 -40
  106. package/dist/extensions/index.d.ts.map +0 -1
  107. package/dist/extensions/index.js +0 -55
  108. package/dist/extensions/types.d.ts +0 -111
  109. package/dist/extensions/types.d.ts.map +0 -1
  110. package/dist/extensions/types.js +0 -2
  111. package/dist/generated/apis/extensions-api.d.ts +0 -98
  112. package/dist/generated/apis/extensions-api.d.ts.map +0 -1
  113. package/dist/generated/apis/extensions-api.js +0 -295
  114. package/dist/generated/models/extension-org.d.ts +0 -64
  115. package/dist/generated/models/extension-org.d.ts.map +0 -1
  116. package/dist/generated/models/extension-org.js +0 -70
  117. package/dist/generated/models/extension.d.ts +0 -106
  118. package/dist/generated/models/extension.d.ts.map +0 -1
  119. package/dist/generated/models/extension.js +0 -98
  120. package/dist/generated/models/update-document-type.d.ts +0 -43
  121. package/dist/generated/models/update-document-type.d.ts.map +0 -1
  122. package/dist/generated/models/update-document-type.js +0 -61
@@ -309,6 +309,18 @@ export interface Site {
309
309
  * @memberof Site
310
310
  */
311
311
  division: string | null;
312
+ /**
313
+ * Merchant identifier for payment processing
314
+ * @type {string}
315
+ * @memberof Site
316
+ */
317
+ merchantId: string | null;
318
+ /**
319
+ * Account number for payment processing
320
+ * @type {string}
321
+ * @memberof Site
322
+ */
323
+ accountNumber: string | null;
312
324
  /**
313
325
  * When onboarding was completed for this site
314
326
  * @type {Date}
@@ -330,6 +342,8 @@ export function instanceOfSite(value: object): value is Site {
330
342
  if (!('addressId' in value) || value['addressId'] === undefined) return false;
331
343
  if (!('siteCode' in value) || value['siteCode'] === undefined) return false;
332
344
  if (!('division' in value) || value['division'] === undefined) return false;
345
+ if (!('merchantId' in value) || value['merchantId'] === undefined) return false;
346
+ if (!('accountNumber' in value) || value['accountNumber'] === undefined) return false;
333
347
  if (!('onboardCompletedAt' in value) || value['onboardCompletedAt'] === undefined) return false;
334
348
  return true;
335
349
  }
@@ -371,6 +385,8 @@ export function SiteFromJSONTyped(json: any, ignoreDiscriminator: boolean): Site
371
385
  'siteRoles': json['siteRoles'] == null ? undefined : ((json['siteRoles'] as Array<any>).map(SiteRoleFromJSON)),
372
386
  'siteCode': json['siteCode'],
373
387
  'division': json['division'],
388
+ 'merchantId': json['merchantId'],
389
+ 'accountNumber': json['accountNumber'],
374
390
  'onboardCompletedAt': (json['onboardCompletedAt'] == null ? null : new Date(json['onboardCompletedAt'])),
375
391
  };
376
392
  }
@@ -413,6 +429,8 @@ export function SiteToJSONTyped(value?: Site | null, ignoreDiscriminator: boolea
413
429
  'siteRoles': value['siteRoles'] == null ? undefined : ((value['siteRoles'] as Array<any>).map(SiteRoleToJSON)),
414
430
  'siteCode': value['siteCode'],
415
431
  'division': value['division'],
432
+ 'merchantId': value['merchantId'],
433
+ 'accountNumber': value['accountNumber'],
416
434
  'onboardCompletedAt': (value['onboardCompletedAt'] == null ? null : (value['onboardCompletedAt'] as any).toISOString()),
417
435
  };
418
436
  }
@@ -52,7 +52,7 @@ export interface SubscriptionCharge {
52
52
  * @type {string}
53
53
  * @memberof SubscriptionCharge
54
54
  */
55
- planId: string;
55
+ planId?: string;
56
56
  /**
57
57
  * Name of plan
58
58
  * @type {string}
@@ -64,13 +64,13 @@ export interface SubscriptionCharge {
64
64
  * @type {string}
65
65
  * @memberof SubscriptionCharge
66
66
  */
67
- chargeId: string;
67
+ chargeId?: string;
68
68
  /**
69
69
  * Name of charge
70
70
  * @type {string}
71
71
  * @memberof SubscriptionCharge
72
72
  */
73
- chargeName: string;
73
+ chargeName?: string;
74
74
  /**
75
75
  * How charge will be priced
76
76
  * @type {string}
@@ -318,9 +318,6 @@ export interface SubscriptionCharge {
318
318
  */
319
319
  export function instanceOfSubscriptionCharge(value: object): value is SubscriptionCharge {
320
320
  if (!('productId' in value) || value['productId'] === undefined) return false;
321
- if (!('planId' in value) || value['planId'] === undefined) return false;
322
- if (!('chargeId' in value) || value['chargeId'] === undefined) return false;
323
- if (!('chargeName' in value) || value['chargeName'] === undefined) return false;
324
321
  if (!('assetId' in value) || value['assetId'] === undefined) return false;
325
322
  if (!('discountedCmrr' in value) || value['discountedCmrr'] === undefined) return false;
326
323
  return true;
@@ -338,10 +335,10 @@ export function SubscriptionChargeFromJSONTyped(json: any, ignoreDiscriminator:
338
335
 
339
336
  'productId': json['productId'],
340
337
  'productName': json['productName'] == null ? undefined : json['productName'],
341
- 'planId': json['planId'],
338
+ 'planId': json['planId'] == null ? undefined : json['planId'],
342
339
  'planName': json['planName'] == null ? undefined : json['planName'],
343
- 'chargeId': json['chargeId'],
344
- 'chargeName': json['chargeName'],
340
+ 'chargeId': json['chargeId'] == null ? undefined : json['chargeId'],
341
+ 'chargeName': json['chargeName'] == null ? undefined : json['chargeName'],
345
342
  'pricingModel': json['pricingModel'] == null ? undefined : json['pricingModel'],
346
343
  'listPrice': json['listPrice'] == null ? undefined : json['listPrice'],
347
344
  'priceBase': json['priceBase'] == null ? undefined : json['priceBase'],
@@ -155,6 +155,12 @@ export interface UpdateOrder {
155
155
  * @memberof UpdateOrder
156
156
  */
157
157
  orderType: OrderType;
158
+ /**
159
+ * Idempotency key to prevent duplicate orders on retry
160
+ * @type {string}
161
+ * @memberof UpdateOrder
162
+ */
163
+ idempotencyKey?: string;
158
164
  }
159
165
 
160
166
 
@@ -203,6 +209,7 @@ export function UpdateOrderFromJSONTyped(json: any, ignoreDiscriminator: boolean
203
209
  'assetId': json['assetId'] == null ? undefined : json['assetId'],
204
210
  'subscriptionId': json['subscriptionId'] == null ? undefined : json['subscriptionId'],
205
211
  'orderType': OrderTypeFromJSON(json['orderType']),
212
+ 'idempotencyKey': json['idempotencyKey'] == null ? undefined : json['idempotencyKey'],
206
213
  };
207
214
  }
208
215
 
@@ -237,6 +244,7 @@ export function UpdateOrderToJSONTyped(value?: UpdateOrder | null, ignoreDiscrim
237
244
  'assetId': value['assetId'],
238
245
  'subscriptionId': value['subscriptionId'],
239
246
  'orderType': OrderTypeToJSON(value['orderType']),
247
+ 'idempotencyKey': value['idempotencyKey'],
240
248
  };
241
249
  }
242
250
 
@@ -119,6 +119,12 @@ export interface UpdateProduct {
119
119
  * @memberof UpdateProduct
120
120
  */
121
121
  oneTimeCharge: boolean;
122
+ /**
123
+ * Product ID to use when writing off this product's charge
124
+ * @type {string}
125
+ * @memberof UpdateProduct
126
+ */
127
+ writeOffProductId?: string;
122
128
  }
123
129
 
124
130
 
@@ -161,6 +167,7 @@ export function UpdateProductFromJSONTyped(json: any, ignoreDiscriminator: boole
161
167
  'incomeAccount': json['incomeAccount'] == null ? undefined : json['incomeAccount'],
162
168
  'productTaxGroupName': json['productTaxGroupName'] == null ? undefined : json['productTaxGroupName'],
163
169
  'oneTimeCharge': json['oneTimeCharge'],
170
+ 'writeOffProductId': json['writeOffProductId'] == null ? undefined : json['writeOffProductId'],
164
171
  };
165
172
  }
166
173
 
@@ -189,6 +196,7 @@ export function UpdateProductToJSONTyped(value?: UpdateProduct | null, ignoreDis
189
196
  'incomeAccount': value['incomeAccount'],
190
197
  'productTaxGroupName': value['productTaxGroupName'],
191
198
  'oneTimeCharge': value['oneTimeCharge'],
199
+ 'writeOffProductId': value['writeOffProductId'],
192
200
  };
193
201
  }
194
202
 
@@ -52,19 +52,25 @@ export interface UpdateSubscriptionCharge {
52
52
  * @type {string}
53
53
  * @memberof UpdateSubscriptionCharge
54
54
  */
55
- planId: string;
55
+ planId?: string;
56
56
  /**
57
57
  * Name of plan
58
58
  * @type {string}
59
59
  * @memberof UpdateSubscriptionCharge
60
60
  */
61
61
  planName?: string;
62
+ /**
63
+ * Charge ID
64
+ * @type {string}
65
+ * @memberof UpdateSubscriptionCharge
66
+ */
67
+ chargeId?: string;
62
68
  /**
63
69
  * Name of charge
64
70
  * @type {string}
65
71
  * @memberof UpdateSubscriptionCharge
66
72
  */
67
- chargeName: string;
73
+ chargeName?: string;
68
74
  /**
69
75
  * How charge will be priced
70
76
  * @type {string}
@@ -287,12 +293,6 @@ export interface UpdateSubscriptionCharge {
287
293
  * @memberof UpdateSubscriptionCharge
288
294
  */
289
295
  customRecognitionEndDate?: string;
290
- /**
291
- * Charge ID
292
- * @type {string}
293
- * @memberof UpdateSubscriptionCharge
294
- */
295
- chargeId?: string;
296
296
  /**
297
297
  * Asset ID
298
298
  * @type {string}
@@ -312,8 +312,6 @@ export interface UpdateSubscriptionCharge {
312
312
  */
313
313
  export function instanceOfUpdateSubscriptionCharge(value: object): value is UpdateSubscriptionCharge {
314
314
  if (!('productId' in value) || value['productId'] === undefined) return false;
315
- if (!('planId' in value) || value['planId'] === undefined) return false;
316
- if (!('chargeName' in value) || value['chargeName'] === undefined) return false;
317
315
  return true;
318
316
  }
319
317
 
@@ -329,9 +327,10 @@ export function UpdateSubscriptionChargeFromJSONTyped(json: any, ignoreDiscrimin
329
327
 
330
328
  'productId': json['productId'],
331
329
  'productName': json['productName'] == null ? undefined : json['productName'],
332
- 'planId': json['planId'],
330
+ 'planId': json['planId'] == null ? undefined : json['planId'],
333
331
  'planName': json['planName'] == null ? undefined : json['planName'],
334
- 'chargeName': json['chargeName'],
332
+ 'chargeId': json['chargeId'] == null ? undefined : json['chargeId'],
333
+ 'chargeName': json['chargeName'] == null ? undefined : json['chargeName'],
335
334
  'pricingModel': json['pricingModel'] == null ? undefined : json['pricingModel'],
336
335
  'listPrice': json['listPrice'] == null ? undefined : json['listPrice'],
337
336
  'priceBase': json['priceBase'] == null ? undefined : json['priceBase'],
@@ -369,7 +368,6 @@ export function UpdateSubscriptionChargeFromJSONTyped(json: any, ignoreDiscrimin
369
368
  'recognitionStartDate': json['recognitionStartDate'] == null ? undefined : json['recognitionStartDate'],
370
369
  'customRecognitionStartDate': json['customRecognitionStartDate'] == null ? undefined : json['customRecognitionStartDate'],
371
370
  'customRecognitionEndDate': json['customRecognitionEndDate'] == null ? undefined : json['customRecognitionEndDate'],
372
- 'chargeId': json['chargeId'] == null ? undefined : json['chargeId'],
373
371
  'assetId': json['assetId'] == null ? undefined : json['assetId'],
374
372
  'transactionPostingEntries': json['transactionPostingEntries'] == null ? undefined : ((json['transactionPostingEntries'] as Array<any>).map(TransactionPostingEntriesFromJSON)),
375
373
  };
@@ -390,6 +388,7 @@ export function UpdateSubscriptionChargeToJSONTyped(value?: UpdateSubscriptionCh
390
388
  'productName': value['productName'],
391
389
  'planId': value['planId'],
392
390
  'planName': value['planName'],
391
+ 'chargeId': value['chargeId'],
393
392
  'chargeName': value['chargeName'],
394
393
  'pricingModel': value['pricingModel'],
395
394
  'listPrice': value['listPrice'],
@@ -428,7 +427,6 @@ export function UpdateSubscriptionChargeToJSONTyped(value?: UpdateSubscriptionCh
428
427
  'recognitionStartDate': value['recognitionStartDate'],
429
428
  'customRecognitionStartDate': value['customRecognitionStartDate'],
430
429
  'customRecognitionEndDate': value['customRecognitionEndDate'],
431
- 'chargeId': value['chargeId'],
432
430
  'assetId': value['assetId'],
433
431
  'transactionPostingEntries': value['transactionPostingEntries'] == null ? undefined : ((value['transactionPostingEntries'] as Array<any>).map(TransactionPostingEntriesToJSON)),
434
432
  };
@@ -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
- }