{"_id":"@adaskothebeast/hierarchical-convert-to-uuid","_rev":"5-1b95ccd9f40ad28d9eefb329c7f9bafa","name":"@adaskothebeast/hierarchical-convert-to-uuid","dist-tags":{"latest":"11.0.1"},"versions":{"10.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-uuid","version":"10.0.0","_id":"@adaskothebeast/hierarchical-convert-to-uuid@10.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"3635a198b7895985480a2d4d80688f6b36d764b4","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-uuid/-/hierarchical-convert-to-uuid-10.0.0.tgz","fileCount":14,"integrity":"sha512-s1CRei6u0RcOwM3cqRgzkKX0HT7IbM0f+UH9/dnrz4pXgoaH6Mj0dSkvBbomctrfQFB5FFE/C2yGtM/v2AjtFQ==","signatures":[{"sig":"MEUCIBly5SmCKBHjtfMJgAp8RHueeyHJwx3aSjgS+lZnrCg2AiEAkB/7M0dodI1WP5e9xs/yof7HlxqXELhqRaMyx4SSlWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22779},"main":"./index.esm.js","module":"./index.js","gitHead":"d939a562c5f5947e98df253b28d384399481063e","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"11.16.0","description":"**Deep, in-place conversion of canonical UUID strings inside JSON payloads into 16 byte `Uint8Array` values, part of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors).**","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"uuid":"^14.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-uuid_10.0.0_1785246988870_0.7275809736417544","host":"s3://npm-registry-packages-npm-production"}},"10.0.1":{"name":"@adaskothebeast/hierarchical-convert-to-uuid","version":"10.0.1","_id":"@adaskothebeast/hierarchical-convert-to-uuid@10.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors#readme","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"9e299b7378d9443ce549de496902261843a7cf88","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-uuid/-/hierarchical-convert-to-uuid-10.0.1.tgz","fileCount":6,"integrity":"sha512-UC8B/VPYnA2u/KvsEsoVBM5FKXVlN+3kinrrErNN6GNDqHCADSKC0RV4Rt5RfnmJC5Obx33Z/5S9gIUau44+Yw==","signatures":[{"sig":"MEUCIQC8vM0KpvJPZIZdv0eSJ0SK74mRXkIPCu2v2bvRbjGbKQIgb0tlPLzdNP4GyVf1jCk5v/OYVhu2OZN1BAPnIpCKsOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-uuid@10.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13252},"main":"./index.esm.js","type":"module","types":"./index.d.ts","module":"./index.esm.js","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:537a29a0-a54c-4eaa-8d70-81da8710004c"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-uuid"},"_npmVersion":"11.16.0","description":"**Deep, in-place conversion of canonical UUID strings inside JSON payloads into 16 byte `Uint8Array` values, part of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors).**","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"uuid":"^14.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-uuid_10.0.1_1785251992042_0.33200090305852825","host":"s3://npm-registry-packages-npm-production"}},"10.0.2":{"name":"@adaskothebeast/hierarchical-convert-to-uuid","version":"10.0.2","_id":"@adaskothebeast/hierarchical-convert-to-uuid@10.0.2","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors#readme","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"e49a0933a50054aecf9f2691dbca6acfd729c80e","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-uuid/-/hierarchical-convert-to-uuid-10.0.2.tgz","fileCount":6,"integrity":"sha512-O2h22fZV/jORSNVdgTyGBdBv41FZHUPVgXGu8v0GNWW+TAhZyFCLfaNRUEAzW5Sy8Ywb4hgAJJyXnKIT+aPq4g==","signatures":[{"sig":"MEQCIDhBgoVnRZ41imFRuZ+I2CSZGi9mh2BBEiPY263gep/vAiAe99Uu+z3w5N29QFU2D7WHflNOP5AocDjxAbNGogXutg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-uuid@10.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13252},"main":"./index.esm.js","type":"module","types":"./index.d.ts","module":"./index.esm.js","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:537a29a0-a54c-4eaa-8d70-81da8710004c"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-uuid"},"_npmVersion":"11.16.0","description":"**Deep, in-place conversion of canonical UUID strings inside JSON payloads into 16 byte `Uint8Array` values, part of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors).**","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"uuid":"^14.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-uuid_10.0.2_1785252313636_0.08151575149315793","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-uuid","version":"11.0.0","keywords":["uuid","guid","uint8array","converter","json","typescript"],"author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-uuid@11.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-uuid#readme","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"4b5f68b9131e71173eec63d7897138edb9d756c5","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-uuid/-/hierarchical-convert-to-uuid-11.0.0.tgz","fileCount":11,"integrity":"sha512-5TzeYV1Eb5/jP6dfe1OQlLDNhkYKKRB4NSeDWltvVN2ZwLw1jG6XA+zaoC2tN/jjK2FtuzF6ajtuXMDosK+LmQ==","signatures":[{"sig":"MEQCIE9BLAg5i6zBgjxzXuUTSQqEGL+13+Rq77M0NFrnaFxuAiBKmfc59AD/qDtGWwKLgMih2TZ19mb4gbOMBdqGqAoS/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFJHZ32uNmHrMH277vSm4Xqm4YoHU6p+nO2foivFkcBMAiEA5PEP43HtmS7pz7DY91KU8vpDFDkhxefvj9z118yy44g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-uuid@11.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16034},"main":"./index.cjs","type":"module","types":"./index.d.ts","module":"./index.esm.js","engines":{"node":">=22.12"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.esm.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"./package.json":"./package.json"},"gitHead":"23dc193eb4d8d834b51de51e1900225a26c143ff","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:537a29a0-a54c-4eaa-8d70-81da8710004c"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-uuid"},"_npmVersion":"11.19.0","description":"Deep, in-place conversion of canonical UUID strings in JSON payloads into 16-byte Uint8Array values.","directories":{},"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"@adaskothebeast/hierarchical-convert-core":"^11.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"uuid":"^14.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-uuid_11.0.0_1790551357789_0.08204346015680097","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"_id":"@adaskothebeast/hierarchical-convert-to-uuid@11.0.1","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"237f618d9413b7c86738fb7521789201efe193e3","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-uuid/-/hierarchical-convert-to-uuid-11.0.1.tgz","fileCount":11,"integrity":"sha512-OudXZU61aacL6K5mjIlDbwEb1Go33oF891VXL8bZU3z/cMpqzWWQIhF8fbWC3RxQP7hXQkSq25Ujm6QOL0sddg==","signatures":[{"sig":"MEQCIEHFvA6rLYC6mH+wqUPpGy7Sv1i7Njg9ZbAerZXhZpQHAiBo2vTuLGXxWpt5KTWZM1BY0QH875Q54Le1EvGki7oQ2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCerI8GqlofzHluWR2aVWcks6jInjLzkt2uO58BZ2sy0AIgTtBaVZ4ldPIXD+oMZDj/hv0m+lVFMIwXR/g7V/x5E1g="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-uuid@11.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16034},"main":"./index.cjs","name":"@adaskothebeast/hierarchical-convert-to-uuid","type":"module","types":"./index.d.ts","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"module":"./index.esm.js","engines":{"node":">=22.12"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.esm.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"./package.json":"./package.json"},"gitHead":"f9edf319c5e23bf1a17f5ec4eb8dac0008b9fd26","license":"MIT","version":"11.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"537a29a0-a54c-4eaa-8d70-81da8710004c"}},"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-uuid#readme","keywords":["uuid","guid","uint8array","converter","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-uuid"},"_npmVersion":"11.19.0","description":"Deep, in-place conversion of canonical UUID strings in JSON payloads into 16-byte Uint8Array values.","directories":{},"maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"@adaskothebeast/hierarchical-convert-core":"^11.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"uuid":"^14.0.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hierarchical-convert-to-uuid_11.0.1_1790749971294_0.07031481285238694"}}},"time":{"created":"2026-07-28T13:56:28.646Z","modified":"2026-09-30T06:32:51.687Z","10.0.0":"2026-07-28T13:56:29.045Z","10.0.1":"2026-07-28T15:19:52.183Z","10.0.2":"2026-07-28T15:25:13.792Z","11.0.0":"2026-09-27T23:22:37.884Z","11.0.1":"2026-09-30T06:32:51.375Z"},"bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-uuid#readme","keywords":["uuid","guid","uint8array","converter","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-uuid"},"description":"Deep, in-place conversion of canonical UUID strings in JSON payloads into 16-byte Uint8Array values.","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"readme":"# 🔖 @adaskothebeast/hierarchical-convert-to-uuid\n\n**Deep, in-place conversion of canonical UUID strings inside JSON payloads into 16 byte `Uint8Array` values, part of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors).**\n\n[![npm](https://img.shields.io/npm/v/%40adaskothebeast%2Fhierarchical-convert-to-uuid?color=cb3837&logo=npm)](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-uuid)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n\nPeer dependency: `uuid` (its `validate` and `parse` do the validation and the hex decoding). Runtime dependency: the dependency-free `@adaskothebeast/hierarchical-convert-core`, which provides the shared traversal.\n\n---\n\n## 📦 Install\n\n```bash\nnpm i @adaskothebeast/hierarchical-convert-to-uuid uuid\n```\n\n---\n\n## 🎯 What it does\n\nWalks a parsed JSON payload and replaces every canonical, RFC valid UUID string with its 16 byte binary form:\n\n```text\n{ \"id\": \"550e8400-e29b-41d4-a716-446655440000\" }\n  -> id === Uint8Array [ 85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0 ]\n```\n\nBytes, not a normalised string. That is the whole point: byte form is compact, comparable and directly usable when you re-encode identifiers for a binary protocol, a `Uint8Array` backed cache key or a database driver that wants raw bytes. If you wanted lowercase strings you would not need a converter at all.\n\nThe traversal is the same hardened walk used by the sibling date converters (shared through `hierarchical-convert-core`): arrays and plain objects only, own enumerable properties only, `__proto__` / `constructor` / `prototype` skipped, the root plus 100 nested levels, cycles visited once, frozen or read-only properties left alone. Conversion happens in place and the function returns `void`. The full traversal rules are in the repository [conversion contract](https://github.com/AdaskoTheBeAsT/date-interceptors/blob/main/docs/conversion-contract.md#heuristic-date-conversion).\n\nRecognition is **content driven, not key driven**. There is no allow-list of field names, so a UUID-shaped value in a `note` field is converted just like the one in `id`. Where that is unacceptable, hydrate through a schema with [`@adaskothebeast/typewriter-runtime`](https://www.npmjs.com/package/@adaskothebeast/typewriter-runtime) instead.\n\n---\n\n## 🧰 API\n\n| Export                      | Signature                | Notes                                   |\n| --------------------------- | ------------------------ | --------------------------------------- |\n| `hierarchicalConvertToUuid` | `(obj: unknown) => void` | Mutates `obj` in place, returns `void`. |\n\nNon-object inputs (`null`, numbers, strings, `undefined`) are accepted and ignored, so you can call it on any deserialized body without a guard. (Before 11.0.0 the signature also exposed internal `depth` and `visited` parameters.)\n\n---\n\n## ⚡ Usage\n\n```ts\nimport { hierarchicalConvertToUuid } from '@adaskothebeast/hierarchical-convert-to-uuid';\nimport { stringify } from 'uuid';\n\nconst payload = {\n  id: '550e8400-e29b-41d4-a716-446655440000',\n  name: 'Adam',\n  children: [{ id: '6ba7b810-9dad-11d1-80b4-00c04fd430c8' }],\n};\n\nhierarchicalConvertToUuid(payload);\n\npayload.id instanceof Uint8Array; // true\npayload.id.length; // 16\nstringify(payload.id); // '550e8400-e29b-41d4-a716-446655440000'\npayload.name; // 'Adam' (unchanged)\n```\n\nAs a `fetch` post-processing step:\n\n```ts\nasync function getJson<T>(url: string): Promise<T> {\n  const response = await fetch(url);\n  const data = (await response.json()) as T;\n  hierarchicalConvertToUuid(data);\n  return data;\n}\n```\n\nComparing two identifiers after conversion, since `Uint8Array` has no value equality:\n\n```ts\nfunction sameUuid(a: Uint8Array, b: Uint8Array): boolean {\n  return a.length === b.length && a.every((byte, index) => byte === b[index]);\n}\n```\n\n---\n\n## 🎛️ Options and configuration\n\nNone. The recogniser is fixed and runs in two stages:\n\n1. **Fast rejection.** The value must be a string of exactly 36 characters. Anything else skips validation entirely.\n2. **Validation and decoding** via `validate` and `parse` from `uuid`, which accept only\n\n   ```text\n   /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\n      |00000000-0000-0000-0000-000000000000\n      |ffffffff-ffff-ffff-ffff-ffffffffffff)$/i\n   ```\n\n   so the version nibble must be `1` to `8` and the variant nibble must be `8`, `9`, `a` or `b`, with the nil and max UUIDs allowed as explicit exceptions. A `TypeError` from `parse` is swallowed and the original string is left in place.\n\n| Input                                    | Result                                     |\n| ---------------------------------------- | ------------------------------------------ |\n| `550e8400-e29b-41d4-a716-446655440000`   | 16 bytes (v4)                              |\n| `6ba7b810-9dad-11d1-80b4-00c04fd430c8`   | 16 bytes (v1)                              |\n| `550E8400-E29B-41D4-A716-446655440000`   | 16 bytes, same bytes as the lowercase form |\n| `00000000-0000-0000-0000-000000000000`   | 16 zero bytes (nil UUID)                   |\n| `ffffffff-ffff-ffff-ffff-ffffffffffff`   | 16 `0xff` bytes (max UUID)                 |\n| `550e8400-e29b-91d4-a716-446655440000`   | unchanged (version `9` is not valid)       |\n| `550e8400e29b41d4a716446655440000`       | unchanged (no hyphens, 32 characters)      |\n| `{550e8400-e29b-41d4-a716-446655440000}` | unchanged (braced form, 38 characters)     |\n| `urn:uuid:550e8400-...`                  | unchanged (URN form)                       |\n\n---\n\n## 📤 Output examples\n\n```ts\nconst input = {\n  v4: '550e8400-e29b-41d4-a716-446655440000',\n  upper: '550E8400-E29B-41D4-A716-446655440000',\n  nil: '00000000-0000-0000-0000-000000000000',\n  badVersion: '550e8400-e29b-91d4-a716-446655440000',\n  truncated: '550e8400-e29b-41d4-a716-44665544000',\n  text: 'not-a-uuid',\n};\n\nhierarchicalConvertToUuid(input);\n```\n\n```text\nv4         -> Uint8Array(16) [85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0]\nupper      -> Uint8Array(16) [85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0]\nnil        -> Uint8Array(16) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nbadVersion -> '550e8400-e29b-91d4-a716-446655440000'  (unchanged)\ntruncated  -> '550e8400-e29b-41d4-a716-44665544000'   (unchanged, 35 characters)\ntext       -> 'not-a-uuid'                            (unchanged)\n```\n\nTop-level arrays work as well: `['550e8400-e29b-41d4-a716-446655440000']` becomes an array holding one `Uint8Array`.\n\n---\n\n## ⚠️ Edge cases\n\n- **The result is bytes, so it is no longer JSON friendly.** `JSON.stringify` turns a `Uint8Array` into `{\"0\":85,\"1\":14,...}`, not a UUID string. Re-encode with `stringify` from `uuid` before sending the object back, or keep a converted copy separate from the outbound payload.\n- **`Uint8Array` has no value equality.** `a === b` is false for two equal identifiers, `Map` and `Set` keys will not dedupe, and `JSON.stringify` comparisons are misleading. Compare byte by byte (see the helper above) or convert back to a string for keys.\n- **Version and variant are enforced.** `550e8400-e29b-91d4-a716-446655440000` (version `9`) stays a string, so non-RFC identifiers are not silently accepted. The nil UUID and the max UUID are accepted as special cases.\n- **Only the canonical hyphenated form is recognised.** The 32-character no-dash form, the braced `{...}` .NET \"B\" form and the `urn:uuid:` form all fail the length gate, and any other 36-character string fails `validate`.\n- **Case is normalised into bytes.** Uppercase input produces exactly the same bytes as lowercase input, so the original casing is lost. If a backend echoes identifiers case-sensitively, keep the string.\n- **Byte order is RFC 9562 network order,** the same order `uuid`'s `stringify` expects. .NET `Guid.ToByteArray()` uses a mixed-endian layout for the first three fields, so a service doing `new Guid(bytes)` on these bytes sees a different identifier unless it re-orders them (or uses `Guid.Parse` on a re-encoded string).\n- **Failures are silent.** As with every converter in this family, an invalid UUID string produces no log output and the value is left as it was.\n- **False positives are possible.** Any 36-character string that satisfies the RFC layout is converted regardless of the field name, so a UUID pasted into a free-text field becomes bytes too. The schema-driven [`@adaskothebeast/typewriter-runtime`](https://www.npmjs.com/package/@adaskothebeast/typewriter-runtime) path exists for payloads where that matters.\n- **Prototype pollution is blocked.** Own `__proto__`, `constructor` and `prototype` keys are skipped, so a hostile payload cannot reach `Object.prototype`. The side effect is that a nested object stored under a key literally named `constructor` or `prototype` is never traversed either.\n- **Only arrays and plain objects are entered (11.0.0).** Class instances, `Map`, `Set`, Buffers, and typed arrays (including already converted `Uint8Array` values) are left untouched, so running the converter twice is a no-op.\n- **Frozen or read-only values stay strings.** Frozen objects, non-writable properties, and getter-only properties are skipped instead of throwing mid-walk.\n- **Depth is capped.** The root plus 100 nested levels are walked; deeper strings stay strings. This is DoS protection against adversarially nested JSON.\n- **Circular graphs are safe.** Visited objects are recorded, so `input.self = input` converts once and does not loop.\n\n---\n\n## 🔗 Related packages\n\n- Other value kinds: [`hierarchical-convert-to-decimal`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-decimal), [`hierarchical-convert-to-date`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-date), [`-date-fns`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-date-fns), [`-dayjs`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-dayjs), [`-luxon`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-luxon), [`-moment`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-moment), [`-js-joda`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-js-joda), [`-temporal`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-temporal)\n- Transports: [`angular-date-http-interceptor`](https://www.npmjs.com/package/@adaskothebeast/angular-date-http-interceptor), [`axios-interceptor`](https://www.npmjs.com/package/@adaskothebeast/axios-interceptor), [`react-redux-toolkit-hierarchical-date-hook`](https://www.npmjs.com/package/@adaskothebeast/react-redux-toolkit-hierarchical-date-hook)\n- Schema stack, for payloads where guessing is not acceptable: [`typewriter-schema`](https://www.npmjs.com/package/@adaskothebeast/typewriter-schema), [`typewriter-runtime`](https://www.npmjs.com/package/@adaskothebeast/typewriter-runtime), [`typewriter-http-angular`](https://www.npmjs.com/package/@adaskothebeast/typewriter-http-angular), [`typewriter-http-axios`](https://www.npmjs.com/package/@adaskothebeast/typewriter-http-axios), [`typewriter-http-fetch`](https://www.npmjs.com/package/@adaskothebeast/typewriter-http-fetch)\n\nFull matrix and adapter recipes: [main README](https://github.com/AdaskoTheBeAsT/date-interceptors#readme).\n\n---\n\n## 📄 License\n\n[MIT](./LICENSE) © Adam Pluciński\n","readmeFilename":"README.md"}