{"id":46030,"name":"EOS-AYCE","description":"Eaternity's software platform serving as an open-source environmental operating system (EOS) for all you can eat (AYCE) for climate.","url":"https://gitlab.com/eaternity/eos","last_synced_at":"2026-05-16T20:01:19.274Z","repository":{"id":50316020,"uuid":"38162001","full_name":"eaternity/eos","owner":"eaternity","description":"Environmental operating system","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":7,"open_issues_count":3,"forks_count":9,"subscribers_count":null,"default_branch":"develop","last_synced_at":"2026-01-07T11:55:29.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0+","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://gitlab.com/uploads/-/system/project/avatar/38162001/pingunaut.jpg","metadata":{},"created_at":"2022-07-28T07:49:49.756Z","updated_at":"2026-01-07T11:13:20.846Z","dependencies_parsed_at":"2022-09-13T06:03:38.967Z","dependency_job_id":null,"html_url":"https://gitlab.com/eaternity/eos","commit_stats":null,"previous_names":[],"tags_count":5,"template":null,"template_full_name":null,"purl":"pkg:gitlab/eaternity/eos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/eaternity","download_url":"https://gitlab.com/eaternity/eos/-/archive/develop/eos-develop.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-01-12T22:45:04.389Z","status":"online","status_checked_at":"2026-05-14T02:00:07.252Z","response_time":287,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"owner":null,"packages":[],"commits":{"id":1638862,"full_name":"eaternity/eos","default_branch":"develop","total_commits":1784,"total_committers":19,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":93.89473684210526,"dds":0.7376681614349776,"past_year_total_commits":651,"past_year_total_committers":10,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":65.1,"past_year_dds":0.6328725038402458,"last_synced_at":"2026-05-14T19:00:53.839Z","last_synced_commit":"eb0ff5f987bc10d25c5b005974840c69484105ca","created_at":"2024-07-24T21:32:01.381Z","updated_at":"2026-05-14T19:00:51.975Z","committers":[{"name":"Holger Finger","email":"holgerfinger@protonmail.com","login":null,"count":468},{"name":"Yannick Schubert","email":"yschubert@eaternity.ch","login":null,"count":459},{"name":"Holger Finger","email":"holgerfinger@gmail.com","login":null,"count":266},{"name":"schoi839","email":"schoi@eaternity.ch","login":null,"count":197},{"name":"Simon Greuter","email":"6537188+greuters@users.noreply.github.com","login":null,"count":109},{"name":"Simon Greuter","email":"sgreuter@eaternity.ch","login":null,"count":84},{"name":"Alexei Glon","email":"aglon@eaternity.ch","login":null,"count":74},{"name":"Renaud Richardet","email":"rrichardet@eaternity.ch","login":null,"count":38},{"name":"Michael Kefeder","email":"mkefeder@eaternity.ch","login":null,"count":21},{"name":"Alexandr Nigay","email":"anigay@eaternity.ch","login":null,"count":20},{"name":"Michael Kefeder","email":"m.kefeder@gmail.com","login":null,"count":15},{"name":"Manuel Klarmann","email":"mklarmann@eaternity.ch","login":null,"count":10},{"name":"Jens Hinkelmann","email":"jens@hinkelmann.ch","login":null,"count":8},{"name":"Vitor Bosshard","email":"vbosshard@eaternity.ch","login":null,"count":5},{"name":"Jens Hinkelmann","email":"jhinkelmann@eaternity.ch","login":null,"count":3},{"name":"Philip Winkler","email":"pwinkl01@dcs.bbk.ac.uk","login":null,"count":3},{"name":"Patrick Haldi","email":"patrick.haldi@mailbox.org","login":null,"count":2},{"name":"Hrishikesh Nangare","email":"hrishikesh.nangare@ankercloud.com","login":null,"count":1},{"name":"Renaud Richardet","email":"renaud.richardet@impaakt.com","login":null,"count":1}],"past_year_committers":[{"name":"Yannick Schubert","email":"yschubert@eaternity.ch","login":null,"count":239},{"name":"Holger Finger","email":"holgerfinger@protonmail.com","login":null,"count":176},{"name":"Simon Greuter","email":"sgreuter@eaternity.ch","login":null,"count":74},{"name":"Holger Finger","email":"holgerfinger@gmail.com","login":null,"count":65},{"name":"Simon Greuter","email":"6537188+greuters@users.noreply.github.com","login":null,"count":61},{"name":"Alexandr Nigay","email":"anigay@eaternity.ch","login":null,"count":20},{"name":"Jens Hinkelmann","email":"jens@hinkelmann.ch","login":null,"count":7},{"name":"Vitor Bosshard","email":"vbosshard@eaternity.ch","login":null,"count":5},{"name":"Jens Hinkelmann","email":"jhinkelmann@eaternity.ch","login":null,"count":3},{"name":"Manuel Klarmann","email":"mklarmann@eaternity.ch","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/commits","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-05-16T00:00:17.031Z","repositories_count":24046,"commits_count":4202476,"contributors_count":115620,"owners_count":12385,"icon_url":"https://github.com/gitlab.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories"}},"issues_stats":{"full_name":"eaternity/eos","html_url":"https://gitlab.com/eaternity/eos","last_synced_at":"2026-05-14T19:00:47.242Z","status":"error","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2024-08-15T08:01:34.411Z","updated_at":"2026-05-14T19:00:47.242Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/eaternity%2Feos/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{"holgerfinger":119,"alexei-eaternity":50,"renaudr":20,"schoi839":4,"mike-kfed":3,"yschubert":1},"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-05-16T00:00:24.476Z","repositories_count":0,"issues_count":0,"pull_requests_count":0,"authors_count":61892,"icon_url":"https://github.com/gitlab.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":null,"keywords":[],"dependencies":[{"ecosystem":"npm","filepath":"eos-ui/package-lock.json","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.822Z","updated_at":"2022-09-13T06:03:38.822Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/eos-ui/package-lock.json","dependencies":[{"id":4691643030,"package_name":"@babel/parser","ecosystem":"npm","requirements":"7.19.0","direct":false,"kind":"runtime","optional":false},{"id":4691643031,"package_name":"@braks/vue-flow","ecosystem":"npm","requirements":"0.4.38","direct":false,"kind":"runtime","optional":false},{"id":4691643032,"package_name":"@esbuild/linux-loong64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643033,"package_name":"@mdi/font","ecosystem":"npm","requirements":"5.9.55","direct":false,"kind":"runtime","optional":false},{"id":4691643034,"package_name":"@types/json-schema","ecosystem":"npm","requirements":"7.0.11","direct":false,"kind":"development","optional":false},{"id":4691643035,"package_name":"@types/web-bluetooth","ecosystem":"npm","requirements":"0.0.15","direct":false,"kind":"runtime","optional":false},{"id":4691643036,"package_name":"@vitejs/plugin-vue","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":4691643037,"package_name":"@vue/compiler-core","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643038,"package_name":"@vue/compiler-dom","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643039,"package_name":"@vue/compiler-sfc","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643040,"package_name":"@vue/compiler-ssr","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643041,"package_name":"@vue/devtools-api","ecosystem":"npm","requirements":"6.2.1","direct":false,"kind":"runtime","optional":false},{"id":4691643042,"package_name":"@vue/reactivity","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643043,"package_name":"@vue/reactivity-transform","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643044,"package_name":"@vue/runtime-core","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643045,"package_name":"@vue/runtime-dom","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643046,"package_name":"@vue/server-renderer","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643047,"package_name":"@vue/shared","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643048,"package_name":"@vuetify/loader-shared","ecosystem":"npm","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":4691643049,"package_name":"@vueuse/core","ecosystem":"npm","requirements":"9.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643050,"package_name":"vue-demi","ecosystem":"npm","requirements":"0.13.11","direct":false,"kind":"runtime","optional":false},{"id":4691643051,"package_name":"@vueuse/metadata","ecosystem":"npm","requirements":"9.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643052,"package_name":"@vueuse/shared","ecosystem":"npm","requirements":"9.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643053,"package_name":"ajv","ecosystem":"npm","requirements":"6.12.6","direct":false,"kind":"development","optional":false},{"id":4691643054,"package_name":"ajv-keywords","ecosystem":"npm","requirements":"3.5.2","direct":false,"kind":"development","optional":false},{"id":4691643055,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":4691643056,"package_name":"big.js","ecosystem":"npm","requirements":"5.2.2","direct":false,"kind":"development","optional":false},{"id":4691643057,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":4691643058,"package_name":"commondir","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643059,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":4691643060,"package_name":"core-js","ecosystem":"npm","requirements":"3.25.1","direct":false,"kind":"runtime","optional":false},{"id":4691643061,"package_name":"csstype","ecosystem":"npm","requirements":"2.6.20","direct":false,"kind":"runtime","optional":false},{"id":4691643062,"package_name":"d3-color","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643063,"package_name":"d3-dispatch","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643064,"package_name":"d3-drag","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643065,"package_name":"d3-ease","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643066,"package_name":"d3-interpolate","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643067,"package_name":"d3-selection","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643068,"package_name":"d3-timer","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643069,"package_name":"d3-transition","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643070,"package_name":"d3-zoom","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643071,"package_name":"debug","ecosystem":"npm","requirements":"4.3.4","direct":false,"kind":"runtime","optional":false},{"id":4691643072,"package_name":"emojis-list","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":4691643073,"package_name":"esbuild","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643074,"package_name":"esbuild-android-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643075,"package_name":"esbuild-android-arm64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643076,"package_name":"esbuild-darwin-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643077,"package_name":"esbuild-darwin-arm64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643078,"package_name":"esbuild-freebsd-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643079,"package_name":"esbuild-freebsd-arm64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643080,"package_name":"esbuild-linux-32","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643081,"package_name":"esbuild-linux-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643082,"package_name":"esbuild-linux-arm","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643083,"package_name":"esbuild-linux-arm64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643084,"package_name":"esbuild-linux-mips64le","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643085,"package_name":"esbuild-linux-ppc64le","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643086,"package_name":"esbuild-linux-riscv64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643087,"package_name":"esbuild-linux-s390x","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643088,"package_name":"esbuild-netbsd-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643089,"package_name":"esbuild-openbsd-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643090,"package_name":"esbuild-sunos-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643091,"package_name":"esbuild-windows-32","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643092,"package_name":"esbuild-windows-64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643093,"package_name":"esbuild-windows-arm64","ecosystem":"npm","requirements":"0.15.7","direct":false,"kind":"runtime","optional":false},{"id":4691643094,"package_name":"estree-walker","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":4691643095,"package_name":"fast-deep-equal","ecosystem":"npm","requirements":"3.1.3","direct":false,"kind":"development","optional":false},{"id":4691643096,"package_name":"fast-json-stable-stringify","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":4691643097,"package_name":"find-cache-dir","ecosystem":"npm","requirements":"3.3.2","direct":false,"kind":"runtime","optional":false},{"id":4691643098,"package_name":"find-up","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643099,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":4691643100,"package_name":"fsevents","ecosystem":"npm","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":4691643101,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":4691643102,"package_name":"glob","ecosystem":"npm","requirements":"7.2.3","direct":false,"kind":"development","optional":false},{"id":4691643103,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":4691643104,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":4691643105,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":4691643106,"package_name":"interpret","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":4691643107,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.10.0","direct":false,"kind":"runtime","optional":false},{"id":4691643108,"package_name":"json-schema-traverse","ecosystem":"npm","requirements":"0.4.1","direct":false,"kind":"development","optional":false},{"id":4691643109,"package_name":"json5","ecosystem":"npm","requirements":"2.2.1","direct":false,"kind":"development","optional":false},{"id":4691643110,"package_name":"loader-utils","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":4691643111,"package_name":"locate-path","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643112,"package_name":"lru-cache","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":4691643113,"package_name":"magic-string","ecosystem":"npm","requirements":"0.25.9","direct":false,"kind":"runtime","optional":false},{"id":4691643114,"package_name":"make-dir","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643115,"package_name":"semver","ecosystem":"npm","requirements":"6.3.0","direct":false,"kind":"runtime","optional":false},{"id":4691643116,"package_name":"minimatch","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"development","optional":false},{"id":4691643117,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":4691643118,"package_name":"nanoid","ecosystem":"npm","requirements":"3.3.4","direct":false,"kind":"runtime","optional":false},{"id":4691643119,"package_name":"null-loader","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":4691643120,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":4691643121,"package_name":"p-limit","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":4691643122,"package_name":"p-locate","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643123,"package_name":"p-try","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643124,"package_name":"path-exists","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643125,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":4691643126,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":4691643127,"package_name":"picocolors","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643128,"package_name":"pkg-dir","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643129,"package_name":"postcss","ecosystem":"npm","requirements":"8.4.16","direct":false,"kind":"runtime","optional":false},{"id":4691643130,"package_name":"punycode","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":4691643131,"package_name":"rechoir","ecosystem":"npm","requirements":"0.6.2","direct":false,"kind":"development","optional":false},{"id":4691643132,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.1","direct":false,"kind":"runtime","optional":false},{"id":4691643133,"package_name":"roboto-fontface","ecosystem":"npm","requirements":"0.10.0","direct":false,"kind":"runtime","optional":false},{"id":4691643134,"package_name":"rollup","ecosystem":"npm","requirements":"2.78.1","direct":false,"kind":"runtime","optional":false},{"id":4691643135,"package_name":"schema-utils","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":4691643136,"package_name":"semver","ecosystem":"npm","requirements":"7.3.7","direct":false,"kind":"development","optional":false},{"id":4691643137,"package_name":"shelljs","ecosystem":"npm","requirements":"0.8.5","direct":false,"kind":"development","optional":false},{"id":4691643138,"package_name":"source-map","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"runtime","optional":false},{"id":4691643139,"package_name":"source-map-js","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":4691643140,"package_name":"sourcemap-codec","ecosystem":"npm","requirements":"1.4.8","direct":false,"kind":"runtime","optional":false},{"id":4691643141,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":4691643142,"package_name":"upath","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":4691643143,"package_name":"uri-js","ecosystem":"npm","requirements":"4.4.1","direct":false,"kind":"development","optional":false},{"id":4691643144,"package_name":"vite","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643145,"package_name":"vite-plugin-vuetify","ecosystem":"npm","requirements":"1.0.0-alpha.16","direct":false,"kind":"runtime","optional":false},{"id":4691643146,"package_name":"vue","ecosystem":"npm","requirements":"3.2.38","direct":false,"kind":"runtime","optional":false},{"id":4691643147,"package_name":"vue-class-component","ecosystem":"npm","requirements":"8.0.0-rc.1","direct":false,"kind":"runtime","optional":false},{"id":4691643148,"package_name":"vue-cli-plugin-vuetify","ecosystem":"npm","requirements":"2.5.5","direct":false,"kind":"development","optional":false},{"id":4691643149,"package_name":"vue-router","ecosystem":"npm","requirements":"4.1.5","direct":false,"kind":"runtime","optional":false},{"id":4691643150,"package_name":"vuejs-tree","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":4691643151,"package_name":"vuetify","ecosystem":"npm","requirements":"3.0.0-beta.10","direct":false,"kind":"runtime","optional":false},{"id":4691643152,"package_name":"webfontloader","ecosystem":"npm","requirements":"1.6.28","direct":false,"kind":"runtime","optional":false},{"id":4691643153,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":4691643154,"package_name":"yallist","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"eos-ui/package.json","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.846Z","updated_at":"2022-09-13T06:03:38.846Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/eos-ui/package.json","dependencies":[{"id":4691643155,"package_name":"@braks/vue-flow","ecosystem":"npm","requirements":"^0.4.38","direct":true,"kind":"runtime","optional":false},{"id":4691643156,"package_name":"@mdi/font","ecosystem":"npm","requirements":"5.9.55","direct":true,"kind":"runtime","optional":false},{"id":4691643157,"package_name":"roboto-fontface","ecosystem":"npm","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643158,"package_name":"vue","ecosystem":"npm","requirements":"^3.2.37","direct":true,"kind":"runtime","optional":false},{"id":4691643159,"package_name":"vue-router","ecosystem":"npm","requirements":"^4.1.5","direct":true,"kind":"runtime","optional":false},{"id":4691643160,"package_name":"vuejs-tree","ecosystem":"npm","requirements":"^3.0.2","direct":true,"kind":"runtime","optional":false},{"id":4691643161,"package_name":"vuetify","ecosystem":"npm","requirements":"^3.0.0-beta.0","direct":true,"kind":"runtime","optional":false},{"id":4691643162,"package_name":"webfontloader","ecosystem":"npm","requirements":"^1.0.0","direct":true,"kind":"runtime","optional":false},{"id":4691643163,"package_name":"@vitejs/plugin-vue","ecosystem":"npm","requirements":"^3.1.0","direct":true,"kind":"development","optional":false},{"id":4691643164,"package_name":"vite","ecosystem":"npm","requirements":"^3.1.0","direct":true,"kind":"development","optional":false},{"id":4691643165,"package_name":"vite-plugin-vuetify","ecosystem":"npm","requirements":"^1.0.0-alpha.12","direct":true,"kind":"development","optional":false},{"id":4691643166,"package_name":"vue-cli-plugin-vuetify","ecosystem":"npm","requirements":"~2.5.5","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"api/poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.852Z","updated_at":"2022-09-13T06:03:38.852Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/api/poetry.lock","dependencies":[{"id":4691643167,"package_name":"anyio","ecosystem":"pypi","requirements":"3.6.1","direct":false,"kind":"runtime","optional":false},{"id":4691643168,"package_name":"asgiref","ecosystem":"pypi","requirements":"3.5.2","direct":false,"kind":"runtime","optional":false},{"id":4691643169,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.26.0","direct":false,"kind":"runtime","optional":false},{"id":4691643170,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":4691643171,"package_name":"attrs","ecosystem":"pypi","requirements":"21.4.0","direct":false,"kind":"develop","optional":false},{"id":4691643172,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"runtime","optional":false},{"id":4691643173,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643174,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"runtime","optional":false},{"id":4691643175,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"runtime","optional":false},{"id":4691643176,"package_name":"core","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643177,"package_name":"database","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643178,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.6.2","direct":false,"kind":"develop","optional":false},{"id":4691643179,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.70.1","direct":false,"kind":"runtime","optional":false},{"id":4691643180,"package_name":"h11","ecosystem":"pypi","requirements":"0.13.0","direct":false,"kind":"runtime","optional":false},{"id":4691643181,"package_name":"httptools","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643182,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"runtime","optional":false},{"id":4691643183,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":4691643184,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.3","direct":false,"kind":"runtime","optional":false},{"id":4691643185,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":4691643186,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":4691643187,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.1","direct":false,"kind":"runtime","optional":false},{"id":4691643188,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":4691643189,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":4691643190,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":4691643191,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":4691643192,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"0.20.0","direct":false,"kind":"runtime","optional":false},{"id":4691643193,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0","direct":false,"kind":"runtime","optional":false},{"id":4691643194,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":4691643195,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643196,"package_name":"starlette","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691643197,"package_name":"structlog","ecosystem":"pypi","requirements":"21.5.0","direct":false,"kind":"runtime","optional":false},{"id":4691643198,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":4691643199,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":4691643200,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.11","direct":false,"kind":"runtime","optional":false},{"id":4691643201,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.15.0","direct":false,"kind":"runtime","optional":false},{"id":4691643202,"package_name":"uvloop","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691643203,"package_name":"watchgod","ecosystem":"pypi","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":4691643204,"package_name":"websockets","ecosystem":"pypi","requirements":"10.3","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"api/pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.865Z","updated_at":"2022-09-13T06:03:38.865Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/api/pyproject.toml","dependencies":[{"id":4691643205,"package_name":"python","ecosystem":"pypi","requirements":"~3.10.1","direct":true,"kind":"runtime","optional":false},{"id":4691643206,"package_name":"core","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643207,"package_name":"database","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643208,"package_name":"fastapi","ecosystem":"pypi","requirements":"^0.70.0","direct":true,"kind":"runtime","optional":false},{"id":4691643209,"package_name":"uvicorn","ecosystem":"pypi","requirements":"^0.15.0","direct":true,"kind":"runtime","optional":false},{"id":4691643210,"package_name":"structlog","ecosystem":"pypi","requirements":"^21.5.0","direct":true,"kind":"runtime","optional":false},{"id":4691643211,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.1.2","direct":true,"kind":"develop","optional":false},{"id":4691643212,"package_name":"debugpy","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"core/poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.870Z","updated_at":"2022-09-13T06:03:38.870Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/core/poetry.lock","dependencies":[{"id":4691643213,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.26.0","direct":false,"kind":"runtime","optional":false},{"id":4691643214,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":4691643215,"package_name":"attrs","ecosystem":"pypi","requirements":"21.4.0","direct":false,"kind":"develop","optional":false},{"id":4691643216,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"runtime","optional":false},{"id":4691643217,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643218,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"develop","optional":false},{"id":4691643219,"package_name":"database","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643220,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.6.2","direct":false,"kind":"develop","optional":false},{"id":4691643221,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"runtime","optional":false},{"id":4691643222,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":4691643223,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.3","direct":false,"kind":"runtime","optional":false},{"id":4691643224,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":4691643225,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":4691643226,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.1","direct":false,"kind":"runtime","optional":false},{"id":4691643227,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":4691643228,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":4691643229,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":4691643230,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":4691643231,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":4691643232,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.11","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"core/pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.877Z","updated_at":"2022-09-13T06:03:38.877Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/core/pyproject.toml","dependencies":[{"id":4691643233,"package_name":"python","ecosystem":"pypi","requirements":"~3.10.1","direct":true,"kind":"runtime","optional":false},{"id":4691643234,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.3","direct":true,"kind":"runtime","optional":false},{"id":4691643235,"package_name":"database","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643236,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.1.2","direct":true,"kind":"develop","optional":false},{"id":4691643237,"package_name":"debugpy","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"database/poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.882Z","updated_at":"2022-09-13T06:03:38.882Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/database/poetry.lock","dependencies":[{"id":4691643238,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.26.0","direct":false,"kind":"runtime","optional":false},{"id":4691643239,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":4691643240,"package_name":"attrs","ecosystem":"pypi","requirements":"21.4.0","direct":false,"kind":"develop","optional":false},{"id":4691643241,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"runtime","optional":false},{"id":4691643242,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643243,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"develop","optional":false},{"id":4691643244,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.6.2","direct":false,"kind":"develop","optional":false},{"id":4691643245,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"runtime","optional":false},{"id":4691643246,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":4691643247,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":4691643248,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":4691643249,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.1","direct":false,"kind":"runtime","optional":false},{"id":4691643250,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":4691643251,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":4691643252,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":4691643253,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":4691643254,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":4691643255,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.11","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"database/pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.890Z","updated_at":"2022-09-13T06:03:38.890Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/database/pyproject.toml","dependencies":[{"id":4691643256,"package_name":"python","ecosystem":"pypi","requirements":"~3.10.1","direct":true,"kind":"runtime","optional":false},{"id":4691643257,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.*","direct":true,"kind":"runtime","optional":false},{"id":4691643258,"package_name":"requests","ecosystem":"pypi","requirements":"^2.28.1","direct":true,"kind":"runtime","optional":false},{"id":4691643259,"package_name":"asyncpg","ecosystem":"pypi","requirements":"^0.26.0","direct":true,"kind":"runtime","optional":false},{"id":4691643260,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.1.2","direct":true,"kind":"develop","optional":false},{"id":4691643261,"package_name":"debugpy","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"legacy_api/poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.895Z","updated_at":"2022-09-13T06:03:38.895Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/legacy_api/poetry.lock","dependencies":[{"id":4691643262,"package_name":"anyio","ecosystem":"pypi","requirements":"3.6.1","direct":false,"kind":"runtime","optional":false},{"id":4691643263,"package_name":"asgiref","ecosystem":"pypi","requirements":"3.5.2","direct":false,"kind":"runtime","optional":false},{"id":4691643264,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.26.0","direct":false,"kind":"runtime","optional":false},{"id":4691643265,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":4691643266,"package_name":"attrs","ecosystem":"pypi","requirements":"21.4.0","direct":false,"kind":"develop","optional":false},{"id":4691643267,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"runtime","optional":false},{"id":4691643268,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643269,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"runtime","optional":false},{"id":4691643270,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"runtime","optional":false},{"id":4691643271,"package_name":"core","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643272,"package_name":"database","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691643273,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.6.2","direct":false,"kind":"develop","optional":false},{"id":4691643274,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.70.1","direct":false,"kind":"runtime","optional":false},{"id":4691643275,"package_name":"h11","ecosystem":"pypi","requirements":"0.13.0","direct":false,"kind":"runtime","optional":false},{"id":4691643276,"package_name":"httptools","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643277,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"runtime","optional":false},{"id":4691643278,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":4691643279,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.3","direct":false,"kind":"runtime","optional":false},{"id":4691643280,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":4691643281,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":4691643282,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.1","direct":false,"kind":"runtime","optional":false},{"id":4691643283,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":4691643284,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":4691643285,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":4691643286,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":4691643287,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"0.20.0","direct":false,"kind":"runtime","optional":false},{"id":4691643288,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0","direct":false,"kind":"runtime","optional":false},{"id":4691643289,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":4691643290,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691643291,"package_name":"starlette","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691643292,"package_name":"structlog","ecosystem":"pypi","requirements":"21.5.0","direct":false,"kind":"runtime","optional":false},{"id":4691643293,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":4691643294,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":4691643295,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.11","direct":false,"kind":"runtime","optional":false},{"id":4691643296,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.15.0","direct":false,"kind":"runtime","optional":false},{"id":4691643297,"package_name":"uvloop","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691643298,"package_name":"watchgod","ecosystem":"pypi","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":4691643299,"package_name":"websockets","ecosystem":"pypi","requirements":"10.3","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"legacy_api/pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.906Z","updated_at":"2022-09-13T06:03:38.906Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/legacy_api/pyproject.toml","dependencies":[{"id":4691643300,"package_name":"python","ecosystem":"pypi","requirements":"~3.10.1","direct":true,"kind":"runtime","optional":false},{"id":4691643301,"package_name":"core","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643302,"package_name":"database","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691643303,"package_name":"fastapi","ecosystem":"pypi","requirements":"^0.70.0","direct":true,"kind":"runtime","optional":false},{"id":4691643304,"package_name":"uvicorn","ecosystem":"pypi","requirements":"^0.15.0","direct":true,"kind":"runtime","optional":false},{"id":4691643305,"package_name":"structlog","ecosystem":"pypi","requirements":"^21.5.0","direct":true,"kind":"runtime","optional":false},{"id":4691643306,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.1.2","direct":true,"kind":"develop","optional":false},{"id":4691643307,"package_name":"debugpy","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-09-13T06:03:38.915Z","updated_at":"2022-09-13T06:03:38.915Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/poetry.lock","dependencies":[{"id":4691644045,"package_name":"aiohttp","ecosystem":"pypi","requirements":"3.8.1","direct":false,"kind":"runtime","optional":false},{"id":4691644049,"package_name":"aiosignal","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691644051,"package_name":"anyio","ecosystem":"pypi","requirements":"3.6.1","direct":false,"kind":"runtime","optional":false},{"id":4691644052,"package_name":"api","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691644054,"package_name":"asgiref","ecosystem":"pypi","requirements":"3.5.2","direct":false,"kind":"runtime","optional":false},{"id":4691644056,"package_name":"async-timeout","ecosystem":"pypi","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":4691644057,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.26.0","direct":false,"kind":"runtime","optional":false},{"id":4691644059,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":4691644061,"package_name":"attrs","ecosystem":"pypi","requirements":"22.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691644062,"package_name":"autopep8","ecosystem":"pypi","requirements":"1.7.0","direct":false,"kind":"develop","optional":false},{"id":4691644064,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"runtime","optional":false},{"id":4691644065,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":4691644067,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"runtime","optional":false},{"id":4691644069,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"runtime","optional":false},{"id":4691644070,"package_name":"core","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691644072,"package_name":"database","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691644074,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.6.3","direct":false,"kind":"develop","optional":false},{"id":4691644075,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.70.1","direct":false,"kind":"runtime","optional":false},{"id":4691644077,"package_name":"frozenlist","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":4691644078,"package_name":"h11","ecosystem":"pypi","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":4691644080,"package_name":"httpcore","ecosystem":"pypi","requirements":"0.15.0","direct":false,"kind":"develop","optional":false},{"id":4691644081,"package_name":"httptools","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691644082,"package_name":"httpx","ecosystem":"pypi","requirements":"0.23.0","direct":false,"kind":"develop","optional":false},{"id":4691644083,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"runtime","optional":false},{"id":4691644084,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":4691644085,"package_name":"legacy-api","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":4691644087,"package_name":"multidict","ecosystem":"pypi","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":4691644088,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.3","direct":false,"kind":"runtime","optional":false},{"id":4691644090,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":4691644091,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":4691644093,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.1","direct":false,"kind":"runtime","optional":false},{"id":4691644094,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":4691644096,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"2.9.1","direct":false,"kind":"develop","optional":false},{"id":4691644097,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.9.2","direct":false,"kind":"runtime","optional":false},{"id":4691644099,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":4691644101,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":4691644102,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"0.19.0","direct":false,"kind":"develop","optional":false},{"id":4691644104,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"0.20.0","direct":false,"kind":"runtime","optional":false},{"id":4691644105,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0","direct":false,"kind":"runtime","optional":false},{"id":4691644107,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":4691644108,"package_name":"rfc3986","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"develop","optional":false},{"id":4691644110,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":4691644111,"package_name":"starlette","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691644113,"package_name":"structlog","ecosystem":"pypi","requirements":"21.5.0","direct":false,"kind":"runtime","optional":false},{"id":4691644117,"package_name":"toml","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"develop","optional":false},{"id":4691644119,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":4691644121,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":4691644122,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.12","direct":false,"kind":"runtime","optional":false},{"id":4691644124,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.15.0","direct":false,"kind":"runtime","optional":false},{"id":4691644126,"package_name":"uvloop","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":4691644127,"package_name":"watchgod","ecosystem":"pypi","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":4691644129,"package_name":"websockets","ecosystem":"pypi","requirements":"10.3","direct":false,"kind":"runtime","optional":false},{"id":4691644130,"package_name":"yarl","ecosystem":"pypi","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-09-13T06:03:38.946Z","updated_at":"2022-09-13T06:03:38.946Z","repository_link":"https://gitlab.com/eaternity/eos/blob/develop/pyproject.toml","dependencies":[{"id":4691644804,"package_name":"python","ecosystem":"pypi","requirements":"~3.10.1","direct":true,"kind":"runtime","optional":false},{"id":4691644805,"package_name":"api","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691644806,"package_name":"legacy_api","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691644807,"package_name":"core","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691644808,"package_name":"database","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":4691644809,"package_name":"aiohttp","ecosystem":"pypi","requirements":"^3.8.1","direct":true,"kind":"runtime","optional":false},{"id":4691644810,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.1.2","direct":true,"kind":"develop","optional":false},{"id":4691644811,"package_name":"autopep8","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false},{"id":4691644812,"package_name":"debugpy","ecosystem":"pypi","requirements":"^1.6.0","direct":true,"kind":"develop","optional":false},{"id":4691644813,"package_name":"httpx","ecosystem":"pypi","requirements":"^0.23.0","direct":true,"kind":"develop","optional":false},{"id":4691644814,"package_name":"asyncpg","ecosystem":"pypi","requirements":"^0.26.0","direct":true,"kind":"develop","optional":false},{"id":4691644815,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"^0.19.0","direct":true,"kind":"develop","optional":false},{"id":4691644816,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"^0.20.0","direct":true,"kind":"develop","optional":false},{"id":4691644817,"package_name":"aiohttp","ecosystem":"pypi","requirements":"^3.8.1","direct":true,"kind":"develop","optional":false}]}],"score":5.247024072160486,"created_at":"2023-09-13T08:45:08.371Z","updated_at":"2026-05-16T20:01:19.276Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/38162001/pingunaut.jpg","language":null,"category":"Industrial Ecology","sub_category":"Life Cycle Assessment","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\n# Eaternity EOS\n\nThis project embodies Eaternity's mission of \"Accelerating the World's Transition to a Sustainable Food System\" by establishing the necessary infrastructure to calculate and publish the major environmental impacts of all foods. We have named this initiative \"All You Can Eat\" or AYCE, which represents a software platform serving as an open-source environmental operating system (EOS) to achieve our goals. The projects website is developed here: [http://ayce.earth](http://ayce.earth).\n\nOur goal is to provide an accurate, affordable, and constructive environmental operating system for decision-making and communication across major food-providing business segments (producers, restaurants, and retailers)⁠. This includes:\n- To make environmental information about food accessible to users in the restaurant and food industry⁠ through our existing API\n- To calculate the complete life cycle of food products from cradle to kitchen gate, including aspects like packaging, disposal, processing, storage, and distribution⁠\n- To automate calculations and reduce human labor costs, with the aim of achieving high quality calculations at a cost of just a few Euros per calculation⁠\n- To serve as the backbone for the \"All You Can Eat\" (AYCE) project, making food environmental impacts free and accessible to everyone⁠\n⁠​\n\nOverall, EOS is central to Eaternity's mission by providing comprehensive, efficient, and accessible environmental impact data for food products.\n\n#### Our strategy revolves around leveraging our core strengths, which include:\n\n- Expertise in life cycle assessment, enabling us to consistently perform comprehensive and accurate impact calculations for individual food products.\n- Proficiency in building software architectures, as demonstrated by our successful development of our CO2 calculation tool for numerous restaurants. Over the past decade, we have accumulated invaluable knowledge and experience in this field.\n- Utilization of recurring revenue streams to finance this operation. Having established a break-even business model, we have the freedom to allocate our resources towards research and development in the years ahead.\n\n#### To ensure the effectiveness of our platform, we place significant emphasis on data and software architecture, specifically focusing on:\n\n- Computational efficiency, allowing for scalable, dynamic, and instantaneous impact recalculations through the utilization of matrix calculus and cloud architecture.\n- Rapid development capabilities, achieved by providing a structured framework and generic components that facilitate the addition of complexity without unnecessarily complicating the system. One approach involves implementing independent gap-filling modules that can be executed and scheduled separately, relying on a glossary for dependencies rather than direct data connections.\n- Transparency and accessibility, enabling non-IT individuals to easily review the calculation process. This is achieved by ensuring transparent, deterministic graph mutations that can be comprehended by a wider audience.\n\nWe document our progress and decisions on Notion, which you can find here: [http://eaternity.notion.site](https://www.notion.so/eaternity/Project-EOS-AYCE-kale-a8f5d9809b65416aa159adf83f0f459b) (not yet public).\n\n**We actively seek collaborations with scientists and food retailers to enhance our models and share our results with the public. Please feel free to reach out to us if you are interested in collaborating.**\n\n## Project Setup\n\nYou need to have docker installed on your system (preferably in rootless mode).\n\nFirst, create a folder `secrets` in the root directory of the project and add the `service_account.json` file for the\nGoogle Cloud service account.\n\nThen copy the `.env.sample` file to `.env` and adjust the environment variables to your needs:\n\n```bash\ncp .env.sample .env\n```\n\nalso make sure to create a temp folder for the data:\n\n```bash\nmkdir -p temp_data/location_gfm\n```\n\nThere are two options how you can run EOS:\n\n## Option 1: Python on host system\n\nThis option is most suitable for development, because it allows you to easily attach debugging tools while you develop gap-filling-modules.\n\nIf you want to contribute to the project by developing gap-filling modules,\nwe suggest to install PyCharm Community Edition or Visual Studio Code with the following extensions:\n\n* Python\n* PyLance\n* PythonDebugger\n* Black Formatter\n* isort\n* Ruff\n\nGo through [CONTRIBUTING.md](CONTRIBUTING.md) for configuration.\n\n### Requirements:\n\nPlease make sure to first install:\n\n- docker \u003e= 24.0.4\n- uv (install with: `curl -LsSf https://astral.sh/uv/install.sh | sh`)\n\n### Linux x86_64\n\nInstall uv and sync dependencies. uv will automatically download the correct Python version (3.11.3) if not already installed:\n\n```bash\n# Install uv (if not already installed)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install Python 3.11.3 and all dependencies\nuv sync --all-packages\n```\n\nThis will:\n1. Download Python 3.11.3 if needed (based on `requires-python` in pyproject.toml)\n2. Create a `.venv` virtual environment in the project root\n3. Install all workspace packages and dependencies from `uv.lock`\n\n### macOS aarch64 (Apple Silicon)\n\nOn x86_64, we use `pypardiso` sparse solver that depends on Intel MKL. On aarch64 (Apple Silicon), we use `scikit-umfpack` as a fallback.\n\nAdditional system dependencies are required for building native extensions:\n\n```bash\n# Install system dependencies via Homebrew\nbrew install suite-sparse swig c-blosc hdf5 lzo\n\n# Set environment variables for building tables\nexport HDF5_DIR=/opt/homebrew/opt/hdf5\nexport BLOSC_DIR=/opt/homebrew/opt/c-blosc\nexport LZO_DIR=/opt/homebrew/opt/lzo\n\n# Install Python and all dependencies\nuv sync --all-packages\n```\n\n### All platforms\n\nCopy the provided sample env file and start the database service and seed the database with our schema:\n\n```bash\ndocker compose up -d postgres rabbitmq gadm_cache\nuv run python -m database --reinit\nuv run python -m inventory_importer.bw_import_controller --edb_path ./temp_data/brightway --download_from_gdrive 1QGgJPHuz-m7MA5zIkerN1b2EsId8dnIu --import_using_airtable --import_fao_statistics  --import_all_impact_assessments --import_glossary --import_matchings_from_airtable --gfm_import_data\n```\n\nNow you can run the python services on the host system:\n\n```bash\nuv run python -m api\nuv run python -m legacy_api\n```\n\nTo restore local transport (EcoTransit) caches, start workflows / dagit locally and run transport_cache_restore_job on your local database.\n\nAt this point, the database will be seeded but will have no recipe data. You can optionally generate\nsome test recipes with this script:\n\n```bash\nuv run python -m scripts.generate_recipes --api-key KEY --base-url http://localhost:8050\n```\n\nRefer to its `--help` for more info, you can find the KEY for our test namespace in https://gitlab.com/eaternity-cluster/bruno under Auth tab of e.g. the get_kitchens endpoint.\n\nPyCharm debug/run configurations for above python services are stored in `.idea/runConfigurations/` and can\neasily be used to reset the database to a clean state and to start the api services in the PyCharm Debugger.\n\nIf you use VS Code, ask a workmate for corresponding launch configurations and store them as `.vscode/launch.json`\n\nFor these debug configurations to work, you should select the python interpreter of the virtual environment created by uv. By default, uv creates the environment at:\n\n    .venv/bin/python\n\nIf using PyCharm, select the interpreter in project settings.\n\nIf using VS Code, open the Command Palette (`Ctrl+Shift+P`) and search for `Python: Select Interpreter` to choose.\n\n\n## Option 2: Everything in Docker\n\nAlternatively, you can start all services in docker without having python installed on your system:\nFirst build the image and seed the database:\n\n```bash\ndocker compose build _image_build\ndocker compose up -d postgres rabbitmq\ndocker compose --profile initdb run --rm initdb\ndocker compose --profile inventory_importer run --rm inventory_importer\ndocker compose --profile inventory_importer_gfm_import_data run --rm inventory_importer_gfm_import_data\n```\n\nNow you can start the dockerized python services:\n\n```bash\ndocker compose --profile api up -d\n```\n\n## What to try out\n\nAfter you followed option 1 or 2 above, you should be able to access the swagger ui and do example requests:\n\n- new API at [http://localhost:8040/docs](http://localhost:8040/v2/docs)\n- legacy API at [http://localhost:8050/docs](http://localhost:8050/api/docs)\n\nPlease, also checkout the example requests in the `/scripts` folder to get started.\n\n## Troubleshooting\n\nWe use multiprocessing in unittests of the `legacy_api` package to run the new api service in a separate process.\nIn order to be able to debug the multiprocessing code with PyCharm, you need to enable in the PyCharm settings\nunder `Python Debugger` the option `Gevent compatible`.\n\nWhen adding a new dependency to sub-packages (for example, `core` or `api`), update the pyproject.toml in that package\nand run `uv lock` then `uv sync --all-packages` from the root folder.\n\n## To check for updates of dependencies:\n\nTo show currently installed versions and check for updates:\n\n```bash\nuv tree  # show dependency tree\nuv lock --upgrade  # upgrade all dependencies to latest compatible versions\n```\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/46030","html_url":"https://ost.ecosyste.ms/projects/46030"}