{"_id":"@3dsource/data-loader","_rev":"45-55bf21572e227bc61cd1304a1ae78a8a","name":"@3dsource/data-loader","dist-tags":{"latest":"0.0.36"},"versions":{"0.0.21":{"name":"@3dsource/data-loader","version":"0.0.21","_id":"@3dsource/data-loader@0.0.21","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"87c69b6496bea9b2fc8ba95bea2806e85fe5a11f","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.21.tgz","fileCount":87,"integrity":"sha512-6HmMpTgYnlTx6RHM0WiRj3mOGAA2qPQVlvvqK2QAsbfYvL/UYhm7OFPG0X7RvTcdhcLxkUVVkWwTdGaXumZLVg==","signatures":[{"sig":"MEUCIAymHVd/4tpYPikr4XVbROFEDwgjOcsOogcL+N7EmcAjAiEAzeIrJwO8EpUpZDsBS42BNJIhmFTrRm/FF14SgcSNwtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146726},"module":"fesm2022/3dsource-data-loader.mjs","engines":{"npm":">9","node":">=20"},"exports":{".":{"types":"./index.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"bb15264c51d4008577c6e88adcfa048b0adfa560","typings":"index.d.ts","_npmUser":{"name":"flashpusher","email":"npm@3dsource.com"},"_npmVersion":"10.9.3","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">= 18.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.21_1755787967604_0.861229673009581","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@3dsource/data-loader","version":"0.0.22","_id":"@3dsource/data-loader@0.0.22","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"254554f27c3697214c3db8e9aedb6cce7d812778","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.22.tgz","fileCount":87,"integrity":"sha512-EiE0kCorMCMAFiPVGnouIdznR2Gs+Q9/mtbFIJIxbxw+iL5WoW20otlX2erl5+ClEzJvzjuQ0mrizzqMD3Gzfg==","signatures":[{"sig":"MEUCIQCg6wPrvdjZDbJHYOZjej7/LH6GvvXzhCRqsV1psMkO4gIgI+PTP7u9izd5s8yyDbj0JO21mvoPfBNU7l2PCOzbsKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146740},"module":"fesm2022/3dsource-data-loader.mjs","engines":{"npm":">9","node":">=20"},"exports":{".":{"types":"./index.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"80cb76910e90dce9b28613d9d514bd3a197fa28a","typings":"index.d.ts","_npmUser":{"name":"flashpusher","email":"npm@3dsource.com"},"_npmVersion":"10.9.3","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">= 18.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.22_1757592278296_0.381533834864368","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@3dsource/data-loader","version":"0.0.25","_id":"@3dsource/data-loader@0.0.25","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"63c28d57f05ccfa73daf71cdf061421f809b6015","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.25.tgz","fileCount":87,"integrity":"sha512-53Kuj+ixYKpJ9PTJbwj19vDLiL20B5dOCQ5ugscS+4zXvdr4aeaoAyqvqjxs+CkrLtiGy+OZ+29GX5TmCSDoSw==","signatures":[{"sig":"MEYCIQDpOnDuXpr0JH8d9YFNGXarfpJamkQnvL1M3RSRuGrcvwIhAOkzobs+NM/byCBKHdp7g3AOj40W/0AfX9HQ/cgZHQFE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147221},"module":"fesm2022/3dsource-data-loader.mjs","engines":{"npm":">9","node":">=20"},"exports":{".":{"types":"./index.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"860af516ba1f095f16303cb7d70270f02ef9284a","typings":"index.d.ts","_npmUser":{"name":"flashpusher","email":"npm@3dsource.com"},"_npmVersion":"10.9.3","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">= 18.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.25_1766090400282_0.06441895115323804","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@3dsource/data-loader","version":"0.0.26","_id":"@3dsource/data-loader@0.0.26","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"d746fb7de20a5b942e96688e58103631a06a490b","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.26.tgz","fileCount":87,"integrity":"sha512-NfgWycPtLxnVkGY4ly1HAK7TeHGd/gaFcgqLhTtzAJhEdMNrSUcc2kTk4wPVfX/WgtuqKXm/pnD6h5EP3YHMqw==","signatures":[{"sig":"MEUCIQDRekVv+BeHSAEURJvE0dmTziIAOkxyZylKvYWzDrS2VwIgDL4cTMFBDaT3IxEyYIb3+7k5Yun7SkjFo4RHplOML34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147611},"module":"fesm2022/3dsource-data-loader.mjs","engines":{"npm":">9","node":">=20"},"exports":{".":{"types":"./index.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"3855631922f841f93477b3452873e386e4743939","typings":"index.d.ts","_npmUser":{"name":"flashpusher","email":"npm@3dsource.com"},"_npmVersion":"10.9.3","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">= 18.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.26_1766149203504_0.04335419818999209","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@3dsource/data-loader","version":"0.0.30","_id":"@3dsource/data-loader@0.0.30","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"9fa2a97f9731b4104d2c938998513345a1fa9424","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.30.tgz","fileCount":87,"integrity":"sha512-UYLdQ8ypmjlEVGgtIijZFF5MpdfJBLzL3ZAdAgIGkeK00JoTbcOWYt1dAnAgcXxjEvy/JwlDWlC0yI5sw0VXBQ==","signatures":[{"sig":"MEUCIE0H6QNlZu5Lp/M78NybiNqlZEFDqaArmSdE7hG7FVbkAiEAzEm0ubQtIMWb5dSBLeiWqEYhiw5HqgkUzSCFLLfWtvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147687},"module":"fesm2022/3dsource-data-loader.mjs","engines":{"npm":">9","node":">=20"},"exports":{".":{"types":"./index.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"ce4c68b6a61db162cf5368f2d79b430f98246f18","typings":"index.d.ts","_npmUser":{"name":"flashpusher","email":"npm@3dsource.com"},"_npmVersion":"10.9.3","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">= 18.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.30_1766334671959_0.6679961467698443","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@3dsource/data-loader","version":"0.0.33","_id":"@3dsource/data-loader@0.0.33","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"3d921b49cef9cb9a4d7f130f73887c23689f9384","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.33.tgz","fileCount":88,"integrity":"sha512-LY/EquwNWtqWUDhq6HpE+4gVgmrcXPq+yd1mF31mFyY+iO08aQ+/4ZoAhU3FPpaWi1y6vUlIPtB4ISvMCT24cA==","signatures":[{"sig":"MEYCIQD0DO2sxf1Ot9q/fuwecKRdYNOX6l/IDSK7fD64bKPFPQIhAPJCy9DpBbZ0SZ1LiTFvlydjTTJbqiM/TKnQ5Qd6MDpZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139053},"type":"module","module":"fesm2022/3dsource-data-loader.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./types/3dsource-data-loader.d.ts","browser":{"types":"./fesm2022/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"afd6b9b10e8faafa1f65e695f99af681fcb4b1aa","typings":"types/3dsource-data-loader.d.ts","_npmUser":{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},"_npmVersion":"10.9.4","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.33_1780577204136_0.2748386548176047","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@3dsource/data-loader","version":"0.0.34","_id":"@3dsource/data-loader@0.0.34","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"}],"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"468ae3d9020e4e11550b2ce6b217482d83bee2a5","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.34.tgz","fileCount":89,"integrity":"sha512-VEE/FwT3INycx3+5uQfmFQwP5C/FhWg8XDRVAv3TLAYKh3Jh2Hg9t2IG4jlCkkJvbtf9EypuTPyNB3h4JHMqWw==","signatures":[{"sig":"MEYCIQC2dPYp8DMcBmqlFn5osIZbN4tvj7oXVg8XsfONwLYFowIhALxyajhE6wW95Z/5KZe7B+Ae7tN+TdrDIQDehUCzdXro","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141947},"type":"module","module":"fesm2022/3dsource-data-loader.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./types/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"gitHead":"461a5c11de8a72d72c02055a296b6e65f5fdf49b","typings":"types/3dsource-data-loader.d.ts","_npmUser":{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},"_npmVersion":"10.9.4","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.34_1780648985029_0.7917994941872943","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@3dsource/data-loader","version":"0.0.35","_id":"@3dsource/data-loader@0.0.35","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"}],"homepage":"https://bitbucket.org/dreamsoft/front-libraries#readme","bugs":{"url":"https://bitbucket.org/dreamsoft/front-libraries/issues"},"bin":{"drive-parser":"node/DriveParser.js"},"dist":{"shasum":"bca2e6c133c65dba4a38f95c0df9317fc4cf3d69","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.35.tgz","fileCount":9,"integrity":"sha512-aUMi5HCnS6YHNCFituNHrOPyNiBowfZsetA2iir+/bkEvqGCA2qNhLEJKxrVjNbxmZv0/UPWXihjlhgys/AXWg==","signatures":[{"sig":"MEUCIQD5RdeW4pcahpzJvrlvp7SHR24eigUO97reuZ/lRaGJAQIgTOKPu24fmxFlwgaQylF/XZjjCOxo0yWm7NlalJ2HCwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498422},"type":"module","_from":"file:/Users/andrei.parcheuski/WebstormProjects/sourceui/dist/package-tarballs/3dsource-data-loader-0.0.35.tgz","module":"fesm2022/3dsource-data-loader.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./types/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"},"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"}},"typings":"types/3dsource-data-loader.d.ts","_npmUser":{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},"_resolved":"/Users/andrei.parcheuski/WebstormProjects/sourceui/dist/package-tarballs/3dsource-data-loader-0.0.35.tgz","_integrity":"sha512-aUMi5HCnS6YHNCFituNHrOPyNiBowfZsetA2iir+/bkEvqGCA2qNhLEJKxrVjNbxmZv0/UPWXihjlhgys/AXWg==","repository":{"url":"git+ssh://git@bitbucket.org/dreamsoft/front-libraries.git","type":"git"},"_npmVersion":"11.13.0","description":"Data loader for Angular + CLI Drive parser","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">=19.0.0 <23.0.0","@3dsource/utils":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/data-loader_0.0.35_1785065282078_0.8503165635094452","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@3dsource/data-loader","version":"0.0.36","description":"Data loader for Angular + CLI Drive parser","repository":{"type":"git","url":"git+ssh://git@bitbucket.org/dreamsoft/front-libraries.git"},"sideEffects":false,"exports":{"./DriveParser":"./node/DriveParser.js","./package.json":{"default":"./package.json"},".":{"types":"./types/3dsource-data-loader.d.ts","default":"./fesm2022/3dsource-data-loader.mjs"}},"bin":{"drive-parser":"node/DriveParser.js"},"dependencies":{"tslib":"^2.8.1"},"peerDependencies":{"@3dsource/utils":"^1.0.21","@angular/core":">=19.0.0 <23.0.0"},"engines":{"node":">=20"},"module":"fesm2022/3dsource-data-loader.mjs","typings":"types/3dsource-data-loader.d.ts","type":"module","_id":"@3dsource/data-loader@0.0.36","bugs":{"url":"https://bitbucket.org/dreamsoft/front-libraries/issues"},"homepage":"https://bitbucket.org/dreamsoft/front-libraries#readme","_integrity":"sha512-nPiTRXBMJszv0Aw3YfjAsDHpTvP8dcTg6G5kaBiI9qlrezAeD2nF+oBMylPkGgI/a5NgE8L4TBffqmha8XXydw==","_resolved":"/Users/andrei.parcheuski/WebstormProjects/sourceui/dist/package-tarballs/3dsource-data-loader-0.0.36.tgz","_from":"file:/Users/andrei.parcheuski/WebstormProjects/sourceui/dist/package-tarballs/3dsource-data-loader-0.0.36.tgz","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-nPiTRXBMJszv0Aw3YfjAsDHpTvP8dcTg6G5kaBiI9qlrezAeD2nF+oBMylPkGgI/a5NgE8L4TBffqmha8XXydw==","shasum":"05c3fad963a68eac9dee183410416aaf85253fe0","tarball":"https://registry.npmjs.org/@3dsource/data-loader/-/data-loader-0.0.36.tgz","fileCount":9,"unpackedSize":498563,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCGqnERFEH0yxrOry3I1y1WZq8f3ObyrK9X6fX4khoVFAIgebs7aFriFpB5dzHFC/J6F/APFmVb7e09GNeUfwj7CKc="}]},"_npmUser":{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"},"directories":{},"maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/data-loader_0.0.36_1785065925991_0.8264645959657146"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-21T14:52:47.493Z","modified":"2026-07-26T11:38:46.363Z","0.0.1":"2025-05-08T18:53:29.274Z","0.0.2":"2025-05-08T19:02:37.500Z","0.0.3":"2025-05-08T19:40:35.497Z","0.0.4":"2025-05-08T20:35:25.205Z","0.0.5":"2025-05-08T20:47:00.205Z","0.0.6":"2025-05-08T20:49:01.452Z","0.0.7":"2025-05-08T21:07:16.180Z","0.0.8":"2025-05-08T21:55:40.756Z","0.0.9":"2025-05-08T21:58:27.478Z","0.0.10":"2025-05-08T22:17:35.329Z","0.0.11":"2025-05-09T09:49:43.165Z","0.0.12":"2025-05-09T15:26:49.806Z","0.0.13":"2025-05-09T15:38:00.548Z","0.0.14":"2025-05-09T17:21:39.073Z","0.0.15":"2025-05-14T12:30:58.829Z","0.0.16":"2025-06-03T13:22:17.615Z","0.0.17":"2025-06-03T13:35:01.228Z","0.0.18":"2025-08-21T12:42:13.358Z","0.0.19":"2025-08-21T13:22:18.725Z","0.0.21":"2025-08-21T14:52:48.014Z","0.0.22":"2025-09-11T12:04:38.527Z","0.0.23":"2025-12-18T18:03:34.249Z","0.0.24":"2025-12-18T18:10:04.666Z","0.0.25":"2025-12-18T20:40:00.423Z","0.0.26":"2025-12-19T13:00:03.668Z","0.0.27":"2025-12-19T13:37:55.812Z","0.0.28":"2025-12-19T13:49:36.400Z","0.0.29":"2025-12-19T13:59:48.334Z","0.0.30":"2025-12-21T16:31:12.124Z","0.0.33":"2026-06-04T12:46:44.323Z","0.0.34":"2026-06-05T08:43:05.202Z","0.0.35":"2026-07-26T11:28:02.229Z","0.0.36":"2026-07-26T11:38:46.132Z"},"bugs":{"url":"https://bitbucket.org/dreamsoft/front-libraries/issues"},"homepage":"https://bitbucket.org/dreamsoft/front-libraries#readme","repository":{"type":"git","url":"git+ssh://git@bitbucket.org/dreamsoft/front-libraries.git"},"description":"Data loader for Angular + CLI Drive parser","maintainers":[{"name":"flashpuller","email":"flashpuller@gmail.com"},{"name":"whataboutjuuu","email":"mailtojuuu@gmail.com"},{"name":"flashpusher","email":"npm@3dsource.com"},{"name":"andrei.parcheuski","email":"andrei.parcheuski@3dsource.com"}],"readme":"# @3dsource/data-loader\n\nSchema-driven data loading for Angular applications, plus a Node.js CLI for\nconverting Google Sheets data into local CSV/JSON assets.\n\n## What it provides\n\n- `DataLoaderService`, a root-provided Angular service\n- CSV, JSON, object and language parsers selected by a JSON schema\n- one generated loader method per parser `id`\n- `drive-parser`, a CLI that reads Google Sheets and writes generated assets\n\nThe package does not expose an NgModule and does not implement generic binary\nasset loading, caching, progress events or batch-download APIs.\n\n## Requirements\n\n- Node.js 20 or newer for the CLI and repository tooling\n- Angular `>=19.0.0 <23.0.0`\n- `@3dsource/utils` `^1.0.21`\n\n## Installation\n\n```shell\nnpm install @3dsource/data-loader @3dsource/utils\n```\n\nAngular itself is a peer dependency and is normally already present in the\napplication.\n\n## Angular usage\n\nThe service loads a schema, creates an API method for every enabled parser and\nthen loads each parser's default asset from:\n\n```text\n<document-root>/assets/data/<id>/<subId?>.<extension>\n```\n\nWithout `subId`, the path is\n`<document-root>/assets/data/<id>.<extension>`. The default extension is\n`.json`.\n\n```typescript\nimport { Component, inject } from '@angular/core';\nimport { DataLoaderService } from '@3dsource/data-loader';\n\n@Component({\n  selector: 'app-data-consumer',\n  template: '',\n})\nexport class DataConsumerComponent {\n  private readonly dataLoader = inject(DataLoaderService);\n  readonly loadedData: Record<string, unknown> = {};\n\n  async load(): Promise<void> {\n    await this.dataLoader.initialize('/assets/data/app.data-schema.json', this.loadedData);\n\n    console.log(this.loadedData['products']);\n  }\n}\n```\n\nAn application can override a parser's default URL or provide inline data\nthrough the global `appReady` hook. Its API contains one method per schema\nparser `id`:\n\n```typescript\ninterface DataLoaderApi {\n  products: (urlOrData: unknown) => Promise<unknown>;\n}\n\nconst globalScope = globalThis as typeof globalThis & {\n  appReady?: (loader: DataLoaderApi) => void;\n};\n\nglobalScope.appReady = (loader) => {\n  void loader.products('/assets/custom/products.json');\n};\n```\n\nSet `appReady` before calling `initialize()`. A parser started from this hook is\nnot loaded again from its default URL.\n\n`DataLoaderService` is root-provided and keeps parser promises between calls;\ntreat `initialize()` as a one-time application bootstrap operation. It resolves\nonly after every enabled parser returns a truthy result. Source and parse\nerrors are logged internally, so applications that load remote data should\nrace initialization against their own timeout if they need a visible failure\nstate.\n\n## Schema\n\nThe package contains `schema.json`, which can be referenced by editors and\nvalidation tools. A minimal schema looks like this:\n\n```json\n{\n  \"$schema\": \"./node_modules/@3dsource/data-loader/schema.json\",\n  \"version\": \"1.0\",\n  \"description\": \"Application data\",\n  \"path\": \"data/\",\n  \"parsers\": [\n    {\n      \"id\": \"products\",\n      \"save\": true,\n      \"load\": true,\n      \"processor\": {\n        \"callBack\": \"JsonParser\",\n        \"extension\": \".json\",\n        \"arguments\": {\n          \"rowAsHead\": 0,\n          \"splitBy\": []\n        }\n      }\n    }\n  ]\n}\n```\n\nSupported `processor.callBack` values are:\n\n- `CSVParser`\n- `JsonParser`\n- `ObjectParser`\n- `LanguageParser`\n\nSet `load` to `false` to exclude a parser from Angular loading. The `save`,\n`sheetId`, `googleDoc` and `processor.saveFunction` fields are primarily used\nby the CLI.\n\n## Drive parser CLI\n\nAfter installing the published package:\n\n```shell\ndrive-parser <google-doc-config.json> <schema.json> <output-directory>\ndrive-parser --help\n```\n\nThe Google Doc config must contain a `GoogleDoc` URL prefix. For every schema\nparser whose `save` value is not `false`, the CLI appends `sheetId` (or `id`),\nparses the response and writes it under the output directory.\n\nPass the output directory with a trailing path separator because the CLI\nconcatenates it with each generated filename, for example:\n\n```shell\ndrive-parser ./GoogleDoc.json ./app.data-schema.json ./src/assets/data/\n```\n\n## Repository development\n\nRun these commands from the repository root:\n\n```shell\npnpm --filter @3dsource/data-loader build\npnpm --filter @3dsource/data-loader typecheck:node\npnpm --filter @3dsource/data-loader clean\n```\n\nThe package `test` script exercises the built CLI against repository fixtures,\nso build the package first and expect it to access the configured Google Sheet:\n\n```shell\npnpm --filter @3dsource/data-loader build\npnpm --filter @3dsource/data-loader test\n```\n\nTo version and publish the package, use the verified root release flow:\n\n```shell\npnpm release:package -- data-loader patch latest\n```\n\nThe release command publishes to npm; it is not a version-only command.\nIt checks only `data-loader` and its local workspace dependency\n`@3dsource/utils`; unrelated libraries and the demo are not built or tested.\n\nSee the live example in\n`projects/demo/src/app/demo-layout/info-pages/data-loader/`.\n","readmeFilename":"README.md"}