@calcit/procs 0.13.2 → 0.13.5

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.
Files changed (51) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/RFCs/08-08-cross-backend-host-ffi-contracts-rfc.md +584 -0
  3. package/RFCs/README.md +2 -1
  4. package/build.rs +24 -23
  5. package/editing-history/20260807-1030-doc-struct-enum-rename-followup.md +9 -0
  6. package/editing-history/20260807-1130-rename-record-tuple-doc-files.md +6 -0
  7. package/editing-history/20260807-1200-rename-record-tuple-test-and-rust.md +41 -0
  8. package/editing-history/202608071809-preserve-targeted-schema-edits.md +11 -0
  9. package/editing-history/202608071848-static-method-generic-validation.md +5 -0
  10. package/editing-history/20260808-0913-continue-struct-naming-cleanup.md +21 -0
  11. package/editing-history/20260808-0917-struct-enum-terminology-cleanup.md +17 -0
  12. package/editing-history/20260808-0926-deprecated-record-api-analysis.md +16 -0
  13. package/editing-history/20260808-0939-pr-review-ci-remediation.md +10 -0
  14. package/editing-history/20260808-0959-canonical-edn-fixture-expectations.md +10 -0
  15. package/editing-history/20260808-1004-align-js-canonical-edn-format.md +10 -0
  16. package/editing-history/20260808-1008-deprecated-analysis-review-fixes.md +10 -0
  17. package/editing-history/20260808-1012-document-deprecated-api-cleanup.md +7 -0
  18. package/editing-history/20260808-1117-option-result-method-api.md +7 -0
  19. package/editing-history/20260808-1126-format-cirru-snapshots.md +6 -0
  20. package/editing-history/20260808-1300-record-tuple-naming-cleanup.md +62 -0
  21. package/editing-history/20260808-1418-cross-backend-host-ffi-contract-rfc.md +7 -0
  22. package/editing-history/20260808-1439-host-ffi-type-foundation.md +7 -0
  23. package/editing-history/20260808-1523-ffi-schema-redesign-and-cirru-edn-check.md +7 -0
  24. package/editing-history/20260808-1532-external-object-trait-refinement.md +6 -0
  25. package/editing-history/20260808-1632-host-ffi.md +6 -0
  26. package/editing-history/20260808-1734-pr-review-ffi-followups.md +7 -0
  27. package/editing-history/20260808-1745-es-module-typed-adapters.md +6 -0
  28. package/editing-history/202608080132-pr-309-review-fixes.md +5 -0
  29. package/editing-history/202608080202-js-example-checks.md +5 -0
  30. package/editing-history/202608080206-quote-shell-special-example.md +4 -0
  31. package/editing-history/202608080854-edn-0.8-integration.md +6 -0
  32. package/editing-history/202608082207-typed-js-field-access.md +15 -0
  33. package/editing-history/202608082312-release-0.13.5.md +10 -0
  34. package/editing-history/ARCHIVE.md +29 -2
  35. package/history/202608062004-wasm-ffi-declarations.md +7 -0
  36. package/history/202608071500-wasm-ffi-review-fixes.md +6 -0
  37. package/lib/js-cirru.mjs +8 -8
  38. package/lib/package.json +1 -1
  39. package/package.json +1 -1
  40. package/ts-src/js-cirru.mts +8 -8
  41. package/editing-history/2026-07-26-1244-release-0.12.52.md +0 -12
  42. package/editing-history/20260728-1501-release-0.12.53.md +0 -6
  43. package/editing-history/202607301435-release-0.12.54.md +0 -22
  44. package/editing-history/202607310052-release-0.12.55.md +0 -5
  45. package/editing-history/202608010111-release-0.12.56.md +0 -15
  46. package/editing-history/202608011908-consolidate-history.md +0 -6
  47. package/editing-history/202608012320-release-0.12.57.md +0 -5
  48. package/editing-history/202608012344-release-main-policy.md +0 -5
  49. package/editing-history/202608060220-release-0.13.0.md +0 -5
  50. package/editing-history/202608061340-release-0.13.1.md +0 -6
  51. package/editing-history/202608061731-release-0.13.2.md +0 -18
package/lib/js-cirru.mjs CHANGED
@@ -155,7 +155,7 @@ export let to_cirru_edn = (x) => {
155
155
  }
156
156
  // placed literals first
157
157
  buffer.sort(recordFieldOrder);
158
- buffer.unshift(x.name.toString());
158
+ buffer.unshift(new CalcitSymbol(x.name.value).toString());
159
159
  buffer.unshift("%{}");
160
160
  return buffer;
161
161
  }
@@ -177,28 +177,28 @@ export let to_cirru_edn = (x) => {
177
177
  return ["quote", toWriterNode(x.get(1))];
178
178
  }
