{"_id":"xcraft-core-cryo","_rev":"47-6b6b0775f5c466d4933ebffc29948d46","name":"xcraft-core-cryo","dist-tags":{"latest":"2.37.15"},"versions":{"1.0.0":{"name":"xcraft-core-cryo","version":"1.0.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@1.0.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"22e981a0fa18bdec335966cc21ad365bd80c4424","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-1.0.0.tgz","fileCount":6,"integrity":"sha512-smi6kH/58FPu7yWpEhI/76PzZTL/v/+5dKeRaxTsWn7YRV7HDP+7wZQf7EF4VxNjwVtayMSDFJmDcSevpITDhA==","signatures":[{"sig":"MEYCIQD/YqXFPZ62mybselqB/tM5Vx493oNxZitcK1dksZrr4AIhAIcakJnn0vZJTQicvghdZosgNVYZ7jmNp1L+eGg1mU23","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLTfeCRA9TVsSAnZWagAAXUIP/iKYKagC5aX9zFk6eQjd\nWSdPEXPR1aVwhMkQJeAUcw/SSCbMpkJdqsq7fasXsl9t9A05hmBWKCh0pZtW\ntZxxAN6w184NGITgA/+9fw86RAZYZdzTGYREL0z1V+me3LIHVK4weQdj1513\nrIS6uK44WigV5gm6bB8A1z9GMlPMlh56J6MN8xP/4PWjNUn9xmXAweqslCAf\nwcb7uCMo5T2CvIIuQrQbwNY0p9X2mJcM0szb6kIIwG7QTaBlgHMHc6sa+e4D\n1squrszp9q/1vVkjJ5f0h0idwD/Mp5OENhGYECO48Fn84V8h/JQp5sDyv+/G\nYjUhY/esEebTMTOs9KI9FNxJ7GPS8WgOdh6eeDFH3VI4s8zk6iKskZjIF5YK\nvRdoyXu6y2UGg+B+WrTJq5GirHDrdIyqoJ/tUv3SsDM3NF7VtIw6/Y2jRLJt\nMOH1z53w4pJ1ZwsMXWcCsQroszXJUU8jLrwJqLFitSW3V6bE3qEUfi+eWGw5\nhE43Rbg6xhyCQx3EgQnRC0xWjMfOxQgddzU++4xwzlK2j75hGayVYPrc16DH\nX2yWMVl89vn0FdNiSMj2ZAiQLSrXQk+ZoNIfFvG0SN5qT3ChpEdI77BUQ5jC\nSAioe/vw8YDGDN8ayYRy8Pla+zisxlQHDkp1w7fKNHzZfT74sIRW9YG1wY79\nhEk5\r\n=GsHh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=6"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"6.14.7","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"12.18.3","dependencies":{"uuid":"^3.1.0","gigawatts":"^4.0.1","better-sqlite3":"^5.2.1","xcraft-core-fs":"^2.0.0","xcraft-core-host":"^2.0.0","xcraft-core-utils":"^2.1.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"optionalDependencies":{"better-sqlite3":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_1.0.0_1596798942273_0.8616861140114709","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"xcraft-core-cryo","version":"1.0.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@1.0.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"7442e5e3003794a0e0bb869fd086f692a270806b","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-1.0.1.tgz","fileCount":6,"integrity":"sha512-9kBxnU5IhiaWnotCy5xXRkl18D8QbYk3fmE9/hMwYbhUZp7buxyDqFS7NrC8zeIak3uiiOqxaZtbJOg2/WJGEw==","signatures":[{"sig":"MEUCICjFefTD6b9+0uHG06JPs2dZ1Vy9A+nPr+UiDquOhXE9AiEA+1u6NaWWKGabUyTm5knCKZwvbkAU7/Xx6HZ04rcUC7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTPD1CRA9TVsSAnZWagAApP4P/2KE1XJWIM+EDQakIa35\n45zyM7u0JYR5Y/RsFSrIU3ZoeT+NKo9KQaEpYHKnrRQeid3tuTGiYrc4KMN0\nN7fiIvqmZf6hEAUVPG0qM7dg2ZauIbUCXkPN3mqWIf3F01S64OdNYWxujY22\nFYaknMCz4uB3mhZ3ejXbfXpbtm0Fy47M2IIMWg63tdphvhIQ9J+4+rFrNkLB\nLj8mgt3d+XKAhAdd6nPbB58DLOEO8nQ1a/LZs3/ic8deDazFT5XQmuDfqxxQ\nPPk7I2Dk0hDXy8HVG2QMwQsTZMTzX6qKJRALfajXj0B1/ZslrhpD6InFUqMj\n+/MdyZDxNfxiLUYGaLKytiNzJPePK4iQgqqqup495MLWqv112lOTfBxQS2Io\nihLoRESXv5+MG+Kh47T1vClh9Tw0m/skc7ouXqEIrQvuY2jzH5KMDBOP35Xg\n0Ts56ECk7oziL5ejdums2xjNBDn5ilFmUXPYZ5ZxEHKK1aP48LaQgBAL4EnA\nzlNrNeju3ukPfS6QJujprd6uifM3QL7ywOolkZo5Jq1m8qwHFCF59cUXISiK\n2W2m3hjsz6YL6Oj4WbAMQ9eeVEYR8n9UXF5TJjSJJI8mwGt0eT06gH502Ktx\ntbMH8hQDhfMebCttNp6A1BSiRPDQtuBK+UddK37j1rP/AepAmreaMpYhF0cf\nygIK\r\n=Cjg7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=6"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"6.14.7","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"12.18.3","dependencies":{"uuid":"^3.1.0","gigawatts":"^4.0.1","better-sqlite3":"^5.2.1","xcraft-core-fs":"^2.0.0","xcraft-core-host":"^2.0.0","xcraft-core-utils":"^3.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"optionalDependencies":{"better-sqlite3":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_1.0.1_1598877941125_0.9670509077500931","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"xcraft-core-cryo","version":"2.0.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.0.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"f558f4f1a132a3d4dcc3eb4d44b27a5011af58b1","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.0.0.tgz","fileCount":6,"integrity":"sha512-1woFB/4ute4TrVmznthuz0Z98QAd5uwor1d40ah+EAGA4uB3nuGRaZtGnJZvQPORtnOKtMZHhFDAcSXOLb3PMg==","signatures":[{"sig":"MEUCID5y7bc54VPFD4l9SAj+1Td1UV+WjhMEmv1oIAJ3iBXTAiEArVCz8dMVs7ZvK7iJ9fgRDi9mXGIvGGpeaq7aoc8QVxw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17052,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ1jqCRA9TVsSAnZWagAANPYP/2gNHrnIuUWv8qn1As0n\nFij0C0MXKR5yaysK0wOKAvt0cGZC3NAxOqAc96FiWgjPy4+d2qxazgMRaX6y\nCv8L6r6oFvCRe6RrNe1sWo7rzsXXtlS6w1PN5n4pzo/IlvG5RXgbwb0LDKEp\nVVRjv7pA8Vjm9zQ/W3newK94iKeMunHre0K0uOGG05eV9CDv/Z8aKheFd2dJ\nQ8i9STYUUoKhycWwFXiJJw1kwvx6nQV2iORWFZqyuY4gCI8VvxMSA9+kVK10\ngXA3WH+zI+hsYlqYuZKKW96UDig/ns7LZ4BG7uloza2JYMXhPpig+8y2MWIA\nNwzRzYd+eXZH3hBlNyFDlgT7DVLCiW3vfp/ipq8DEjVF5lg9rTcQZBSgbeoq\n4ArUpNF00A8kUOpAyDBagiRLtqgYUxRJWoHweTiL17uRM0bhy0yMWkshCUB0\ny+QuJfjF1jzKBIu9S1SIym4LMGx/fgMn40IVNbksHXyvsx/LdyNHo7yvRXLB\nuruxMj9APpSZD7cNRq6vs78+77yKFRtd2s+WWQp9uGAuMU71Z0L10mIlzx4w\nYbgh7cwbOpy6rn1imiYC+TEkJb6ysKBnJFgNPlQqt5ZjQ1qJR+BLmzAwPyBh\nlXWyutO4UAzbBb1Hzxb4a37VEDxmmP1kIzsS4+U1ZeL39xdDFqrXC/mXWex+\nny/g\r\n=R7Sg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"03749c03bd5c12d137d88df281c8de202efc2c97","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"7.23.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.17.6","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.0.0_1631803626595_0.33041900156505744","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"xcraft-core-cryo","version":"2.1.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.1.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"304c5af63266cb035ba43ff1e0884bffe5c893d7","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.1.0.tgz","fileCount":8,"integrity":"sha512-sc7rA82OoQoZSBVzQzDWJCHGw/mefTXInU3evZUKrc1UIvFdEM8sznMPs2hEU2ktS2x06whn9ToPY1bZ7PWkEg==","signatures":[{"sig":"MEQCICoF3hMs2EgyqsseHk5dFSqzl2OfHCU54+5+lDxi5IhuAiAd1SusNn1KOh0I7hcg/0HoEA1Ra1toGJqAVZQT3OyMIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie3HyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+Hw//bBzelbYzfZq5rw4fzaUzKkToanF2oWx7ZLxSqqVsDAzWhuEb\r\nwUsEyjk6Vy5xfztXWcpopQL8gMV4wzbIadxCFfPNok0vsSF5pZZX29WBjqbn\r\npw5D9TTWjq9GgYlVv4ktmZlPjpAgnO2UVI1gOBojuQkW757WeY6Z9RTWLX5e\r\nB3zEthtIKgidAv/dz1A65ve9AWllYRQ1bZv3HM1/uLjnwKnPfd6hfyn2T142\r\nq3qcilkm1p6OSsDL5KOFN+UeskXAdoXWIWzE94TwU4O+BZMDSB5Zf2uM/5YW\r\nCmF6tTPGIhsKFMcBpR1DT6buzWS3xbwlUlIfHTCrLmEPVvm1DeIUDS6CebCO\r\nP70ykiWXysUm33UTaXliUiMnmUWMlXxOVkMbfmtD9TlMsaL/ikwHbz4vx6Ke\r\nF9q1U/cWe4IxAf3qfQv4JdeCcJa3hBS3iUpM6JPhlFi5GWeuOrdpxjh10D0Y\r\nw1WAR2HeNqc1rL84mpkb638hq2/g4v19+RBnKW8gHp9QAuI+vu+ecYeD+VYp\r\nfIhYyENykefKtXOdVt6Dflv0VOT8rCZrLFWXy/OWMF6KdoIT23F5Hw98j2PK\r\nXSv7d0vCvvokVknmYO7a3EuoIgMbV4LOlCn/OLTTyh60WiTsmG2QZ4K1V5FZ\r\nOMnJoq751N597GiMSRT/Bcp0O8ob4rnD2fs=\r\n=jDsb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"2c8bf66493e0c15c71dc114419403f86c79c7158","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.19.2","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.1.0_1652257266517_0.9583821005514208","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"xcraft-core-cryo","version":"2.1.2","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.1.2","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"51e12dcf585a2b7ea150d15854354f179e8d62ff","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.1.2.tgz","fileCount":9,"integrity":"sha512-XtwJRHFihiH2/x5Cu/nzKQsOfybT7xpcQ7tUdRuw/gJ5lJY34NTZSQ+0kZxmemzbHrYghIA7/WrKjxU3wLEMnA==","signatures":[{"sig":"MEQCIHHq03igQkYIhZDjDkzwxKfThckfYRwEVRsKz90PT3BFAiB/JwTBeDHupdqD2uCqkhRpfk7z0x1hdA8g7E+nPBIicQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimID+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXDA//U1UfQRWg+X5uXr+U4wU0OYAzmJp/EgiC6ezHO5rAOc8l23GL\r\nvVVpeEPz1S+YrsLwnkNi2CxKuRTyGbTGHcOkfBHrbBrZTQZ8duC0dDCNJEZ5\r\nZclBSrCrEfM0MI8MZSiVLjKYK56CLBtqFjvBNZSKahlFxt7JH4ssyIXRCPci\r\nrcSAVCOnnvBHeWxVdEAFaDPR3/0+oio7DWJLJxTR7MM4y/p+jlOmTe41eosD\r\nTbg4EqG/a3MaSGlKj5s1n/kJwnTtFH5S7bID9sM1qb0tPxDtr+uqk8IMBzhp\r\nXXHVAoTQ/PhBeYyRV9g35xmnk0iupr3Pz2WTUnyfOYIemBrCrsTV54MsBi49\r\n/bKAX21vvMDCje4Mn6MMWKTJFZA8sQUSbFDtOGukfsvEnOvXBOJUwVPB9gE3\r\np0kiHc1/2WRe7cvGsjOc9A+DvNuqmndEd7keY3feIwpRchOKxnGBCpDTdWGj\r\nPAeod0NTjqgPiYpOjsTl5N51E1jK5HOPEtZhgBRPFNADB5/TkMi7rgIGdLv3\r\n87/bv8B9H3rFrOaFIilvz2q8fiq6iyW5nB+kLkXYTFk6QJEs05eI3SYPBejz\r\n9JbORbsS0OUbAxkcB2yLts3qcl9IQT6yH+mTkLVD8MInXP3FO06wUZ8/IjTJ\r\ncpbXnLsNQWu+KddXsffY8Y/ebpa4KGYToVM=\r\n=Zn+8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"2c8bf66493e0c15c71dc114419403f86c79c7158","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.19.3","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.1.2_1654161662332_0.9380135189415255","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"xcraft-core-cryo","version":"2.2.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.2.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"149ae35b5b11d6426f99578f27c3244679ccee66","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.2.0.tgz","fileCount":9,"integrity":"sha512-Uk5w2abUON32rKwqWgf7q0AtN4xhzTxIEl1wP2FToouKYhnVq3GFuyKlsjZSGoGMS0GqEhib2snr3MkBJ9tnrg==","signatures":[{"sig":"MEUCIHntFHIkVO3p6C0WSiX3l1DT8WP6WX0kmxtWO61rnNPGAiEA1s/XS7C7vNQzXCPz649IS8LAKBpNbryhcDN6TNGDoQY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtUgNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovDw//fVE7GdgjlzLtO/X9SZGmj/PJaay3Dpn9iPzp4dBn8eUx99pn\r\nHOeE2u9UeeBzrWOlqigTTmT1WvWNrd1ZUul+V5wwWf1ErklCEClB5PjmUb+4\r\nXVGXQdripSRy6UoN9yZpI9QAIn5rgWj1468ocghd0rTfXqjZG6RQmyDZDJY9\r\n5QB4M5TjreSZ3KdKrBnl4P5NF4NkaPtUx3HgPD1JrPDh+NhScmpfZBMleBLz\r\ncfuoAZhVcvA2yDg/HECCC17EAIDNdZbuZyJjXEmO3w8PJxO1Wk0XJP0ac2eK\r\naVxTcgiz6W8e3hNVWxvs+UweRMn6DxFcfHZwvhhljcD9aR8OiAfcBAyxTyn4\r\no6KIFTuWa6tH2V+k1Z+aFKw/aMVkEP6O+P+nzVzhkQf+dTQ5trTRdZ5jp9ut\r\n7GMrFC6kwwyZwong1sRRKeKI14HIAFGOg3KJd1mqx3FaCgSi/OhU4jzJvK4p\r\ng5KUDefkxwhsaOnsS4S7s98XOkcKcz4XwQTNuQL1z/kvry2otBRsnNYXTIbg\r\nrQIsttxoV3iipIp2p1EsW37pqse6mKPCv+ldtABXPdLlbnSjJ83GA9Gh+rM9\r\neEB/4ci5JUl9StTPv1sMniKBmMJXhMXyuy0abmMF7qYIgMHcURhjvEA5nusx\r\nIx/9nudi0CXbyo8pwi4CVPewzHbvvYG/v/U=\r\n=TjW4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"7c6c32f1e3990da0c843b3b2defab1bd0601f136","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.19.1","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.21.1","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.2.0_1672824845530_0.8471330912457744","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"xcraft-core-cryo","version":"2.2.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.2.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"5ce21b57078c3c60e059979b2ae1f06394113717","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.2.1.tgz","fileCount":9,"integrity":"sha512-vXplIySOKAscoHP3AEXR97QcwmZG1jhkxslfWpHzA9nYfn32uepn+OsC/xSPZYEZsbbMAqzPvRXvuLS3yMITNg==","signatures":[{"sig":"MEQCIH/62d1QazA+mn+soPStb8KdLS7cGgk918xNWTfIHjVbAiA0eO818/09jxbWO4h7yt1TlEcmsCA9IANP2A9fRsYaxA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtUjtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8zRAAgFUohZLeQusMtCgY8P5ej66T3if1laKJdM+qNPeEbHYNxcmY\r\n6BhNN1h8VneKdC7G+9rwEEmrhlwA29Jr/FN/KVCmmsZJ3bYP6XXUkzt1tvvP\r\ntwJOA+AU14JfCLP/kDDMa5kt3gRqEwzuynOh90PCzF8BcIjsxiaJH63iYZBE\r\nVFATCE5/uJ7b3MEd7Kz96hVkL0LqUXtLRTM1XQBoKwk3XJljFCGnoDvFWJNd\r\nrHuronchU0/AjcTphVRZWWQk55eNI1vJaoJ0jp0iqfMcZCSlwRZnpbhc0wIb\r\ng05BhjgZzc9RIW5Mvj+mR14Z8Cvhg1mZLk+xwgvLZQQdAdD9UgrJPvO1XaKt\r\nJUBYIP1E7BV0jDQFPtNZcXZZLYMve2OnB0jLDjResx3dHDUh9SqKyxJJXNPF\r\netnAkCpF9qsQV9pE5uKVudwdBE5rag3Y+mI+ihAmsH41LEP9qn9BUP+eNi/d\r\nXNy/K7YF+M7DOH+IikwCqCRNKjRu+r9/b1masDhcD+0cYyojA48gHAerxyvb\r\nJ4MxcCzbBVyMoJF7dKdG6EpvD6NWbOOSMFkEUHy/s6CjakxK0b5k4fS9wUrq\r\nCtQxiVvGAEedIk0s3GlznHF0nILskynFBehPu6Am7GyaSb25OINVNvJrdKXs\r\nM3oMmiQ3OuedceBhZqFLYLBuf7dEXmB4Arw=\r\n=BzOJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"7c6c32f1e3990da0c843b3b2defab1bd0601f136","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.19.1","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.21.1","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.2.1_1672825069741_0.293135044970688","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"xcraft-core-cryo","version":"2.3.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.3.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"0fe95157a3564837ec8b123f9f4684deca689be8","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.3.0.tgz","fileCount":9,"integrity":"sha512-sIIFmrehZgk2k7AZR4bOnMHDSwz1OWnfKdF5+MfRYmXViM+mbCfyyl/Ty+yJV/ozXxzknn07KTDebdniXwPc/w==","signatures":[{"sig":"MEQCIF7Ci3YGWCtqgKdqzUip6kY2UKw23bVuDiOWd/Lj029zAiADr265NABf27VOwsAXw6gYJRnCZV81ysI5wwPjRzxPtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtVd1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7Hw//Stawd4EpK+nuulJgml/KPL3Z7DzLChZMUr05KHRSEJbJ8YLy\r\nWxAV+N3XAticXMnvnLqrrpkLetMKFxdEReFLkSiGxyO0xVHvU6sbU0AySRTI\r\nVnPsuHv5BkpX2DlGYXZfqMs5SyxlEY8UVG8sH3Hu7HQ9nHpetocwY1ZmbgIO\r\n+BK9OxEBUVIJ5VmicaAcKWH/EyFAnOgaAyjZ8pz6MBn7W/WyTOVY94m9xPuj\r\n2UWugKIdz3XWwKEtDvut4LdsOldOcww/3Xemg/yJpdjRTaO9KsfI0uVCZGJi\r\n6/HZsR45DBRPQFruqlpf1qpa/qegEidTVTRfiHRQBpIXYK5rZpTlBpbVWsFk\r\nYWjeIvbyYKSwpKjZGnE3VhgbosUMhsoZ8nANnqYpUZBNAd8QWMpYty68mzu+\r\n8HffOtuPpNJ86SsCl1JTybUSRD5i8Fy1Qs9A4VTazGESpJlT1XsRsOSdCjxd\r\n5TqYO06lz9KAq6osnfvK2mBZD4XeYVlsourJYwWbjz+Thew0H0LPqGfkNdAA\r\nV1TOmsQdE7Vr/03FYNXGfXBAgdfEus183CbANTHKrCJsIwLV6vwBUViIrnDi\r\no2cqKshbzzdP+m7xp+GxAVRvbu7irZeVITot9calsU1IXAuF4Qs3cBeHeIFw\r\ncDoiKErD3Yg1epMfSS/xjBL1FGCP9G97l40=\r\n=zY1q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"7c6c32f1e3990da0c843b3b2defab1bd0601f136","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.19.1","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.21.1","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-host":"^3.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.3.0_1672828789771_0.6575145046863584","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"xcraft-core-cryo","version":"2.4.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.4.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"7d606d69438020698b4a69659802e699fd6efa96","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.4.0.tgz","fileCount":9,"integrity":"sha512-U01BRyOOfGIW6QW7C7N97LV/oazgBhPFgjD9z4YfRr8epsjOcUvuOh7TSetlWTalGoFouZLp+OWbBBLF0y7SFA==","signatures":[{"sig":"MEQCIAP0X8GeGmKpRz6M+tkTFdI7Uuai9bUIGAS9Mkyo9UucAiAfRX/mhalPdQ4bVfEuytauEPEPxL+ZG7WkMotTqio3Eg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtVotACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpF9hAAhX0PYyuLeQWNohUU3Lr61i2eBpIZze8LrZNnXy6hTaSZsr5o\r\nlIpqCAe2p58gpsQXOdVA00mExLshHMsmxyXoPB49ks6BsVkNWP5dhZtgazX4\r\nP4D8an+FP8OgDLPjcoiHN6g8RjU7MWuSFXkQT584ipMRUBlsOFZ26zkHrU6e\r\nRrjE62AWI3oL+Kp0HkgSStAz+KULkC3beeoYuw4pFbVJqSAf5Mh64EhNNZnl\r\ncYzjlxdYpTLA/55VO0iYkIhO9b92kZqXnMt3gr+caZ+4iZH6NLg/D1rg+6PL\r\nSJnQnejIdmKNgksrX98Hpv7YUGEMLgY8BOJt8ABwGHkvDcCHtXZgK48XjMJp\r\nArHJ45JT/Ol7ZxYVr6c4Y57dibVnUdHBxu9154Wd6608makN8W8Z17amXsYR\r\nRqu8m28vN06WocHFi1Zj0d77Ut6n0oaZZa2wfMS3VitURQ+v5GGSkVfdUFoQ\r\nC4zj7oKSVHVUkk4rMozUUPABYBfwYq+92QrjaWvmOv7rFtk+8Os8w/1cQBN8\r\ncHgqSnzgI4SZySWxwFKNsYtJ7JpMbFUxH+kyaslZ1yFqHYMkxBjA6Mv/BRy1\r\njnHFEpegrbm9X/FZRd91qDUKd4l2qQWtNse6e0I3Lh5qdWHzjqSYHJ462RZ/\r\n0YhuTbrI4n7i0C8o2J48HWz5OxejyCqSfy8=\r\n=zVuQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"7c6c32f1e3990da0c843b3b2defab1bd0601f136","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"8.19.1","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"14.21.1","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^2.0.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.4.0_1672829485587_0.13214161461325458","host":"s3://npm-registry-packages"}},"2.8.10":{"name":"xcraft-core-cryo","version":"2.8.10","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.8.10","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"b2165305100d536fdb965e2306a4ceb2fd8c618f","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.8.10.tgz","fileCount":16,"integrity":"sha512-KsIDtgS6Tp9ySulhQXdQRJK3QBVFRwA98fN5yxe3Wn15pYYeSJ6P3rOj/I3LQWlUsU8IGPLjUmtcw/xim6RjYA==","signatures":[{"sig":"MEYCIQC6OSQpmWCPOJuW6+fQylvWHTCEDG/tiTXbfcdSHXkqYAIhAPKwKoXZAtdsMnmR6uOBLXWfSA6UKJpuhUO564s0gqdr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64340},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"9.9.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.8.10_1707470892894_0.21531480910878975","host":"s3://npm-registry-packages"}},"2.8.11":{"name":"xcraft-core-cryo","version":"2.8.11","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.8.11","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"a4d0d2219ce49f70107295d205468aa2baa71c4a","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.8.11.tgz","fileCount":16,"integrity":"sha512-ab+yvABoQq03NaFxwjsGvOGRRTU0HV12Pykd3U7EQQ//xKDffx1QQC/ktIgkbJtcD5s0TGkWUCIiUcPSiQribA==","signatures":[{"sig":"MEUCIBud+c+ayYga5Da75gsiJMaapdPffl1jVXHHr6Efx4pcAiEAoUjlwMdUAoNppJnN+TJqvBncgY7xxIBOusq2O+cOchg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64216},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.4.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.8.11_1708439046101_0.6538696482248543","host":"s3://npm-registry-packages"}},"2.9.0":{"name":"xcraft-core-cryo","version":"2.9.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.9.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"d99ca26403f41460a53f611cc263193ffd58e07a","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.9.0.tgz","fileCount":16,"integrity":"sha512-w+L/Ejn5PjL08Wuk5MZ46viPUY6aKpdoGAIhP0+JSpPrXiHimNVs8lMYbCYaXIN2SfjsM0sG5XgNlKawaFiZmQ==","signatures":[{"sig":"MEUCIGyVuYrRVYrvx4HvmqfB+SVZ9oasJN5FNd3naI0/c31DAiEAuUWTJ1PBnZdyv7HXXD4mX3ZJHlrAQjzzgE6CH2PtqEw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64732},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.4.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.9.0_1708512630495_0.2904878756783511","host":"s3://npm-registry-packages"}},"2.10.0":{"name":"xcraft-core-cryo","version":"2.10.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.10.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"b3067b3113b292b2510916f464e9e221076d4a40","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.10.0.tgz","fileCount":16,"integrity":"sha512-Z18cCpGPNMM+ttV5x9zVwzWs7H5ly7Kk6i06GvNyQA8UZZHE4ohBHf71usOkhMYT89zsBXJKrFcDzBICYaUTOg==","signatures":[{"sig":"MEUCIDicRBuOF3qmyqj/BVN1dyCY0O9K0QIuuygx7Jt8jBcZAiEA1WRye4s0wIiioW+XwhZgrDcbIHMldFtt/LMFTiT/9ZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64924},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.4.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.10.0_1708593050158_0.7075535527807484","host":"s3://npm-registry-packages"}},"2.11.0":{"name":"xcraft-core-cryo","version":"2.11.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.11.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"c9baefc66aed9dcc090e64aa0b088dd633f8bc3d","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.11.0.tgz","fileCount":16,"integrity":"sha512-T0pNS3EMPQ5f7MYyUSDyWhRD2Ueh6R+5G3T0ZSKw3sOm+RP2sXQgAJbdDWLiKgI/x/1zjcWd1CdWiZOUyjo7Tw==","signatures":[{"sig":"MEYCIQDTlsteTnJU8qyMohq6PjBYCZOHM5em2wkq70lPRHmjPwIhAIRyNhWf99cJ2WrAHeJ4JEffwMPSNCoTB83euuoLWO12","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66776},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.20.3","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.11.0_1720126138152_0.8767752384126855","host":"s3://npm-registry-packages"}},"2.11.1":{"name":"xcraft-core-cryo","version":"2.11.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.11.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"47e1dba8195c12935c2b7460167052e560c26d5c","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.11.1.tgz","fileCount":16,"integrity":"sha512-NIktNjIwj9ouwVrc3vGJ72TLXyvGhzgNEUQDciFeNdgJ4dzO4tIialo/0uq7zfrhbGBeHQfBtPd6Ka9D+BNRDg==","signatures":[{"sig":"MEUCIQCOC8nqZg8fJYYWd5TZn3+Y9MoSraiqzrMwbO1lOUAgBwIgNUkbihjEUuegx2Fqd5KsfQ3aLrcsZMV+FJ4KVu6Vg18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66776},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"18.20.3","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.1.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.11.1_1720126163194_0.22599800845443108","host":"s3://npm-registry-packages"}},"2.11.2":{"name":"xcraft-core-cryo","version":"2.11.2","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.11.2","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"12d784f054f687b6b6b9d6f875c8b7a27be3c44c","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.11.2.tgz","fileCount":16,"integrity":"sha512-OgKE0L7CPGQTlr54CFZd+QiagFcKXAXqLHgfhwBoLqXYJntNEGRECvb+vlECE0ZOYQr+JoWqaRQpPZ/EYSJmMw==","signatures":[{"sig":"MEUCIEhPC2+FKUVppp//Xesc8adD4Gxbt1m5PHtjuSivsJ5zAiEAzsUSG4uoj82kduyzQGb0aptsI4DLC+EP0gWNifnmMEI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68176},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.17.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.3.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.11.2_1724338293152_0.8052932512469486","host":"s3://npm-registry-packages"}},"2.11.3":{"name":"xcraft-core-cryo","version":"2.11.3","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.11.3","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"d07f3e438301323b1ccdf205b561db42d58602d5","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.11.3.tgz","fileCount":16,"integrity":"sha512-0Ypzp2EEwWTMSWTc9JIGj9hifSgTYMMoyZ4LEmwTu9iVrc6sXnMexjlgOpjth9iLWKAqMjhEX+3ju2UxOoXHwQ==","signatures":[{"sig":"MEUCIDv4dUy/2PBPfZyI3LAL80a7PzR4wfXFR++NdiMRb411AiEAjn4pg5wKUHbIop8X6XYv4anpMyQV6hZHXH2EXRoIfo8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68301},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.17.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.3.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.11.3_1724357414718_0.24084826192052056","host":"s3://npm-registry-packages"}},"2.11.4":{"name":"xcraft-core-cryo","version":"2.11.4","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.11.4","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"f4401d60436d9f7acbb8633057c60a9350925e93","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.11.4.tgz","fileCount":16,"integrity":"sha512-y7exh78IZgx1MposEUGVrZe5zAEcOM3Mx2X6hgpC1mjJjQXAUnCQrAjiNyZoCeH3wBdAdubEMX2OWS4RBLAezQ==","signatures":[{"sig":"MEUCIHHGELdIuCjSdCSWHVQt6HphUhjnXl+hNaWB5PTnDRK6AiEA5tuUELI1zPD294rg28G9NNM8GHt0gZKU2WY6pthzx5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68301},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.8.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.17.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","@google-cloud/pubsub":"^2.18.1","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.0","xcraft-dev-prettier":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.11.4_1725287246281_0.9878904659298873","host":"s3://npm-registry-packages"}},"2.12.0":{"name":"xcraft-core-cryo","version":"2.12.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.12.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"23e6643e29a0c43862e6666a81d711c4dd621cc2","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.12.0.tgz","fileCount":16,"integrity":"sha512-0WT00V2pB0/gA5Cj+z9y6cVCUVn22jtPtDaMGeOVBz26CuMUPbIh7/JP1VUQHcgqX8Ez/Gmer93rqDq7qb+UWA==","signatures":[{"sig":"MEQCIDDmicjIK9nF5qSzxlAiorVJ4MGT8aAc4yWHPaeEWkV5AiAh/g0UQahKsZTUvfGsNvSWermBU5VqWEYPzfZAS8zBuA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69577},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.17.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.12.0_1725524452656_0.1777822203135384","host":"s3://npm-registry-packages"}},"2.16.1":{"name":"xcraft-core-cryo","version":"2.16.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.16.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"68ccde3be4273c0c4684431ffddd2b0e115445e1","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.16.1.tgz","fileCount":16,"integrity":"sha512-lVSZ+G35fA7/vMz17y2FBzfSIZeSdY4Lc6dVgsogjpX4TJL2k7/+EXfwJDpuL1knyBmymtm9JWRj67inojZ3DQ==","signatures":[{"sig":"MEQCIDo6eaFtCT2uB+KJ6AN+ulxjkQlNGY3uDCokA+jetUisAiAPrD2wybBjsjUnk503M8gEdWp/GPcEzfv5bkuN7Xbt5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72820},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.17.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.16.1_1727861403104_0.01176416053739282","host":"s3://npm-registry-packages"}},"2.16.2":{"name":"xcraft-core-cryo","version":"2.16.2","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.16.2","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"beb717aa1bdd145ad7fbd7d18d336540d384286d","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.16.2.tgz","fileCount":16,"integrity":"sha512-6RkJzY7Y259UJCQDrPq8ZghQo09RpVpDhDCzlbsM6ALVF0M6vLEYGaNzwQc/Y9DZbmOLsugnKJM3YrgSsQjIEQ==","signatures":[{"sig":"MEYCIQDhoOgt5xmarXC2VaeXIPoy1STH5JyJRP+MdQN3WOx20QIhAI3HyK8PYYjD2kQy1aEyUaipmbsl8Y2t+UF84fKjnL3Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72961},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.18.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.16.2_1730499234686_0.606213178844204","host":"s3://npm-registry-packages"}},"2.16.4":{"name":"xcraft-core-cryo","version":"2.16.4","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.16.4","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"8c41d172d6051a827a86b530ec7bf0b6d12b355b","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.16.4.tgz","fileCount":16,"integrity":"sha512-0abU4f4f4TBJUua8PlHCX+tlwHJTb7JB8ceObq2+3konFtKWIFngBDQEejJsWy5ZfiJmXOrziq6xNOqV5HvXHg==","signatures":[{"sig":"MEUCIE+kkgnzvHIUVQxXhVGpV/lPe/QQvZBn0i1nTVQ01q6FAiEAtv+Kd5ryV9euRpnKJ7Po+21wcUYOvW4WZITzgsoHG88=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73071},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"10.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.18.1","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.16.4_1733313447664_0.734605892767868","host":"s3://npm-registry-packages"}},"2.18.0":{"name":"xcraft-core-cryo","version":"2.18.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.18.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"e3c5fbba3ec84ec818dda578914c76ab1350498e","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.18.0.tgz","fileCount":16,"integrity":"sha512-217pL1TJfrpr/0ImH2mEib23Vg67tJyvV+9axRdAW+pVgRakHQAetHr3poKpZEG9U3XwahXK3sRHU26T0wuypA==","signatures":[{"sig":"MEUCIQDDavHn03ckUFkP6oD2/7MO0nsBaEz/rlkln4mkl9HghwIgEux0Ec6UCGcfcrcR47rYK27OHIFXy6fomVqRQ2cGdmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74939},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.0.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.18.3","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","faster-stable-stringify":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.18.0_1740320761016_0.6412624047832658","host":"s3://npm-registry-packages-npm-production"}},"2.21.0":{"name":"xcraft-core-cryo","version":"2.21.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.21.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"1c8069e105b17806a4dbff95dee68860c086359e","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.21.0.tgz","fileCount":17,"integrity":"sha512-GTn32adAFOt+uJbmnz6FRQ1eftT/K3ojRifpkXYlaq7p6bPId79AmIE95vnaQbwJmjOPYgCfec0L5IQM/wMyGQ==","signatures":[{"sig":"MEUCIAmFYVbvZl/ySC0LtuJN28IL2bXzqzH2evmk6GyOz+1pAiEApI+CuL0x6ReqXhsgiaFnpVQXpBcKoRsREp43ZqupdeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82116},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.2.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.21.0_1743771676906_0.5484623600409111","host":"s3://npm-registry-packages-npm-production"}},"2.26.1":{"name":"xcraft-core-cryo","version":"2.26.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.26.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"41b59e354638551dcbd70cc7262c8643cf40b14f","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.26.1.tgz","fileCount":18,"integrity":"sha512-oIe5bS8KjerzpvOeBwY367DVQHAEJ/aowYq90fLe5EHVj8npaNsaj6ADmGxQKJaaEAZ/kbnVe2XM2IniOS9Vcg==","signatures":[{"sig":"MEUCICDelwch5GGqb4MUrljgrpfoO6JYoT3v+INcI45yMEFbAiEAv515S3qK1Bil4TlPfJ+TSvL8YNvwdxsjIPdA4RntBzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96392},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.0","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.26.1_1746828177629_0.6000084009970774","host":"s3://npm-registry-packages-npm-production"}},"2.26.5":{"name":"xcraft-core-cryo","version":"2.26.5","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.26.5","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"d1d0bc7213c70a918bee28179c0c4998c9f4318f","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.26.5.tgz","fileCount":20,"integrity":"sha512-rmJ8ktYb+ByJvmkajmrpyrA4OgpGoGo86e+1TgOwHgTInIdvhWyEh3jE6Y+UnOaJnr9y52rtNMVHSwmU68VqAA==","signatures":[{"sig":"MEUCIQCsUuqv78QMM3BZCdv8ikYePokjMdaUbZUFn60NJtD8bgIgGSYtwPkEj5DegA+S+QsT82n4OsZSBdENbAYcssck9do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140391},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.2","dependencies":{"uuid":"^8.3.2","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.26.5_1749104335240_0.47696765487672677","host":"s3://npm-registry-packages-npm-production"}},"2.26.6":{"name":"xcraft-core-cryo","version":"2.26.6","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.26.6","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"862f61e2627ec93358c6443cfbdfd009ee6cd102","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.26.6.tgz","fileCount":20,"integrity":"sha512-H+6wxMwPpiynpuVnSocpbLrws+vkKEjK5b0AXWufCrIQOYPueALQS2ea2zEb+NvQt7eXSwgLwR/MwP0nFKCf6Q==","signatures":[{"sig":"MEQCIDltHzHNXPdfQEKlr247OCKbD1sc+jNDXL5hescGQeUzAiBCHGTriN1jS1kiGkbmQrv6AxT4NXoNqG8OXaP4x0D63A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140457},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.2","dependencies":{"uuid":"^8.3.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.26.6_1749417114015_0.8208190299657987","host":"s3://npm-registry-packages-npm-production"}},"2.27.0":{"name":"xcraft-core-cryo","version":"2.27.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.27.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"548c097716773a248ab34706f131740c0f88e5d6","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.27.0.tgz","fileCount":20,"integrity":"sha512-tVXLo7ySd7E5p4lmEPk98RxXktE4U+lCrL0Sm3Ok/SNu5+QnwHT2h4azUL5E1JPFGP5Ds/9V5vRN4LLv8ZrKJg==","signatures":[{"sig":"MEUCIQDvPaBrYN6Sa8tMhKh8c3oCXBicSADfoFxkOnSMaOSeMwIgcrJeVxPLPP6TwB9yXkUWMkxPrOneeTOIYOuCV4F3MHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140553},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","actor":{"name":"schroeterm","type":"user","email":"mathieu@schroetersa.ch"},"email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.2","dependencies":{"uuid":"^8.3.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.27.0_1750884790927_0.6711859028874823","host":"s3://npm-registry-packages-npm-production"}},"2.27.1":{"name":"xcraft-core-cryo","version":"2.27.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Mathieu Schroeter"},"license":"MIT","_id":"xcraft-core-cryo@2.27.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"dist":{"shasum":"ffe23d48d63101aa034dfd38918a17567a04e7cf","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.27.1.tgz","fileCount":20,"integrity":"sha512-3U7qbJpQPlIVL7Y8pIKXCxMtiwHttFYGX5J/m3zwkc/P2On0bom7gue1ba6Prl1WBrTfrMx2dvMyrUL5bKtfww==","signatures":[{"sig":"MEQCIHEBcFIYW72dild0APOupjVjkyU6KOfr6U0FDRkwxsf9AiBbJcyAMJ6lWDd0R7RpyJ6Ta6M5olTJDF2tAG0/2rzINA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140554},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","actor":{"name":"schroeterm","type":"user","email":"mathieu@schroetersa.ch"},"email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.2","dependencies":{"uuid":"^8.3.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.0.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.27.1_1750919347233_0.8168236151603381","host":"s3://npm-registry-packages-npm-production"}},"2.30.1":{"name":"xcraft-core-cryo","version":"2.30.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.30.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"ee02d90219fb16f43cc3fc2ea22ea84e62bf515a","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.30.1.tgz","fileCount":21,"integrity":"sha512-QP8qBZyv/tmTHTezVDqZg18GjwdEsZRHIia4ebz8tSoRhk+FScZhJO/743KHSAOgXIrR/0o6G3DNGBxmY1YpIQ==","signatures":[{"sig":"MEQCIEUuX8VfT1jgk4cmKLY30JkISiNOvUq5/y2JNTZqEC58AiAvPc1I8qDPoeam4FhC6CUBwq18myy4Qr0EIqPrcjWHTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143990},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.3.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.2","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.30.1_1752849545502_0.1731330191182705","host":"s3://npm-registry-packages-npm-production"}},"2.31.0":{"name":"xcraft-core-cryo","version":"2.31.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.31.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"b017e8cad85a7ec5bcea74e4627df2437ef61791","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.31.0.tgz","fileCount":21,"integrity":"sha512-onh0U47y7zCgiNkFiNFOp4/aNJcvsW8omvmbEmL+uRV3vjoQa6ZjJuQO4c3kc3xjxKhkg6meBrbxpHH874QfQg==","signatures":[{"sig":"MEUCIQDbSNjDLJNgspB1EJEjztmRaPJTho8VRSNYEZ4kx8/c5wIgcrgugMhi0lmqd1IL1Ei8vYDFFA2XcEOX+bUOYdydF7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145311},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.5.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.31.0_1755779811554_0.10579448543879422","host":"s3://npm-registry-packages-npm-production"}},"2.31.1":{"name":"xcraft-core-cryo","version":"2.31.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.31.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"aa20dbc9c1f439335410e43957e77196fe43e8bb","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.31.1.tgz","fileCount":21,"integrity":"sha512-IT0T6cwiCpuwkyKIasOd2K247c1HyUjnxNhZinekc54tyCQxbbrA6lurf7IxkvIMWrslNIDyKQw2/Pvjqq2SzA==","signatures":[{"sig":"MEUCIEtMggWe+MfqkTaPNaI+XBhk02wTH5D49DLrfg3swskaAiEA6I3qMgTpTlkr9BwazsfQi+kNGW94s5Yflxt/dSmtwvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145762},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.5.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.31.1_1755786749820_0.9260697660786668","host":"s3://npm-registry-packages-npm-production"}},"2.31.2":{"name":"xcraft-core-cryo","version":"2.31.2","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.31.2","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"7d31f5aead12e9d93fc6f34e4adc0bb3f8bf6849","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.31.2.tgz","fileCount":21,"integrity":"sha512-+7Yl9iGZnCSUd67qzMFEkgvj4JE9p2kAN/tZJTZfDzmpHj4HsDq2INs2xmIKVKws4kPFsh+DsNLBHx44cfBqTQ==","signatures":[{"sig":"MEQCIBc7ZI4STus1IymELXIL7K6t9OwY78R7os4X9okKzJClAiB6bQj2pKbMpD4TcLaETJLbuJR84pMdS2LOs+2OtCpzsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145775},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.5.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.31.2_1755789187613_0.14535943743553248","host":"s3://npm-registry-packages-npm-production"}},"2.31.3":{"name":"xcraft-core-cryo","version":"2.31.3","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.31.3","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"60c10152de9638bb7db793d3dd86d646e38912a9","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.31.3.tgz","fileCount":21,"integrity":"sha512-d6OMoy5yhmG60F2uhxW3reNSnonxVu8GkI7ouJdHCzPZQ60X28M/f0vMJ2hq+8ckxmlp2sfHbL0QoI0hAmHqug==","signatures":[{"sig":"MEUCIQDrw+0Ra+7XfDH9VgERxF/F9bdqWd+Pn0z/L8o/37+o1QIgdTxtpCRvpyavmoyiF4bed9ER+pWLmfe2dhsWanmK2k8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145831},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.4.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"20.19.4","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.31.3_1756122589038_0.22151411303101876","host":"s3://npm-registry-packages-npm-production"}},"2.32.0":{"name":"xcraft-core-cryo","version":"2.32.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.32.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"e44d5914b3d6e555109e55f51aa5de5520ca1761","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.32.0.tgz","fileCount":21,"integrity":"sha512-8ff6wMgQMb+UCbKwJhCPK+8HSvKLdJtnppBArVEIalnzrTdBwuWIhi0JFyUMEdY9zSg/E1Bo5Xh3r2XR+SETcg==","signatures":[{"sig":"MEQCIBkOq7P8ePmKuwQBUqE91HM/ukCav/9cWndX8eIIgwB2AiBh8crJKJL2Awl0SEM5kIDh1UW4JGbJxOsDi+QhaijRzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146585},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.8.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.32.0_1758029928935_0.3358191954139256","host":"s3://npm-registry-packages-npm-production"}},"2.33.0":{"name":"xcraft-core-cryo","version":"2.33.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.33.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"430a7a0efe4646f847880b0f7ce3676fab1ca371","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.33.0.tgz","fileCount":21,"integrity":"sha512-fcnqyoJQ+O7yPtk8lLzuG0h6CInO1pz4IqIhspmw+iZuLWU8YkStdAV35LP9WYZ0tQ20dcQQie+dz1XIviYXxQ==","signatures":[{"sig":"MEQCIFB6E8PTpQup8ByHjEFK+lEe96hEF6RbjyY6hLPsyfMZAiAp5G21Z8DQUXc3uOHXKKmHOQrX77Rox/sZzO/6IIEBIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146994},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.10.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.33.0_1761054026716_0.17521039994185927","host":"s3://npm-registry-packages-npm-production"}},"2.33.1":{"name":"xcraft-core-cryo","version":"2.33.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.33.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"bd86437d2605df672ba792b735b86859a3944f55","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.33.1.tgz","fileCount":21,"integrity":"sha512-5zJ8JRRyYS3tHZeLBbnKC1F/Loiy7w4/IM4aE5x+RtZnXg8e9Ed3lE0S64OWb/SJIlH1iY1NaJt7Wqod5YWqFA==","signatures":[{"sig":"MEYCIQDIV8D3TRGd6dofa9RXQxddwDjJRjRHrXn2yz7aG+jUUAIhAND9jdVAqQYJjtLO6NFUbYRXP/fiQiWsnzuS8dww3MBA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147268},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.11.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.33.1_1762263534980_0.12573499784659425","host":"s3://npm-registry-packages-npm-production"}},"2.34.0":{"name":"xcraft-core-cryo","version":"2.34.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.34.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"a1d320eecd0c8390244d3cd544234ee1ebd46ae2","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.34.0.tgz","fileCount":21,"integrity":"sha512-O0iGxUF692xTNSasLABu0u0QGZ5xDRi2v10XXhDx0DohSk2SLf1tv2NXK1FfhRzcsvfGCfX0gbihW85U/Jjb0g==","signatures":[{"sig":"MEUCIF6KevfaEQ8I0QQgl9DWSf4D2EjJ5jviUb41NBZYJ8fAAiEAhToA9CKccWZZFnxBGYUlmgFYF8Znrdw92B5j6V/2zBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148286},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.5.2","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.34.0_1763710625328_0.141591447878187","host":"s3://npm-registry-packages-npm-production"}},"2.35.1":{"name":"xcraft-core-cryo","version":"2.35.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.35.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"49bf49b65e294bef12be6f7f5e1ffcd08823da59","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.35.1.tgz","fileCount":21,"integrity":"sha512-t3L9zLngKw9H/Ndhy8vyVoS8bJC+g8Fp+XLhXDkbrFpWKjePMZIMe+c2KXWO/mHwkF8ERxmKZCC6BbzAXMWgLw==","signatures":[{"sig":"MEYCIQCJytQu9lfmESf7FmUMu4712Vsch6Z0Puc2fQPtIrkBGQIhALy4WiuZoNJbrtd9TgSFXJX9Uwu7M+2pWncNnj0uWQjX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122575},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.35.1_1765923547893_0.5559503327367827","host":"s3://npm-registry-packages-npm-production"}},"2.36.0":{"name":"xcraft-core-cryo","version":"2.36.0","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.36.0","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"703efa28c068f2787bdb224ed5ebfffe4231a74c","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.36.0.tgz","fileCount":23,"integrity":"sha512-L2K1/s/ucJDyHjeDW6FUHsCZDEpsdVpagrsoBaoWzghxGt5bPAjSOcUdk5NRfTvvcQGg+FJ47xFhwzhqD+Vk/g==","signatures":[{"sig":"MEUCID7WAa3K3VgB9KOn/kB8TM+gcpIguq8K5l+dH7k1JNrCAiEAtYi0xX5U9LGZCo3/8Hucmpw3EeJovHq4b3w+ztcOQGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127128},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.36.0_1769546672085_0.7395576393551244","host":"s3://npm-registry-packages-npm-production"}},"2.36.1":{"name":"xcraft-core-cryo","version":"2.36.1","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.36.1","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"1401a7e14eca5f06881b6dd10a68260f6936519b","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.36.1.tgz","fileCount":23,"integrity":"sha512-OFpVA5e7Cb53HpALuaQFCoA/MRUWYQWBmeyefq8rSEwFY8YDNzrt/WmVlavm9n6pYJN5SwA18alLxyxwxCA/bA==","signatures":[{"sig":"MEUCIQDNw1vUkg1zIq7zoZzK55bHKZZzh0ormlNVzjif/m0OHgIgMjh95GFqdXXvShqpw2fFHNiaQPBWr3rLMHD0d9ycMAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127031},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.36.1_1769681652143_0.823072796571537","host":"s3://npm-registry-packages-npm-production"}},"2.36.2":{"name":"xcraft-core-cryo","version":"2.36.2","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.36.2","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"efad4dd8c87899a6bc7034f9b3e1a1c49f8fa9bd","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.36.2.tgz","fileCount":23,"integrity":"sha512-CJBp4DZCQwMDAlgGYXcmk8/ktxefKgJIL5Q+EEqMjuDLWphcW2HfUlwwGOmcnX8WffIGRkqQO9gsQ+vedItSYQ==","signatures":[{"sig":"MEUCIGVImT3lqMuFqRtd8Mge2smO7up3e4zaQ+B3UwS5TqzmAiEAg5C/KPSx8RNf3kNtohDlxEtjFbKJvHSZdAbB1ZZ2k6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127049},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.36.2_1769879133726_0.5426973737592178","host":"s3://npm-registry-packages-npm-production"}},"2.37.4":{"name":"xcraft-core-cryo","version":"2.37.4","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.37.4","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"0e951100c1f022705061aa71fb9e68fc099c3333","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.37.4.tgz","fileCount":23,"integrity":"sha512-PC9IFfGfA2cjLhgi8uR1Q4vmu5wwSLE//Jv2CDf+DqNyC2lIyQjdmufxgIzUq2r2V6Vl51emjAL/3VzXONl3ig==","signatures":[{"sig":"MEUCIQC3LsfkfCNO0jy9ZueCWD1ZNcaVOOYR/85MkzZibOIs4wIgXKTbxshNYf9rSG0dpsgclb6221cyDGNO+JiHJUgffJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138633},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.37.4_1771623511844_0.3482162631363006","host":"s3://npm-registry-packages-npm-production"}},"2.37.5":{"name":"xcraft-core-cryo","version":"2.37.5","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.37.5","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"359f27614cc8b84edaa11cfcb136dd24a7924cea","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.37.5.tgz","fileCount":23,"integrity":"sha512-r6fTKJDKDUnIa3++AksPWN23VVJ6wIz4zpFcxcrc8PsQGOP3Dx+QOr1Zy0JSUwFGBpW2D9m005jEtqRkOQfg9g==","signatures":[{"sig":"MEUCIQDgfEboRpmQiuuhKlx1RWcj3jiHCMSEjhnqwmdRIGQ2vQIgLLRfobaU+vyzP0pxMhqQ0WX6Dx2/kczMSmRAhtS6SNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138707},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"gitHead":"f298f5897d38194a4425ed56ab414d3d33afcdc6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.37.5_1771920143433_0.2767881688241083","host":"s3://npm-registry-packages-npm-production"}},"2.37.6":{"name":"xcraft-core-cryo","version":"2.37.6","keywords":["xcraft","cryo","action-store"],"author":{"name":"Epsitec SA"},"license":"MIT","_id":"xcraft-core-cryo@2.37.6","maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"dist":{"shasum":"4dbb4f0140591af898c1ede9cc6993b1fa036886","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.37.6.tgz","fileCount":22,"integrity":"sha512-2cewWeOckUpzNEhZazR04zQO8qm+kN0Xz25ADtA1qpo054Do7Ts8MqBx4yRoGr8Bz70sRUGtKR6OovNPGPRFYA==","signatures":[{"sig":"MEUCICNb+lnhppV3gvgXuLuKDDfHef/+yTphtyqEcbWnDqW9AiEAjBJQ9VtKOsPDnx1YQEI/CkF5LyPwyB8oqpwr3QM5wM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143413},"main":"lib/index.js","config":{"xcraft":{"commands":true}},"engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"prettier":"xcraft-dev-prettier","_npmVersion":"11.7.0","description":"Xcraft Cryo action-store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^8.3.2","piscina":"^5.1.2","fs-extra":"^11.3.0","gigawatts":"^4.0.1","sqlite-vec":"^0.1.7-alpha.2","xcraft-core-fs":"^2.0.0","xcraft-core-book":"^1.13.0","xcraft-core-utils":"^4.0.0","safe-stable-stringify":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-rules":"^4.4.2","xcraft-dev-prettier":"^2.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/xcraft-core-cryo_2.37.6_1772026383114_0.09908222836311253","host":"s3://npm-registry-packages-npm-production"}},"2.37.15":{"name":"xcraft-core-cryo","version":"2.37.15","description":"Xcraft Cryo action-store","main":"lib/index.js","engines":{"node":">=14"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["xcraft","cryo","action-store"],"config":{"xcraft":{"commands":true}},"dependencies":{"fs-extra":"^11.3.0","gigawatts":"^4.0.1","piscina":"^5.1.2","uuid":"^8.3.2","safe-stable-stringify":"^2.5.0","sqlite-vec":"^0.1.9","xcraft-core-book":"^1.13.0","xcraft-core-fs":"^2.0.0","xcraft-core-utils":"^4.0.0"},"peerDependencies":{"@google-cloud/pubsub":"^2.18.1"},"peerDependenciesMeta":{"@google-cloud/pubsub":{"optional":true}},"author":{"name":"Epsitec SA"},"contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"license":"MIT","devDependencies":{"chai":"^5.2.0","mocha":"^11.2.2","prettier":"2.0.4","xcraft-dev-prettier":"^2.0.0","xcraft-dev-rules":"^4.4.2"},"prettier":"xcraft-dev-prettier","_id":"xcraft-core-cryo@2.37.15","_nodeVersion":"24.13.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-o/MRDU+QtCn++L1yvRF4dUGNjktJzuMlIBtQknkvpE9Rk9ES7jQFhMtjVooFcqLlXSqtSl9UX5d9F0Yc603tog==","shasum":"9fe01938db860927d8c7ed2a25855776a99998be","tarball":"https://registry.npmjs.org/xcraft-core-cryo/-/xcraft-core-cryo-2.37.15.tgz","fileCount":22,"unpackedSize":149810,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPXIS2enik/YWMKF6rV1zx5iWvrVWSE8IOc3cRnu2CqwIhAM31JnFhXgd9KbEjviyN/Lz7kQsCBqjLV/tYQOQf2sbq"}]},"_npmUser":{"name":"schroeterm","email":"mathieu@schroetersa.ch"},"directories":{},"maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xcraft-core-cryo_2.37.15_1774966697554_0.7673823861089302"},"_hasShrinkwrap":false}},"time":{"created":"2020-08-07T11:15:42.273Z","modified":"2026-03-31T14:18:18.120Z","1.0.0":"2020-08-07T11:15:42.468Z","1.0.1":"2020-08-31T12:45:41.235Z","2.0.0":"2021-09-16T14:47:06.701Z","2.1.0":"2022-05-11T08:21:06.680Z","2.1.2":"2022-06-02T09:21:02.480Z","2.2.0":"2023-01-04T09:34:05.707Z","2.2.1":"2023-01-04T09:37:49.921Z","2.3.0":"2023-01-04T10:39:49.914Z","2.4.0":"2023-01-04T10:51:25.738Z","2.8.10":"2024-02-09T09:28:13.079Z","2.8.11":"2024-02-20T14:24:06.444Z","2.9.0":"2024-02-21T10:50:30.647Z","2.10.0":"2024-02-22T09:10:50.426Z","2.11.0":"2024-07-04T20:48:58.363Z","2.11.1":"2024-07-04T20:49:23.366Z","2.11.2":"2024-08-22T14:51:33.307Z","2.11.3":"2024-08-22T20:10:15.006Z","2.11.4":"2024-09-02T14:27:26.421Z","2.12.0":"2024-09-05T08:20:52.849Z","2.16.1":"2024-10-02T09:30:03.278Z","2.16.2":"2024-11-01T22:13:54.916Z","2.16.4":"2024-12-04T11:57:27.854Z","2.18.0":"2025-02-23T14:26:01.219Z","2.21.0":"2025-04-04T13:01:17.067Z","2.26.1":"2025-05-09T22:02:57.824Z","2.26.5":"2025-06-05T06:18:55.432Z","2.26.6":"2025-06-08T21:11:54.289Z","2.27.0":"2025-06-25T20:53:11.119Z","2.27.1":"2025-06-26T06:29:07.464Z","2.30.1":"2025-07-18T14:39:05.686Z","2.31.0":"2025-08-21T12:36:51.750Z","2.31.1":"2025-08-21T14:32:30.021Z","2.31.2":"2025-08-21T15:13:07.833Z","2.31.3":"2025-08-25T11:49:49.238Z","2.32.0":"2025-09-16T13:38:49.132Z","2.33.0":"2025-10-21T13:40:26.899Z","2.33.1":"2025-11-04T13:38:55.186Z","2.34.0":"2025-11-21T07:37:05.520Z","2.35.1":"2025-12-16T22:19:08.052Z","2.36.0":"2026-01-27T20:44:32.216Z","2.36.1":"2026-01-29T10:14:12.309Z","2.36.2":"2026-01-31T17:05:33.891Z","2.37.4":"2026-02-20T21:38:32.001Z","2.37.5":"2026-02-24T08:02:23.589Z","2.37.6":"2026-02-25T13:33:03.274Z","2.37.15":"2026-03-31T14:18:17.718Z"},"author":{"name":"Epsitec SA"},"license":"MIT","keywords":["xcraft","cryo","action-store"],"description":"Xcraft Cryo action-store","contributors":[{"name":"Mathieu Schroeter","email":"schroeter@epsitec.ch"},{"name":"Samuel Loup","email":"loup@epsitec.ch"},{"name":"Gillian Fries","email":"fries@epsitec.ch"}],"maintainers":[{"name":"schroeterm","email":"mathieu@schroetersa.ch"}],"readme":"# 📘 xcraft-core-cryo\n\n## Aperçu\n\nLe module `xcraft-core-cryo` est une couche de persistance sophistiquée pour l'écosystème Xcraft, basée sur SQLite. Il implémente un système d'event sourcing qui permet de sauvegarder, récupérer et gérer l'historique des mutations d'état des acteurs Goblin et Elf. Ce module est fondamental pour la persistance des données dans les applications Xcraft, offrant des fonctionnalités avancées comme la recherche plein texte (FTS), la recherche vectorielle (VEC), la synchronisation distribuée et le nettoyage automatique des données obsolètes.\n\n## Sommaire\n\n- [Structure du module](#structure-du-module)\n- [Fonctionnement global](#fonctionnement-global)\n- [Exemples d'utilisation](#exemples-dutilisation)\n- [Interactions avec d'autres modules](#interactions-avec-dautres-modules)\n- [Configuration avancée](#configuration-avancée)\n- [Détails des sources](#détails-des-sources)\n\n## Structure du module\n\nLe module `xcraft-core-cryo` est organisé autour de plusieurs composants clés :\n\n- **`cryo.js`** (racine) : Point d'entrée qui expose les commandes Xcraft et initialise les endpoints configurés\n- **`lib/cryo.js`** : Classe principale `Cryo` héritant de `SQLite`, implémentant toutes les fonctionnalités de persistance\n- **`lib/index.js`** : Instance singleton de `Cryo` configurée via `xcraft-core-etc`\n- **`lib/soulSweeper.js`** : Utilitaire de nettoyage et d'optimisation des bases de données\n- **`lib/streamSQL.js`** : Classes `ReadableSQL` et `WritableSQL` pour le streaming de données SQLite\n- **`lib/streamPort.js`** : Classes `MessagePortReadable` et `MessagePortWritable` pour le streaming inter-threads via MessageChannel\n- **`lib/sqlite-vec/loader.js`** : Chargement de l'extension SQLite pour la recherche vectorielle\n- **`lib/endpoints/googleQueue.js`** : Endpoint optionnel pour publier les actions dans Google Cloud Pub/Sub\n- **`lib/workers/insert.js`** : Worker thread dédié au peuplement FTS/VEC et au traitement des embeddings\n- **`lib/workers/retrieve.js`** : Worker thread dédié à la récupération streamée des actions persist\n\n## Fonctionnement global\n\nCryo fonctionne selon le principe d'event sourcing :\n\n1. **Persistance** : Les actions (événements) sont \"gelées\" (`freeze`) dans la base de données SQLite\n2. **Reconstruction** : Chaque action contient les informations nécessaires pour reconstruire l'état d'un acteur\n3. **Récupération** : Les actions peuvent être \"dégelées\" (`thaw`) pour reconstruire l'état à un moment précis\n4. **Historique** : Le système maintient un historique complet des changements\n\n### Structure des actions\n\nLes actions sont stockées dans une table `actions` avec les colonnes suivantes :\n\n- `rowid` : Clé primaire auto-incrémentée (avec index explicite pour les performances de comptage)\n- `timestamp` : Horodatage de l'action au format ISO\n- `goblin` : Identifiant de l'acteur concerné (ex : `myEntity-myEntity@1`)\n- `action` : Contenu JSON de l'action\n- `version` : Version de l'application au moment de la persistance\n- `type` : Type d'action (`create`, `persist`, etc.)\n- `commitId` : Identifiant de commit pour la synchronisation distribuée (NULL si non synchronisé)\n\n### Fonctionnalités avancées\n\n**Recherche plein texte (FTS5)** — Quand `enableFTS` est activé, une table `lastPersistedActions` maintient la dernière action persist par goblin (hors statut `trashed`). Une table virtuelle `fts_idx` indexe le champ `meta.index` de chaque état. Des triggers SQLite maintiennent automatiquement cet index et peuvent déclencher des notifications via des topics configurables.\n\n**Recherche vectorielle (VEC)** — Quand `enableVEC` est activé (nécessite `enableFTS`), une table virtuelle `embeddings` (via `sqlite-vec`) stocke les embeddings de chaque document partitionnés par locale. Le traitement des embeddings est délégué à un worker thread Piscina pour éviter de bloquer le thread principal. Un index `embeddingsIndex` associe chaque document à la ligne de son action persist la plus récente.\n\n**Transactions et verrous** — Les transactions sont gérées avec un mutex par base de données (`_syncLock`) pour garantir la cohérence des accès concurrents. Les notifications déclenchées par les triggers FTS sont mises en file d'attente pendant une transaction et envoyées après le `commit`.\n\n**Middleware de transformation** — Un mécanisme de middleware chainé permet de transformer les lignes lors de la récupération (`thaw`). Un middleware peut diviser une action en plusieurs actions ou la supprimer. Cela est utile pour les migrations de modèles de données.\n\n**Synchronisation distribuée** — Le système utilise des `commitId` (UUID) pour tracer l'état de synchronisation de chaque action. Le flux de synchronisation comprend : récupération des actions en attente (`getDataForSync`), marquage temporaire avec un commitId zéro (`prepareDataForSync`), puis mise à jour avec le commitId serveur définitif (`updateActionsAfterSync`).\n\n**Bootstrap** — Pour initialiser une base de données depuis un flux distant, `bootstrapActions` crée une base temporaire préfixée par un point (`.db`), la peuple via un stream, puis la renomme. Les actions locales en attente de synchronisation sont préservées lors de ce processus.\n\n**Nettoyage (SoulSweeper)** — Chaque base de données dispose d'un `SoulSweeper` dédié qui peut nettoyer les actions obsolètes selon deux stratégies : par nombre maximum de persists par goblin ou par date limite. La stratégie combinée `sweepForDays` applique les deux en séquence.\n\n**Table temporelle** — Optionnellement activée via `enableTimetable`, une table `timetable` précalculée de 64 000 jours (depuis l'an 2000) permet des analyses chronologiques avancées.\n\n### Flux de traitement des embeddings\n\n```\nAction persist insérée\n    → Trigger SQL onInsert/onUpdate sur lastPersistedActions\n    → Notification sur topic <worker-vec-embed>\n    → Souscription resp.events → Piscina.run({name: 'embed'})\n    → Worker thread: delete + insert dans embeddings + embeddingsIndex\n```\n\n## Exemples d'utilisation\n\n### Vérification et initialisation d'une base de données\n\n```javascript\n// Dans une méthode d'un acteur Elf\nasync cryoStuff() {\n  const cryo = this.quest.getAPI('cryo');\n\n  const result = await cryo.isEmpty({ db: 'myDatabase' });\n  console.log(result); // {exists: true, empty: false}\n\n  // Ouvrir/initialiser explicitement une base\n  const ok = await cryo.init({ db: 'myDatabase' });\n}\n```\n\n### Persistance d'une action\n\n```javascript\nasync freezeSomething() {\n  const cryo = this.quest.getAPI('cryo');\n\n  await cryo.freeze({\n    db: 'myDatabase',\n    action: {\n      type: 'persist',\n      payload: {\n        state: {\n          id: 'myEntity@1',\n          meta: {\n            status: 'published',\n            index: 'contenu indexable pour FTS',\n            locale: 'fr',\n            vectors: {\n              chunk1: {\n                chunk: 'Premier morceau de texte',\n                embedding: 'deadbeef...' // hexadécimal\n              }\n            }\n          }\n        }\n      }\n    },\n    rules: {\n      goblin: 'myEntity-myEntity@1',\n      mode: 'last' // Conserver uniquement la dernière action\n    }\n  });\n}\n```\n\n### Récupération des actions\n\n```javascript\nasync thawSomething() {\n  const cryo = this.quest.getAPI('cryo');\n\n  // Les résultats arrivent via des événements 'cryo.thawed.myDatabase'\n  const count = await cryo.thaw({\n    db: 'myDatabase',\n    timestamp: '2023-05-01T12:00:00.000Z'\n  });\n  console.log(`${count} actions récupérées`);\n\n  // Récupération partielle par type\n  const partial = await cryo.thaw({\n    db: 'myDatabase',\n    timestamp: '2023-05-01T12:00:00.000Z',\n    type: 'myEntity',\n    length: 100,\n    offset: 0\n  });\n}\n```\n\n### Utilisation des transactions\n\n```javascript\nasync withTransaction() {\n  const cryo = this.quest.getAPI('cryo');\n\n  await cryo.immediate({ db: 'myDatabase' });\n  try {\n    await cryo.freeze({\n      db: 'myDatabase',\n      action: { type: 'persist', payload: {/* ... */} },\n      rules: { goblin: 'myEntity-myEntity@1', mode: 'last' }\n    });\n    await cryo.commit({ db: 'myDatabase' });\n  } catch (error) {\n    await cryo.rollback({ db: 'myDatabase' });\n    throw error;\n  }\n}\n```\n\n### Bootstrap d'une base de données depuis un flux distant\n\n```javascript\nasync bootstrapDatabase(streamId, routingKey, count) {\n  const cryo = this.quest.getAPI('cryo');\n\n  await cryo.bootstrapActions({\n    db: 'myDatabase',\n    streamId,\n    routingKey,\n    rename: true, // Renommer l'ancienne base avant remplacement\n    count         // Nombre total d'actions pour la progression\n  });\n}\n```\n\n### Nettoyage des données obsolètes\n\n```javascript\nasync cleanupDatabase() {\n  const cryo = this.quest.getAPI('cryo');\n\n  // Stratégie combinée : max 10 persists récents + 1 persist si > 30 jours\n  const changes = await cryo.sweep({ dbs: ['myDatabase'] });\n  console.log(changes); // { myDatabase: 1234 }\n\n  // Ou garder seulement les 5 derniers persists par goblin\n  await cryo.sweepByMaxCount({ dbs: ['myDatabase'], max: 5 });\n}\n```\n\n### Synchronisation distribuée\n\n```javascript\nasync syncData() {\n  const cryo = this.quest.getAPI('cryo');\n\n  const { stagedActions, commitIds } = await cryo.getDataForSync({ db: 'myDatabase' });\n\n  // Marquer les actions avec le commitId zéro (en transit)\n  await cryo.prepareDataForSync({\n    db: 'myDatabase',\n    rows: stagedActions.map(a => a.rowid),\n    zero: true\n  });\n\n  // Après confirmation du serveur, appliquer le vrai commitId\n  await cryo.updateActionsAfterSync({\n    db: 'myDatabase',\n    serverCommitId: 'abc123-def456-...',\n    rows: stagedActions.map(a => a.rowid)\n  });\n}\n```\n\n### Récupération streamée de persists pour la synchronisation\n\n```javascript\nasync syncPersists() {\n  const cryo = this.quest.getAPI('cryo');\n\n  // Récupérer tous les persists via stream\n  const { xcraftStream, routingKey, count } = await cryo.getAllPersist({ db: 'myDatabase' });\n\n  // Récupérer les persists dans une plage de commitIds\n  const rangeResult = await cryo.getPersistFromRange({\n    db: 'myDatabase',\n    fromCommitId: 'uuid-from',\n    toCommitId: 'uuid-to',\n    toInclusive: true\n  });\n}\n```\n\n## Interactions avec d'autres modules\n\n- **[xcraft-core-book]** : Fournit la classe `SQLite` dont `Cryo` hérite ; gère l'ouverture, les requêtes préparées et les migrations\n- **[xcraft-core-utils]** : Utilisé pour les mutex (`locks.getMutex`) et utilitaires JS\n- **[xcraft-core-fs]** : Gestion des fichiers et répertoires (copie, suppression de bases SQLite)\n- **[xcraft-core-transport]** : Streaming des données via `Streamer` lors du bootstrap\n- **[xcraft-core-etc]** : Chargement de la configuration du module\n- **[xcraft-core-goblin]** : Les acteurs Goblin et Elf utilisent Cryo pour persister leur état via les commandes exposées sur le bus\n- **[xcraft-core-host]** : Fournit `appVersion`, `resourcesPath` et `getRoutingKey()`\n- **@google-cloud/pubsub** : Dépendance optionnelle (peer) utilisée par l'endpoint `googleQueue`\n\n## Configuration avancée\n\n| Option                       | Description                                                        | Type    | Valeur par défaut |\n| ---------------------------- | ------------------------------------------------------------------ | ------- | ----------------- |\n| `journal`                    | Mode journal SQLite (`journal` ou `WAL`)                           | String  | `\"WAL\"`           |\n| `endpoints`                  | Liste des endpoints à activer                                      | Array   | `[]`              |\n| `enableFTS`                  | Activer la recherche plein texte (FTS5)                            | Boolean | `false`           |\n| `enableVEC`                  | Activer la recherche vectorielle (nécessite `enableFTS`)           | Boolean | `false`           |\n| `fts.list`                   | Bases de données où activer FTS (toutes si vide)                   | Array   | `[]`              |\n| `vec.list`                   | Bases de données où activer VEC (toutes si vide)                   | Array   | `[]`              |\n| `vec.dimensions`             | Nombre de dimensions pour les embeddings                           | Number  | `4096`            |\n| `vec.vecFunc`                | Fonction de conversion vectorielle (`vec_f32` ou `vec_int8`)       | String  | `\"vec_f32\"`       |\n| `vec.defaultLocale`          | Locale par défaut pour le partitionnement des vecteurs             | String  | `\"fr\"`            |\n| `migrations.cleanings`       | Règles de nettoyage par nom de base (types de goblins à supprimer) | Object  | `null`            |\n| `enableTimetable`            | Activer la table de temps précalculée                              | Boolean | `false`           |\n| `googleQueue.topic`          | Topic Google Pub/Sub pour publier les messages                     | String  | `\"\"`              |\n| `googleQueue.authFile`       | Chemin relatif vers le fichier d'authentification Google Cloud     | String  | `\"\"`              |\n| `googleQueue.orderingPrefix` | Partie fixe de la clé d'ordonnancement des messages                | String  | `\"\"`              |\n\n### Variables d'environnement\n\n| Variable                         | Description                                                                                                               | Exemple                               | Valeur par défaut |\n| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------------- |\n| `GOOGLE_APPLICATION_CREDENTIALS` | Chemin vers le fichier d'authentification Google Cloud ; défini automatiquement par l'endpoint `googleQueue` au démarrage | `/app/resources/gcp-credentials.json` | —                 |\n\n## Détails des sources\n\n### `cryo.js` — Point d'entrée et exposition des commandes\n\nCe fichier agit comme façade entre le bus Xcraft et la classe `Cryo`. Au démarrage, il charge dynamiquement les endpoints activés dans la configuration (`cryoConfig.endpoints`), puis expose automatiquement toutes les méthodes publiques de l'instance `Cryo` comme commandes parallèles sur le bus via `xcraftCommands`.\n\nPour chaque commande, le fichier gère le cycle complet : appel de la méthode Cryo, propagation aux endpoints actifs (si la méthode existe sur l'endpoint), puis envoi de l'événement `cryo.<n>.<msgId>.finished` avec le résultat ou `cryo.<n>.<msgId>.error` en cas d'exception. Un traitement spécial est appliqué à `freeze` : seul `{action}` est retourné pour les actions de type `persist` (les autres résultats sont ignorés).\n\nLa méthode `dispose` exportée ferme proprement l'instance Cryo (workers Piscina, souscriptions d'embeddings, optimisation SQLite).\n\n### `lib/cryo.js` — Classe principale `Cryo`\n\nLa classe `Cryo` hérite de `SQLite` ([xcraft-core-book]) et constitue le cœur du module.\n\n#### Initialisation\n\nLe constructeur détermine le répertoire de stockage (`xcraft.xcraftRoot/var/cryo` par défaut), charge la configuration et prépare toutes les requêtes SQL préparées. Selon la configuration, il génère les DDL pour les tables optionnelles (`timetable`, `lastPersistedActions`, `fts_idx`, `embeddings`, `embeddingsIndex`) et leurs triggers associés. Les indices sont créés sur `goblin`, `timestamp`, `type`, `commitId` et `rowid` (index couvrant explicite pour optimiser les requêtes de comptage).\n\nLa version de schéma (`PRAGMA user_version`) est gérée via un mécanisme de migration incrémentale jusqu'à la version 11.\n\n#### Workers Piscina\n\nDeux pools de workers sont gérés :\n\n- **`#piscina[db]`** : Un pool par base de données, avec un seul thread (`minThreads: 1, maxThreads: 1`), utilisé pour `embed` et `populate`. Il se ferme automatiquement après 1 seconde d'inactivité.\n- **`#piscinaSync`** : Pool partagé pour les opérations de récupération streamée (`getAllPersist`, `getPersistFromRange`), avec 0 à N threads et 30 secondes de timeout d'inactivité.\n\n#### Méthodes publiques\n\n- **`freeze(resp, msg)`** — Persiste une action. Supporte les modes `all` (conservation de tout l'historique) et `last` (suppression des anciennes actions d'un goblin). Avant insertion, vérifie si la dernière action persist est identique pour éviter les doublons (via comparaison du champ `state`). Si identique, les actions intermédiaires inutiles sont annulées (`revert`). Les actions `raw` (provenant d'un serveur de sync) sont ignorées si une transaction Cryo est ouverte pour ce goblin.\n\n- **`thaw(resp, msg)`** — Récupère la dernière action par goblin jusqu'à un timestamp. Supporte la pagination via `type`, `length` et `offset`. Applique la chaîne de middlewares sur chaque ligne. Les résultats sont envoyés par événements `cryo.thawed.<db>`, groupés par action source (une action source peut produire 0 à N lignes après middleware).\n\n- **`frozen(resp, msg)`** — Retourne le nombre d'actions et le timestamp de la dernière action, avec filtrage optionnel par type.\n\n- **`isEmpty(resp, msg)`** — Retourne `{exists, empty}` selon l'existence et le contenu de la base.\n\n- **`init(resp, msg)`** — Ouvre une base de données et déclenche le rafraîchissement des embeddings en arrière-plan si VEC est activé.\n\n- **`immediate(resp, msg)`** / **`exclusive(resp, msg)`** / **`begin(resp, msg)`** — Démarrent une transaction avec acquisition du mutex associé à la base.\n\n- **`commit(resp, msg)`** — Valide la transaction et envoie les notifications trigger FTS en attente, puis libère le mutex.\n\n- **`rollback(resp, msg)`** — Annule la transaction et libère le mutex.\n\n- **`restore(resp, msg)`** — Restaure une base à un timestamp en copiant la source vers la destination, puis en supprimant les actions postérieures au timestamp. Si source et destination sont identiques, l'original est d'abord archivé sous un nom horodaté (branche).\n\n- **`branch(resp, msg)`** — Archive la base actuelle en la renommant avec un timestamp (via `fs-extra.rename`).\n\n- **`dump(resp, msg)`** — Exporte les dernières actions par goblin jusqu'à un timestamp vers une base de données distincte via `ATTACH DATABASE`.\n\n- **`registerLastActionTriggers(resp, msg)`** — Enregistre des topics d'événements déclenchés par les triggers FTS lors des insertions, mises à jour ou suppressions dans `lastPersistedActions`. Nécessite `enableFTS`.\n\n- **`unregisterLastActionTriggers(resp, msg)`** — Retire des topics précédemment enregistrés.\n\n- **`actions(resp, msg)`** — Itère sur les actions dans une plage de timestamps et envoie chaque ligne via `cryo.actions.<db>`.\n\n- **`getEntityTypeCount(resp, msg)`** — Retourne un tableau d'objets `{type, count}` en extrayant le préfixe de type de chaque goblin.\n\n- **`branches(resp)`** — Liste les fichiers `.db` du répertoire Cryo et détecte les branches (fichiers `<n>_<timestamp>.db`). Retourne `{[db]: {branches: [timestamp, ...]}}`.\n\n- **`isAlreadyCreated(resp, msg)`** — Détermine si un goblin a déjà été créé : retourne `true` s'il a au moins un `persist`, ou s'il a plus d'une action `create` (la deuxième `create` signifie que le goblin avait déjà existé).\n\n- **`hasGoblin(resp, msg)`** — Vérifie la présence d'au moins une action pour un goblin donné.\n\n- **`loadMiddleware(resp, msg)`** — Charge dynamiquement un fichier middleware et l'ajoute à la chaîne de transformation. Le middleware est caché via `require.cache` pour éviter les rechargements.\n\n- **`getDataForSync(resp, msg)`** — Retourne les actions en attente (`allStagedActions` : actions non-persist sans commitId situées avant le dernier persist sans commitId) ainsi qu'une sélection de commitIds récents (dernier, 10ème, 100ème, 200ème, 1000ème) pour la négociation de synchronisation.\n\n- **`prepareDataForSync(resp, msg)`** — Marque les lignes spécifiées avec le commitId zéro (`00000000-0000-0000-0000-000000000000`) pour indiquer qu'elles sont en cours de synchronisation.\n\n- **`updateActionsAfterSync(resp, msg)`** — Remplace le commitId zéro par le commitId serveur définitif sur les lignes confirmées.\n\n- **`countPersistsFrom(resp, msg)`** / **`countNewPersistsFrom(resp, msg)`** — Comptent les actions persist (total ou depuis un commitId donné).\n\n- **`hasCommitId(resp, msg)`** / **`getLastCommitId(resp, msg)`** / **`getSomeCommitIds(resp, msg)`** — Requêtes utilitaires pour la négociation de synchronisation.\n\n- **`getPersistFromRange(resp, msg)`** — Récupère les derniers persists par goblin dans une plage de commitIds, via un worker Piscina et un `MessageChannel`. Retourne un `xcraftStream` consommable par le transport Xcraft.\n\n- **`getAllPersist(resp, msg)`** — Récupère tous les derniers persists par goblin via streaming. Retourne `{xcraftStream, routingKey, count}`.\n\n- **`bootstrapActions(resp, msg, next)`** — Générateur watt. Crée une base temporaire `.db`, la peuple depuis un flux de données (via `WritableSQL` et `Streamer`), réinjecte les actions locales en attente, peuple FTS/VEC via worker, puis remplace la base principale. En cas d'erreur, nettoie la base temporaire.\n\n- **`getZeroActions(resp, msg)`** — Retourne les actions non-persist marquées avec le commitId zéro.\n\n- **`getActionsByIds(resp, msg)`** — Retourne le dernier persist par goblin pour une liste d'identifiants.\n\n- **`hasActions(resp, msg)`** — Vérifie que tous les goblins spécifiés ont au moins un persist.\n\n- **`sweep(resp, msg)`** — Lance `sweepForDays(30, 10)` sur les bases spécifiées (ou toutes). Retourne un objet `{[db]: changes}`.\n\n- **`sweepByMaxCount(resp, msg)`** — Lance `sweepByCount(max)` sur les bases spécifiées.\n\n- **`refreshEmbeddings(resp, msg)`** — Retraite les embeddings obsolètes sur les bases VEC activées via le worker `refreshEmbeddings`.\n\n- **`usable()`** — Délègue à `SQLite.usable()`.\n\n- **`getLocation()`** — Retourne le chemin du répertoire de stockage Cryo.\n\n- **`dispose()`** — Ferme les pools Piscina, désabonne les listeners d'embeddings, optimise toutes les bases (`PRAGMA optimize`) et appelle `super.dispose()`.\n\n### `lib/soulSweeper.js` — Nettoyage intelligent des actions\n\n`SoulSweeper` encapsule la logique de nettoyage des actions SQLite avec des requêtes CTE optimisées. Il est instancié une fois par base de données ouverte.\n\nLe paramètre `withCommits` (défaut `true`) contrôle si le nettoyage se limite aux actions ayant un `commitId` non-null, ce qui est important pour ne pas supprimer des données non synchronisées.\n\n#### Méthodes publiques\n\n- **`sweepByCount(count=4, dryrun=true)`** — Garde les `count` derniers persists par goblin (entre 1 et 100), supprime tous ceux en dessous du seuil ainsi que leurs actions intermédiaires. Lance un `ANALYZE` avant et un `VACUUM` si plus de 100 000 lignes sont supprimées.\n\n- **`sweepByDatetime(datetime=now, dryrun=true)`** — Supprime les actions dont le timestamp est antérieur à `datetime`, en gardant au minimum les 2 derniers persists par goblin.\n\n- **`sweepForDays(days=30, max=10, dryrun=true)`** — Stratégie combinée : d'abord `sweepByCount(max)` pour limiter le nombre total, puis `sweepByDatetime(now - days)` pour éliminer les anciennes données. Retourne le cumul des suppressions.\n\nLe mode `dryrun=true` (défaut) calcule le nombre de lignes qui seraient supprimées sans les effacer, permettant une prévisualisation.\n\n### `lib/streamSQL.js` — Streaming SQL\n\n**`ReadableSQL`** — Stream Node.js lisible alimenté par un itérateur SQLite. Lit les lignes par lots de 128 et les sérialise en JSON. Supporte une fonction `wait` pour les opérations SQLite asynchrones.\n\n**`WritableSQL`** — Stream Node.js inscriptible pour l'insertion en masse. Démarre automatiquement une transaction à la construction, effectue des commits intermédiaires tous les `step` lots (défaut 1024), et accepte un callback de progression `progressCb(pos)`.\n\n### `lib/streamPort.js` — Streaming via MessageChannel\n\n**`MessagePortWritable`** — Stream inscriptible qui envoie les chunks via un `MessagePort`. Implémente un protocole de back-pressure : le lecteur envoie un message vide pour signaler sa demande, et le writer attend cette demande avant d'envoyer. Tente le transfert zero-copy (`Transferable`) et bascule en copie en cas d'échec. Un watchdog détecte les lecteurs morts (60 secondes sans demande).\n\n**`MessagePortReadable`** — Stream lisible qui reçoit les chunks depuis un `MessagePort` et les pousse dans le flux Node.js. Envoie une demande initiale au writer, puis une nouvelle demande à chaque `_read()`. Gère la terminaison propre du port.\n\n### `lib/index.js` — Instance singleton\n\nExporte l'unique instance de `Cryo` utilisée par tous les handlers de commandes, configurée avec les paramètres chargés via `xcraft-core-etc`.\n\n### `lib/endpoints/googleQueue.js` — Publication Google Cloud Pub/Sub\n\nEndpoint optionnel activé en ajoutant `\"googleQueue\"` à la liste `endpoints` de la configuration. Il intercepte les résultats de la commande `freeze` et les publie dans un topic Google Pub/Sub avec ordonnancement des messages.\n\n#### Méthodes publiques\n\n- **`freeze(resp, msg, results)`** — Publie l'action dans Pub/Sub avec les attributs `origin`, `publish_timestamp`, `timestamp`, `goblin` et `version`. Utilise la clé d'ordonnancement configurée et active `enableMessageOrdering` sur le topic.\n\n### `lib/sqlite-vec/loader.js` — Extension vectorielle SQLite\n\nModule utilitaire qui charge l'extension native `sqlite-vec` (`vec0`) dans une instance de base de données SQLite. Supporte les plateformes Linux, macOS et Windows en architecture x86_64 et aarch64. Gère le chemin `app.asar.unpacked` pour les applications Electron packagées.\n\n#### Méthodes publiques\n\n- **`load(db)`** — Charge l'extension dans l'instance SQLite fournie via `db.loadExtension(path)`.\n- **`getLoadablePath()`** — Résout le chemin de la bibliothèque native selon la plateforme et l'architecture courantes.\n\n### `lib/workers/insert.js` — Worker FTS/VEC\n\nWorker thread Piscina exposant trois tâches :\n\n**`populate({db, location, enableFTS, enableVEC, defaultLocale, indices, vecFunc})`** — Exécuté après un bootstrap ou une migration. Peuple `fts_idx` depuis `lastPersistedActions` si FTS est activé, et peuple `embeddings` + `embeddingsIndex` depuis les dernières actions persist si VEC est activé. Applique ensuite les indices personnalisés et exécute `ANALYZE`.\n\n**`embed({db, location, goblin, defaultLocale, vecFunc})`** — Exécuté à chaque modification d'une entité `indexedContent` (déclenchée par les triggers FTS). Supprime les embeddings existants pour le `documentId` et les réinsère depuis la dernière action persist du goblin. Opère dans une transaction `IMMEDIATE`.\n\n**`refreshEmbeddings({db, location, defaultLocale, vecFunc})`** — Détecte les embeddings obsolètes (ceux dont le `documentRowid` dans `embeddingsIndex` ne correspond plus au `max(rowid)` de l'action persist courante), les supprime et les réinsère. Utile après une synchronisation ou un import de données.\n\nLa table `embeddings` utilise la structure suivante :\n\n```sql\nCREATE VIRTUAL TABLE embeddings USING vec0(\n  locale TEXT partition key,\n  scope TEXT,\n  documentId TEXT,\n  +chunkId TEXT,\n  +chunk TEXT,\n  embedding FLOAT[dimensions] distance_metric=cosine\n);\n```\n\nLe partitionnement par `locale` permet des recherches vectorielles ciblées par langue. La métrique de distance cosinus est utilisée pour la similarité sémantique.\n\n### `lib/workers/retrieve.js` — Worker de récupération streamée\n\nWorker thread Piscina exposant deux tâches pour la récupération en lecture seule des actions persist via `MessagePortWritable` et `ReadableSQL` :\n\n**`getAllPersist({port, location, db})`** — Récupère le dernier persist par goblin (ayant un commitId non-null) trié par rowid, et l'envoie ligne par ligne via le port.\n\n**`getPersistFromRange({port, location, db, fromCommitId, toCommitId, toInclusive})`** — Récupère les derniers persists dans une plage de commitIds via des CTE SQL. Si `fromCommitId` est absent, récupère tous les persists jusqu'à `toCommitId`. Si `toInclusive` est vrai, inclut les actions du `toCommitId` dans le résultat.\n\n### Fichiers de tests\n\n**`test/soulSweeper.spec.js`** — Suite de tests pour `SoulSweeper` avec Mocha/Chai. Contient des tests unitaires sur base SQLite en mémoire (toujours actifs) et des tests d'intégration sur une vraie base `cms.db` (désactivés par défaut avec `describe.skip`, nécessitent une extraction manuelle du fichier compressé).\n\n## Licence\n\nCe module est distribué sous [licence MIT](./LICENSE).\n\n---\n\n[xcraft-core-book]: https://github.com/Xcraft-Inc/xcraft-core-book\n[xcraft-core-utils]: https://github.com/Xcraft-Inc/xcraft-core-utils\n[xcraft-core-fs]: https://github.com/Xcraft-Inc/xcraft-core-fs\n[xcraft-core-transport]: https://github.com/Xcraft-Inc/xcraft-core-transport\n[xcraft-core-etc]: https://github.com/Xcraft-Inc/xcraft-core-etc\n[xcraft-core-goblin]: https://github.com/Xcraft-Inc/xcraft-core-goblin\n[xcraft-core-host]: https://github.com/Xcraft-Inc/xcraft-core-host\n\n_Ce contenu a été généré par IA_\n","readmeFilename":"README.md"}