config-disassembler 1.2.1 → 1.4.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,20 @@
5
5
 
6
6
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
7
7
 
8
+ ## [1.4.0](https://github.com/mcarvin8/config-disassembler-node/compare/v1.3.0...v1.4.0) (2026-05-08)
9
+
10
+
11
+ ### Features
12
+
13
+ * **rust:** bump config-disassembler from 0.5.0 to 0.5.1 ([#15](https://github.com/mcarvin8/config-disassembler-node/issues/15)) ([77eb94d](https://github.com/mcarvin8/config-disassembler-node/commit/77eb94d142db1e801753e7527b8c51bde2d6ad75))
14
+
15
+ ## [1.3.0](https://github.com/mcarvin8/config-disassembler-node/compare/v1.2.1...v1.3.0) (2026-05-05)
16
+
17
+
18
+ ### Features
19
+
20
+ * **deps:** bump config-disassembler to 0.5.0 (sanitize + collision detection) ([#13](https://github.com/mcarvin8/config-disassembler-node/issues/13)) ([eb52fde](https://github.com/mcarvin8/config-disassembler-node/commit/eb52fde5725ec819d64170f0502e22eef118f87f))
21
+
8
22
  ## [1.2.1](https://github.com/mcarvin8/config-disassembler-node/compare/v1.2.0...v1.2.1) (2026-05-04)
9
23
 
10
24
 
package/README.md CHANGED
@@ -147,6 +147,8 @@ Each nested element is written to its own file, named by a unique identifier (or
147
147
 
148
148
  **Compound keys (`+`)** – Each comma-separated *UID candidate* in the list may be a `+`-joined compound (e.g. `actionName+pageOrSobjectType+formFactor+profile`). A compound matches only when every sub-field is present and non-empty at the same level, in which case the resolved values are joined with `__` to form the filename. Useful for metadata whose natural unique key is multi-field, like Salesforce `<profileActionOverrides>` (`actionName + pageOrSobjectType + formFactor + profile [+ recordType]`); without compounds, every sibling sharing an `actionName` would collapse to one filename. List both wide and narrow forms (e.g. `A+B+C+D, A+B+C, A`) for graceful fallback when items only carry some keys.
149
149
 
150
+ **Filename safety** – Resolved unique-id values are sanitized before being used as a path segment: path separators (`/`, `\`), Windows-reserved chars (`:`, `*`, `?`, `"`, `<`, `>`, `|`), and ASCII control bytes are each replaced with `_`; trailing dots and spaces are stripped. So a Salesforce `EntitlementProcess` milestone named `TrustFile Transaction Sync/Import Complete` produces the shard `TrustFile Transaction Sync_Import Complete.milestones-meta.xml` on every platform instead of the `/` being interpreted as a directory separator. After sanitization, any remaining sibling collisions (because `uniqueIdElements` is too narrow, or because sanitization folded distinct values into the same form) are detected automatically: every sibling in the colliding group falls back to a per-element 8-character SHA-256 hash so no row is silently overwritten on disk. Both behaviors require no configuration.
151
+
150
152
  Best for fine-grained diffs and version control.
151
153
 
152
154
  #### `grouped-by-tag`
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "config-disassembler",
3
- "version": "1.2.1",
3
+ "version": "1.4.0",
4
4
  "description": "Disassemble configuration files (XML, JSON, JSON5, JSONC, YAML, TOON, TOML, INI) into smaller, version-control friendly pieces and reassemble them on demand. Node.js bindings for the Rust `config-disassembler` crate.",
5
5
  "author": "Matt Carvin",
6
6
  "license": "MIT",