@operato/twin-kernel 0.6.3 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contract.d.ts +15 -0
- package/dist/flow-engine.js +14 -0
- package/dist/observed-reducer.js +1 -0
- package/dist-cjs/index.cjs +15 -0
- package/package.json +1 -1
package/dist/contract.d.ts
CHANGED
|
@@ -878,6 +878,13 @@ export interface OrderState {
|
|
|
878
878
|
id: string;
|
|
879
879
|
kind: string;
|
|
880
880
|
status: string;
|
|
881
|
+
/**
|
|
882
|
+
* **무엇을 만드나** — GS1 품목 참조(단일 품목 작업지시). 여러 품목이면 `lines[].gtin` 이 말한다.
|
|
883
|
+
*
|
|
884
|
+
* 이 자리가 없던 동안 상태에는 "1개" 만 남고 **무엇을 1개인지** 사라졌다. 화면·예측·계보가 품목을
|
|
885
|
+
* 알 수 없다는 뜻이고, 확보분(`allocated`)이 같은 식으로 빠져 계보의 절반이 사라졌던 것과 같은 부류다.
|
|
886
|
+
*/
|
|
887
|
+
gtin?: string;
|
|
881
888
|
progress?: number;
|
|
882
889
|
held?: boolean;
|
|
883
890
|
/**
|
|
@@ -1254,6 +1261,14 @@ export interface OrderStatusDelta {
|
|
|
1254
1261
|
status: string;
|
|
1255
1262
|
requested: number;
|
|
1256
1263
|
fulfilled: number;
|
|
1264
|
+
/**
|
|
1265
|
+
* **무엇을 만드나** — 상태의 `OrderState.gtin` 과 같은 값.
|
|
1266
|
+
*
|
|
1267
|
+
* 스냅샷에만 실으면 **미러가 이 필드를 못 채운다**(라이브는 이벤트로만 배운다). 같은 사실은
|
|
1268
|
+
* 델타·스냅샷·씨앗 **세 자리**에 함께 실어야 한다 — `allocated` 가 두 자리에만 있어서 웜스타트가
|
|
1269
|
+
* 잃었던 것과 같은 부류다(패리티 가드가 이것을 잡았다).
|
|
1270
|
+
*/
|
|
1271
|
+
gtin?: string;
|
|
1257
1272
|
held?: boolean;
|
|
1258
1273
|
/**
|
|
1259
1274
|
* 오더 라인(SKU+수량) — 선택. 있으면 이행 예측이 "남은 데맨드(라인별 requested-fulfilled)를
|
package/dist/flow-engine.js
CHANGED
|
@@ -524,6 +524,7 @@ export class FlowEngine {
|
|
|
524
524
|
/* 확보분과 거래번호도 함께 옮긴다 — 여기서 떨구면 위에서 실어 온 것이 마지막 한 걸음에서
|
|
525
525
|
사라진다(같은 사실이 델타·스냅샷·이 변환 **세 길**을 지난다). */
|
|
526
526
|
...(o.allocated?.length ? { allocated: o.allocated } : {}),
|
|
527
|
+
...(o.gtin ? { gtin: o.gtin } : {}),
|
|
527
528
|
...(o.bizTransaction ? { bizTransaction: o.bizTransaction } : {})
|
|
528
529
|
}));
|
|
529
530
|
for (const o of observedOrders) {
|
|
@@ -541,6 +542,8 @@ export class FlowEngine {
|
|
|
541
542
|
/* **확보해 둔 것과 거래번호를 이어받는다.** 비우면 되살아난 오더가 아무것도 안 잡은 것처럼
|
|
542
543
|
보이고, 그 오더의 진행 중 작업이 완료될 때 계보가 입력 없이 나간다. 상태가 말해 주지
|
|
543
544
|
않으면(옛 저널) 그때는 비는 것이 사실이다 — 없는 것을 지어내지 않는다. */
|
|
545
|
+
/* 품목도 함께 — 씨앗이 흘리면 되살아난 오더가 무엇을 만드는지 모른다. */
|
|
546
|
+
...(o.gtin ? { gtin: o.gtin } : {}),
|
|
544
547
|
bizTransaction: o.bizTransaction ?? '', allocated: (o.allocated ?? []).slice(), picked: [], shipmentEpc: null, lines,
|
|
545
548
|
/* **보류를 이어받는다** — 잃으면 씨앗이 사람이 일부러 멈춘 오더를 다시 계획해 내보낸다.
|
|
546
549
|
씨앗 왕복 대조가 이것을 잡았다(그 전에는 사람이 코드를 읽어야만 알 수 있었다). */
|
|
@@ -863,6 +866,16 @@ export class FlowEngine {
|
|
|
863
866
|
id: o.id, kind: o.kind, status: o.status,
|
|
864
867
|
progress: o.requested ? o.fulfilled / o.requested : 0,
|
|
865
868
|
requested: o.requested, fulfilled: o.fulfilled,
|
|
869
|
+
/*
|
|
870
|
+
* **무엇을 만드는 오더인가** — 이것이 없으면 "1개" 만 남고 무엇을 1개인지 사라진다.
|
|
871
|
+
*
|
|
872
|
+
* 커널은 오더를 만들 때부터 이 값을 들고 있는데(`gtin: product.gtin`) 스냅샷이 흘리고 있었다.
|
|
873
|
+
* 그러면 화면·예측·계보가 품목을 알 수 없다 — 확보분(`allocated`)이 같은 식으로 빠져 계보의
|
|
874
|
+
* 절반이 사라졌던 것과 같은 부류다(그때 배운 것을 여기서도 적용한다).
|
|
875
|
+
*
|
|
876
|
+
* 라인이 있는 오더는 `lines[].gtin` 이 품목을 말하고, 단일 품목 작업지시는 이 자리가 말한다.
|
|
877
|
+
*/
|
|
878
|
+
...(o.gtin ? { gtin: o.gtin } : {}),
|
|
866
879
|
...(o.lines?.length ? { lines: o.lines.map(l => ({ gtin: l.gtin, requested: l.requested })) } : {}),
|
|
867
880
|
...(o.priority !== undefined ? { priority: o.priority } : {}),
|
|
868
881
|
...(o.startTime ? { startTime: o.startTime } : {}),
|
|
@@ -1474,6 +1487,7 @@ export class FlowEngine {
|
|
|
1474
1487
|
...(o.lines?.length ? { lines: o.lines.map(l => ({ gtin: l.gtin, requested: l.requested })) } : {}),
|
|
1475
1488
|
/* 진행 중 할당과 거래번호를 함께 싣는다 — 이것이 없으면 웜스타트가 잃고, 되살아난 오더의
|
|
1476
1489
|
계보가 입력 없이 나간다(무엇이 무엇으로 바뀌었나의 절반이 사라진다). */
|
|
1490
|
+
...(o.gtin ? { gtin: o.gtin } : {}),
|
|
1477
1491
|
...(o.allocated?.length ? { allocated: o.allocated.slice() } : {}),
|
|
1478
1492
|
...(o.bizTransaction ? { bizTransaction: o.bizTransaction } : {})
|
|
1479
1493
|
});
|
package/dist/observed-reducer.js
CHANGED
|
@@ -344,6 +344,7 @@ export class ObservedReducer {
|
|
|
344
344
|
...(d.endTime ? { endTime: d.endTime } : {}),
|
|
345
345
|
/* 진행 중 확보분과 거래번호 — **미러도 같은 필드를 채운다.** 시뮬만 아는 사실을 두면
|
|
346
346
|
그 위에서 세운 예측이 두 구동에서 달라진다(패리티 검사가 지키는 것이 이것이다). */
|
|
347
|
+
...(d.gtin ? { gtin: d.gtin } : {}),
|
|
347
348
|
...(d.allocated?.length ? { allocated: d.allocated.slice() } : {}),
|
|
348
349
|
...(d.bizTransaction ? { bizTransaction: d.bizTransaction } : {}),
|
|
349
350
|
held: d.held
|
package/dist-cjs/index.cjs
CHANGED
|
@@ -1185,6 +1185,7 @@ var ObservedReducer = class {
|
|
|
1185
1185
|
...d.endTime ? { endTime: d.endTime } : {},
|
|
1186
1186
|
/* 진행 중 확보분과 거래번호 — **미러도 같은 필드를 채운다.** 시뮬만 아는 사실을 두면
|
|
1187
1187
|
그 위에서 세운 예측이 두 구동에서 달라진다(패리티 검사가 지키는 것이 이것이다). */
|
|
1188
|
+
...d.gtin ? { gtin: d.gtin } : {},
|
|
1188
1189
|
...d.allocated?.length ? { allocated: d.allocated.slice() } : {},
|
|
1189
1190
|
...d.bizTransaction ? { bizTransaction: d.bizTransaction } : {},
|
|
1190
1191
|
held: d.held
|
|
@@ -2570,6 +2571,7 @@ var FlowEngine = class {
|
|
|
2570
2571
|
/* 확보분과 거래번호도 함께 옮긴다 — 여기서 떨구면 위에서 실어 온 것이 마지막 한 걸음에서
|
|
2571
2572
|
사라진다(같은 사실이 델타·스냅샷·이 변환 **세 길**을 지난다). */
|
|
2572
2573
|
...o.allocated?.length ? { allocated: o.allocated } : {},
|
|
2574
|
+
...o.gtin ? { gtin: o.gtin } : {},
|
|
2573
2575
|
...o.bizTransaction ? { bizTransaction: o.bizTransaction } : {}
|
|
2574
2576
|
}));
|
|
2575
2577
|
for (const o of observedOrders) {
|
|
@@ -2585,6 +2587,8 @@ var FlowEngine = class {
|
|
|
2585
2587
|
/* **확보해 둔 것과 거래번호를 이어받는다.** 비우면 되살아난 오더가 아무것도 안 잡은 것처럼
|
|
2586
2588
|
보이고, 그 오더의 진행 중 작업이 완료될 때 계보가 입력 없이 나간다. 상태가 말해 주지
|
|
2587
2589
|
않으면(옛 저널) 그때는 비는 것이 사실이다 — 없는 것을 지어내지 않는다. */
|
|
2590
|
+
/* 품목도 함께 — 씨앗이 흘리면 되살아난 오더가 무엇을 만드는지 모른다. */
|
|
2591
|
+
...o.gtin ? { gtin: o.gtin } : {},
|
|
2588
2592
|
bizTransaction: o.bizTransaction ?? "",
|
|
2589
2593
|
allocated: (o.allocated ?? []).slice(),
|
|
2590
2594
|
picked: [],
|
|
@@ -2890,6 +2894,16 @@ var FlowEngine = class {
|
|
|
2890
2894
|
progress: o.requested ? o.fulfilled / o.requested : 0,
|
|
2891
2895
|
requested: o.requested,
|
|
2892
2896
|
fulfilled: o.fulfilled,
|
|
2897
|
+
/*
|
|
2898
|
+
* **무엇을 만드는 오더인가** — 이것이 없으면 "1개" 만 남고 무엇을 1개인지 사라진다.
|
|
2899
|
+
*
|
|
2900
|
+
* 커널은 오더를 만들 때부터 이 값을 들고 있는데(`gtin: product.gtin`) 스냅샷이 흘리고 있었다.
|
|
2901
|
+
* 그러면 화면·예측·계보가 품목을 알 수 없다 — 확보분(`allocated`)이 같은 식으로 빠져 계보의
|
|
2902
|
+
* 절반이 사라졌던 것과 같은 부류다(그때 배운 것을 여기서도 적용한다).
|
|
2903
|
+
*
|
|
2904
|
+
* 라인이 있는 오더는 `lines[].gtin` 이 품목을 말하고, 단일 품목 작업지시는 이 자리가 말한다.
|
|
2905
|
+
*/
|
|
2906
|
+
...o.gtin ? { gtin: o.gtin } : {},
|
|
2893
2907
|
...o.lines?.length ? { lines: o.lines.map((l) => ({ gtin: l.gtin, requested: l.requested })) } : {},
|
|
2894
2908
|
...o.priority !== void 0 ? { priority: o.priority } : {},
|
|
2895
2909
|
...o.startTime ? { startTime: o.startTime } : {},
|
|
@@ -3445,6 +3459,7 @@ var FlowEngine = class {
|
|
|
3445
3459
|
...o.lines?.length ? { lines: o.lines.map((l) => ({ gtin: l.gtin, requested: l.requested })) } : {},
|
|
3446
3460
|
/* 진행 중 할당과 거래번호를 함께 싣는다 — 이것이 없으면 웜스타트가 잃고, 되살아난 오더의
|
|
3447
3461
|
계보가 입력 없이 나간다(무엇이 무엇으로 바뀌었나의 절반이 사라진다). */
|
|
3462
|
+
...o.gtin ? { gtin: o.gtin } : {},
|
|
3448
3463
|
...o.allocated?.length ? { allocated: o.allocated.slice() } : {},
|
|
3449
3464
|
...o.bizTransaction ? { bizTransaction: o.bizTransaction } : {}
|
|
3450
3465
|
});
|
package/package.json
CHANGED