@seedtactics/insight-client 16.8.4-beta.1 → 16.8.4-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/assets/index-CQhVwNX7.js +388 -0
- package/dist/cell-status/material-details.d.ts +15 -5
- package/dist/cell-status/material-details.js +58 -37
- package/dist/components/LogEntry.js +2 -9
- package/dist/components/log-entry-container-name.d.ts +2 -0
- package/dist/components/log-entry-container-name.js +10 -0
- package/dist/components/operations/AllMaterial.js +4 -3
- package/dist/components/operations/Programs.js +1 -1
- package/dist/components/station-monitor/BasketLoadStationWork.js +44 -36
- package/dist/components/station-monitor/BulkRawMaterial.js +4 -4
- package/dist/components/station-monitor/CancelLoadButton.d.ts +4 -0
- package/dist/components/station-monitor/CancelLoadButton.js +59 -0
- package/dist/components/station-monitor/Closeout.js +2 -1
- package/dist/components/station-monitor/Inspection.js +2 -1
- package/dist/components/station-monitor/InvalidateCycle.d.ts +4 -1
- package/dist/components/station-monitor/InvalidateCycle.js +61 -10
- package/dist/components/station-monitor/LoadStation.js +23 -11
- package/dist/components/station-monitor/Material.js +2 -4
- package/dist/components/station-monitor/QuarantineButton.js +80 -60
- package/dist/components/station-monitor/Queues.js +2 -1
- package/dist/components/station-monitor/QueuesAddMaterial.js +59 -48
- package/dist/components/station-monitor/SystemOverview.js +3 -2
- package/dist/components/station-monitor/Whiteboard.js +2 -2
- package/dist/extension.d.ts +11 -0
- package/dist/extension.js +21 -0
- package/dist/index.html +1 -2
- package/dist/index.js +1 -1
- package/dist/network/api.d.ts +18 -4
- package/dist/network/api.js +69 -2
- package/dist/network/backend-mock.js +3 -0
- package/dist/network/backend.d.ts +1 -0
- package/dist/network/backend.js +2 -1
- package/package.json +12 -11
- package/dist/assets/index-Y5yNHUvc.js +0 -388
- package/dist/assets/manifest-BzJli0lx.webmanifest +0 -15
- package/dist/bootstrap.d.ts +0 -5
- package/dist/bootstrap.js +0 -56
- package/dist/components/station-monitor/Material.test.d.ts +0 -1
- package/dist/components/station-monitor/Material.test.js +0 -199
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createStore } from "jotai";
|
|
2
|
+
import { registerNetworkBackend } from "./network/backend.js";
|
|
3
|
+
import { fmsInformation, loadInfo } from "./network/server-settings.js";
|
|
4
|
+
import { render } from "./renderer.js";
|
|
5
|
+
/**
|
|
6
|
+
* Starts one complete FMS Insight application with optional statically composed custom pages.
|
|
7
|
+
*/
|
|
8
|
+
export async function bootstrapInsight(appProps = {}, rootElement) {
|
|
9
|
+
const root = rootElement ?? document.getElementById("root");
|
|
10
|
+
if (!root) {
|
|
11
|
+
throw new Error("Unable to start FMS Insight: no root element was provided or found");
|
|
12
|
+
}
|
|
13
|
+
registerNetworkBackend();
|
|
14
|
+
const store = createStore();
|
|
15
|
+
store.set(fmsInformation, await loadInfo());
|
|
16
|
+
render(appProps, root, store);
|
|
17
|
+
}
|
|
18
|
+
export { customState } from "./cell-status/custom-state.js";
|
|
19
|
+
export { defaultChooseModes } from "./components/ChooseMode.js";
|
|
20
|
+
export { RouteLocation } from "./components/routes.js";
|
|
21
|
+
export { authenticatedFetch } from "./network/backend.js";
|
package/dist/index.html
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
|
6
|
-
<link rel="manifest" href="/assets/manifest-BzJli0lx.webmanifest" />
|
|
7
6
|
<link rel="shortcut icon" href="/assets/favicon-gWFxiJK2.ico" />
|
|
8
7
|
<title>SeedTactic FMS Insight</title>
|
|
9
8
|
<style type="text/css">
|
|
@@ -44,7 +43,7 @@
|
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
</style>
|
|
47
|
-
<script type="module" crossorigin src="/assets/index-
|
|
46
|
+
<script type="module" crossorigin src="/assets/index-CQhVwNX7.js"></script>
|
|
48
47
|
<link rel="stylesheet" crossorigin href="/assets/index-DXfAwuj-.css">
|
|
49
48
|
</head>
|
|
50
49
|
<body>
|
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
30
30
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
31
31
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
32
32
|
*/
|
|
33
|
-
import { bootstrapInsight } from "./
|
|
33
|
+
import { bootstrapInsight } from "./extension.js";
|
|
34
34
|
import { ApiException } from "./network/api.js";
|
|
35
35
|
async function main() {
|
|
36
36
|
const developmentProps = import.meta.env.DEV
|
package/dist/network/api.d.ts
CHANGED
|
@@ -53,6 +53,8 @@ export declare class JobsClient {
|
|
|
53
53
|
protected processRemoveMaterialFromAllQueues(response: Response): Promise<void>;
|
|
54
54
|
signalMaterialForQuarantine(materialId: number, operName: string | null | undefined, reason: string | undefined, signal?: AbortSignal): Promise<void>;
|
|
55
55
|
protected processSignalMaterialForQuarantine(response: Response): Promise<void>;
|
|
56
|
+
cancelLoad(materialId: number, operName: string | null | undefined, request: CancelLoadRequest, signal?: AbortSignal): Promise<void>;
|
|
57
|
+
protected processCancelLoad(response: Response): Promise<void>;
|
|
56
58
|
invalidatePalletCycle(materialId: number, operName: string | null | undefined, changeCastingTo: string | null | undefined, changeJobUniqueTo: string | null | undefined, process: number, signal?: AbortSignal): Promise<MaterialDetails>;
|
|
57
59
|
protected processInvalidatePalletCycle(response: Response): Promise<MaterialDetails>;
|
|
58
60
|
swapMaterialOnPallet(materialId: number, operName: string | null | undefined, mat: MatToPutOnPallet, signal?: AbortSignal): Promise<void>;
|
|
@@ -140,7 +142,6 @@ export declare class FMSInfo implements IFMSInfo {
|
|
|
140
142
|
openIDConnectClientId?: string | undefined;
|
|
141
143
|
usingLabelPrinterForSerials?: boolean | undefined;
|
|
142
144
|
useClientPrinterForLabels?: boolean | undefined;
|
|
143
|
-
allowQuarantineToCancelLoad?: boolean | undefined;
|
|
144
145
|
quarantineQueue?: string | undefined;
|
|
145
146
|
customStationMonitorDialogUrl?: string | undefined;
|
|
146
147
|
supportsRebookings?: string | undefined;
|
|
@@ -172,7 +173,6 @@ export interface IFMSInfo {
|
|
|
172
173
|
openIDConnectClientId?: string | undefined;
|
|
173
174
|
usingLabelPrinterForSerials?: boolean | undefined;
|
|
174
175
|
useClientPrinterForLabels?: boolean | undefined;
|
|
175
|
-
allowQuarantineToCancelLoad?: boolean | undefined;
|
|
176
176
|
quarantineQueue?: string | undefined;
|
|
177
177
|
customStationMonitorDialogUrl?: string | undefined;
|
|
178
178
|
supportsRebookings?: string | undefined;
|
|
@@ -722,7 +722,7 @@ export declare class CurrentStatus implements ICurrentStatus {
|
|
|
722
722
|
[key: string]: BasketStatus;
|
|
723
723
|
} | undefined;
|
|
724
724
|
basketMoveInstructions?: BasketMoveInstruction[] | undefined;
|
|
725
|
-
customState?:
|
|
725
|
+
customState?: any | undefined;
|
|
726
726
|
constructor(data?: ICurrentStatus);
|
|
727
727
|
init(_data?: any): void;
|
|
728
728
|
static fromJS(data: any): CurrentStatus;
|
|
@@ -747,7 +747,7 @@ export interface ICurrentStatus {
|
|
|
747
747
|
[key: string]: BasketStatus;
|
|
748
748
|
} | undefined;
|
|
749
749
|
basketMoveInstructions?: BasketMoveInstruction[] | undefined;
|
|
750
|
-
customState?:
|
|
750
|
+
customState?: any | undefined;
|
|
751
751
|
}
|
|
752
752
|
export declare class HistoricJob extends Job implements IHistoricJob {
|
|
753
753
|
scheduleId?: string | undefined;
|
|
@@ -905,6 +905,7 @@ export declare enum LocType {
|
|
|
905
905
|
export declare class InProcessMaterialAction implements IInProcessMaterialAction {
|
|
906
906
|
type: ActionType;
|
|
907
907
|
workId?: string | undefined;
|
|
908
|
+
loadCancellationId?: string | undefined;
|
|
908
909
|
loadOntoPalletNum?: number | undefined;
|
|
909
910
|
loadOntoFace?: number | undefined;
|
|
910
911
|
processAfterLoad?: number | undefined;
|
|
@@ -927,6 +928,7 @@ export declare class InProcessMaterialAction implements IInProcessMaterialAction
|
|
|
927
928
|
export interface IInProcessMaterialAction {
|
|
928
929
|
type: ActionType;
|
|
929
930
|
workId?: string | undefined;
|
|
931
|
+
loadCancellationId?: string | undefined;
|
|
930
932
|
loadOntoPalletNum?: number | undefined;
|
|
931
933
|
loadOntoFace?: number | undefined;
|
|
932
934
|
processAfterLoad?: number | undefined;
|
|
@@ -1369,6 +1371,18 @@ export interface IQueuePosition {
|
|
|
1369
1371
|
queue: string;
|
|
1370
1372
|
position: number;
|
|
1371
1373
|
}
|
|
1374
|
+
export declare class CancelLoadRequest implements ICancelLoadRequest {
|
|
1375
|
+
expectedLoadCancellationId: string;
|
|
1376
|
+
reason?: string | undefined;
|
|
1377
|
+
constructor(data?: ICancelLoadRequest);
|
|
1378
|
+
init(_data?: any): void;
|
|
1379
|
+
static fromJS(data: any): CancelLoadRequest;
|
|
1380
|
+
toJSON(data?: any): any;
|
|
1381
|
+
}
|
|
1382
|
+
export interface ICancelLoadRequest {
|
|
1383
|
+
expectedLoadCancellationId: string;
|
|
1384
|
+
reason?: string | undefined;
|
|
1385
|
+
}
|
|
1372
1386
|
export declare class MatToPutOnPallet implements IMatToPutOnPallet {
|
|
1373
1387
|
pallet: number;
|
|
1374
1388
|
materialIDToSetOnPallet: number;
|
package/dist/network/api.js
CHANGED
|
@@ -853,6 +853,45 @@ export class JobsClient {
|
|
|
853
853
|
}
|
|
854
854
|
return Promise.resolve(null);
|
|
855
855
|
}
|
|
856
|
+
cancelLoad(materialId, operName, request, signal) {
|
|
857
|
+
let url_ = this.baseUrl + "/api/v1/jobs/material/{materialId}/cancel-load?";
|
|
858
|
+
if (materialId === undefined || materialId === null)
|
|
859
|
+
throw new globalThis.Error("The parameter 'materialId' must be defined.");
|
|
860
|
+
url_ = url_.replace("{materialId}", encodeURIComponent("" + materialId));
|
|
861
|
+
if (operName !== undefined && operName !== null)
|
|
862
|
+
url_ += "operName=" + encodeURIComponent("" + operName) + "&";
|
|
863
|
+
url_ = url_.replace(/[?&]$/, "");
|
|
864
|
+
const content_ = JSON.stringify(request);
|
|
865
|
+
let options_ = {
|
|
866
|
+
body: content_,
|
|
867
|
+
method: "PUT",
|
|
868
|
+
signal,
|
|
869
|
+
headers: {
|
|
870
|
+
"Content-Type": "application/json",
|
|
871
|
+
},
|
|
872
|
+
};
|
|
873
|
+
return this.http.fetch(url_, options_).then((_response) => {
|
|
874
|
+
return this.processCancelLoad(_response);
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
processCancelLoad(response) {
|
|
878
|
+
const status = response.status;
|
|
879
|
+
let _headers = {};
|
|
880
|
+
if (response.headers && response.headers.forEach) {
|
|
881
|
+
response.headers.forEach((v, k) => (_headers[k] = v));
|
|
882
|
+
}
|
|
883
|
+
if (status === 200) {
|
|
884
|
+
return response.text().then((_responseText) => {
|
|
885
|
+
return;
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
else if (status !== 200 && status !== 204) {
|
|
889
|
+
return response.text().then((_responseText) => {
|
|
890
|
+
return throwException("An unexpected server error occurred.", status, _responseText, _headers);
|
|
891
|
+
});
|
|
892
|
+
}
|
|
893
|
+
return Promise.resolve(null);
|
|
894
|
+
}
|
|
856
895
|
invalidatePalletCycle(materialId, operName, changeCastingTo, changeJobUniqueTo, process, signal) {
|
|
857
896
|
let url_ = this.baseUrl + "/api/v1/jobs/material/{materialId}/invalidate-process?";
|
|
858
897
|
if (materialId === undefined || materialId === null)
|
|
@@ -2239,7 +2278,6 @@ export class FMSInfo {
|
|
|
2239
2278
|
this.openIDConnectClientId = _data["OpenIDConnectClientId"];
|
|
2240
2279
|
this.usingLabelPrinterForSerials = _data["UsingLabelPrinterForSerials"];
|
|
2241
2280
|
this.useClientPrinterForLabels = _data["UseClientPrinterForLabels"];
|
|
2242
|
-
this.allowQuarantineToCancelLoad = _data["AllowQuarantineToCancelLoad"];
|
|
2243
2281
|
this.quarantineQueue = _data["QuarantineQueue"];
|
|
2244
2282
|
this.customStationMonitorDialogUrl = _data["CustomStationMonitorDialogUrl"];
|
|
2245
2283
|
this.supportsRebookings = _data["SupportsRebookings"];
|
|
@@ -2287,7 +2325,6 @@ export class FMSInfo {
|
|
|
2287
2325
|
data["OpenIDConnectClientId"] = this.openIDConnectClientId;
|
|
2288
2326
|
data["UsingLabelPrinterForSerials"] = this.usingLabelPrinterForSerials;
|
|
2289
2327
|
data["UseClientPrinterForLabels"] = this.useClientPrinterForLabels;
|
|
2290
|
-
data["AllowQuarantineToCancelLoad"] = this.allowQuarantineToCancelLoad;
|
|
2291
2328
|
data["QuarantineQueue"] = this.quarantineQueue;
|
|
2292
2329
|
data["CustomStationMonitorDialogUrl"] = this.customStationMonitorDialogUrl;
|
|
2293
2330
|
data["SupportsRebookings"] = this.supportsRebookings;
|
|
@@ -3982,6 +4019,7 @@ export class InProcessMaterialAction {
|
|
|
3982
4019
|
if (_data) {
|
|
3983
4020
|
this.type = _data["Type"];
|
|
3984
4021
|
this.workId = _data["WorkId"];
|
|
4022
|
+
this.loadCancellationId = _data["LoadCancellationId"];
|
|
3985
4023
|
this.loadOntoPalletNum = _data["LoadOntoPalletNum"];
|
|
3986
4024
|
this.loadOntoFace = _data["LoadOntoFace"];
|
|
3987
4025
|
this.processAfterLoad = _data["ProcessAfterLoad"];
|
|
@@ -4008,6 +4046,7 @@ export class InProcessMaterialAction {
|
|
|
4008
4046
|
data = typeof data === "object" ? data : {};
|
|
4009
4047
|
data["Type"] = this.type;
|
|
4010
4048
|
data["WorkId"] = this.workId;
|
|
4049
|
+
data["LoadCancellationId"] = this.loadCancellationId;
|
|
4011
4050
|
data["LoadOntoPalletNum"] = this.loadOntoPalletNum;
|
|
4012
4051
|
data["LoadOntoFace"] = this.loadOntoFace;
|
|
4013
4052
|
data["ProcessAfterLoad"] = this.processAfterLoad;
|
|
@@ -5058,6 +5097,34 @@ export class QueuePosition {
|
|
|
5058
5097
|
return data;
|
|
5059
5098
|
}
|
|
5060
5099
|
}
|
|
5100
|
+
export class CancelLoadRequest {
|
|
5101
|
+
constructor(data) {
|
|
5102
|
+
if (data) {
|
|
5103
|
+
for (var property in data) {
|
|
5104
|
+
if (data.hasOwnProperty(property))
|
|
5105
|
+
this[property] = data[property];
|
|
5106
|
+
}
|
|
5107
|
+
}
|
|
5108
|
+
}
|
|
5109
|
+
init(_data) {
|
|
5110
|
+
if (_data) {
|
|
5111
|
+
this.expectedLoadCancellationId = _data["ExpectedLoadCancellationId"];
|
|
5112
|
+
this.reason = _data["Reason"];
|
|
5113
|
+
}
|
|
5114
|
+
}
|
|
5115
|
+
static fromJS(data) {
|
|
5116
|
+
data = typeof data === "object" ? data : {};
|
|
5117
|
+
let result = new CancelLoadRequest();
|
|
5118
|
+
result.init(data);
|
|
5119
|
+
return result;
|
|
5120
|
+
}
|
|
5121
|
+
toJSON(data) {
|
|
5122
|
+
data = typeof data === "object" ? data : {};
|
|
5123
|
+
data["ExpectedLoadCancellationId"] = this.expectedLoadCancellationId;
|
|
5124
|
+
data["Reason"] = this.reason;
|
|
5125
|
+
return data;
|
|
5126
|
+
}
|
|
5127
|
+
}
|
|
5061
5128
|
export class MatToPutOnPallet {
|
|
5062
5129
|
constructor(data) {
|
|
5063
5130
|
if (data) {
|
|
@@ -226,6 +226,9 @@ export function registerMockBackend(offsetSeconds, mockD, mockEvts) {
|
|
|
226
226
|
signalMaterialForQuarantine() {
|
|
227
227
|
return Promise.resolve();
|
|
228
228
|
},
|
|
229
|
+
cancelLoad() {
|
|
230
|
+
return Promise.resolve();
|
|
231
|
+
},
|
|
229
232
|
swapMaterialOnPallet() {
|
|
230
233
|
return Promise.resolve();
|
|
231
234
|
},
|
|
@@ -11,6 +11,7 @@ export interface JobAPI {
|
|
|
11
11
|
addUnprocessedMaterialToQueue(jobUnique: string, lastCompletedProcess: number, queue: string, pos: number, operatorName: string | null, workorder: string | null, serial: string): Promise<Readonly<api.IInProcessMaterial> | undefined>;
|
|
12
12
|
addUnallocatedCastingToQueue(castingName: string, queue: string, qty: number, operatrorName: string | null, workorder: string | null, serials: string[]): Promise<ReadonlyArray<Readonly<api.IInProcessMaterial>>>;
|
|
13
13
|
signalMaterialForQuarantine(materialId: number, operName: string | null, reason: string | undefined): Promise<void>;
|
|
14
|
+
cancelLoad(materialId: number, operName: string | null, request: Readonly<api.ICancelLoadRequest>): Promise<void>;
|
|
14
15
|
swapMaterialOnPallet(materialId: number, operName: string | null, mat: Readonly<api.IMatToPutOnPallet>): Promise<void>;
|
|
15
16
|
invalidatePalletCycle(materialId: number, operName: string | null | undefined, changeCastingTo: string | null | undefined, changeJobUniqueTo: string | null | undefined, process: number): Promise<Readonly<api.IMaterialDetails> | null | undefined>;
|
|
16
17
|
unscheduledRebookings(signal?: AbortSignal): Promise<ReadonlyArray<Readonly<api.IRebooking>>>;
|
package/dist/network/backend.js
CHANGED
|
@@ -64,7 +64,8 @@ export function setUserToken(u) {
|
|
|
64
64
|
}
|
|
65
65
|
/** Performs a request using the authenticated Insight user's bearer token, when present. */
|
|
66
66
|
export function authenticatedFetch(url, init) {
|
|
67
|
-
const headers = new Headers(
|
|
67
|
+
const headers = new Headers(url instanceof Request ? url.headers : undefined);
|
|
68
|
+
new Headers(init?.headers).forEach((value, name) => headers.set(name, value));
|
|
68
69
|
if (userAccessToken) {
|
|
69
70
|
headers.set("Authorization", "Bearer " + userAccessToken);
|
|
70
71
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seedtactics/insight-client",
|
|
3
|
-
"version": "16.8.4-beta.
|
|
3
|
+
"version": "16.8.4-beta.11",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/SeedTactics/fms-insight"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
],
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
|
14
|
-
"./
|
|
14
|
+
"./extension": "./dist/extension.js",
|
|
15
15
|
"./cell-status/*": "./dist/cell-status/*.js",
|
|
16
16
|
"./components/*": "./dist/components/*.js",
|
|
17
17
|
"./components/analysis/*": "./dist/components/analysis/*.js",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"jotai-family": "^1.0.2",
|
|
47
47
|
"jsbarcode": "^3.12.3",
|
|
48
48
|
"oidc-client-ts": "^3.5.0",
|
|
49
|
-
"react": "^19.2.
|
|
49
|
+
"react": "^19.2.8",
|
|
50
50
|
"react-calendar": "^6.0.1",
|
|
51
|
-
"react-dom": "^19.2.
|
|
51
|
+
"react-dom": "^19.2.8",
|
|
52
52
|
"react-error-boundary": "^6.1.2",
|
|
53
53
|
"react-resize-detector": "^12.3.0",
|
|
54
54
|
"react-timeago": "^8.3.0",
|
|
@@ -61,16 +61,17 @@
|
|
|
61
61
|
"@types/d3-sankey": "^0.12.5",
|
|
62
62
|
"@types/d3-scale": "^4.0.9",
|
|
63
63
|
"@types/d3-shape": "^3.1.8",
|
|
64
|
-
"@types/node": "^26.1.
|
|
64
|
+
"@types/node": "^26.1.2",
|
|
65
65
|
"@types/react": "^19.2.17",
|
|
66
66
|
"@types/react-dom": "^19.2.3",
|
|
67
|
-
"@vitejs/plugin-react": "^6.0.
|
|
67
|
+
"@vitejs/plugin-react": "^6.0.4",
|
|
68
68
|
"@vitest/browser-playwright": "^4.1.10",
|
|
69
|
-
"jsdom": "^
|
|
69
|
+
"jsdom": "^30.0.1",
|
|
70
70
|
"nswag": "^14.7.1",
|
|
71
|
-
"oxfmt": "^0.
|
|
72
|
-
"oxlint": "^1.
|
|
73
|
-
"oxlint-tsgolint": "^0.
|
|
71
|
+
"oxfmt": "^0.61.0",
|
|
72
|
+
"oxlint": "^1.76.0",
|
|
73
|
+
"oxlint-tsgolint": "^7.0.2001",
|
|
74
|
+
"playwright": "^1.62.0",
|
|
74
75
|
"typescript": "^7.0.2",
|
|
75
76
|
"vite": "^8.1.5",
|
|
76
77
|
"vitest": "^4.1.10",
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
"scripts": {
|
|
80
81
|
"type-check": "tsc --noEmit --skipLibCheck",
|
|
81
82
|
"lint": "oxlint --type-aware",
|
|
82
|
-
"build": "
|
|
83
|
+
"build": "vite build",
|
|
83
84
|
"build:package": "tsc --project tsconfig.publish.json && cp -Tr ../../docs ./docs",
|
|
84
85
|
"start": "vite",
|
|
85
86
|
"test:unit": "vitest run --project unit",
|