@zeniai/client-epic-state 5.1.93 → 5.1.94

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 (145) hide show
  1. package/lib/entity/aiCfo/aiCfoPayload.d.ts +7 -0
  2. package/lib/entity/aiCfo/aiCfoReducer.d.ts +3 -2
  3. package/lib/entity/aiCfo/aiCfoReducer.js +25 -2
  4. package/lib/entity/aiCfo/aiCfoState.d.ts +7 -0
  5. package/lib/entity/company/companyPayload.d.ts +4 -0
  6. package/lib/entity/company/companyPayload.js +18 -8
  7. package/lib/entity/company/companyStateTypes.d.ts +4 -0
  8. package/lib/entity/customerSatisfaction/customerSatisfactionReducer.d.ts +1 -1
  9. package/lib/entity/customerSatisfaction/customerSatisfactionReducer.js +6 -2
  10. package/lib/entity/snackbar/snackbarApiError.d.ts +8 -0
  11. package/lib/entity/snackbar/snackbarApiError.js +15 -0
  12. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  13. package/lib/entity/snackbar/snackbarTypes.js +31 -0
  14. package/lib/entity/tenant/tenantReducer.d.ts +5 -1
  15. package/lib/entity/tenant/tenantReducer.js +21 -2
  16. package/lib/epic.d.ts +3 -1
  17. package/lib/epic.js +5 -1
  18. package/lib/esm/entity/aiCfo/aiCfoReducer.js +23 -1
  19. package/lib/esm/entity/company/companyPayload.js +18 -8
  20. package/lib/esm/entity/customerSatisfaction/customerSatisfactionReducer.js +4 -1
  21. package/lib/esm/entity/snackbar/snackbarApiError.js +11 -0
  22. package/lib/esm/entity/snackbar/snackbarTypes.js +31 -0
  23. package/lib/esm/entity/tenant/tenantReducer.js +20 -1
  24. package/lib/esm/epic.js +5 -1
  25. package/lib/esm/index.js +9 -8
  26. package/lib/esm/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +4 -1
  27. package/lib/esm/view/companyView/companyViewReducer.js +58 -1
  28. package/lib/esm/view/companyView/epic/updateCompanyProductServicesEpic.js +91 -0
  29. package/lib/esm/view/companyView/epic/updateCompanyQboRealmIdEpic.js +58 -0
  30. package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +52 -0
  31. package/lib/esm/view/companyView/types/cockpitTypes.js +13 -1
  32. package/lib/esm/view/companyView/types/companyManagementViewState.js +2 -0
  33. package/lib/esm/view/invoicing/createCreditNote/createCreditNoteEpic.js +26 -4
  34. package/lib/esm/view/invoicing/createInvoice/createInvoiceEpic.js +26 -4
  35. package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +37 -10
  36. package/lib/esm/view/invoicing/discountAction/discountActionEpic.js +37 -10
  37. package/lib/esm/view/invoicing/dunningAction/dunningActionEpic.js +39 -10
  38. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +5 -1
  39. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +5 -4
  40. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +35 -5
  41. package/lib/esm/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +25 -3
  42. package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +26 -4
  43. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +26 -4
  44. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +20 -3
  45. package/lib/esm/view/invoicing/invoiceAction/invoiceActionEpic.js +65 -18
  46. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +30 -0
  47. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +4 -29
  48. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +26 -0
  49. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +16 -0
  50. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +9 -1
  51. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +50 -1
  52. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +14 -1
  53. package/lib/esm/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +31 -10
  54. package/lib/esm/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +30 -5
  55. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +26 -4
  56. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +22 -14
  57. package/lib/esm/view/invoicing/recordPayment/recordPaymentEpic.js +49 -7
  58. package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +30 -9
  59. package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +1 -1
  60. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +56 -1
  61. package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionEpic.js +45 -10
  62. package/lib/esm/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +4 -1
  63. package/lib/esm/view/vendorTabView/vendorTabViewReducer.js +4 -1
  64. package/lib/index.d.ts +17 -13
  65. package/lib/index.js +62 -50
  66. package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.d.ts +1 -1
  67. package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +5 -2
  68. package/lib/view/companyView/companyViewReducer.d.ts +22 -1
  69. package/lib/view/companyView/companyViewReducer.js +60 -3
  70. package/lib/view/companyView/epic/updateCompanyProductServicesEpic.d.ts +10 -0
  71. package/lib/view/companyView/epic/updateCompanyProductServicesEpic.js +95 -0
  72. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.d.ts +8 -0
  73. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.js +62 -0
  74. package/lib/view/companyView/selector/companyManagementViewSelector.d.ts +3 -0
  75. package/lib/view/companyView/selector/companyManagementViewSelector.js +55 -0
  76. package/lib/view/companyView/types/cockpitTypes.d.ts +7 -3
  77. package/lib/view/companyView/types/cockpitTypes.js +15 -1
  78. package/lib/view/companyView/types/companyManagementViewState.d.ts +2 -0
  79. package/lib/view/companyView/types/companyManagementViewState.js +2 -0
  80. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  81. package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.d.ts +2 -1
  82. package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.js +25 -3
  83. package/lib/view/invoicing/createInvoice/createInvoiceEpic.d.ts +2 -1
  84. package/lib/view/invoicing/createInvoice/createInvoiceEpic.js +25 -3
  85. package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +22 -8
  86. package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +37 -10
  87. package/lib/view/invoicing/discountAction/discountActionEpic.d.ts +2 -1
  88. package/lib/view/invoicing/discountAction/discountActionEpic.js +35 -8
  89. package/lib/view/invoicing/dunningAction/dunningActionEpic.d.ts +2 -1
  90. package/lib/view/invoicing/dunningAction/dunningActionEpic.js +37 -8
  91. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.d.ts +3 -1
  92. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +5 -1
  93. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +5 -4
  94. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.d.ts +2 -1
  95. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +34 -4
  96. package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.d.ts +2 -1
  97. package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +24 -2
  98. package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.d.ts +2 -1
  99. package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +25 -3
  100. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.d.ts +2 -1
  101. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +25 -3
  102. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.d.ts +2 -1
  103. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +19 -2
  104. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.d.ts +2 -1
  105. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.js +63 -16
  106. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +13 -0
  107. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
  108. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +30 -0
  109. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.d.ts +11 -31
  110. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +4 -29
  111. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +15 -0
  112. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.d.ts +7 -0
  113. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +30 -0
  114. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.d.ts +6 -0
  115. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +20 -0
  116. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewEpics.d.ts +2 -2
  117. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.d.ts +12 -0
  118. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +11 -0
  119. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts +21 -4
  120. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +51 -2
  121. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.d.ts +3 -0
  122. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +16 -2
  123. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewState.d.ts +13 -0
  124. package/lib/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.d.ts +2 -1
  125. package/lib/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +30 -9
  126. package/lib/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +29 -4
  127. package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.d.ts +2 -1
  128. package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +25 -3
  129. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.d.ts +24 -7
  130. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +23 -16
  131. package/lib/view/invoicing/recordPayment/recordPaymentEpic.d.ts +2 -1
  132. package/lib/view/invoicing/recordPayment/recordPaymentEpic.js +48 -6
  133. package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +2 -1
  134. package/lib/view/invoicing/settingsView/settingsViewEpics.js +28 -7
  135. package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +10 -1
  136. package/lib/view/invoicing/settingsView/settingsViewReducer.js +1 -1
  137. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +44 -2
  138. package/lib/view/invoicing/settingsView/settingsViewSelector.js +59 -2
  139. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.d.ts +2 -1
  140. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.js +43 -8
  141. package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.d.ts +1 -1
  142. package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +5 -2
  143. package/lib/view/vendorTabView/vendorTabViewReducer.d.ts +1 -1
  144. package/lib/view/vendorTabView/vendorTabViewReducer.js +5 -2
  145. package/package.json +2 -2