179
179
  else if (x.enumPrototype != null) {
180
- let enumTag = unwrap_enum_prototype_local(x.enumPrototype).name.toString();
180
+ let enumTag = new CalcitSymbol(unwrap_enum_prototype_local(x.enumPrototype).name.value).toString();
181
181
  if (x.tag instanceof CalcitTag) {
182
- return ["%::", enumTag, x.tag.toString(), ...x.extra.map(to_cirru_edn)];
182
+ return ["%::", enumTag, new CalcitSymbol(x.tag.value).toString(), ...x.extra.map(to_cirru_edn)];
183
183
  }
184
184
  else if (x.tag instanceof CalcitStructValue) {
185
- return ["%::", enumTag, x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
185
+ return ["%::", enumTag, new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
186
186
  }
187
187
  else if (x.tag instanceof CalcitImpl) {
188
- return ["%::", enumTag, x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
188
+ return ["%::", enumTag, new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
189
189
  }
190
190
  else {
191
191
  throw new Error(`Unsupported tag for EDN: ${x.tag}`);
192
192
  }
193
193
  }
194
194
  else if (x.tag instanceof CalcitTag) {
195
- return ["::", x.tag.toString(), ...x.extra.map(to_cirru_edn)];
195
+ return ["::", new CalcitSymbol(x.tag.value).toString(), ...x.extra.map(to_cirru_edn)];
196
196
  }
197
197
  else if (x.tag instanceof CalcitStructValue) {
198
- return ["::", x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
198
+ return ["::", new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
199
199
  }
200
200
  else if (x.tag instanceof CalcitImpl) {
201
- return ["::", x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
201
+ return ["::", new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
202
202
  }
203
203
  else {
204
204
  throw new Error(`Unsupported tag for EDN: ${x.tag}`);
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.2",
3
+ "version": "0.13.5",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.2",
3
+ "version": "0.13.5",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
@@ -158,7 +158,7 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
158
158
  }
159
159
  // placed literals first
160
160
  buffer.sort(recordFieldOrder);
161
- (buffer as any[]).unshift(x.name.toString());
161
+ (buffer as any[]).unshift(new CalcitSymbol(x.name.value).toString());
162
162
  (buffer as any[]).unshift("%{}");
163
163
  return buffer;
164
164
  }
@@ -179,22 +179,22 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
179
179
  // turn `x.snd` with CalcitList into raw Cirru nodes, which is in plain Array
180
180
  return ["quote", toWriterNode(x.get(1) as any)] as CirruEdnFormat;
181
181
  } else if (x.enumPrototype != null) {
182
- let enumTag = unwrap_enum_prototype_local(x.enumPrototype).name.toString();
182
+ let enumTag = new CalcitSymbol(unwrap_enum_prototype_local(x.enumPrototype).name.value).toString();
183
183
  if (x.tag instanceof CalcitTag) {
184
- return ["%::", enumTag, x.tag.toString(), ...x.extra.map(to_cirru_edn)];
184
+ return ["%::", enumTag, new CalcitSymbol(x.tag.value).toString(), ...x.extra.map(to_cirru_edn)];
185
185
  } else if (x.tag instanceof CalcitStructValue) {
186
- return ["%::", enumTag, x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
186
+ return ["%::", enumTag, new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
187
187
  } else if (x.tag instanceof CalcitImpl) {
188
- return ["%::", enumTag, x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
188
+ return ["%::", enumTag, new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
189
189
  } else {
190
190
  throw new Error(`Unsupported tag for EDN: ${x.tag}`);
191
191
  }
192
192
  } else if (x.tag instanceof CalcitTag) {
193
- return ["::", x.tag.toString(), ...x.extra.map(to_cirru_edn)];
193
+ return ["::", new CalcitSymbol(x.tag.value).toString(), ...x.extra.map(to_cirru_edn)];
194
194
  } else if (x.tag instanceof CalcitStructValue) {
195
- return ["::", x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
195
+ return ["::", new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
196
196
  } else if (x.tag instanceof CalcitImpl) {
197
- return ["::", x.tag.name.toString(), ...x.extra.map(to_cirru_edn)];
197
+ return ["::", new CalcitSymbol(x.tag.name.value).toString(), ...x.extra.map(to_cirru_edn)];
198
198
  } else {
199
199
  throw new Error(`Unsupported tag for EDN: ${x.tag}`);
200
200
  }
@@ -1,12 +0,0 @@
1
- # 2026-07-26 12:44 Release 0.12.52
2
-
3
- ## 修改概要
4
-
5
- - 将 Rust crate 和 npm package 版本同步升级到 `0.12.52`。
6
- - 执行 `cargo update --workspace` 更新锁文件元数据。
7
-
8
- ## 发布前验证
9
-
10
- - `yarn compile`
11
- - `cargo test -q --bin cr`
12
- - `yarn try-js`
@@ -1,6 +0,0 @@
1
- # 2026-07-28 发布 0.12.53
2
-
3
- ## 修改概要
4
-
5
- - 同步 `Cargo.toml` 和 `package.json` 版本号到 `0.12.53`。
6
- - 执行 `cargo update --workspace` 更新 `Cargo.lock`。
@@ -1,22 +0,0 @@
1
- # Release 0.12.54
2
-
3
- Date: 2026-07-30 14:35 +0800
4
-
5
- ## Release scope
6
-
7
- - Entry-level `:type-slots` configuration and CLI management commands.
8
- - Compile-time-only `with-type-slot` erasure for single and multiple bodies.
9
- - Snapshot/config preservation, type-slot diagnostics, regression fixtures, and documentation.
10
- - The earlier PR 281 review fixes already carried by the same branch.
11
-
12
- ## Pre-release evidence
13
-
14
- - Feature commit `5e180a2e` passed the repository Test workflow on PR #282.
15
- - Local validation passed `cargo fmt`, Clippy with warnings denied, all Rust tests, TypeScript compilation, Agent interface checks, and the full Rust/JS/WASM integration suite.
16
- - Respo passed check-only, JS codegen, Node tests, and all Markdown checks with the new CLI.
17
-
18
- ## Version changes
19
-
20
- - `Cargo.toml`: `0.12.54`
21
- - `package.json`: `0.12.54`
22
- - `Cargo.lock`: refreshed with `cargo update --workspace`
@@ -1,5 +0,0 @@
1
- # Release 0.12.55
2
-
3
- - Bumped the Rust crate and npm package versions together to `0.12.55`.
4
- - Refreshed the workspace lockfile before the release commit.
5
- - This release includes semantic snapshot entry descriptions and canonical symbol storage for entry functions, while preserving legacy string input compatibility.
@@ -1,15 +0,0 @@
1
- # Release 0.12.56
2
-
3
- ## Summary
4
-
5
- - Bump the Calcit Rust crate and npm package versions from `0.12.55` to `0.12.56`.
6
- - Refresh the workspace lockfile so package metadata remains consistent.
7
-
8
- ## Validation
9
-
10
- - `cargo fmt --check`
11
- - `cargo clippy -- -D warnings`
12
- - `yarn compile`
13
- - `cargo test`
14
- - `yarn check-all`
15
- - `yarn check-agent-interface`
@@ -1,6 +0,0 @@
1
- # Consolidate historical editing notes
2
-
3
- - Replaced 142 individual notes from June 2026 and earlier with a compact topic index.
4
- - Retained all July–August notes for active maintenance context.
5
- - The removed notes remain recoverable through Git history; `editing-history/README.md` documents the retention rule.
6
- - Verification: reviewed the tracked path set and checked the resulting Git diff.
@@ -1,5 +0,0 @@
1
- # Release 0.12.57
2
-
3
- - Release the merged CLI mutation, atomic staging, and test deduplication work from PR #284.
4
- - Include the follow-up fixes for Windows staged-file synchronization, symlink destinations, query cloning, and cursor feedback.
5
- - Synchronize the Rust crate and npm package versions, then refresh the workspace lockfile before publishing.
@@ -1,5 +0,0 @@
1
- # Release main-branch policy
2
-
3
- - Main no longer requires pull-request protection for verified changes.
4
- - The release flow now requires the stable version commit to be on `main`, followed by a fresh main-branch CI run before tagging and creating the release.
5
- - Corrected the npm verification command to use the published package name, `@calcit/procs`.
@@ -1,5 +0,0 @@
1
- # 发布 0.13.0
2
-
3
- - 将 Cargo crate 与 npm package 的版本同步升级到 0.13.0。
4
- - 该 minor 版本承载 Option、Result、Unit 与 JsNullish 公共契约的集中 breaking change,作为后续 nil 安全 API 的稳定基线。
5
- - 发布前后继续通过 Calcit 全量验证与 Respo 真实页面回归,避免将未被类型系统发现的 JS FFI 兼容问题带入后续版本。
@@ -1,6 +0,0 @@
1
- # 发布 0.13.1
2
-
3
- - 将 Cargo crate 与 npm package 的版本同步升级到 0.13.1。
4
- - 本 patch 修复自递归 nominal struct 的类型注解解析,避免 Optional 自引用在定义时递归展开。
5
- - record、struct 与 enum 的展示名称统一为 symbol;JS DevTools formatter 同步展示 nominal 定义与 enum payload。
6
- - 发布前通过 Rust、TypeScript 与全量集成验证。
@@ -1,18 +0,0 @@
1
- # Release 0.13.2
2
-
3
- ## Scope
4
-
5
- - Release the struct / enum data model cleanup merged by PR #301.
6
- - Publish direct required Struct field access and migration diagnostics for removed record / tuple APIs.
7
- - Publish symbol-based nominal formatting and matching TypeScript runtime modules.
8
-
9
- ## Version synchronization
10
-
11
- - `Cargo.toml`: `0.13.2`
12
- - `package.json`: `0.13.2`
13
- - `Cargo.lock`: refreshed with `cargo update --workspace`
14
-
15
- ## Release gates
16
-
17
- - The feature PR passed Test and all CodeQL jobs before merge.
18
- - The release commit must pass the same GitHub Actions checks before tag `0.13.2` is created.