@things-factory/station 10.1.165 → 10.1.168

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.
@@ -21,6 +21,6 @@ export declare function stationBindingNames(): string[];
21
21
  /**
22
22
  * 시험용 — 등록은 기동 때 한 번 하는 일이다.
23
23
  *
24
- * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 고르개 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.
24
+ * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 선택기 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.
25
25
  */
26
26
  export declare function forgetStationAxes(): void;
@@ -18,7 +18,7 @@ import { STATION_AXES, wrongDeclaredAxes } from '../../shared/station-axes.js';
18
18
  * ── 제품의 축 (ADR-0083 판정 ① · 축 옮기기 판정 2026-09-24) ─────────────────────
19
19
  * 기계는 핵만 든다. 제품의 낱말(공장의 라인 · 지시서 · 양품 수)은 제품이 **자기 목록 하나**를 서버 선언(`axes`)과 여기에
20
20
  * 같이 건다. `registerStationTiles` 와 같은 모양이다 — 읽는 쪽은 늘 함수로 읽고, 바뀌면 알린다. 배열을 export 하면 그 순간의
21
- * 사본이 되어 늦게 건 제품의 축이 고르개에 안 닿는다.
21
+ * 사본이 되어 늦게 건 제품의 축이 선택기에 안 닿는다.
22
22
  *
23
23
  * 서버와 **같은 규칙**으로 거절한다(`wrongDeclaredAxes`). 서버만 거절하면 화면은 서버가 받지 않을 이름을 조용히 내놓는다.
24
24
  */