@@ -4,6 +4,8 @@ exports.saveInvoicingSettingsEpic = exports.disconnectInvoicingStripeEpic = expo
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
6
  const addressReducer_1 = require("../../../entity/address/addressReducer");
7
+ const snackbarApiError_1 = require("../../../entity/snackbar/snackbarApiError");
8
+ const snackbarReducer_1 = require("../../../entity/snackbar/snackbarReducer");
7
9
  const responsePayload_1 = require("../../../responsePayload");
8
10
  const settingsViewReducer_1 = require("./settingsViewReducer");
9
11
  const fetchInvoicingSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(settingsViewReducer_1.fetchInvoicingSettings.match), (0, operators_1.switchMap)(() => {
@@ -63,16 +65,35 @@ const disconnectInvoicingStripeEpic = (actions$, _state$, zeniAPI) => actions$.p
63
65
  exports.disconnectInvoicingStripeEpic = disconnectInvoicingStripeEpic;
64
66
  const saveInvoicingSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(settingsViewReducer_1.saveInvoicingSettings.match), (0, operators_1.mergeMap)((action) => {
65
67
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/settings`;
68
+ const { settings, snackbarSection } = action.payload;
69
+ /** `status` surfaces the platform's error text; omit it to keep the generic copy. */
70
+ const snackbar = (messageText, status) => snackbarSection == null
71
+ ? []
72
+ : [
73
+ (0, snackbarReducer_1.openSnackbar)({
74
+ messageSection: snackbarSection,
75
+ messageText,
76
+ type: messageText === 'success' ? 'success' : 'error',
77
+ variables: (0, snackbarApiError_1.apiErrorSnackbarVariables)(status),
78
+ }),
79
+ ];
66
80
  return zeniAPI
67
- .putAndGetJSON(apiUrl, {
68
- ...action.payload,
69
- })
81
+ .putAndGetJSON(apiUrl, { ...settings })
70
82
  .pipe((0, operators_1.switchMap)((response) => {
71
83
  if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
72
- return (0, rxjs_1.of)((0, settingsViewReducer_1.saveInvoicingSettingsSuccess)(response.data));
84
+ return (0, rxjs_1.from)([
85
+ (0, settingsViewReducer_1.saveInvoicingSettingsSuccess)(response.data),
86
+ ...snackbar('success'),
87
+ ]);
73
88
  }
74
- return (0, rxjs_1.of)((0, settingsViewReducer_1.saveInvoicingSettingsFailure)(response.status));
75
- }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, settingsViewReducer_1.saveInvoicingSettingsFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Save settings REST API call errored out ' +
76
- JSON.stringify(error))))));
89
+ return (0, rxjs_1.from)([
90
+ (0, settingsViewReducer_1.saveInvoicingSettingsFailure)(response.status),
91
+ ...snackbar('failed', response.status),
92
+ ]);
93
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
94
+ (0, settingsViewReducer_1.saveInvoicingSettingsFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Save settings REST API call errored out ' +
95
+ JSON.stringify(error))),
96
+ ...snackbar('failed'),
97
+ ])));
77
98
  }));
78
99
  exports.saveInvoicingSettingsEpic = saveInvoicingSettingsEpic;
@@ -1,4 +1,5 @@
1
1
  import { InvoicingSettingsPayload } from '../../../entity/invoicing/invoicingCommonPayload';
2
+ import { SnackbarMessageSections } from '../../../entity/snackbar/snackbarTypes';
2
3
  import { ZeniAPIStatus } from '../../../responsePayload';
3
4
  import { InvoicingBrandingFormLocalData } from './invoicingBrandingFormConfig';
4
5
  import { StripeConnectCredentials } from './settingsViewPayload';
@@ -7,8 +8,16 @@ export interface InvoicingStripeConnectionUpdate {
7
8
  stripe_connected: boolean;
8
9
  publishable_key?: string;
9
10
  }
11
+ /**
12
+ * `settings` is the request body; `snackbarSection` only picks which snackbar the
13
+ * epic raises, so it is deliberately kept out of the payload sent to the API.
14
+ */
15
+ export interface SaveInvoicingSettingsPayload {
16
+ settings: Partial<InvoicingSettingsPayload>;
17
+ snackbarSection?: SnackbarMessageSections;
18
+ }
10
19
  export declare const initialState: InvoicingSettingsViewState;
11
- export declare const fetchInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/fetchInvoicingSettings">, updateInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<InvoicingSettingsPayload, "invoicingSettingsView/updateInvoicingSettings">, updateInvoicingSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "invoicingSettingsView/updateInvoicingSettingsFailure">, saveInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<InvoicingSettingsPayload>, "invoicingSettingsView/saveInvoicingSettings">, saveInvoicingSettingsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<InvoicingSettingsPayload, "invoicingSettingsView/saveInvoicingSettingsSuccess">, saveInvoicingSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "invoicingSettingsView/saveInvoicingSettingsFailure">, resetSaveInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/resetSaveInvoicingSettings">, updateInvoicingBrandingFormDraft: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
20
+ export declare const fetchInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/fetchInvoicingSettings">, updateInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<InvoicingSettingsPayload, "invoicingSettingsView/updateInvoicingSettings">, updateInvoicingSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "invoicingSettingsView/updateInvoicingSettingsFailure">, saveInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<SaveInvoicingSettingsPayload, "invoicingSettingsView/saveInvoicingSettings">, saveInvoicingSettingsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<InvoicingSettingsPayload, "invoicingSettingsView/saveInvoicingSettingsSuccess">, saveInvoicingSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "invoicingSettingsView/saveInvoicingSettingsFailure">, resetSaveInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/resetSaveInvoicingSettings">, updateInvoicingBrandingFormDraft: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
12
21
  localData: InvoicingBrandingFormLocalData;
13
22
  }, "invoicingSettingsView/updateInvoicingBrandingFormDraft">, submitInvoicingBrandingForm: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/submitInvoicingBrandingForm">, resetInvoicingBrandingFormDraft: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/resetInvoicingBrandingFormDraft">, connectInvoicingStripe: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[credentials: StripeConnectCredentials], StripeConnectCredentials, "invoicingSettingsView/connectInvoicingStripe", never, never>, disconnectInvoicingStripe: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/disconnectInvoicingStripe">, updateInvoicingStripeConnection: import("@reduxjs/toolkit").ActionCreatorWithPayload<InvoicingStripeConnectionUpdate, "invoicingSettingsView/updateInvoicingStripeConnection">, invoicingStripeConnectionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "invoicingSettingsView/invoicingStripeConnectionFailure">, clearInvoicingSettings: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingSettingsView/clearInvoicingSettings">;
14
23
  declare const _default: import("redux").Reducer<InvoicingSettingsViewState>;
@@ -34,7 +34,7 @@ const settingsView = (0, toolkit_1.createSlice)({
34
34
  saveInvoicingSettings(draft, action) {
35
35
  draft.saveFetchState = { fetchState: 'In-Progress', error: undefined };
36
36
  if (draft.settings != null) {
37
- draft.settings = { ...draft.settings, ...action.payload };
37
+ draft.settings = { ...draft.settings, ...action.payload.settings };
38
38
  }
39
39
  },
40
40
  saveInvoicingSettingsSuccess(draft, action) {
@@ -1,7 +1,8 @@
1
1
  import { FetchState, FetchStateAndError } from '../../../commonStateTypes/common';
2
- import { InvoicingSettingsPayload } from '../../../entity/invoicing/invoicingCommonPayload';
2
+ import { InvoicingNamedOption, InvoicingQboAccountMappingKindOption, InvoicingSettingsPayload } from '../../../entity/invoicing/invoicingCommonPayload';
3
3
  import { RootState } from '../../../reducer';
4
4
  import { ZeniAPIStatus } from '../../../responsePayload';
5
+ import { InvoicingOnboardingStatus } from '../invoicingConfigView/invoicingConfigViewPayload';
5
6
  import { InvoicingBrandingFormLocalData } from './invoicingBrandingFormConfig';
6
7
  /**
7
8
  * Shared primitive: the raw invoicing settings. Consumed internally by other
@@ -27,7 +28,47 @@ export interface InvoicingSettingsView {
27
28
  * Stripe-connect fetch state.
28
29
  */
29
30
  export declare const getInvoicingSettingsView: (state: RootState) => InvoicingSettingsView;
31
+ export interface InvoicingEnablePrerequisites {
32
+ canEnable: boolean;
33
+ isQboConfigured: boolean;
34
+ isStripeConnected: boolean;
35
+ }
36
+ /**
37
+ * Gates the Enable Invoicing action: payments must be able to land (Stripe
38
+ * connected *and* accepting charges) and the QBO accounting step must be
39
+ * finished, so an enabled tenant can always book what it invoices.
40
+ *
41
+ * Deliberately not part of `deriveInvoicingOnboardingStatus`, which routes the
42
+ * module off the config flags alone. Folding these in there would (a) demote a
43
+ * live tenant to the settings tree the moment an integration broke, stranding
44
+ * its existing invoices, and (b) deadlock the route gate, which fetches only the
45
+ * config — never the settings or QBO connection these read.
46
+ */
47
+ export declare function deriveInvoicingEnablePrerequisites(settings: InvoicingSettingsPayload | undefined, isQboConnected: boolean, qboAccountMappingKindOptions: InvoicingQboAccountMappingKindOption[]): InvoicingEnablePrerequisites;
48
+ export interface InvoicingSettingsHubView {
49
+ canEnableInvoicing: boolean;
50
+ isEnablingInvoicing: boolean;
51
+ isQboConfigured: boolean;
52
+ isStripeConnected: boolean;
53
+ status?: InvoicingOnboardingStatus;
54
+ }
55
+ /**
56
+ * The settings hub's composite of everything it derives from the store: whether
57
+ * to offer Enable Invoicing at all, the in-flight flag for that action, and the
58
+ * two integration prerequisites kept separate so the hub can name the step still
59
+ * outstanding instead of showing a dead button.
60
+ *
61
+ * `canEnableInvoicing` folds in the onboarding step, so the screen does not need
62
+ * to re-check it: the footer is only offered mid-onboarding and only once both
63
+ * integrations are ready.
64
+ *
65
+ * Deliberately not folded into `getInvoicingConfigView`: that selector gates
66
+ * every invoicing route and stays a pure read of the config slice. The settings
67
+ * and QBO slices read here are only fetched once a settings screen is mounted.
68
+ */
69
+ export declare const getInvoicingSettingsHubView: (state: RootState) => InvoicingSettingsHubView;
30
70
  export interface InvoicingBrandingFormView {
71
+ dateFormatOptions: InvoicingNamedOption[];
31
72
  localData: InvoicingBrandingFormLocalData;
32
73
  saveState: FetchStateAndError;
33
74
  addressLabel?: string;
@@ -37,6 +78,7 @@ export interface InvoicingBrandingFormView {
37
78
  * Bundled view for the branding settings form: the draft `localData` (seeded
38
79
  * from the existing settings until the user edits), the business-address label
39
80
  * (from the shared Address screen, seeded on load from `address_id`), the raw
40
- * settings (for the logo/preview) and the save fetch state.
81
+ * settings (for the logo/preview), the backend date-format choices and the
82
+ * save fetch state.
41
83
  */
42
84
  export declare const getInvoicingBrandingFormView: (state: RootState) => InvoicingBrandingFormView;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getInvoicingBrandingFormView = exports.getInvoicingSettingsView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = void 0;
3
+ exports.getInvoicingBrandingFormView = exports.getInvoicingSettingsHubView = exports.getInvoicingSettingsView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = void 0;
4
+ exports.deriveInvoicingEnablePrerequisites = deriveInvoicingEnablePrerequisites;
5
+ const invoicingCommonPayload_1 = require("../../../entity/invoicing/invoicingCommonPayload");
4
6
  const addressViewSelector_1 = require("../../addressView/addressViewSelector");
7
+ const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
5
8
  const invoicingBrandingFormConfig_1 = require("./invoicingBrandingFormConfig");
6
9
  /**
7
10
  * Shared primitive: the raw invoicing settings. Consumed internally by other
@@ -35,11 +38,64 @@ const getInvoicingSettingsView = (state) => {
35
38
  };
36
39
  };
37
40
  exports.getInvoicingSettingsView = getInvoicingSettingsView;
41
+ /**
42
+ * Gates the Enable Invoicing action: payments must be able to land (Stripe
43
+ * connected *and* accepting charges) and the QBO accounting step must be
44
+ * finished, so an enabled tenant can always book what it invoices.
45
+ *
46
+ * Deliberately not part of `deriveInvoicingOnboardingStatus`, which routes the
47
+ * module off the config flags alone. Folding these in there would (a) demote a
48
+ * live tenant to the settings tree the moment an integration broke, stranding
49
+ * its existing invoices, and (b) deadlock the route gate, which fetches only the
50
+ * config — never the settings or QBO connection these read.
51
+ */
52
+ function deriveInvoicingEnablePrerequisites(settings, isQboConnected, qboAccountMappingKindOptions) {
53
+ const isStripeConnected = settings?.stripe_connected === true &&
54
+ settings?.stripe_account?.charges_enabled === true;
55
+ const accountMappings = settings?.qbo?.account_mappings ?? undefined;
56
+ // An empty option list means the config has not landed yet — treating that as
57
+ // configured would let `every` pass vacuously and unlock the button early.
58
+ const isQboConfigured = isQboConnected &&
59
+ qboAccountMappingKindOptions.length > 0 &&
60
+ qboAccountMappingKindOptions.every((option) => (0, invoicingCommonPayload_1.getInvoicingQboAccountMappingId)(accountMappings, option.code) != null);
61
+ return {
62
+ canEnable: isStripeConnected && isQboConfigured,
63
+ isQboConfigured,
64
+ isStripeConnected,
65
+ };
66
+ }
67
+ /**
68
+ * The settings hub's composite of everything it derives from the store: whether
69
+ * to offer Enable Invoicing at all, the in-flight flag for that action, and the
70
+ * two integration prerequisites kept separate so the hub can name the step still
71
+ * outstanding instead of showing a dead button.
72
+ *
73
+ * `canEnableInvoicing` folds in the onboarding step, so the screen does not need
74
+ * to re-check it: the footer is only offered mid-onboarding and only once both
75
+ * integrations are ready.
76
+ *
77
+ * Deliberately not folded into `getInvoicingConfigView`: that selector gates
78
+ * every invoicing route and stays a pure read of the config slice. The settings
79
+ * and QBO slices read here are only fetched once a settings screen is mounted.
80
+ */
81
+ const getInvoicingSettingsHubView = (state) => {
82
+ const { enableState, qboAccountMappingKindOptions, status } = (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state);
83
+ const { canEnable, isQboConfigured, isStripeConnected } = deriveInvoicingEnablePrerequisites(state.invoicingSettingsViewState.settings, state.invoicingQboViewState.connection?.connected === true, qboAccountMappingKindOptions);
84
+ return {
85
+ canEnableInvoicing: status === 'settings' && canEnable,
86
+ isEnablingInvoicing: enableState.fetchState === 'In-Progress',
87
+ isQboConfigured,
88
+ isStripeConnected,
89
+ status,
90
+ };
91
+ };
92
+ exports.getInvoicingSettingsHubView = getInvoicingSettingsHubView;
38
93
  /**
39
94
  * Bundled view for the branding settings form: the draft `localData` (seeded
40
95
  * from the existing settings until the user edits), the business-address label
41
96
  * (from the shared Address screen, seeded on load from `address_id`), the raw
42
- * settings (for the logo/preview) and the save fetch state.
97
+ * settings (for the logo/preview), the backend date-format choices and the
98
+ * save fetch state.
43
99
  */
44
100
  const getInvoicingBrandingFormView = (state) => {
45
101
  const { brandingDraft, saveFetchState, settings } = state.invoicingSettingsViewState;
@@ -49,6 +105,7 @@ const getInvoicingBrandingFormView = (state) => {
49
105
  : undefined;
50
106
  return {
51
107
  addressLabel,
108
+ dateFormatOptions: (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state).dateFormatOptions,
52
109
  localData: brandingDraft ?? (0, invoicingBrandingFormConfig_1.entityToInvoicingBrandingFormLocalData)(settings),
53
110
  saveState: saveFetchState,
54
111
  settings,
@@ -2,8 +2,9 @@ import { ActionsObservable, StateObservable } from 'redux-observable';
2
2
  import { Observable } from 'rxjs';
3
3
  import { updateAddresses } from '../../../entity/address/addressReducer';
4
4
  import { updateInvoicingSubscriptions } from '../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionReducer';
5
+ import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
5
6
  import { RootState } from '../../../reducer';
6
7
  import { ZeniAPI } from '../../../zeniAPI';
7
8
  import { runInvoicingSubscriptionAction, runInvoicingSubscriptionActionFailure, runInvoicingSubscriptionActionSuccess } from './subscriptionActionReducer';
8
- export type ActionType = ReturnType<typeof runInvoicingSubscriptionAction> | ReturnType<typeof runInvoicingSubscriptionActionSuccess> | ReturnType<typeof runInvoicingSubscriptionActionFailure> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateInvoicingSubscriptions>;
9
+ export type ActionType = ReturnType<typeof runInvoicingSubscriptionAction> | ReturnType<typeof runInvoicingSubscriptionActionSuccess> | ReturnType<typeof runInvoicingSubscriptionActionFailure> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateInvoicingSubscriptions> | ReturnType<typeof openSnackbar>;
9
10
  export declare const runInvoicingSubscriptionActionEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -6,11 +6,39 @@ const operators_1 = require("rxjs/operators");
6
6
  const addressReducer_1 = require("../../../entity/address/addressReducer");
7
7
  const invoicingSubscriptionPayload_1 = require("../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload");
8
8
  const invoicingSubscriptionReducer_1 = require("../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionReducer");
9
+ const snackbarApiError_1 = require("../../../entity/snackbar/snackbarApiError");
10
+ const snackbarReducer_1 = require("../../../entity/snackbar/snackbarReducer");
9
11
  const responsePayload_1 = require("../../../responsePayload");
10
12
  const subscriptionActionReducer_1 = require("./subscriptionActionReducer");
13
+ /**
14
+ * Each lifecycle action reports with its own copy. Keyed loosely because the
15
+ * action payload carries a plain `string`; an unmapped kind stays silent.
16
+ */
17
+ const SNACKBAR_SECTION_BY_ACTION = {
18
+ activate: 'invoicing_subscription_activated',
19
+ cancel: 'invoicing_subscription_cancelled',
20
+ change_term_end: 'invoicing_subscription_term_end_changed',
21
+ pause: 'invoicing_subscription_paused',
22
+ reactivate: 'invoicing_subscription_reactivated',
23
+ remove_scheduled_cancellation: 'invoicing_subscription_cancellation_removed',
24
+ resume: 'invoicing_subscription_resumed',
25
+ set_non_renewing: 'invoicing_subscription_non_renewing',
26
+ };
11
27
  const runInvoicingSubscriptionActionEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(subscriptionActionReducer_1.runInvoicingSubscriptionAction.match), (0, operators_1.mergeMap)((action) => {
12
28
  const { action: kind, body, id } = action.payload;
13
29
  const requestBody = { action: kind, ...(body ?? {}) };
30
+ const snackbarSection = SNACKBAR_SECTION_BY_ACTION[kind];
31
+ /** `status` surfaces the platform's error text; omit it to keep the generic copy. */
32
+ const snackbar = (messageText, status) => snackbarSection == null
33
+ ? []
34
+ : [
35
+ (0, snackbarReducer_1.openSnackbar)({
36
+ messageSection: snackbarSection,
37
+ messageText,
38
+ type: messageText === 'success' ? 'success' : 'error',
39
+ variables: (0, snackbarApiError_1.apiErrorSnackbarVariables)(status),
40
+ }),
41
+ ];
14
42
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/subscriptions/${encodeURIComponent(id)}/actions`;
15
43
  return zeniAPI
16
44
  .postAndGetJSON(apiUrl, requestBody)
@@ -20,16 +48,23 @@ const runInvoicingSubscriptionActionEpic = (actions$, _state$, zeniAPI) => actio
20
48
  (0, invoicingSubscriptionReducer_1.updateInvoicingSubscriptions)([response.data], 'merge'),
21
49
  (0, addressReducer_1.updateAddresses)((0, invoicingSubscriptionPayload_1.extractInvoicingSubscriptionAddresses)([response.data])),
22
50
  (0, subscriptionActionReducer_1.runInvoicingSubscriptionActionSuccess)({ id }),
51
+ ...snackbar('success'),
23
52
  ];
24
53
  }
25
- return (0, rxjs_1.of)((0, subscriptionActionReducer_1.runInvoicingSubscriptionActionFailure)({
26
- error: response.status,
54
+ return (0, rxjs_1.from)([
55
+ (0, subscriptionActionReducer_1.runInvoicingSubscriptionActionFailure)({
56
+ error: response.status,
57
+ id,
58
+ }),
59
+ ...snackbar('failed', response.status),
60
+ ]);
61
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
62
+ (0, subscriptionActionReducer_1.runInvoicingSubscriptionActionFailure)({
63
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Subscription action REST API call errored out ' +
64
+ JSON.stringify(error)),
27
65
  id,
28
- }));
29
- }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, subscriptionActionReducer_1.runInvoicingSubscriptionActionFailure)({
30
- error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Subscription action REST API call errored out ' +
31
- JSON.stringify(error)),
32
- id,
33
- }))));
66
+ }),
67
+ ...snackbar('failed'),
68
+ ])));
34
69
  }));
