{"_id":"@atcute/tid","_rev":"9-ad135ce87dfc6414e07ffb701798afc0","name":"@atcute/tid","dist-tags":{"latest":"1.1.4"},"versions":{"1.0.0":{"name":"@atcute/tid","version":"1.0.0","license":"MIT","_id":"@atcute/tid@1.0.0","maintainers":[{"name":"externdefs","email":"maryext+npm@proton.me"}],"dist":{"shasum":"3b502a957ef92627f146920a5478a061cd3c8d57","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.0.0.tgz","fileCount":9,"integrity":"sha512-hwvo19zlhSskYRmIzTQqj1Kxd9IX+x8B593flXTaR5jO+/3krUwlRnXd/pnZp5wZqAI/j2OlcPGadX93rsoozg==","signatures":[{"sig":"MEYCIQCJ2LlakqmOWAdVc4ItHXWtK2f0MYXtZodnuAU9I02+SQIhAOd20gNkBcXurZqiLaHYpuWF54BRA713EX8qJ4zFTr7q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7232},"type":"module","_from":"file:atcute-tid-1.0.0.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"bun test --coverage","build":"tsc --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"maryext+npm@proton.me"},"_resolved":"/tmp/b16dd1d62f670b65d2ca39ef06dbf8ce/atcute-tid-1.0.0.tgz","_integrity":"sha512-hwvo19zlhSskYRmIzTQqj1Kxd9IX+x8B593flXTaR5jO+/3krUwlRnXd/pnZp5wZqAI/j2OlcPGadX93rsoozg==","repository":{"url":"https://codeberg.org/mary-ext/atcute"},"_npmVersion":"10.8.2","description":"create and parse TID identifiers","directories":{},"sideEffects":false,"_nodeVersion":"22.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.0.0_1723954658589_0.7545766836685617","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@atcute/tid","version":"1.0.1","license":"MIT","_id":"@atcute/tid@1.0.1","maintainers":[{"name":"externdefs","email":"maryext+npm@proton.me"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"b90d4d5123dcbf8a57dbc3826c2998bf109f3a85","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.0.1.tgz","fileCount":11,"integrity":"sha512-3CjXIauzpIXi86MS1HLCDTzXmxtghSynNpWygd6pD/hnwJX4CK04ZU7S44qGVcLQmpiuAiGtqABkBAAK3V8BRw==","signatures":[{"sig":"MEQCICuMKmYs9vJiJlvglcHXBXhSwvE1n8TphPsOY3bfomc6AiABKm8pHkQ5kr9igYs2BHYt0AImTulcEbZx/YBrNz72Gw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9347},"type":"module","_from":"file:atcute-tid-1.0.1.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"bun test --coverage","build":"tsc --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"maryext+npm@proton.me"},"_resolved":"/tmp/ab8fec95fa14df01dfff7e1009a45d72/atcute-tid-1.0.1.tgz","_integrity":"sha512-3CjXIauzpIXi86MS1HLCDTzXmxtghSynNpWygd6pD/hnwJX4CK04ZU7S44qGVcLQmpiuAiGtqABkBAAK3V8BRw==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.0","description":"create and parse TID identifiers","directories":{},"sideEffects":false,"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.12"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.0.1_1730852243748_0.8692508917671629","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@atcute/tid","version":"1.0.2","keywords":["atproto","codec"],"license":"MIT","_id":"@atcute/tid@1.0.2","maintainers":[{"name":"externdefs","email":"maryext+npm@proton.me"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"59457bf719bd1acc98c3e1d07c12f14c5d80dd1a","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.0.2.tgz","fileCount":11,"integrity":"sha512-ahmjroNyeDPJhtuf3+HTJropaH04HmJ8fhntDu73Gpz/RkAF7+nkz6kcP2QTgfvMCgMPAJUdskAAP82GPDTY9w==","signatures":[{"sig":"MEYCIQCQcH81U+PAhScUqOuyqTTawY7Re/NBvOtu+cMyDFN3nwIhALIKXIomOYM1Jn+Q9UhiDJ/FvoGkW+D4KDIsz4AR/rNs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9438},"type":"module","_from":"file:atcute-tid-1.0.2.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"bun test --coverage","build":"tsc --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"maryext+npm@proton.me"},"_resolved":"/tmp/dfc626223955a5f47710b1137eea77a4/atcute-tid-1.0.2.tgz","_integrity":"sha512-ahmjroNyeDPJhtuf3+HTJropaH04HmJ8fhntDu73Gpz/RkAF7+nkz6kcP2QTgfvMCgMPAJUdskAAP82GPDTY9w==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.0","description":"atproto timestamp identifier identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.14"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.0.2_1735441559871_0.7584965903687386","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@atcute/tid","version":"1.0.3","keywords":["atproto","codec"],"license":"0BSD","_id":"@atcute/tid@1.0.3","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"530df5b4e3df58289e9dbe23bb76f90f62dec2a7","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.0.3.tgz","fileCount":13,"integrity":"sha512-wfMJx1IMdnu0CZgWl0uR4JO2s6PGT1YPhpytD4ZHzEYKKQVuqV6Eb/7vieaVo1eYNMp2FrY67FZObeR7utRl2w==","signatures":[{"sig":"MEUCIBOVanxNpb7p7uSdIeDBVgv3vyAGZs24kbCszuKR/JySAiEA1+K1jSXX4l5W3Gw8XQeAdKjn6I/ZdX6N8j5+FvXHXQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9802},"type":"module","_from":"file:atcute-tid-1.0.3.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest","build":"tsc --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/a997a8964e4cb0cb9d28c84eae0a9aa7/atcute-tid-1.0.3.tgz","_integrity":"sha512-wfMJx1IMdnu0CZgWl0uR4JO2s6PGT1YPhpytD4ZHzEYKKQVuqV6Eb/7vieaVo1eYNMp2FrY67FZObeR7utRl2w==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.2","description":"atproto timestamp identifier identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.0.3_1760012812933_0.8865903127707653","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@atcute/tid","version":"1.1.0","keywords":["atproto","codec"],"license":"0BSD","_id":"@atcute/tid@1.1.0","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"e9e82e5b4891f9a0a3a6583ca4b6b20c8c2ea8d5","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.1.0.tgz","fileCount":13,"integrity":"sha512-U/YKL9BsBi/bcVXaIwdUBfglnjFxRfqoPd2f1uLsEIDQk1EyxepwdDQYOQ5t/aQctmtywl7lQn6KESQNG+mdfg==","signatures":[{"sig":"MEUCIQDGmWlpO318difC6rcMa48SxoVDJKUGVIG2vw/yxg48MgIgeTXIV+HD5r4n+ZGB17CdmOV3waeN+IipRAccMRNRumQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10511},"type":"module","_from":"file:atcute-tid-1.1.0.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest","build":"tsgo --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/9a4247df119e17fb43fa19f1aafef285/atcute-tid-1.1.0.tgz","_integrity":"sha512-U/YKL9BsBi/bcVXaIwdUBfglnjFxRfqoPd2f1uLsEIDQk1EyxepwdDQYOQ5t/aQctmtywl7lQn6KESQNG+mdfg==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.4","description":"atproto timestamp identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"@atcute/time-ms":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.1.0_1766739823537_0.7202750432980427","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@atcute/tid","version":"1.1.1","keywords":["atproto","codec"],"license":"0BSD","_id":"@atcute/tid@1.1.1","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"6b3ab727249da89ec5f745fa007ebd38a3da2df6","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.1.1.tgz","fileCount":23,"integrity":"sha512-djJ8UGhLkTU5V51yCnBEruMg35qETjWzWy5sJG/2gEOl2Gd7rQWHSaf+yrO6vMS5EFA38U2xOWE3EDUPzvc2ZQ==","signatures":[{"sig":"MEQCIDBnfQ/Yph2NTTb73CKDD7eZrC0xYTKvhL1Xrx9D3lgeAiB/Q1lFyx73wPb3CO3OnCgzYMp5TZvyTb6SE41UmeLJjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12571},"type":"module","_from":"file:atcute-tid-1.1.1.tgz","exports":{".":"./dist/index.js"},"imports":{"#platform/random":{"node":"./dist/random-node.js","default":"./dist/random-web.js"}},"scripts":{"test":"vitest","build":"tsgo --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/e1699dcf7f8c8245dd057b829ac8f4ab/atcute-tid-1.1.1.tgz","_integrity":"sha512-djJ8UGhLkTU5V51yCnBEruMg35qETjWzWy5sJG/2gEOl2Gd7rQWHSaf+yrO6vMS5EFA38U2xOWE3EDUPzvc2ZQ==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.4","description":"atproto timestamp identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"@atcute/time-ms":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","@types/node":"^22.19.3"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.1.1_1767062539431_0.23523056768355843","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@atcute/tid","version":"1.1.2","keywords":["atproto","codec"],"license":"0BSD","_id":"@atcute/tid@1.1.2","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"20bf1229e3fd79c6783f5598beffea58f415848c","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.1.2.tgz","fileCount":23,"integrity":"sha512-bmPuOX/TOfcm/vsK9vM98spjkcx2wgd9S2PeK5oLgEr8IbNRPq7iMCAPzOL1nu5XAW3LlkOYQEbYRcw5vcQ37w==","signatures":[{"sig":"MEUCIQCW26wOh7wzcPqeFRoQQ6AifnSZazGBzu2L+sEEKF6PUgIgbRH1WT9QyBxb7r5fYnJDcVTLoXEpnchtM9Js2BPUzig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15145},"type":"module","_from":"file:atcute-tid-1.1.2.tgz","exports":{".":"./dist/index.js"},"imports":{"#platform/random":{"node":"./dist/random-node.js","default":"./dist/random-web.js"}},"scripts":{"test":"vitest","build":"tsgo --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/4f2d19574018cd8448b72a8385270574/atcute-tid-1.1.2.tgz","_integrity":"sha512-bmPuOX/TOfcm/vsK9vM98spjkcx2wgd9S2PeK5oLgEr8IbNRPq7iMCAPzOL1nu5XAW3LlkOYQEbYRcw5vcQ37w==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/utilities/tid"},"_npmVersion":"10.9.4","description":"atproto timestamp identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@atcute/time-ms":"^1.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.1.2_1770908329860_0.24666762571504908","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@atcute/tid","version":"1.1.3","keywords":["atproto","codec"],"license":"0BSD","_id":"@atcute/tid@1.1.3","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"dist":{"shasum":"5252252f968f6ad23b7d67e4f929145208d2237d","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.1.3.tgz","fileCount":11,"integrity":"sha512-Ox9KRz8i1QC2ILNKP4JY7q2s1Vnf0xIRiS2CL5RVhQ+k248462mOUdZJkPfPnlprALv6sATDIJMbWioGkXoQRA==","signatures":[{"sig":"MEUCIG+Mi4do3lQzjLzjtq5WwywQXaIIAWJYJBGM0a9ZU6m9AiEAmVuaQa9oK0qwfHD6DbYytsLhYEO2kl1aKUTVVKTSIdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7224},"type":"module","exports":{".":"./dist/index.js"},"imports":{"#platform/random":{"node":"./dist/random-node.js","default":"./dist/random-web.js"}},"scripts":{"test":"vitest","build":"tsgo","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/utilities/tid"},"description":"atproto timestamp identifier codec library","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"@atcute/time-ms":"^1.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","@types/node":"^25.9.4"},"_npmOperationalInternal":{"tmp":"tmp/tid_1.1.3_1782736401335_0.8423002873420287","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@atcute/tid","version":"1.1.4","description":"atproto timestamp identifier codec library","keywords":["atproto","codec"],"license":"0BSD","repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/utilities/tid"},"type":"module","sideEffects":false,"imports":{"#platform/random":{"node":"./dist/random-node.js","default":"./dist/random-web.js"}},"exports":{".":"./dist/index.js"},"publishConfig":{"access":"public"},"dependencies":{"@atcute/time-ms":"^1.3.3"},"devDependencies":{"@types/node":"^26.1.1","vitest":"^4.1.10"},"scripts":{"build":"tsc","test":"vitest","prepublish":"rm -rf dist; pnpm run build"},"_nodeVersion":"26.0.0","_id":"@atcute/tid@1.1.4","dist":{"integrity":"sha512-RVjGAxu+WgcQjs7AkicZKOqLOncnuXh7a0xUHTfXTYZjXSszB7jBLgrcLWjpU0mBTko9dT+GajsXAcBGYmzYKQ==","shasum":"af8664412cb79ab2646d4fdd667fa149f0e93e04","tarball":"https://registry.npmjs.org/@atcute/tid/-/tid-1.1.4.tgz","fileCount":11,"unpackedSize":7337,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNSOwlmOPSQ6yMPa1Vy00CGua7NDnU+cdYLUCLWZpBbgIgVo9AWBn8xxgbmgqw0KSuEoCeyFpmSNsi1DWEIsKUZgc="}]},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"directories":{},"maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tid_1.1.4_1784160253156_0.6846731046051322"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-18T04:17:38.449Z","modified":"2026-07-16T00:04:13.515Z","1.0.0":"2024-08-18T04:17:38.763Z","1.0.1":"2024-11-06T00:17:23.947Z","1.0.2":"2024-12-29T03:06:00.049Z","1.0.3":"2025-10-09T12:26:53.114Z","1.1.0":"2025-12-26T09:03:43.683Z","1.1.1":"2025-12-30T02:42:19.565Z","1.1.2":"2026-02-12T14:58:50.024Z","1.1.3":"2026-06-29T12:33:21.503Z","1.1.4":"2026-07-16T00:04:13.302Z"},"license":"0BSD","keywords":["atproto","codec"],"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/utilities/tid"},"description":"atproto timestamp identifier codec library","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"readme":"# @atcute/tid\n\ntimestamp identifier (TID) codec for AT Protocol.\n\n```sh\nnpm install @atcute/tid\n```\n\nthis library implements atproto's TID codec used to generate compact and unique record keys that can\nbe sorted chronologically.\n\n## usage\n\n### generating TIDs\n\n```ts\nimport * as TID from '@atcute/tid';\n\n// generate a TID for the current time\nconst tid = TID.now();\n// -> \"3l25zusnsfctk\"\n\n// create from specific timestamp (microseconds) and clock ID\nconst custom = TID.create(1724171495793000, 512);\n// -> \"3l25zusnsfck2\"\n```\n\non Node.js, `TID.now()` relies on the system's real-time clock for microsecond precision where\navailable, falling back to millisecond precision otherwise.\n\n`TID.now()` is not monotonic — TIDs encode wall clock time, so the generator must follow clock\ncorrections rather than preserve ordering. enforcing monotonicity on devices with unreliable clocks\n(e.g. phones) would leave the generator permanently stuck at the wrong time after a correction. the\nonly exception is rapid successive calls within a single process that observe the same timestamp,\nwhere it increments instead of reusing it to avoid collisions.\n\n### parsing TIDs\n\n```ts\nimport * as TID from '@atcute/tid';\n\nconst { timestamp, clockid } = TID.parse('3l25zusnsfctk');\n// timestamp: 1724171495793000 (microseconds since epoch)\n// clockid: 816\n```\n\n### validating TIDs\n\n```ts\nimport * as TID from '@atcute/tid';\n\nTID.validate('3l25zusnsfctk'); // true\nTID.validate('invalid'); // false\n```\n","readmeFilename":""}