@@ -51,7 +51,7 @@ export function stationBindingNames() {
51
51
  /**
52
52
  * 시험용 — 등록은 기동 때 한 번 하는 일이다.
53
53
  *
54
- * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 고르개 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.
54
+ * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 선택기 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.
55
55
  */
56
56
  export function forgetStationAxes() {
57
57
  productAxes = [];
@@ -1 +1 @@
1
- {"version":3,"file":"station-board-binding.js","sourceRoot":"","sources":["../../client/station/station-board-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAE9E;;;;;;;GAOG;AACH,IAAI,WAAW,GAAa,EAAE,CAAA;AAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;AAEvC,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAEvC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAChF,2CAA2C,CAC9C,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAE7D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/E,CAAC;IAED,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACnF,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,aAAa,CAAC,QAAoB;IAChD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEvB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAAA;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,WAAW,GAAG,EAAE,CAAA;IAChB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC3C,CAAC","sourcesContent":["/**\n * 저작자에게 내놓는 축 이름 — **보드 편집기와 컴포저가 이것을 읽는다.**\n *\n * ── 왜 기계가 이름만 드나 (ADR-0083 결정 6) ─────────────────────────────────\n * 이 파일은 operato-plant 에서 왔고, 거기서는 이름을 내는 일과 **값을 펴는 일**을 같이 했다\n * (`stationValues` · `stationData` — 작업지시의 수량, 지시서의 절차를 축 이름에 앉히는 것). 값을 펴는\n * 쪽은 제품의 구조를 읽으므로 제품에 남는다(`StationClientProduct.valuesOf`). 여기 오는 것은\n * **이름뿐**이다.\n *\n * ── 이름은 선언에서 나온다. 펴는 함수에서 나오지 않는다 ─────────────────────\n * 글로 적어 두면 저작자가 오타와 「애초에 없는 이름」을 못 가른다. 그래서 코드에서 나오되,\n * `shared/station-axes.js` 라는 **선언**에서 나온다 — 오늘 `stationValues` 가 마침 내놓는 키에서\n * 뽑던 때에는 원본이 둘이 됐다. 서버가 거절하는 이름을 이쪽이 내놓거나, 서버가 받는 이름을 이쪽이\n * 안 내놓거나 했고 **양쪽 다 조용했다.**\n */\n\nimport { STATION_AXES, wrongDeclaredAxes } from '../../shared/station-axes.js'\n\n/*\n * ── 제품의 축 (ADR-0083 판정 ① · 축 옮기기 판정 2026-09-24) ─────────────────────\n * 기계는 핵만 든다. 제품의 낱말(공장의 라인 · 지시서 · 양품 수)은 제품이 **자기 목록 하나**를 서버 선언(`axes`)과 여기에\n * 같이 건다. `registerStationTiles` 와 같은 모양이다 — 읽는 쪽은 늘 함수로 읽고, 바뀌면 알린다. 배열을 export 하면 그 순간의\n * 사본이 되어 늦게 건 제품의 축이 고르개에 안 닿는다.\n *\n * 서버와 **같은 규칙**으로 거절한다(`wrongDeclaredAxes`). 서버만 거절하면 화면은 서버가 받지 않을 이름을 조용히 내놓는다.\n */\nlet productAxes: string[] = []\nconst listeners = new Set<() => void>()\n\nexport function registerStationAxes(adding: readonly string[]): void {\n const wrong = wrongDeclaredAxes(adding)\n\n if (wrong.length) {\n throw new Error(\n `station: 화면에 건 축이 틀렸습니다 — ${wrong.map(one => JSON.stringify(one)).join(' · ')}. ` +\n '축은 `무리.이름` 모양이고, 기계가 이미 가진 축은 다시 걸지 않습니다.'\n )\n }\n\n const twice = adding.filter(one => productAxes.includes(one))\n\n if (twice.length) {\n console.warn(`[station] 같은 축이 두 번 등록됐습니다 — ${twice.join(' · ')}. 뒤엣것은 버립니다.`)\n }\n\n productAxes = [...productAxes, ...adding.filter(one => !productAxes.includes(one))]\n listeners.forEach(listener => listener())\n}\n\n/** 제품이 건 축이 바뀌면 알린다. 돌려주는 함수를 부르면 그만 듣는다. */\nexport function onStationAxes(listener: () => void): () => void {\n listeners.add(listener)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\n/** 이 화면이 읽을 수 있는 축 전부 — 기계의 핵과 제품이 건 것. 늘 이 함수로 읽는다. */\nexport function stationBindingNames(): string[] {\n return [...STATION_AXES, ...productAxes]\n}\n\n/**\n * 시험용 — 등록은 기동 때 한 번 하는 일이다.\n *\n * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 고르개 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.\n */\nexport function forgetStationAxes(): void {\n productAxes = []\n listeners.forEach(listener => listener())\n}\n"]}
1
+ {"version":3,"file":"station-board-binding.js","sourceRoot":"","sources":["../../client/station/station-board-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAE9E;;;;;;;GAOG;AACH,IAAI,WAAW,GAAa,EAAE,CAAA;AAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;AAEvC,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAEvC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAChF,2CAA2C,CAC9C,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAE7D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/E,CAAC;IAED,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACnF,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,aAAa,CAAC,QAAoB;IAChD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEvB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAAA;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,WAAW,GAAG,EAAE,CAAA;IAChB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC3C,CAAC","sourcesContent":["/**\n * 저작자에게 내놓는 축 이름 — **보드 편집기와 컴포저가 이것을 읽는다.**\n *\n * ── 왜 기계가 이름만 드나 (ADR-0083 결정 6) ─────────────────────────────────\n * 이 파일은 operato-plant 에서 왔고, 거기서는 이름을 내는 일과 **값을 펴는 일**을 같이 했다\n * (`stationValues` · `stationData` — 작업지시의 수량, 지시서의 절차를 축 이름에 앉히는 것). 값을 펴는\n * 쪽은 제품의 구조를 읽으므로 제품에 남는다(`StationClientProduct.valuesOf`). 여기 오는 것은\n * **이름뿐**이다.\n *\n * ── 이름은 선언에서 나온다. 펴는 함수에서 나오지 않는다 ─────────────────────\n * 글로 적어 두면 저작자가 오타와 「애초에 없는 이름」을 못 가른다. 그래서 코드에서 나오되,\n * `shared/station-axes.js` 라는 **선언**에서 나온다 — 오늘 `stationValues` 가 마침 내놓는 키에서\n * 뽑던 때에는 원본이 둘이 됐다. 서버가 거절하는 이름을 이쪽이 내놓거나, 서버가 받는 이름을 이쪽이\n * 안 내놓거나 했고 **양쪽 다 조용했다.**\n */\n\nimport { STATION_AXES, wrongDeclaredAxes } from '../../shared/station-axes.js'\n\n/*\n * ── 제품의 축 (ADR-0083 판정 ① · 축 옮기기 판정 2026-09-24) ─────────────────────\n * 기계는 핵만 든다. 제품의 낱말(공장의 라인 · 지시서 · 양품 수)은 제품이 **자기 목록 하나**를 서버 선언(`axes`)과 여기에\n * 같이 건다. `registerStationTiles` 와 같은 모양이다 — 읽는 쪽은 늘 함수로 읽고, 바뀌면 알린다. 배열을 export 하면 그 순간의\n * 사본이 되어 늦게 건 제품의 축이 선택기에 안 닿는다.\n *\n * 서버와 **같은 규칙**으로 거절한다(`wrongDeclaredAxes`). 서버만 거절하면 화면은 서버가 받지 않을 이름을 조용히 내놓는다.\n */\nlet productAxes: string[] = []\nconst listeners = new Set<() => void>()\n\nexport function registerStationAxes(adding: readonly string[]): void {\n const wrong = wrongDeclaredAxes(adding)\n\n if (wrong.length) {\n throw new Error(\n `station: 화면에 건 축이 틀렸습니다 — ${wrong.map(one => JSON.stringify(one)).join(' · ')}. ` +\n '축은 `무리.이름` 모양이고, 기계가 이미 가진 축은 다시 걸지 않습니다.'\n )\n }\n\n const twice = adding.filter(one => productAxes.includes(one))\n\n if (twice.length) {\n console.warn(`[station] 같은 축이 두 번 등록됐습니다 — ${twice.join(' · ')}. 뒤엣것은 버립니다.`)\n }\n\n productAxes = [...productAxes, ...adding.filter(one => !productAxes.includes(one))]\n listeners.forEach(listener => listener())\n}\n\n/** 제품이 건 축이 바뀌면 알린다. 돌려주는 함수를 부르면 그만 듣는다. */\nexport function onStationAxes(listener: () => void): () => void {\n listeners.add(listener)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\n/** 이 화면이 읽을 수 있는 축 전부 — 기계의 핵과 제품이 건 것. 늘 이 함수로 읽는다. */\nexport function stationBindingNames(): string[] {\n return [...STATION_AXES, ...productAxes]\n}\n\n/**\n * 시험용 — 등록은 기동 때 한 번 하는 일이다.\n *\n * 듣는 쪽은 지우지 않고 알린다. 모듈을 불러올 때 건 듣기(필드 씬의 선택기 캐시)가 지워지면, 다음 등록이 그 캐시에 안 닿는다.\n */\nexport function forgetStationAxes(): void {\n productAxes = []\n listeners.forEach(listener => listener())\n}\n"]}