35
70
  exports.runInvoicingSubscriptionActionEpic = runInvoicingSubscriptionActionEpic;
@@ -6,7 +6,7 @@ import { ZeniAPIStatus } from '../../../responsePayload';
6
6
  import { W9Form } from './vendorFiling1099UploadDetailsPayload';
7
7
  import { VendorFiling1099UploadDetailsState, VendorsFiling1099UploadDetailsLocalData } from './vendorFiling1099UploadDetailsState';
8
8
  export declare const initialState: VendorFiling1099UploadDetailsState;
9
- export declare const updateW9FormUploadFile: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
9
+ export declare const clearVendorFiling1099UploadDetails: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"vendorFiling1099UploadDetails/clearVendorFiling1099UploadDetails">, updateW9FormUploadFile: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
10
10
  w9FormFile: FilePayload;
11
11
  }, "vendorFiling1099UploadDetails/updateW9FormUploadFile">, updateW9FormUploadFetchState: import("@reduxjs/toolkit").ActionCreatorWithPayload<FetchStateAndError, "vendorFiling1099UploadDetails/updateW9FormUploadFetchState">, vendorFiling1099UploadDetailsSave: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[vendorId: string, signal?: AbortSignal | undefined], {
12
12
  vendorId: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.vendorFiling1099UploadDetailsResetFormStatus = exports.updateW9FormOCRDataToLocalData = exports.updateVendor1099DetailsLocalData = exports.initializeVendorFiling1099UploadDetailsLocalState = exports.vendorFiling1099UploadDetailsSuccessOrFailure = exports.vendorFiling1099UploadDetailsResetLocalData = exports.vendorFiling1099UploadDetailsSave = exports.updateW9FormUploadFetchState = exports.updateW9FormUploadFile = exports.initialState = void 0;
4
+ exports.vendorFiling1099UploadDetailsResetFormStatus = exports.updateW9FormOCRDataToLocalData = exports.updateVendor1099DetailsLocalData = exports.initializeVendorFiling1099UploadDetailsLocalState = exports.vendorFiling1099UploadDetailsSuccessOrFailure = exports.vendorFiling1099UploadDetailsResetLocalData = exports.vendorFiling1099UploadDetailsSave = exports.updateW9FormUploadFetchState = exports.updateW9FormUploadFile = exports.clearVendorFiling1099UploadDetails = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const rootActions_1 = require("../../../rootActions");
7
7
  const vendorFiling1099UploadDetailsPayload_1 = require("./vendorFiling1099UploadDetailsPayload");
@@ -210,10 +210,13 @@ const vendorFiling1099UploadDetails = (0, toolkit_1.createSlice)({
210
210
  address: action.payload.ocrData.address != null,
211
211
  };
212
212
  },
213
+ clearVendorFiling1099UploadDetails() {
214
+ return exports.initialState;
215
+ },
213
216
  },
