{"_id":"fods","_rev":"46-349c151ccb6c034514e6469f5f422ba4","name":"fods","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.0":{"name":"fods","version":"1.0.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.0.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"ade3c1db294572c3e5e297efb5143c7290b01c04","tarball":"https://registry.npmjs.org/fods/-/fods-1.0.0.tgz","fileCount":3,"integrity":"sha512-JKE2XVktPDDwY4TaXq7SIOAN5rbDgIAf+EbKWtjyvuKzVIQiWzxk+rqQq0zxZAzbrUu/BggOsRKLZm/8oOaB7Q==","signatures":[{"sig":"MEUCIQDnYGdaqd3hacxW1mR1K7QI4OH4pLdFHLjHK/PgE4mvGwIgafhZw+Ec0ek8zOJ4fxU6TQ2oeKK4i5WkDVyhdAPCEAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8103},"main":"index.js","type":"module","gitHead":"1c5362c2a83eb627f578d1b3d27abf58e6131ce3","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.2","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.0.0_1692209224183_0.48523373225366084","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"fods","version":"1.1.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.1.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"5b68e36431f6598dd0774ff522ef535a041769e2","tarball":"https://registry.npmjs.org/fods/-/fods-1.1.0.tgz","fileCount":3,"integrity":"sha512-MpuyVdhG/979hvdtwZpaf4pyoef4i4jv0TtMe/Br1zDzDXKIZ5LifUPgtXxMGrn9M4I8z8nJvdnuDQD0OKdWcg==","signatures":[{"sig":"MEUCIQCKUTKmMQe73k2R33GaTyflZPXEf7jPir5CatMIPjdzPgIgHdQr4LlCVqPqlG2EGpH/00sV+8nj+MIR6SlCeBnYdsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9433},"main":"index.js","type":"module","gitHead":"013d8937160605d6e230163ceb9869a85689a524","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.2","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.1.0_1692234659626_0.3090576692936382","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"fods","version":"1.2.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.2.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"67fb8f5375555bd12a3a1e5b308a7f8e3beef3f0","tarball":"https://registry.npmjs.org/fods/-/fods-1.2.0.tgz","fileCount":3,"integrity":"sha512-7gtasxj9He/67rdrOlWnp7LRQk7IceHl2/PlfpNITJ19tTPtqz3ZKp1dmYeffUDdNutM/ZGANT7dGWBWsk+8fg==","signatures":[{"sig":"MEYCIQDP0/uCTqg6L97gIMR39sa9yGgAMIL8BxZmSDUznJKHYAIhAMbUe/2d0L3wN8rnREPfcGsXCEjfEM5W4dwuBfZrwgfC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9565},"main":"index.js","type":"module","gitHead":"c15ba3fef40475e6af7c0d693e16cb90e02a0c0e","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.5.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.14.2","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.2.0_1692239403835_0.5859006391969268","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"fods","version":"1.3.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.3.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"ee6771a5418b47d751578da9c931a0b181869c70","tarball":"https://registry.npmjs.org/fods/-/fods-1.3.0.tgz","fileCount":4,"integrity":"sha512-HwGxzzuDJiAm2kl8B/yWAmh4rIXXOiXM/Ez8tw7YRk5YrBIrVmkLlWln3c+TQGEj/YQ9SqLXLyqS/S3QHFhAnQ==","signatures":[{"sig":"MEYCIQChBrFPjIRgoSBZaJhWMU9xAZxSyBvFjDgEU+KD6w5NzwIhAMpjt60nR81d6EY8YeQljBKDiuIs6M0k8a0us43+5Roy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12840},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"ee4f8208d82d318b75e17e1941bd2343a8210627","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.5.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.14.2","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.3.0_1692241796834_0.01299533076198367","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"fods","version":"1.3.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.3.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"69594bfb8310ab18137341bf5541544804eec5dc","tarball":"https://registry.npmjs.org/fods/-/fods-1.3.1.tgz","fileCount":4,"integrity":"sha512-75c71csOJnaNJQ07HD7i165+7E3dG95Uf2/HjyTg7CBctn+PHXkJA+c0Ce3EfzqE1g1WrDH1YSKE3pEOCCadpA==","signatures":[{"sig":"MEYCIQD/e32fETxPTZ8MNCJ7VCVhWHXk7RHd1/NtklVREGeZSgIhAKFJVXpdUabW/PIHTHx16E/YOH5ewejbzoqMFzEqM90V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12984},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"c46fe1e933dbe72c6313c22fc1b563bb14732e15","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.5.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.14.2","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.3.1_1692241938494_0.14101526428731348","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"fods","version":"1.3.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.3.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"658f802e712a8962d2cd74d450f6267b36c7a216","tarball":"https://registry.npmjs.org/fods/-/fods-1.3.2.tgz","fileCount":4,"integrity":"sha512-IEy1KqNciuihFh7+7+1ozJCuPNndMztHMbuh8jkDN8HiYKzosmeQ+cazXdkc/W6uC5eDXhGsVqpgfgMM8YAUJg==","signatures":[{"sig":"MEUCIQCPot+6Ov5I/y0tL+DpT76jvFuZwziWkYggFyGEtFCTRAIgY37eWO1WCniqaQWZ8afjtzN64nSiW0q/hkIRQuf/whE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12999},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"baf9b9e28c8481a340c9818de8eff9125402670d","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.2","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.3.2_1692884760125_0.5891121615278712","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"fods","version":"1.4.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"3795db85c7a4c8d8a85891923d6471c2469f139f","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.0.tgz","fileCount":4,"integrity":"sha512-6Xsq42iWjfaGCtiA9uBpt99YD3DCxhPsKyfe3RQCC1z0AqYQkfaLwJEqAxdd3/AJAOVXeDcd6BLsEKniVCx3aA==","signatures":[{"sig":"MEYCIQC1OxupVnc1Tqs1pRcLhOxtNyeln9j6kaLHsINQSz5a/wIhAIUXrUeD/jhoLl+9ksmmHlXWtiKyQtP+uKYEBlYFeyse","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16668},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"98a7d2e05d7b771a9524395a45c02012bcecffa2","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.0_1699933639274_0.3123110312032267","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"fods","version":"1.4.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"3e7f645ba308cc37f29952d78d01685f3933bb5a","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.1.tgz","fileCount":4,"integrity":"sha512-YlZ2qmYqEQgnQoWzCBEWhUZb2eC6sItOqHVSIln1IZYoaWSNwP5p0kK4lC90TjupKFjAAf6JWJxsGvQYznenNQ==","signatures":[{"sig":"MEUCIQCJQ9tT42rQdAV/8FlyzlJfxQMsH8K2kNBmSrnvgfmhNAIgFtB4Pkzp7sQf2FbYCEJvwGWPSXDqDlSsmnlkmywQBss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16754},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"7032233709a213d72590b6c94edf864c56969d99","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.1_1700358888807_0.8032106869782718","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"fods","version":"1.4.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"cd32ffb7edac8aca3f06447f0dec37bea62b1a8c","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.2.tgz","fileCount":4,"integrity":"sha512-snVf+sJiTmN+uHW6kB/4Cyq58RkY6i5hggVrBfbi15niDPXEHzitUnoi/Vc47xx/eOyInpemuOCVzYDx7AEj0w==","signatures":[{"sig":"MEUCIBsAzyp9Sq3HqNF/dfe9jRT4xDgX/RJVlEAPEum/FSdNAiEAhck6MHYtyHmCLrLY/9XMh1+2+fd+0bLPhiKRGnI9RKU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16755},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"9c1d3e85443f1af4c642d3846c9ecdf53244e0af","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.2_1700547297371_0.9555829312989703","host":"s3://npm-registry-packages"}},"1.4.3":{"name":"fods","version":"1.4.3","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.3","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"0fa649809899ecac3dc2a2291c11055867dd94db","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.3.tgz","fileCount":4,"integrity":"sha512-yCC5yyqX//MeGarZxHHiED9MWyRhuKx13tIPs1nCOjtiXx0mHgf2Hhxo6nTDpy6EggzMXk/Nm82qAPo4iVQWcA==","signatures":[{"sig":"MEUCIFsg/i2Gm1KM8VEURy+oWDPrcIpxcCscQpV3+BDO3xTsAiEAiCoPFjqWrxMNGg870R+D5jgHeksysLtWF0P38G2vGng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17014},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"a65f946d9f53b59fa10cf5945ce1bc992f62b113","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.3_1700625334906_0.2038510921520975","host":"s3://npm-registry-packages"}},"1.4.4":{"name":"fods","version":"1.4.4","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.4","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"250e59f1d66868010c6a8f3d77724857243f76d5","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.4.tgz","fileCount":4,"integrity":"sha512-dxCURVM0fTl9GPngDT40sXq8GcMkUTEdLzQIxV4E/1vhdAXsmqqEfKk7W7RIHK70XtP4bHuA4HJDWWBWHS4YGw==","signatures":[{"sig":"MEUCIHTcRlkg3cnUhoBztQw891Y9loRbSP8PuqGD40+AvOxEAiEA94YvT84fnsvSkZNwEkvhpddKrcd0QFkHbop8TW5YOXc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17045},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"9656482396cd5569572abcb59f4de5df19f857fc","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.4_1700725694422_0.49393851250827203","host":"s3://npm-registry-packages"}},"1.4.5":{"name":"fods","version":"1.4.5","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.5","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"294304cc96e2fa9fc04d20640d06cf17ec85543b","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.5.tgz","fileCount":4,"integrity":"sha512-1pGEx+oCL/096eYJR4EGQ5NyrFO7CdePWwLjEMttFQ82BgDZCrxvCL9V4hf4Z1MSv7d7PqC07H3roDC15Hayhg==","signatures":[{"sig":"MEUCIQDoq/YsoT3rhtcq+IPZCU+8fPKNK6rJFlj3cz9/FwiisgIgT2KE+FCIN7IPOdwD4VQWr0AHE3P7MGzjfHJbvlnbRBs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17048},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"eeb6341c3b36d6277ef043c3b07d5c8f47fbbfe8","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.5_1700737994990_0.6063016000633517","host":"s3://npm-registry-packages"}},"1.4.6":{"name":"fods","version":"1.4.6","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.6","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"cabdf17af5686325d21ddc1d0c0cbc7a1ee67075","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.6.tgz","fileCount":4,"integrity":"sha512-2+BB9xidVAG09vWeFPLcfF57alKe+nSx8W/oLsfW0csaEX5s98Vi2xfIcbNcq8s3gOGip+5N+cztNinZrb8EDw==","signatures":[{"sig":"MEQCIH6Js1UhlEIDZoVfpH52BvXAqld+CnqSQsS3YYkAuq/jAiB6THZj8U0jG9hKwHR/S6gIwCX5ySl0SoJ85gMjVsM1+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17058},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"5ca583558e1e4783de455be035d24400b8f8f653","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.6_1700741116364_0.35680367883674724","host":"s3://npm-registry-packages"}},"1.4.7":{"name":"fods","version":"1.4.7","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.7","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"6da4da860214fb7c2136a2f00abc18beab829f6f","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.7.tgz","fileCount":4,"integrity":"sha512-gYmwHXXFIGuzbRVHgXvfifOQuZiRRwmPpiN6i/qgPOvWAu4gm4wrDylc7+DyVvahotV9iGXMQDZnvnY+EXY/0Q==","signatures":[{"sig":"MEYCIQD2X4wD1G8KaiF/f1nH7ZIJfcqeR0jC9/JG0Hx5kPGTMwIhAJcVjdnuAKXrVCA1PyiQ3dHKZINFs2TrsQAlwuU+PqTZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17482},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"c55d2abda88ebb12eb08c7d7c4afe473aa2c0732","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.7_1700741905602_0.6027088482040157","host":"s3://npm-registry-packages"}},"1.4.8":{"name":"fods","version":"1.4.8","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.8","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"a4b427fc7d6bc4ece64944a103e77c857912aea9","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.8.tgz","fileCount":4,"integrity":"sha512-lg6Tj/ggrYa2h+pSnwpuanFmup6k28xGWp2IQabw4jbGMLbFRCTIDHQ+2lffK6w6h7F0Vv+VQxwsU4L2AXGS0Q==","signatures":[{"sig":"MEQCIF5+A/Em2SKPs2WvmZtw1x2u/FLOjypsptygJVKYn9w8AiAHKxa4t24yxEVWc6NV4VbGDt5CGetnFXeW/Mfgr1YnjQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17518},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"50afc73f22bfce2fbc1f354f39f67e956848b0f2","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.8_1700745632976_0.44050143930794916","host":"s3://npm-registry-packages"}},"1.4.9":{"name":"fods","version":"1.4.9","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.4.9","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"11460a596a9b57b3c39f563861e6db5930368e82","tarball":"https://registry.npmjs.org/fods/-/fods-1.4.9.tgz","fileCount":4,"integrity":"sha512-kXW0vetktqYdVIRPZ7wP2qRvPqgqZtpNz1Xn7AmKqMC0hctFs2I3sU7y6LLv1jGsete/Dp4D+JWjfqzl1Ou+VA==","signatures":[{"sig":"MEQCIEa1hDQ1P67MCdLmdNKGNaD0XeuYhpZveBbR+qqmI3piAiBPF4CYLLIjJE33s15vxokBLQ0+ccocKe4FBqdeYQA3Cg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17532},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"73f5cdbc79919b671f27104b8cef51df52727c11","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.4.9_1700792216350_0.08847820386859984","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"fods","version":"1.5.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.5.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"c2a62a547451458bd802a8283a24680411dc6866","tarball":"https://registry.npmjs.org/fods/-/fods-1.5.0.tgz","fileCount":4,"integrity":"sha512-d6Od7xtN/PqIDzCJ77mPZG6DlVLqqcTScaQv8wO4v+BOl1ZW2d1LgBZubqwWumxaBOD4NjhH+GYoWyawfGkN9Q==","signatures":[{"sig":"MEYCIQDXwRqFZl/C3NcaY+avXcRBFkmzfnBP4shqqKUsa8vP+gIhAILLaZsLHlZxGm9Gyrp8/sbj7MKx/0ma0Zxu8j/8OWrb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17696},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"4826d428da13e308308adcb9ff7a41d9ec9a0fcd","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.5.0_1702435651345_0.054067708126513736","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"fods","version":"1.6.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.6.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"481274daa9a718a6050403fb4ca1db8ed92302f8","tarball":"https://registry.npmjs.org/fods/-/fods-1.6.0.tgz","fileCount":4,"integrity":"sha512-nYpu5GZMPx6yCwg6y5uJzgrS4j7NQkcLIN2KvBjhBEzrmcODD5DlgR4xWPe6YGu8El+WYyMMuRkwfcOf+u2FBg==","signatures":[{"sig":"MEYCIQC50FeI7vAMsDCCbSCZiqJo1q5tHJmcnkxip0hmLOdGGwIhAOPs1ueJhc2vZnsqPo+cUIfvmg33nUSlBOEqI3l5DKG0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18720},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"a078e6d6c00e119a8fce99bd3e15fa36bc82d303","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.6.0_1702439257251_0.842389006702883","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"fods","version":"1.7.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.7.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"aee2c0e7e88031491a52bd5a7e37640f0b51216d","tarball":"https://registry.npmjs.org/fods/-/fods-1.7.0.tgz","fileCount":4,"integrity":"sha512-bfg6lndkMtqw2q2PGzFdcAA5hT2Lj+7Ts1XT4XqXkZFbodPXoo4+gYAOF4BWVNYf6X/9XQis30G1upDohqWMjg==","signatures":[{"sig":"MEUCIF+0/W/KL6K0I3Zs1ygH4tVlZRJoslBel57xs/fjdD/hAiEA7rVLe4FDIH8tOKjxxMmI3PjM3TaU8E1XQpfnmQnoXpY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19148},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"4181bac363437b8cce365807625a4088f8a97419","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.7.0_1702442570511_0.20955964189537535","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"fods","version":"1.7.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.7.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"24538d99f53848cbb69faecb714bcc0067c14599","tarball":"https://registry.npmjs.org/fods/-/fods-1.7.1.tgz","fileCount":4,"integrity":"sha512-5aNNzloYl4pec9q+mmtsgRZJ/kukh63h6BG1HfYWU9BUQmQ1+isp6CsGv2BgvsUIvC4pjD6Wgt7q7/2+KYrIxA==","signatures":[{"sig":"MEQCICn+4ciucM2go+u6nQWodbwOh4UUu1upvDcNPSD8gzJGAiBtmJJUDRz2HJXlN6kyXBJ8u09BDc+gkrhpxuB3zbjQPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19148},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"2b5ef03838e6567d7e84662b47eb67b8b5c19b5d","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.7.1_1702574178163_0.7128680776236407","host":"s3://npm-registry-packages"}},"1.7.2":{"name":"fods","version":"1.7.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.7.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"73b42b2b725323741cc1ef97f72da6cad69a61f4","tarball":"https://registry.npmjs.org/fods/-/fods-1.7.2.tgz","fileCount":4,"integrity":"sha512-maw/i47wAPckwy73YWoJ90jDblAbTL87DWB9wlBIzDbzT9VTv8ofhKB9xbogXVkawelRYMJEs91GUXq67GqsKQ==","signatures":[{"sig":"MEUCIQDdZOqsM6+sfoZAmRWQjIaVUQrXHqnHHegkDxva93CAdgIgK/D+Wq1UWl3DnpqDg4qp3+H6pK1PY2kAK3aZXVXs9f0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19148},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"03aa838f63cd6c76038313eb420ecbf882b055dc","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.7.2_1702574423308_0.2064473913457443","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"fods","version":"1.8.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.8.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"0eec7b8c96e307543ec43b29340f09678512c34b","tarball":"https://registry.npmjs.org/fods/-/fods-1.8.0.tgz","fileCount":4,"integrity":"sha512-90oRaeWyGQFD8OrmiTvYJvrpsPjD+unV+THYJ17Pv655VXhFT3hwJYv6rCKELzWdv0ylQkwOq3UlKyVG1TbdOQ==","signatures":[{"sig":"MEUCIQDbJk53GKCnO1g3ceu/bIH5MvwMhyvIW6ViE4OPquBVHwIga3lC7grVq59dRsv5fUY8GnceQsDU3MP45nKqIE+9b/o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19536},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"0229a7b310328b6930c837751cf47d6e314ad9f5","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.8.0_1702607416021_0.29434066120292335","host":"s3://npm-registry-packages"}},"1.8.1":{"name":"fods","version":"1.8.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.8.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"eaaee35aba2736eb736ddfb8d9de5d2fa5cdb054","tarball":"https://registry.npmjs.org/fods/-/fods-1.8.1.tgz","fileCount":4,"integrity":"sha512-LIdsZ5zwOm2T2chA8HYrGDicughjFRnSmb/87vJi/jg0IP++LMrFnqqZ+Gwz2VP+7sIcwNJ4IjlrRq68PHosRA==","signatures":[{"sig":"MEUCIQDssoFZmqXrzYQAusP1mBzapfjkFcifpfHxGGfJQnFRggIgBH/nTPhzwTXh87bnuxzTcVvJwly4wc43Hn8wBdsYRk8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19848},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"f867b5546957f908b2d0a0f16de02770c8f3ceaa","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.8.1_1702607940875_0.2990094819898168","host":"s3://npm-registry-packages"}},"1.8.2":{"name":"fods","version":"1.8.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.8.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"c33d10f93e35c98c11d7994003aeed29b3eaa8df","tarball":"https://registry.npmjs.org/fods/-/fods-1.8.2.tgz","fileCount":4,"integrity":"sha512-SVvifEic+JT3eIOOmJUfXDDHoCZzkoLV5hBrNARlA1o3b274YAIwwsRth+VVVeGkNPCvsWfGnPdcX7TnXT/pKw==","signatures":[{"sig":"MEUCIQDqHeOe/AK1kf8JMEXOR5NzzvKlURP3QBoh6oRVaLVWngIgTWMLxWOVrRsH7hKybSx7J5x53eM1GYAccfGyZ/K1MyI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19845},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"98ab6322a9e7f0ed468d49256dd8a30c32861138","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.8.2_1703574727091_0.0155351127630321","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"fods","version":"1.9.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@1.9.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"b23dd3c3bb2924107e9e945aa4f43c8652df2ff2","tarball":"https://registry.npmjs.org/fods/-/fods-1.9.0.tgz","fileCount":4,"integrity":"sha512-M9vlXhEjzvWloUFSnzV6f48+MFim8P9c3b3HZa1/4T7lQ+5cKFjUIg6jEjIjKbuGeex6cAvGUKvRoR+g5fxzig==","signatures":[{"sig":"MEYCIQDyKyutfNXamp/9XgPKnIMYEiKrvd/7rgMKMhxUHAqTVgIhAJI1LqbjlSxGQLHHQtgDD7z7zydI1uC6c1ToFZWyJ5EF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20182},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"c3a46b492b1c7dd30d678fad9aafda824018ec27","_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fods_1.9.0_1706009093504_0.7250952110344133","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"fods","version":"2.0.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.0.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"ce54add033f3674ac21366e0ef8ee4848eb15b2f","tarball":"https://registry.npmjs.org/fods/-/fods-2.0.0.tgz","fileCount":5,"integrity":"sha512-4KMi5QgtSMJA+NHMoJydFBjAv2FoPFnx5ghEOop31a7B9U9d+XfbUQvH2l7QiO/+Q/7Y2MJekQSkWsfH9Ob7Sg==","signatures":[{"sig":"MEYCIQDI065uWPNFTxWSOmONA/4D/Xnmw4gPtYWjmRURw0aqZQIhAJfd4wdAICQwn8ddYFnUehx3FloUxlvcfubiLFtOY3Vq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25001},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"37275189d83411cea440ae0bd191923f8f2bde59","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.0.0_1710228367786_0.2256518020607725","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"fods","version":"2.0.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.0.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"5c399c73aa7ed8988e16d62399a8c58848ef41db","tarball":"https://registry.npmjs.org/fods/-/fods-2.0.1.tgz","fileCount":5,"integrity":"sha512-Sy/AZHXMJu6Fh+GIdIBtp/ErmnEl4M0FOdnOOS50NDBcn0dklq0dZhcMrUlJI2XjCt+tjJChyXLioWjZb8q7Lw==","signatures":[{"sig":"MEUCIQCb6l7ZCyodgFU3Foq8LCXGLGt2cR6C++iPAP8/LkqLXAIgXqSBdpMz1Z2a9cWDGoUMWyMiTSeUrahgF8B1EFAqkQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25107},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"7573068d6f7fb8cb35a671b42bd7421c4b402703","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ts-fns":"^11.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.0.1_1710809287803_0.7467989538021309","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"fods","version":"2.0.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.0.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"aed9233fda0585418ab671179641305e14049753","tarball":"https://registry.npmjs.org/fods/-/fods-2.0.2.tgz","fileCount":5,"integrity":"sha512-YzFyenXdLX1wyDgmKzM7Vvpcy4UUlNLxuiPsFHPf5NvLrbf+gXtohf+uA5Tc9Hn7M11ypEDQ+RMb6ompyjiXSA==","signatures":[{"sig":"MEYCIQDf9e9rzXK+Vny5pkQsFcw4WRZxd69ouXk11mPT6jWUkQIhAKvncrOQNwyUFPAAOMIfqevNjCdcsj24xYWhK4mMmhiC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26910},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"2d4cef96c702a329448430401f4b1c389e1e9618","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.0.2_1710809723806_0.04729165380932154","host":"s3://npm-registry-packages"}},"2.1.0-beta":{"name":"fods","version":"2.1.0-beta","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.0-beta","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"6c9a29aebd768c5e3e005869a69f5b8482d79768","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.0-beta.tgz","fileCount":5,"integrity":"sha512-fvxt7At+ZwkD0A+TTKxocsxAqTCzG2XHretxka066Jwtnn5IUyFYL7j97l4LirGIgFH/x8ZJdIgc3azqpwsm2A==","signatures":[{"sig":"MEUCIQDrTf3t77+pQWPZu6SMXc9dvHxy4wiREn2jAoiToyne3QIgYL4cYh1CuLaRSMpdsFiLOA6rJfkzl7gmpIYMA3l3B1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27927},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"7de11d453d98ee26143666660cbfa7a8cc5e9cd4","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.0-beta_1710850846861_0.36556815371791873","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"fods","version":"2.1.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"dist":{"shasum":"41d0599829224e28e6ec3b6a6b59cfbf6ff588c6","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.0.tgz","fileCount":5,"integrity":"sha512-orFu5i6qVKGEX9aNsHIyGGRyFVW3vmXSF5XFCDbdmm3Vkl0Q37K8jfBAfuoMhK+NEgCHTbyxEwqBtx+414QC9g==","signatures":[{"sig":"MEUCIQDqAZFJnmKnFsAkJQim7fhv9W216UwBKEIdV3hgoJ1IbAIgKvhxVGorAJnStvnGZFdMLsiwhAOOKxR8m5RBVLIu0SM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27922},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"34dde2b838e611661d48ed9b6ae9a6439932baaa","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.0_1710862280864_0.6436741971351181","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"fods","version":"2.1.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"b0b9760a9094cb0f128d2c39a5e823a38fcfda08","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.1.tgz","fileCount":5,"integrity":"sha512-wc0NBZYT4I04OQCBZnh6vhp/f39unUE53hHW7XxG5BpRblrQAH3BVSX93erj38M18IwF7cPd4HUAzC5RehcLxA==","signatures":[{"sig":"MEYCIQC/t4CIWUeS4qzSoj16swJ5hqiSMW5jusMbjizIkhRT5wIhAKXvIG9tpWpz3xVuIjPrDPQF5NZdeAEbtA9WSs5Vd0nQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28015},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"2faed1e8bda903243e7383e69ed732e384d7ed80","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.1_1710863491886_0.44093470897008524","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"fods","version":"2.1.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"47c8ccf9e14ff41c4a7baac2cba6713ceef73084","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.2.tgz","fileCount":5,"integrity":"sha512-vBWc317NAjAbs+bwMRLwzq5rrMfEq9fn6e78I97xOLqWqVB0809+ctCYcdOwL+yYqwbiRibj1FX/CcRziUiCLA==","signatures":[{"sig":"MEQCIEqWyqoSQ+YUaJyKmLFGH7Clquh3J2oHfNU88VQHaulSAiAStFzB9ASTnc+UX/5w/UnnK3Xe5FQ4ZRYdvKRez+Wfdg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28015},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"ca2dec9e4e1286001d6c8e98cc00b71d54f8f275","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.2_1710896929485_0.9811709791922472","host":"s3://npm-registry-packages"}},"2.1.3":{"name":"fods","version":"2.1.3","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.3","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"983a55cbdc9c28d936241d4460e20c0d6e0d93e0","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.3.tgz","fileCount":5,"integrity":"sha512-a17jI/eVp0XCVNk6dAAfDPymPtz1MQErPhF0cZ3rKVwLaF18FJTvf03L6uGHOkDe4SJEZ1F5CpGd0KLP0mOfwg==","signatures":[{"sig":"MEYCIQDzMwdtCBwVT5GUP9vGPTxZgDgBl6vQGXcGDQnkNOM9ggIhAMnelH1m7XLZp3QU8F+3usJym1S5cmESYLR4SuAFN1n3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28015},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"fff05686cca174f5827a7fe9a750e4648c1d8bb0","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.3_1710897116193_0.5495042922019135","host":"s3://npm-registry-packages"}},"2.1.4":{"name":"fods","version":"2.1.4","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.4","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"c7b1b8ea61344d336ffbc8bf751dde336347008c","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.4.tgz","fileCount":5,"integrity":"sha512-MYMFh0JCRv/siGTKAMP7bCA4Mdk6NfTagPuH4rddA8bS+x2B5PEKFuFw1EO0KasZAfEYrBueRVShpLPa7FFbRA==","signatures":[{"sig":"MEQCIEUqLvCI9ijHpZ4RhSWcV8ztmKBuE1cKuYUUukJcaoXNAiB7eaK7NC7DYw/k7uxxbwsLUuSMOHiIPn/xfj6vtirfKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27650},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"da79737b757c9c87c02330acd3f6f61f866851de","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.4_1710905757496_0.7203632360608736","host":"s3://npm-registry-packages"}},"2.1.5":{"name":"fods","version":"2.1.5","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.5","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"b4889b9b5c948fd6ffcaa1fc87d93283cc30f194","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.5.tgz","fileCount":5,"integrity":"sha512-u0sLWBOcu4TRHIrFpnQOFT+2GyhXRmsHUEOc5+fPXY5EsvfYlUhaji+QRGpIGe5Ivq3RPD3ORoy2Av0RgAAeog==","signatures":[{"sig":"MEQCIFlgqTPHX1q0auTOs/EStxG3taoX9XcPiGi9SRHvVAqjAiA24inPOLxp+BsWSMOShbrdUu5BZW96HXtIZsBM4ahFBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28038},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"d0af9fa423871cd2e1ad3019896a8675a0aaba55","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.5_1710917270406_0.671451723022922","host":"s3://npm-registry-packages"}},"2.1.6":{"name":"fods","version":"2.1.6","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.6","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"5111cb136c0651acd1d0606ff55cf7608ee40176","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.6.tgz","fileCount":5,"integrity":"sha512-2p3k+qq3pfkGEF5nUyFTpnbRu8Qggo4/B2qjlr4RTQVQJLZil0ccmcFnVZQ/Oh8AxMNZ5DNgJDgIHFEJOYxyIA==","signatures":[{"sig":"MEYCIQCgCd/wal5sipshusDZucEZn4k90uXNnMYo4xXlUfcpMgIhAOye+Oym57mL1se9BFYd360igaJnz4bWY4L/WsVkJW7b","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30808},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"1872c551ec61256a25f04b29def1fc83c0474bce","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.6_1710923465107_0.23554425578335314","host":"s3://npm-registry-packages"}},"2.1.8":{"name":"fods","version":"2.1.8","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.8","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"7a91af72654e83136f13018d0abc322acbc1c99c","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.8.tgz","fileCount":5,"integrity":"sha512-4ODOJZcteuiAmvrtev0syDXkwGpYgaB4F8lSyo/x0KxHGeBdMIDu5RgZBd7FO0RTe8Whmwgc/x19fcWTV32IBQ==","signatures":[{"sig":"MEYCIQCCH3yiUQ9CesuRszeD99ac0wB2FIAobDyTSW/3ADgFTwIhAOcOCpcSMGwUzRM8tLzTvyr3QSUuAE9j7RJS2q0IX4Xz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30854},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"2ffa40b8c7a88af8954e877a7629122b8e275ebb","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.8_1710924343972_0.5940377966393737","host":"s3://npm-registry-packages"}},"2.1.9":{"name":"fods","version":"2.1.9","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.9","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"5d0be54bc832cd54e02496df7d387094bbf4911c","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.9.tgz","fileCount":5,"integrity":"sha512-ZkNzroX3hqmJuYRRtu7yvsqbBziABzKScFenMfy9s2M5iARFO52ErYDI+kqNLz3ykSsFEZ6ddoduTlFwe7NjZw==","signatures":[{"sig":"MEUCIQCgsqy6RgLYKQOshXVCwvRuCgEEQNKdWdtlpTieoK+eEAIgXCdcHT2Gj83re2qE/knZT5Su9sE68HdWLmi2vNjEAMI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31325},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"17ba51f72f02a0e359c32b28ee6f2866354a4e08","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.9_1712741660967_0.6948917903505569","host":"s3://npm-registry-packages"}},"2.1.10":{"name":"fods","version":"2.1.10","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.10","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"028fcdcb9d029f57f9615002fbbc09cea901b5c2","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.10.tgz","fileCount":5,"integrity":"sha512-8Ut7VFGMBBsEsaMsYuOp22Cv5c0fN12VmUjZ2pHXOSAzzqbnOTIIK1PaWFSw0lsKpKzwwc3HUqasm3J+qYItlw==","signatures":[{"sig":"MEYCIQDIaKsfd376sCqAyqXheZ0GyqZQ39KCSBXkye7avQsKpAIhALRyU9imgauGId3iHeSJ0XLPNdNobReDA60VB+z0reRz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32389},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"7890e8c06ceae0fec1156aa39dfb2b30885ff6f4","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.10_1712856067693_0.8987420601544172","host":"s3://npm-registry-packages"}},"2.1.11":{"name":"fods","version":"2.1.11","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.11","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"e5e8e60bcd462ef8505b7bcad9b7713f9b6db039","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.11.tgz","fileCount":5,"integrity":"sha512-Z+GAtwQHdfTKqoZ1J1HkGdTl1pH8+mSwEOL4zN3D/8YAI6wZ2Bzo9xmxmlRjaYhnhMo7egq7NmyD1TMbfV+wjg==","signatures":[{"sig":"MEUCIAcFCkkYtmKLzhWfFMz1jSDLw3sMVXp/kKDEPqNj1mT8AiEA6YBUBx2I8KApTauM/OKI8cTwDqN35TvTKZLfvl1t2eA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32389},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"8244aadae6c894c4acd016beb12311a85ed1e011","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.11_1713221511528_0.4005249115856324","host":"s3://npm-registry-packages"}},"2.1.12":{"name":"fods","version":"2.1.12","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.12","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"ff74803aeafb61fc3bbe19133263c8ab96285ddb","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.12.tgz","fileCount":5,"integrity":"sha512-zL4kxLYtXa8SxmLWDeSLrPDfqtJoG2pCq1flyCDdttDO0lyAKD5Cr+h2WfLDhiy8E7/ZwEIF+motKCFHtzhrRA==","signatures":[{"sig":"MEYCIQCfLBsFH4ni1kvp4e22XcknWvdrPQzYT7MX2wQPUWR4GQIhALLuqP0gmZKBIyLVBg7n4n62BJszQXzqA3Bi0jyMjR8U","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32319},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"a5af18c543d7ad867e1a53d6c7101a68a027effd","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.2","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"18.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.12_1713891232350_0.19069933410407236","host":"s3://npm-registry-packages"}},"2.1.13":{"name":"fods","version":"2.1.13","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.13","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"ab8ce7d5711eede1625484111af5364597bf12b7","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.13.tgz","fileCount":5,"integrity":"sha512-0vQPcyJFwKEQw6xeI7rqS31CGlJd/1lQsUENDnM/kd/WMp+HOk7DUGVoTGC7JiEUEwPvytlwsnYhdp/zyVl2XQ==","signatures":[{"sig":"MEUCIG0L1zQy8+/zehNpfl+CbvoYg0eZPUDb4p0lEVyt6a7TAiEAxMGzuHbHsP9Q/VgBB9vPbzd4a5u4IV51CEyRanZWgu8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32319},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"af7dda9c54e3baf2c93f37b555ea45d70aeda15b","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.13_1713937833654_0.7436930086951714","host":"s3://npm-registry-packages"}},"2.1.14":{"name":"fods","version":"2.1.14","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.1.14","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"204b237008c6fc26e3a3189c66b206e985857197","tarball":"https://registry.npmjs.org/fods/-/fods-2.1.14.tgz","fileCount":5,"integrity":"sha512-ln8fTW+6GRaXLSmQbNR6/m+5mlkBfXIJguTqsvmZb6fNXCq/GEjnucIIs12kHi0pda9f1YHoJA3IQNf+SoZEmA==","signatures":[{"sig":"MEUCIQDT+q8U6HalYTx7B0kFYdjBrTZhUOseLBq/AtQBPrIfsQIgXHAsC6WhPmHGcDXx0EoyD1bAp+1R8b/1TmNcK/KaDpY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32319},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"a2b38834c085229601a1965b050c06a3f475206e","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"8.19.3","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.1.14_1713938735313_0.3087570184643862","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"fods","version":"2.2.0","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.2.0","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"7848d86ebeb08c05039170b3ab2a15af54d46ebf","tarball":"https://registry.npmjs.org/fods/-/fods-2.2.0.tgz","fileCount":5,"integrity":"sha512-Wg4/fAyZV9Zv20KxpC6UHdi5piORzVRjoqEXYZtJIiaKEZ6Ks6/8yU0ac8aDMQFS3ObXsxMEinK7bPcEMQXvOQ==","signatures":[{"sig":"MEQCIE03s9DzC2q4wIpGwWUuuLxUUXNVXswl1PP8AUvIyJdwAiBcpypwZIY8xdsRBlI3s4sWwS1Sa+Gl1M/merVwOudDOA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34925},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"b0fd1c592f1849eb2672d2e1e1164ef0e9bc8137","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.2.0_1730784461294_0.20528600880855663","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"fods","version":"2.2.1","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.2.1","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"ee47e763fef0f93f13d392cf2beba9055e45b10a","tarball":"https://registry.npmjs.org/fods/-/fods-2.2.1.tgz","fileCount":5,"integrity":"sha512-BH8jFAv/LpD1kYGsioj4SFG+TdtY6W/O072anQCPJtu3MwcPAWyeSmCTcrM9z6BbEaIWT791Nb5lJs52vV5HxQ==","signatures":[{"sig":"MEYCIQCFgf7FVcL8rVOVV4Ln7k3E3/G/lRE5KENOhsw7G4R1bQIhAIVnLL60VM0iV6PBEEK5WgNHaNDnCKWVp2PMuyqRdumO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32969},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"73f57a7d270b8ac111d7334ea84dcd51d0416c29","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.1.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.2.1_1730788483625_0.9706880425889877","host":"s3://npm-registry-packages"}},"2.2.2":{"name":"fods","version":"2.2.2","author":{"name":"tangshuang"},"license":"MIT","_id":"fods@2.2.2","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"homepage":"https://github.com/tangshuang/fods#readme","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"dist":{"shasum":"3fc4f747986e27347c31acec9004aca2dcaebac0","tarball":"https://registry.npmjs.org/fods/-/fods-2.2.2.tgz","fileCount":5,"integrity":"sha512-E64drrUlJMg6Na1ryVxnEwfKzKiDCl838IOniQmZ1vKOl5vM8a8lyk44V/IokKIIoU2srKZePfKZH3AJRUN2FQ==","signatures":[{"sig":"MEUCIQCotOzRG5/UzsaO4meCnuJKJiUylYPyFsarD3njYi+iPwIgDRfB2y35ltwwHcfcxL4O5iVN/h1ANcI+Zrkou1l8Zg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32969},"jest":{"transform":{}},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"3f13b8b2185fc21a9449c3d285b02d15bb8c36ea","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"repository":{"url":"git+ssh://git@github.com/tangshuang/fods.git","type":"git"},"_npmVersion":"10.9.0","description":"Frontend Operational Data Store","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fods_2.2.2_1740294512379_0.5272659858997772","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"fods","version":"2.3.0","description":"Frontend Operational Data Store","main":"index.js","type":"module","author":{"name":"tangshuang"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/tangshuang/fods.git"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest"},"devDependencies":{"jest":"^29.7.0"},"jest":{"transform":{}},"_id":"fods@2.3.0","gitHead":"a7aef0baf92d29076606e0a97a9d3233a1fbefaf","types":"./index.d.ts","bugs":{"url":"https://github.com/tangshuang/fods/issues"},"homepage":"https://github.com/tangshuang/fods#readme","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-OzFoGGvRPCTNbaVaN2HSa2h6gSmo1X0DQopm1DGL6AYc1W7iv3h5zP2092yvWihU2Qe7dGjLelTKYWfX5ikAUg==","shasum":"c3a809eafdba2d8b09b85777d4bc140c847b1d83","tarball":"https://registry.npmjs.org/fods/-/fods-2.3.0.tgz","fileCount":5,"unpackedSize":32969,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICRymvGFwZW0HNlJvqujJ+W4xrzfzTaiuk8j42qfOMXsAiEA+n29NSkv+Dd1NVaPJ6T49IOzs6ChDgFkV1HSlS6KWw0="}]},"_npmUser":{"name":"tangshuang","email":"mail@tangshuang.net"},"directories":{},"maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fods_2.3.0_1740295993427_0.16731949858766204"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-16T18:07:04.183Z","modified":"2025-02-23T07:33:13.765Z","1.0.0":"2023-08-16T18:07:04.368Z","1.1.0":"2023-08-17T01:10:59.778Z","1.2.0":"2023-08-17T02:30:04.190Z","1.3.0":"2023-08-17T03:09:56.983Z","1.3.1":"2023-08-17T03:12:18.635Z","1.3.2":"2023-08-24T13:46:00.283Z","1.4.0":"2023-11-14T03:47:19.467Z","1.4.1":"2023-11-19T01:54:48.978Z","1.4.2":"2023-11-21T06:14:57.530Z","1.4.3":"2023-11-22T03:55:35.101Z","1.4.4":"2023-11-23T07:48:14.603Z","1.4.5":"2023-11-23T11:13:15.141Z","1.4.6":"2023-11-23T12:05:16.492Z","1.4.7":"2023-11-23T12:18:25.824Z","1.4.8":"2023-11-23T13:20:33.139Z","1.4.9":"2023-11-24T02:16:56.492Z","1.5.0":"2023-12-13T02:47:31.488Z","1.6.0":"2023-12-13T03:47:37.433Z","1.7.0":"2023-12-13T04:42:50.702Z","1.7.1":"2023-12-14T17:16:18.317Z","1.7.2":"2023-12-14T17:20:23.489Z","1.8.0":"2023-12-15T02:30:16.157Z","1.8.1":"2023-12-15T02:39:01.055Z","1.8.2":"2023-12-26T07:12:07.269Z","1.9.0":"2024-01-23T11:24:53.646Z","2.0.0":"2024-03-12T07:26:07.947Z","2.0.1":"2024-03-19T00:48:08.005Z","2.0.2":"2024-03-19T00:55:23.961Z","2.1.0-beta":"2024-03-19T12:20:47.039Z","2.1.0":"2024-03-19T15:31:21.063Z","2.1.1":"2024-03-19T15:51:32.102Z","2.1.2":"2024-03-20T01:08:49.667Z","2.1.3":"2024-03-20T01:11:56.356Z","2.1.4":"2024-03-20T03:35:57.634Z","2.1.5":"2024-03-20T06:47:50.559Z","2.1.6":"2024-03-20T08:31:05.286Z","2.1.8":"2024-03-20T08:45:44.111Z","2.1.9":"2024-04-10T09:34:21.108Z","2.1.10":"2024-04-11T17:21:07.852Z","2.1.11":"2024-04-15T22:51:51.683Z","2.1.12":"2024-04-23T16:53:52.522Z","2.1.13":"2024-04-24T05:50:33.804Z","2.1.14":"2024-04-24T06:05:35.482Z","2.2.0":"2024-11-05T05:27:41.479Z","2.2.1":"2024-11-05T06:34:43.851Z","2.2.2":"2025-02-23T07:08:32.579Z","2.3.0":"2025-02-23T07:33:13.594Z"},"bugs":{"url":"https://github.com/tangshuang/fods/issues"},"author":{"name":"tangshuang"},"license":"MIT","homepage":"https://github.com/tangshuang/fods#readme","repository":{"type":"git","url":"git+ssh://git@github.com/tangshuang/fods.git"},"description":"Frontend Operational Data Store","maintainers":[{"name":"tangshuang","email":"mail@tangshuang.net"}],"readme":"# FODS (Frontend Operational Data Store)\n\nMake frontend data request more controllable.\n\n## Install\n\n```\nnpm i fods\n```\n\n## Usage\n\n```js\nimport { source, query } from 'fods';\n// import { source, query } from 'https://unpkg.com/fods';\n\n// define a source\nconst UserBooks = source((uid) => {\n    // return user' books\n});\n\n// query data from source\nconst userBooks = await query(UserBooks, '123');\n\n// update data in source\nrenew(UserBooks, '123');\n```\n\n## Idea\n\n1. same source with same params should return same output until the source is renewed\n2. same request should not be send again when the request is runing\n3. multiple relative data should have their lifecycle management\n\n> A store is a place to put data in local, when we invoke `query` `emit` or `take`, we find some thing in local store and reuse them, so that we can reduce the real request count, and share data amoung requests.\n\n## API\n\n**source & query**\n\nDefine a SOURCE_TYPE store by `source` and consume it by `query`.\n\n```js\nimport { source, query } from 'fods';\n\n// define a source\nconst UserBooks = source((uid) => {\n    // return user' books\n});\n\n// query data from source\nconst userBooks = await query(UserBooks, '123');\n\n// update data in source\nrenew(UserBooks, '123');\n```\n\n**compose**\n\nDefine a COMPOSE_TYPE store by `compose` and consume it by `query`.\n\n```js\nimport { compose, query } from 'fods';\n\nconst MyList = compose(\n    (ids: string[]) => {\n        // return result list array\n    },\n    // find value in result list to record cache\n    // if undefined, ignored\n    (res, id: string) => res.find(item => item.id === id),\n);\n\nconst lite = await query(MyList, [1, 2]);\nconst all = await query(MyList, [1, 2, 3, 4]);\n// here, we query 1, 2 twice, however, in fact same id will be query only once inside fods\n\nrenew(MyList, [2, 3]);\n```\n\nNotice, the first parameter should be an array, and all of items should be same data type. The rest parameters will be passed.\n\n```js\nconst MyList = compose(\n    (ids: string[], ...params: any[]) => {\n        return Promise.all(ids.map(id => fetchData(id, ...params)))\n    },\n    (res, id: string) => res.find(item => item.id === id),\n);\n\nconst lite = await query(MyList, [1, 2], 'var1', 'var2');\n```\n\n**action & take**\n\nDefine a ACTION_TYPE store by `action` and consume it by `take`.\n\n```js\nimport { action, take } from 'fods';\n\nconst AddUserBook = action(async (book) => {\n    // send save book request\n\n    // after we add a new book, we should renew the UserBookList in store\n    await renew(UserBookList);\n});\n```\n\n**stream & subscribe**\n\n```js\nimport { stream, subscribe } from 'fods';\n\nconst UserBookRepo = stream(({ ondata, onend, onerror }) => (uid) => {\n    const stream = requestUserBooksStream(uid);\n    stream.on('data', ondata);\n    stream.on('end', onend);\n    stream.on('error', onerror);\n});\n\nconst emit = subscribe(UserBookRepo, {\n    ondata(chunk) {},\n    onend(chunks) {},\n    onerror(e) {},\n});\n\nemit('123');\n```\n\n**renew**\n\nClear store and request again.\n\n```js\nconst newData = await renew(SomeSource, '123');\nconst newSubscribe = await renew(SomeStream, '123');\n```\n\n*Renew stream will not request again, only clear store.*\n\n**clear**\n\nClear store.\n\n```js\nclear(SomeSource, '123');\n```\n\n**read**\n\nRead from store without request.\n\n```js\nconst data = read(SomeSource, 123); // notice, without `await`\n```\n\n**request**\n\nSend a request with given source or stream outside the store.\n\n```js\nconst data = await request(SomeSource, 123); // without any affect to the store\n```\n\nRequest stream will return a Promise resolved when the `end` event be triggered.\n\n**isTypeOf**\n\nCheck whether the given object is type of a usable type.\n\n```js\nimport { isTypeOf, SOURCE_TYPE, STREAM_TYPE, ACTION_TYPE } from 'fods';\n\nif (isTypeOf(obj, SOURCE_TYPE, STREAM_TYPE)) {\n    // ...\n}\n```\n\n**addListener & removeListener**\n\nWatch store data change.\n\n```js\nconst listener = (params, data) => {\n    const [uid] = params;\n    if (uid === 123) {\n        // do some thing with data\n    }\n};\n\nconst unlisten = addListener(SomeSource, 'change', listener);\n\nremoveListener(SomeSource, 'change', listener);\n// or\nunlisten();\n```\n\nEvents:\n\n- Source & Compose: 'change' | 'beforeRenew' | 'afterRenew' | 'beforeClear' | 'afterClear'\n- Stream: 'data' | 'end' | 'error' | 'beforeClear' | 'afterClear'\n\n## Quick Use\n\n```js\nconst queryBook = source((id) => {\n    // ...\n});\nconst book = await queryBook(123);\nrenew(queryBook, 123);\n```\n\n```js\nconst BookSource = source((id) => {\n    // ...\n});\nconst book = await BookSource.query(id);\nBookSource.renew(id);\n```\n\n- source, compose => query { query, request, renew, read, clear }\n- stream => subscribe { subscribe, request, renew, read, clear }\n- action => take { take, request }\n\n```js\nconst subscribeSomeStream = stream(({ ondata, onend, onerror }) => {\n    // ...\n});\n\nconst emit = subscribeSomeStream({\n    ondata: () => {},\n    onend: () => {},\n    onerror: () => {},\n});\n\nemit('arg');\n```\n","readmeFilename":"README.md"}