@zeniai/client-epic-state 5.2.16-betaAK0 → 5.2.17

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.
@@ -104,8 +104,15 @@ const accountRecon = (0, toolkit_1.createSlice)({
104
104
  },
105
105
  reducer(draft, action) {
106
106
  const { accountReconKey, statementDataPayload } = action.payload;
107
+ const existing = draft.accountReconByAccountReconKey[accountReconKey];
108
+ if (existing == null) {
109
+ return;
110
+ }
107
111
  draft.accountReconByAccountReconKey[accountReconKey] = {
108
- ...draft.accountReconByAccountReconKey[accountReconKey],
112
+ ...existing,
113
+ // Statement delete removes the reconciliation server-side; drop the
114
+ // stale id so follow-up fetches use account_id instead of recon-id.
115
+ reconciliationId: undefined,
109
116
  statementStatus: {
110
117
  code: (0, accountReconState_1.toStatementStatusCodeType)(statementDataPayload.statement_upload.statement_status?.code),
111
118
  label: statementDataPayload.statement_upload.statement_status?.label,
@@ -100,8 +100,15 @@ const accountRecon = createSlice({
100
100
  },
101
101
  reducer(draft, action) {
102
102
  const { accountReconKey, statementDataPayload } = action.payload;
103
+ const existing = draft.accountReconByAccountReconKey[accountReconKey];
104
+ if (existing == null) {
105
+ return;
106
+ }
103
107
  draft.accountReconByAccountReconKey[accountReconKey] = {
104
- ...draft.accountReconByAccountReconKey[accountReconKey],
108
+ ...existing,
109
+ // Statement delete removes the reconciliation server-side; drop the
110
+ // stale id so follow-up fetches use account_id instead of recon-id.
111
+ reconciliationId: undefined,
105
112
  statementStatus: {
106
113
  code: toStatementStatusCodeType(statementDataPayload.statement_upload.statement_status?.code),
107
114
  label: statementDataPayload.statement_upload.statement_status?.label,
@@ -548,6 +548,9 @@ const expenseAutomationReconciliationView = createSlice({
548
548
  };
549
549
  accountRecon.combinedStatementGroupId = undefined;
550
550
  accountRecon.confirmedCombinedStatementUploads = undefined;
551
+ // Statement delete removes the reconciliation server-side; drop the
552
+ // stale id so Pusher/follow-up fetches use account_id, not recon-id.
553
+ accountRecon.reconciliationId = undefined;
551
554
  accountRecon.confirmStatementMappingStatus = {
552
555
  fetchState: 'Not-Started',
553
556
  error: undefined,
@@ -1,4 +1,3 @@
1
- import { invoicingFieldHelpForGroup } from '../invoicingConfigView/invoicingConfigViewSelector';
2
1
  /**
3
2
  * Single bundled view for the invoicing data-import surfaces — consumers read
4
3
  * only this. Carries the migration `sessions` list + `sessionsFetch`, the
@@ -8,7 +7,6 @@ import { invoicingFieldHelpForGroup } from '../invoicingConfigView/invoicingConf
8
7
  export const getInvoicingDataImportView = (state) => {
9
8
  const dataImportState = state.invoicingDataImportViewState;
10
9
  return {
11
- fieldHelp: invoicingFieldHelpForGroup(state, 'data_import'),
12
10
  activeMigrationSessionId: dataImportState.activeDetailId,
13
11
  sessionDetail: dataImportState.sessionDetail,
14
12
  sessionDetailFetch: dataImportState.sessionDetailFetch,
@@ -1,6 +1,6 @@
1
1
  import { getInvoicingQboAccountMappingId, } from '../../../entity/invoicing/invoicingCommonPayload';
2
2
  import { getFormattedAddress } from '../../addressView/addressViewSelector';
3
- import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
3
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
4
4
  import { getInvoicingQboView, isInvoicingAccountingPickerDataLoading, } from '../invoicingQboView/invoicingQboViewSelector';
5
5
  import { INVOICING_BUSINESS_ADDRESS_TYPE, entityToInvoicingBrandingFormLocalData, } from './invoicingBrandingFormConfig';
6
6
  import { initialInvoicingQboSettingsLocalData, } from './invoicingQboSettingsFormConfig';
@@ -26,7 +26,6 @@ export const getInvoicingSettingsFetchState = (state) => ({
26
26
  export const getInvoicingSettingsView = (state) => {
27
27
  const { error, fetchState, saveFetchState, settings, stripeFetchState } = state.invoicingSettingsViewState;
28
28
  return {
29
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
30
29
  error,
31
30
  fetchState,
32
31
  saveState: saveFetchState,
@@ -79,7 +78,6 @@ export const getInvoicingSettingsHubView = (state) => {
79
78
  const { dunningScheduleActionOptions, enableState, error: configError, fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, status, } = getInvoicingConfigView(state);
80
79
  const { canEnable, isQboConfigured, isStripeConnected } = deriveInvoicingEnablePrerequisites(state.invoicingSettingsViewState.settings, state.invoicingQboViewState.connection?.connected === true, qboAccountMappingKindOptions);
81
80
  return {
82
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
83
81
  // Keeps the onboarding step in the gate: a tenant that has not accepted the
84
82
  // terms cannot enable invoicing, whatever the integrations say.
85
83
  canEnableInvoicing: status === 'settings' && canEnable,
@@ -110,7 +108,6 @@ export const getInvoicingQboSettingsFormView = (state) => {
110
108
  const { fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, } = getInvoicingConfigView(state);
111
109
  const qboView = getInvoicingQboView(state);
112
110
  return {
113
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
114
111
  accountMappingKindOptions: qboAccountMappingKindOptions,
115
112
  accounts: qboView.accounts,
116
113
  backfillState: qboView.backfillState,
@@ -150,7 +147,6 @@ export const getInvoicingBrandingFormView = (state) => {
150
147
  ? getFormattedAddress(newAddress.addressToCreate)
151
148
  : undefined;
152
149
  return {
153
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
154
150
  addressLabel,
155
151
  dateFormatOptions: getInvoicingConfigView(state).dateFormatOptions,
156
152
  localData: brandingDraft ?? entityToInvoicingBrandingFormLocalData(settings),
@@ -553,6 +553,9 @@ const expenseAutomationReconciliationView = (0, toolkit_1.createSlice)({
553
553
  };
554
554
  accountRecon.combinedStatementGroupId = undefined;
555
555
  accountRecon.confirmedCombinedStatementUploads = undefined;
556
+ // Statement delete removes the reconciliation server-side; drop the
557
+ // stale id so Pusher/follow-up fetches use account_id, not recon-id.
558
+ accountRecon.reconciliationId = undefined;
556
559
  accountRecon.confirmStatementMappingStatus = {
557
560
  fetchState: 'Not-Started',
558
561
  error: undefined,
@@ -1,12 +1,10 @@
1
1
  import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
2
- import { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload';
3
2
  import { RootState } from '../../../rootStateTypes';
4
3
  import { InvoicingDataImportStatusRow, InvoicingMigrationSession } from './dataImportViewPayload';
5
4
  import { InvoicingMigrationDiagnosticsState } from './dataImportViewState';
6
5
  export interface InvoicingDataImportView {
7
6
  activeMigrationSessionId: ID | null;
8
7
  diagnosticsBySession: Record<ID, InvoicingMigrationDiagnosticsState>;
9
- fieldHelp: InvoicingFieldHelpByCode;
10
8
  sessionDetail: Record<ID, InvoicingMigrationSession>;
11
9
  sessionDetailFetch: FetchStateAndError;
12
10
  sessions: InvoicingMigrationSession[];
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getInvoicingDataImportView = void 0;
4
- const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
5
4
  /**
6
5
  * Single bundled view for the invoicing data-import surfaces — consumers read
7
6
  * only this. Carries the migration `sessions` list + `sessionsFetch`, the
@@ -11,7 +10,6 @@ const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingC
11
10
  const getInvoicingDataImportView = (state) => {
12
11
  const dataImportState = state.invoicingDataImportViewState;
13
12
  return {
14
- fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'data_import'),
15
13
  activeMigrationSessionId: dataImportState.activeDetailId,
16
14
  sessionDetail: dataImportState.sessionDetail,
17
15
  sessionDetailFetch: dataImportState.sessionDetailFetch,
@@ -3,7 +3,6 @@ import { FetchState, FetchStateAndError } from '../../../commonStateTypes/common
3
3
  import { InvoicingDunningActionOption, InvoicingNamedOption, InvoicingQboAccountMappingKindOption, InvoicingSettingsPayload } from '../../../entity/invoicing/invoicingCommonPayload';
4
4
  import { ZeniAPIStatus } from '../../../responsePayload';
5
5
  import { RootState } from '../../../rootStateTypes';
6
- import { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload';
7
6
  import { InvoicingQboConnection, InvoicingQboSyncHealth } from '../invoicingQboView/invoicingQboViewPayload';
8
7
  import { InvoicingAccountingOption } from '../invoicingQboView/invoicingQboViewSelector';
9
8
  import { InvoicingBrandingFormLocalData } from './invoicingBrandingFormConfig';
@@ -21,7 +20,6 @@ export declare const getInvoicingSettings: (state: RootState) => InvoicingSettin
21
20
  export declare const getInvoicingSettingsFetchState: (state: RootState) => FetchStateAndError;
22
21
  export interface InvoicingSettingsView {
23
22
  fetchState: FetchState;
24
- fieldHelp: InvoicingFieldHelpByCode;
25
23
  saveState: FetchStateAndError;
26
24
  stripeConnectState: FetchStateAndError;
27
25
  error?: ZeniAPIStatus;
@@ -58,7 +56,6 @@ export interface InvoicingSettingsHubView {
58
56
  */
59
57
  configFetchState: FetchState;
60
58
  dunningScheduleActionOptions: InvoicingDunningActionOption[];
61
- fieldHelp: InvoicingFieldHelpByCode;
62
59
  isEnablingInvoicing: boolean;
63
60
  /**
64
61
  * Whether the tenant has already enabled invoicing. The enable footer is for
@@ -98,7 +95,6 @@ export interface InvoicingQboSettingsFormView {
98
95
  /** So the screen can fetch only what is missing, without reading the slices. */
99
96
  configFetchState: FetchState;
100
97
  customerMatchingOptions: InvoicingNamedOption[];
101
- fieldHelp: InvoicingFieldHelpByCode;
102
98
  isLoading: boolean;
103
99
  /** The persisted sync toggle — the backfill guard checks that, not the draft. */
104
100
  isSyncEnabledSaved: boolean;
@@ -124,7 +120,6 @@ export interface InvoicingQboSettingsFormView {
124
120
  export declare const getInvoicingQboSettingsFormView: (state: RootState) => InvoicingQboSettingsFormView;
125
121
  export interface InvoicingBrandingFormView {
126
122
  dateFormatOptions: InvoicingNamedOption[];
127
- fieldHelp: InvoicingFieldHelpByCode;
128
123
  localData: InvoicingBrandingFormLocalData;
129
124
  saveState: FetchStateAndError;
130
125
  addressLabel?: string;
@@ -32,7 +32,6 @@ exports.getInvoicingSettingsFetchState = getInvoicingSettingsFetchState;
32
32
  const getInvoicingSettingsView = (state) => {
33
33
  const { error, fetchState, saveFetchState, settings, stripeFetchState } = state.invoicingSettingsViewState;
34
34
  return {
35
- fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'settings'),
36
35
  error,
37
36
  fetchState,
38
37
  saveState: saveFetchState,
@@ -86,7 +85,6 @@ const getInvoicingSettingsHubView = (state) => {
86
85
  const { dunningScheduleActionOptions, enableState, error: configError, fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, status, } = (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state);
87
86
  const { canEnable, isQboConfigured, isStripeConnected } = deriveInvoicingEnablePrerequisites(state.invoicingSettingsViewState.settings, state.invoicingQboViewState.connection?.connected === true, qboAccountMappingKindOptions);
88
87
  return {
89
- fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'settings'),
90
88
  // Keeps the onboarding step in the gate: a tenant that has not accepted the
91
89
  // terms cannot enable invoicing, whatever the integrations say.
92
90
  canEnableInvoicing: status === 'settings' && canEnable,
@@ -118,7 +116,6 @@ const getInvoicingQboSettingsFormView = (state) => {
118
116
  const { fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, } = (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state);
119
117
  const qboView = (0, invoicingQboViewSelector_1.getInvoicingQboView)(state);
120
118
  return {
121
- fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'settings'),
122
119
  accountMappingKindOptions: qboAccountMappingKindOptions,
123
120
  accounts: qboView.accounts,
124
121
  backfillState: qboView.backfillState,
@@ -159,7 +156,6 @@ const getInvoicingBrandingFormView = (state) => {
159
156
  ? (0, addressViewSelector_1.getFormattedAddress)(newAddress.addressToCreate)
160
157
  : undefined;
161
158
  return {
162
- fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'settings'),
163
159
  addressLabel,
164
160
  dateFormatOptions: (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state).dateFormatOptions,
165
161
  localData: brandingDraft ?? (0, invoicingBrandingFormConfig_1.entityToInvoicingBrandingFormLocalData)(settings),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.2.16-betaAK0",
3
+ "version": "5.2.17",
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",
@@ -33,44 +33,6 @@
33
33
  "require": "./lib/view/*.js"
34
34
  }
35
35
  },
36
- "scripts": {
37
- "clean": "rimraf lib",
38
- "test:typecheck": "echo 'Typechecking test files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.typecheck.json",
39
- "test:typecheck-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.typecheck.json",
40
- "test:typecheck-mocks": "echo 'Typechecking mock files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.mocks.json",
41
- "test:typecheck-mocks-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.mocks.json",
42
- "test": "pnpm lint-modified-files && pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
43
- "test:full": "pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
44
- "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix",
45
- "lint-modified-files": "chmod +x ./scripts/lint-modified-files.sh && ./scripts/lint-modified-files.sh",
46
- "lint:fix-modified-files": "chmod +x ./scripts/lint-modified-files.sh && LINT_FIX=true ./scripts/lint-modified-files.sh",
47
- "tsc-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && ./scripts/tsc-modified-files.sh",
48
- "typecheck": "tsc --noEmit",
49
- "circular-dependency": "madge --circular --extensions ts ./src",
50
- "circular-dependency-modified-files": "chmod +x ./scripts/circular-dependency-modified-files.sh && ./scripts/circular-dependency-modified-files.sh",
51
- "build": "chmod +x ./scripts/run_build.sh && ./scripts/run_build.sh && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
52
- "only-build": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc && tsc -p tsconfig.esm.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
53
- "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__\"",
54
- "format": "prettier --write --ignore-unknown \"src/**/*\" && pnpm lint",
55
- "format-watch": "bash ./scripts/run-format-watch.sh",
56
- "check-version": "node ./scripts/check_version.js",
57
- "prepublishOnly": "chmod +x ./scripts/branch_validation.sh && ./scripts/branch_validation.sh && pnpm update-slack-group-topic && pnpm run check-version && pnpm clean && pnpm build",
58
- "version": "git add -A src",
59
- "postversion": "git push && git push --tags",
60
- "check-dependencies": "node ./scripts/check_dependencies.js",
61
- "clean-overrides": "node ./scripts/clean_overrides.js",
62
- "create-or-update-release-branch": "chmod +x ./scripts/create_or_update_release_branch.sh && ./scripts/create_or_update_release_branch.sh",
63
- "bump-versions-master": "chmod +x ./scripts/bump_versions_master.sh && ./scripts/bump_versions_master.sh",
64
- "bump-versions-beta": "chmod +x ./scripts/bump_versions_beta.sh && ./scripts/bump_versions_beta.sh",
65
- "bump-update-web-app-cockpit-beta": "chmod +x ./scripts/bump_and_update_web_app_ui_beta.sh && ./scripts/bump_and_update_web_app_ui_beta.sh",
66
- "send-release-notes": "chmod +x ./scripts/send_release_notes.sh && ./scripts/send_release_notes.sh",
67
- "update-slack-group-topic": "chmod +x ./scripts/update-slack-group-topic.sh && ./scripts/update-slack-group-topic.sh",
68
- "build-beta-and-copy": "chmod +x ./scripts/build_and_copy.sh && ./scripts/build_and_copy.sh",
69
- "pr-approvals-update": "chmod +x ./scripts/pr_approvals.sh && ./scripts/pr_approvals.sh",
70
- "raise-pr-automation": "chmod +x ./scripts/raise_pr_automation.sh && ./scripts/raise_pr_automation.sh",
71
- "test:file": "bash ./scripts/test-file.sh",
72
- "find-unused-code": "knip"
73
- },
74
36
  "files": [
75
37
  "lib/**/*"
76
38
  ],
@@ -138,36 +100,41 @@
138
100
  "dayjs": "^1.10.7",
139
101
  "url-parse": "^1.5.10"
140
102
  },
141
- "pnpm": {
142
- "overrides": {
143
- "@babel/core": ">=7.29.6",
144
- "@babel/helpers": ">=7.26.10",
145
- "@babel/runtime": ">=7.26.10",
146
- "@babel/traverse": ">=7.23.2",
147
- "@eslint/eslintrc>ajv": ">=6.14.0 <7",
148
- "@eslint/plugin-kit": ">=0.3.4",
149
- "@modelcontextprotocol/sdk": ">=1.25.2",
150
- "ajv": ">=8.18.0",
151
- "body-parser": ">=2.2.1",
152
- "brace-expansion": ">=5.0.9",
153
- "cross-spawn": ">=7.0.5",
154
- "esbuild": ">=0.28.1",
155
- "eslint>ajv": ">=6.14.0 <7",
156
- "flatted": ">=3.4.2",
157
- "glob": ">=11.1.0",
158
- "hono": ">=4.11.4",
159
- "immutable": ">=4.3.9 <5",
160
- "js-yaml": ">=4.3.1 <5",
161
- "minimatch": ">=10.2.3",
162
- "nanoid": ">=3.3.17 <4",
163
- "picomatch": ">=4.0.4",
164
- "postcss": ">=8.5.18",
165
- "qs": "^6.14.1",
166
- "rollup": ">=4.59.0",
167
- "shell-quote": ">=1.9.0",
168
- "tough-cookie": "=4.1.3",
169
- "vite": ">=7.3.5 <8",
170
- "yaml": ">=2.9.0"
171
- }
103
+ "scripts": {
104
+ "clean": "rimraf lib",
105
+ "test:typecheck": "echo 'Typechecking test files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.typecheck.json",
106
+ "test:typecheck-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.typecheck.json",
107
+ "test:typecheck-mocks": "echo 'Typechecking mock files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.mocks.json",
108
+ "test:typecheck-mocks-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.mocks.json",
109
+ "test": "pnpm lint-modified-files && pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
110
+ "test:full": "pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
111
+ "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix",
112
+ "lint-modified-files": "chmod +x ./scripts/lint-modified-files.sh && ./scripts/lint-modified-files.sh",
113
+ "lint:fix-modified-files": "chmod +x ./scripts/lint-modified-files.sh && LINT_FIX=true ./scripts/lint-modified-files.sh",
114
+ "tsc-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && ./scripts/tsc-modified-files.sh",
115
+ "typecheck": "tsc --noEmit",
116
+ "circular-dependency": "madge --circular --extensions ts ./src",
117
+ "circular-dependency-modified-files": "chmod +x ./scripts/circular-dependency-modified-files.sh && ./scripts/circular-dependency-modified-files.sh",
118
+ "build": "chmod +x ./scripts/run_build.sh && ./scripts/run_build.sh && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
119
+ "only-build": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc && tsc -p tsconfig.esm.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
120
+ "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__\"",
121
+ "format": "prettier --write --ignore-unknown \"src/**/*\" && pnpm lint",
122
+ "format-watch": "bash ./scripts/run-format-watch.sh",
123
+ "check-version": "node ./scripts/check_version.js",
124
+ "version": "git add -A src",
125
+ "postversion": "git push && git push --tags",
126
+ "check-dependencies": "node ./scripts/check_dependencies.js",
127
+ "clean-overrides": "node ./scripts/clean_overrides.js",
128
+ "create-or-update-release-branch": "chmod +x ./scripts/create_or_update_release_branch.sh && ./scripts/create_or_update_release_branch.sh",
129
+ "bump-versions-master": "chmod +x ./scripts/bump_versions_master.sh && ./scripts/bump_versions_master.sh",
130
+ "bump-versions-beta": "chmod +x ./scripts/bump_versions_beta.sh && ./scripts/bump_versions_beta.sh",
131
+ "bump-update-web-app-cockpit-beta": "chmod +x ./scripts/bump_and_update_web_app_ui_beta.sh && ./scripts/bump_and_update_web_app_ui_beta.sh",
132
+ "send-release-notes": "chmod +x ./scripts/send_release_notes.sh && ./scripts/send_release_notes.sh",
133
+ "update-slack-group-topic": "chmod +x ./scripts/update-slack-group-topic.sh && ./scripts/update-slack-group-topic.sh",
134
+ "build-beta-and-copy": "chmod +x ./scripts/build_and_copy.sh && ./scripts/build_and_copy.sh",
135
+ "pr-approvals-update": "chmod +x ./scripts/pr_approvals.sh && ./scripts/pr_approvals.sh",
136
+ "raise-pr-automation": "chmod +x ./scripts/raise_pr_automation.sh && ./scripts/raise_pr_automation.sh",
137
+ "test:file": "bash ./scripts/test-file.sh",
138
+ "find-unused-code": "knip"
172
139
  }
173
- }
140
+ }