214
217
  extraReducers: (builder) => {
215
218
  builder.addCase(rootActions_1.clearAll, () => exports.initialState);
216
219
  },
217
220
  });
218
- _a = vendorFiling1099UploadDetails.actions, exports.updateW9FormUploadFile = _a.updateW9FormUploadFile, exports.updateW9FormUploadFetchState = _a.updateW9FormUploadFetchState, exports.vendorFiling1099UploadDetailsSave = _a.vendorFiling1099UploadDetailsSave, exports.vendorFiling1099UploadDetailsResetLocalData = _a.vendorFiling1099UploadDetailsResetLocalData, exports.vendorFiling1099UploadDetailsSuccessOrFailure = _a.vendorFiling1099UploadDetailsSuccessOrFailure, exports.initializeVendorFiling1099UploadDetailsLocalState = _a.initializeVendorFiling1099UploadDetailsLocalState, exports.updateVendor1099DetailsLocalData = _a.updateVendor1099DetailsLocalData, exports.updateW9FormOCRDataToLocalData = _a.updateW9FormOCRDataToLocalData, exports.vendorFiling1099UploadDetailsResetFormStatus = _a.vendorFiling1099UploadDetailsResetFormStatus;
221
+ _a = vendorFiling1099UploadDetails.actions, exports.clearVendorFiling1099UploadDetails = _a.clearVendorFiling1099UploadDetails, exports.updateW9FormUploadFile = _a.updateW9FormUploadFile, exports.updateW9FormUploadFetchState = _a.updateW9FormUploadFetchState, exports.vendorFiling1099UploadDetailsSave = _a.vendorFiling1099UploadDetailsSave, exports.vendorFiling1099UploadDetailsResetLocalData = _a.vendorFiling1099UploadDetailsResetLocalData, exports.vendorFiling1099UploadDetailsSuccessOrFailure = _a.vendorFiling1099UploadDetailsSuccessOrFailure, exports.initializeVendorFiling1099UploadDetailsLocalState = _a.initializeVendorFiling1099UploadDetailsLocalState, exports.updateVendor1099DetailsLocalData = _a.updateVendor1099DetailsLocalData, exports.updateW9FormOCRDataToLocalData = _a.updateW9FormOCRDataToLocalData, exports.vendorFiling1099UploadDetailsResetFormStatus = _a.vendorFiling1099UploadDetailsResetFormStatus;
219
222
  exports.default = vendorFiling1099UploadDetails.reducer;
