@joymerrevent/porters-connect 0.18.0 → 0.19.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,40 @@
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.19.0] - 2026-09-18
9
+
10
+ **CJS からの入口を開け、Node の下限を 22.12 に上げた版**です。**破壊的変更を 1 つ**含みます
11
+ (`engines.node` の引き上げ)。
12
+
13
+ `require()` は `ERR_PACKAGE_PATH_NOT_EXPORTED`、TypeScript は `TS1479` — 0.18.0 まで、CJS からは
14
+ **実行時もコンパイル時も入口がありませんでした**。別実体(dual)を配るのではなく、`require` 条件を
15
+ **同じ ESM 実体**に向けて塞いでいます([ADR-0082][adr82])。
16
+
17
+ ### Added
18
+
19
+ - **CJS(`require`)から読めるようになりました**([ADR-0082][adr82])。
20
+
21
+ ```js
22
+ const { PortersClient } = require("@joymerrevent/porters-connect");
23
+ ```
24
+
25
+ 配るのは **ESM の 1 ファイルのまま**で、`require` 条件を同じ実体に向けています
26
+ (Node の `require(esm)`)。**CJS 用の別ファイルは配りません** — 実体が 2 つあると
27
+ ESM 側と CJS 側で別のクラスが読まれ、`catch (e) { if (e instanceof PortersError) … }` が
28
+ `false` になって素通りするためです。型は `dist/index.d.cts` を同梱しているので、
29
+ `moduleResolution: node16` の CJS 利用者もそのまま書けます。
30
+
31
+ 0.18.0 までは `exports` が `import` 条件しか持たず、`require()` は
32
+ `ERR_PACKAGE_PATH_NOT_EXPORTED`、TypeScript は `TS1479` で**入口そのものがありません**でした。
33
+
34
+ ### Changed
35
+
36
+ - **(破壊的)Node.js 22.12 以上が必要になりました**([ADR-0082][adr82])。`engines.node` が
37
+ `>=20` → `>=22.12.0` です。`require` 条件を ESM 実体に向ける形は Node の `require(esm)` に
38
+ 載っており、これが既定で有効なのは **22.12.0 以降**だからです(22.0〜22.11 では
39
+ `ERR_REQUIRE_ESM`)。丸めて `>=22` と書くとその範囲に対して嘘になるため、成立する最小の形で
40
+ 宣言しています。Node 20 は **2026-04-30 に EOL** で、テストの Node マトリクスからも外しました。
41
+
8
42
  ## [0.18.0] - 2026-09-17
9
43
 
10
44
  **「どのリソースか」の受け取り方を 1 つの規則に揃えた版**です。**破壊的変更を 4 つ**含みます
@@ -1025,13 +1059,15 @@ Attachment)あるのに、受け口の形が 3 つとも違っていました
1025
1059
  [adr79]: docs/adr/0079-resource-by-name.md
1026
1060
  [adr80]: docs/adr/0080-resource-parameter-binding.md
1027
1061
  [adr81]: docs/adr/0081-attachment-read-parameters.md
1062
+ [adr82]: docs/adr/0082-module-format-and-node-baseline.md
1028
1063
  [limits]: docs/usage/concepts/limits.md
1029
1064
  [failures]: docs/usage/howto/handle-failures.md
1030
1065
  [lv]: docs/live-verification.md
1031
1066
  [ref]: docs/usage/reference/README.md
1032
1067
  [kac]: https://keepachangelog.com/en/1.1.0/
1033
1068
  [semver]: https://semver.org/
1034
- [unreleased]: https://github.com/Joymerrevent/porters-connect/compare/v0.18.0...HEAD
1069
+ [unreleased]: https://github.com/Joymerrevent/porters-connect/compare/v0.19.0...HEAD
1070
+ [0.19.0]: https://github.com/Joymerrevent/porters-connect/compare/v0.18.0...v0.19.0
1035
1071
  [0.18.0]: https://github.com/Joymerrevent/porters-connect/compare/v0.17.0...v0.18.0
1036
1072
  [0.17.0]: https://github.com/Joymerrevent/porters-connect/compare/v0.16.0...v0.17.0
1037
1073
  [0.16.0]: https://github.com/Joymerrevent/porters-connect/compare/v0.15.1...v0.16.0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @joymerrevent/porters-connect
2
2
 
3
- [![npm version][npm-badge]][npm] [![License: MIT][mit-badge]][mit] ![Node >= 20][node-badge] [![OpenSSF Scorecard][scorecard-badge]][scorecard] [![OpenSSF Best Practices][bp-badge]][bp]
3
+ [![npm version][npm-badge]][npm] [![License: MIT][mit-badge]][mit] ![Node >= 22.12.0][node-badge] [![OpenSSF Scorecard][scorecard-badge]][scorecard] [![OpenSSF Best Practices][bp-badge]][bp]
4
4
 
5
5
  PORTERS Connect API(旧 HRBC)を **TypeScript から型安全・簡単に**扱うための、
6
6
  [Joymerrevent(ジョイメリベント)][joymerrevent] 製の **非公式(unofficial)** ラッパーです。
@@ -35,7 +35,8 @@ XML レスポンスを型付きオブジェクトに変換し、独自仕様の
35
35
  4. **付与するスコープ**の決定(リソース別に `_r` / `_w`。Read でも複数要ることがあります)。
36
36
 
37
37
  揃えかたは[始める前に][s-prereq]に、権限付与の手順は[認証を通して、疎通を確認する][s-auth]に
38
- あります。実行環境は Node.js 20 以上(ESM)で、型定義は同梱です。
38
+ あります。実行環境は **Node.js 22.12 以上**で、型定義は同梱です。配るのは ESM 1 本ですが、
39
+ CJS からも `require("@joymerrevent/porters-connect")` で読めます([CJS から使う][s-cjs])。
39
40
 
40
41
  契約や権限付与を**待っている間**も、PORTERS に繋がずにコードとテストは書けます
41
42
  ([契約なしでテストを書きたい][test-without-contract])。
@@ -144,7 +145,7 @@ console.log(page.total, page.items[0]?.P_Name);
144
145
  [npm-badge]: https://img.shields.io/npm/v/@joymerrevent/porters-connect
145
146
  [mit]: ./LICENSE
146
147
  [mit-badge]: https://img.shields.io/badge/License-MIT-blue.svg
147
- [node-badge]: https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg
148
+ [node-badge]: https://img.shields.io/badge/node-%3E%3D22.12.0-brightgreen.svg
148
149
  [scorecard]: https://scorecard.dev/viewer/?uri=github.com/Joymerrevent/porters-connect
149
150
  [scorecard-badge]: https://api.scorecard.dev/projects/github.com/Joymerrevent/porters-connect/badge
150
151
  [bp]: https://www.bestpractices.dev/projects/14611
@@ -160,6 +161,7 @@ console.log(page.total, page.items[0]?.P_Name);
160
161
  [c-no-delete]: docs/usage/concepts/no-delete.md
161
162
  [c-partition]: docs/usage/concepts/partition.md
162
163
  [s-auth]: docs/usage/start/authenticate.md
164
+ [s-cjs]: docs/usage/start/install.md#cjs-から-require-する
163
165
  [s-prereq]: docs/usage/start/prerequisites.md
164
166
  [test-without-contract]: docs/usage/howto/test-without-contract.md
165
167
  [docs-index]: docs/usage/index.md