@@ -1,6 +1,6 @@
1
1
  import { VendorTabViewState } from './vendorTabViewState';
2
2
  export declare const initialState: VendorTabViewState;
3
- export declare const fetchVendorTabView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
3
+ export declare const clearVendorTabView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"vendorTabView/clearVendorTabView">, fetchVendorTabView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
4
4
  shouldFetchAccruedExpenses: boolean;
5
5
  shouldFetchFiling1099Vendor: boolean;
6
6
  shouldFetchFixedAssets: boolean;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.updateVendorTabViewTab = exports.fetchVendorTabView = exports.initialState = void 0;
4
+ exports.updateVendorTabViewTab = exports.fetchVendorTabView = exports.clearVendorTabView = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const rootActions_1 = require("../../rootActions");
7
7
  const vendorTabViewState_1 = require("./vendorTabViewState");
@@ -47,6 +47,9 @@ const vendorTabView = (0, toolkit_1.createSlice)({
47
47
  draft.currentTab = action.payload.tab;
48
48
  },
49
49
  },
50
+ clearVendorTabView(draft) {
51
+ Object.assign(draft, exports.initialState);
52
+ },
50
53
  },
51
54
  extraReducers: (builder) => {
52
55
  builder.addCase(rootActions_1.clearAll, (draft) => {
@@ -54,5 +57,5 @@ const vendorTabView = (0, toolkit_1.createSlice)({
54
57
  });
55
58
  },
56
59
  });
57
- _a = vendorTabView.actions, exports.fetchVendorTabView = _a.fetchVendorTabView, exports.updateVendorTabViewTab = _a.updateVendorTabViewTab;
60
+ _a = vendorTabView.actions, exports.clearVendorTabView = _a.clearVendorTabView, exports.fetchVendorTabView = _a.fetchVendorTabView, exports.updateVendorTabViewTab = _a.updateVendorTabViewTab;
58
61
  exports.default = vendorTabView.reducer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.1.93",
3
+ "version": "5.1.94",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -121,7 +121,7 @@
121
121
  "find-dead-code": "bash ./scripts/run-find-dead-code.sh",
122
122
  "find-unused-exports": "ts-unused-exports ./tsconfig.json",
123
123
  "circular-dependency": "madge --circular --extensions ts ./src",
124
- "build": "concurrently --kill-others-on-fail --handle-input \"echo 'TypeScript build in progress...' && time tsc && echo 'ESM build...' && tsc -p tsconfig.esm.json\" \"echo 'Running tests and typecheck (incl. lint-modified-files)...' && pnpm test\" && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
124
+ "build": "chmod +x ./scripts/run_build.sh && ./scripts/run_build.sh && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
125
125
  "only-build": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc && tsc -p tsconfig.esm.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
126
126
  "only-build-dev": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc -p tsconfig.dev.json && tsc -p tsconfig.esm.dev.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
127
127
  "format": "prettier --write --ignore-unknown \"src/**/*\" && pnpm lint",