{"_id":"@open-resource-discovery/provider-server","_rev":"27-ef200cd5c4e593620d2efbbbe9daf6d3","name":"@open-resource-discovery/provider-server","dist-tags":{"latest":"1.2.5"},"versions":{"0.7.0":{"name":"@open-resource-discovery/provider-server","version":"0.7.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.7.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"e06e0b96401ad3794bfb332981fabe070e229374","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.7.0.tgz","fileCount":103,"integrity":"sha512-Mnpdn2oCEsAvcwjDYCu6l2wzajJPdh2BAjzng7Sjhs3rVSSHA0+5uk2hTcRjePxUCrO2BizTJtEHYf+WuIv4xw==","signatures":[{"sig":"MEUCIGKJ6/BpMXMxrjBHSakYKhboBE4KxuRPFFKnh0Y+BqK9AiEA53hVVOmeAv3821OxB/Z/jDPH/D2STtaa1QidohWoX5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163709},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"865a2a971b975a79495d0f9f8a4de1627314d090","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@sap/open-resource-discovery":"1.9.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.7.0_1741938268266_0.5959968653027712","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@open-resource-discovery/provider-server","version":"0.7.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.7.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"4e66307442a0b21b7aab0b233ad50068341ebecf","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.7.1.tgz","fileCount":103,"integrity":"sha512-tClDI410Ftkg8YgfoRlaU7/7QbaYdciAy9gnheUMM1WaNjWgc2hvZ41xbOcXDRnC7yLjUGzupFWlE/c9P2Z1pQ==","signatures":[{"sig":"MEUCIBxygqHh6a8evf1e0iEdT/KDudX+/plBplN1vkHOUcMfAiEA8uz5GoScI1aTRY8UKFLHoP8YUMSRhoNWhq11miHSGpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163709},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"4b54a857fdbdfaf29710114de5c413b5ae7de514","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@sap/open-resource-discovery":"1.9.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.7.1_1741956179221_0.3288103271787919","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@open-resource-discovery/provider-server","version":"0.7.2","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.7.2","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"36992db56b065ff5b0ee510f5ec7275f1590c650","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.7.2.tgz","fileCount":103,"integrity":"sha512-eiPT+FHMEc7N36RxsPzepRa78qZDhB/s0RUU5VU1yTmzL6SppI7YYTZIqE28Ohu3sINwtKiqnw3gTcYdfyCpSA==","signatures":[{"sig":"MEUCIQC4pOYJsP9IqS5LrtEcRygAgOdHpCpbeyvmzB6JwCnqeAIgCjAKTDHe8idim0eH27LArfTkT9s+3duhhvAIODjfxFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163709},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"6841010a36c835cf6964d9b1a4ec60849536a832","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@sap/open-resource-discovery":"1.9.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.7.2_1742312528997_0.423807226581985","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@open-resource-discovery/provider-server","version":"0.7.3","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.7.3","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"b748057a2b6b9fe6e81ef0dd34809383dae4d12b","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.7.3.tgz","fileCount":103,"integrity":"sha512-mqKvwYV8mL3wzI0D3i9tDxy624rkZDAbyJaCjHa0Hb2I7edAmCvDZcuffqm2v7JHFtv+nnlnerkLqjyGE8OY7w==","signatures":[{"sig":"MEUCIE/vayPLmuqdGUpoHnG+iJieJhtTF6Fy4KIhI4jJPXdXAiEA3KsZac1gTvA8+B2l9HUGS+ut9DT+NC0Nu8jqy+34/o0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163709},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"9c930dd98317547e2e3f36c1d077c40e86219e87","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@sap/open-resource-discovery":"1.9.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.7.3_1742376971181_0.4682154321414187","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@open-resource-discovery/provider-server","version":"0.7.4","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.7.4","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"a5d64b0bea760ede76efbb07f47d821ea9a5f47f","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.7.4.tgz","fileCount":106,"integrity":"sha512-t9w3atbD6fg1ohlrMgh9Ybkl1NuIXHo8N580k1b10pVvMCY+4O9BzYPFfds3y2gz4DvTGaFu3PkWwW+lYy4oQA==","signatures":[{"sig":"MEUCIB8y3LrZFKSKLUGXppE9CzqP1TxYPeIKNcSoxpTGOLCXAiEAsfyGA4lvc6G02md0eCM/yjkBKHKKDIJLVv2ueFJ5Xs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193339},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"7c9b0d88fafe9d61dca62d9091622c967025350e","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@open-resource-discovery/specification":"^1.9.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.7.4_1742928773924_0.9195909296567752","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@open-resource-discovery/provider-server","version":"0.8.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.8.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"394566c185e32a3414a910c210372f9b567e2d8e","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.8.0.tgz","fileCount":130,"integrity":"sha512-IVs7Wg5NeFMtcTMBqGR0/0rIPjPH2S6uA8YnqAEE9MB40e2ThNucne+c6prynIk8ApHJkL6jW7sNnrhP3SiysA==","signatures":[{"sig":"MEQCIDZRNp1gG+pQFbr/rTM0kuAhwvHU9YjLGJwdoLEfjC8AAiBUtXY8bQdm8wohPFbd3hN/anSIn9z5jnUnWeJca54EVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":216924},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"b77a933c5739a8d8bdb84246dda3b7a82d79b322","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@open-resource-discovery/specification":"^1.9.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.8.0_1744185696403_0.7995704132126988","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@open-resource-discovery/provider-server","version":"0.8.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.8.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"47cda61e6cec2acfe3f6d209241211a895ed20d5","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.8.1.tgz","fileCount":130,"integrity":"sha512-b6ropHgDQ45Um3/wSbetgq0eaoC2laNNrae5EHbl0HTBCCkwFBZFDo0BcL1oNC6c9hV0qVgJVe+1iSgtxfzJrQ==","signatures":[{"sig":"MEQCIGA4q37h09TxYLf599/Cpvx9BlbS6oFeHcobc15kz56rAiB4QcvhiMLCxgkwONXkFzBibDnvZmzHux0UrGlQ18ugBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219848},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"7b43e73ee72aab9819abe390d62ddd8359f365b9","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@open-resource-discovery/specification":"^1.9.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.8.1_1744719223270_0.4410116716984531","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@open-resource-discovery/provider-server","version":"0.8.2","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.8.2","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"e90ec3a174446d5c613153d1187121f7ebbcd391","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.8.2.tgz","fileCount":133,"integrity":"sha512-yunEc2lbqkQ4jiDFl0LaOxKqtos3K/2Motc7Xt0SYjQYKbwwVztCrnfeNxQb3HmgvcwowfR1QbSdhHfA7RLB/w==","signatures":[{"sig":"MEMCIG3I1jdYHnow+cxyhlA0H3e1e/dBFCFMwatXHKcbwJEHAh9xrHGCnvKmtfcO+IWplLU2mw1lLR+kJw9LkSvaG0Zk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228113},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"6e704cb683fc23fea74c7292916cdaa916a49514","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.14.0","dependencies":{"pino":"^9.6.0","dotenv":"16.4.7","fastify":"^5.2.1","bcryptjs":"^3.0.2","commander":"^13.1.0","pino-pretty":"13.0.0","@fastify/auth":"^5.0.2","@fastify/etag":"6.0.3","fastify-plugin":"^5.0.1","@fastify/static":"8.1.1","@fastify/basic-auth":"^6.0.3","@open-resource-discovery/specification":"^1.9.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.3","jest":"^29.7.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.20.1","rimraf":"6.0.1","ts-jest":"^29.2.5","jest-cli":"^29.7.0","prettier":"^3.5.1","tsc-alias":"1.8.10","@eslint/js":"9.20.0","@types/got":"9.6.12","fetch-mock":"12.3.0","jest-junit":"16.0.0","typescript":"~5.7.3","@types/jest":"^29.5.14","@types/node":"^22.13.4","lint-staged":"15.4.3","@types/js-yaml":"^4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.0","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.8.2_1745311184514_0.21341934477603752","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@open-resource-discovery/provider-server","version":"0.9.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.9.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"c8bb5f4f930a1f21c9fab2a4c3bb61c4a5a9dd29","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.9.0.tgz","fileCount":163,"integrity":"sha512-9speSnOP0PYvYhfqnJ0DmDG86UPvDg2JbHsSUNDKvXeAGXvW0teAi7olO3kTvMx/gHQYP3/D35DT/5OSjVWfzA==","signatures":[{"sig":"MEUCIQDB0WGRtQftSYOuTWNFu3ivLV0K0C6WOuRhdvp5K06DIAIgfbvhr5mO+ZxVAjY/ZGxe6C4LRsCz4IO6gJVD8Vqa6PU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356167},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"67ec281c3dc17374332f548dce3bbe628f7b2b32","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.0","dependencies":{"pino":"9.7.0","dotenv":"17.2.0","fastify":"5.4.0","p-limit":"^5.0.0","bcryptjs":"3.0.2","commander":"14.0.0","pino-pretty":"13.0.0","@fastify/auth":"5.0.2","@fastify/etag":"6.0.3","@octokit/rest":"^20.1.2","fastify-plugin":"5.0.1","@fastify/static":"8.2.0","fastify-raw-body":"^5.0.0","@fastify/websocket":"^11.0.1","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.3","jest":"30.0.4","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.31.0","rimraf":"6.0.1","ts-jest":"29.4.0","jest-cli":"30.0.4","prettier":"3.6.2","@types/ws":"^8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.31.0","@types/got":"9.6.12","fetch-mock":"12.5.3","jest-junit":"16.0.0","typescript":"5.8.3","@types/jest":"30.0.0","@types/node":"22.16.5","lint-staged":"16.1.2","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.9.0_1753173609544_0.718141909007376","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@open-resource-discovery/provider-server","version":"0.9.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.9.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"9f858b38eb6b4cf5c79951d904e32939d2bc1309","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.9.1.tgz","fileCount":163,"integrity":"sha512-voNVWLxUeAkHbzhAH/sMCQRp5DdgZcgtkDlL/8a5DxRYpfxWv7H182jhcrQVx/2e+FbQ86+aUXpdR1ockmQvWw==","signatures":[{"sig":"MEUCIQDqhs4ij8hMcljB1Lxkck9pIBtRvTNWhQar3Lup8PSKTQIgWvgQixCVqU1AAbeeiP1XgDr2KybOisyHv2HBa1rI+1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356382},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"697885223187fbfe55f759ff2ee61cf5603c7378","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.0","dependencies":{"pino":"9.7.0","dotenv":"17.2.0","fastify":"5.4.0","p-limit":"^5.0.0","bcryptjs":"3.0.2","commander":"14.0.0","pino-pretty":"13.0.0","@fastify/auth":"5.0.2","@fastify/etag":"6.0.3","@octokit/rest":"^20.1.2","fastify-plugin":"5.0.1","@fastify/static":"8.2.0","fastify-raw-body":"^5.0.0","@fastify/websocket":"^11.0.1","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.3","jest":"30.0.4","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.31.0","rimraf":"6.0.1","ts-jest":"29.4.0","jest-cli":"30.0.4","prettier":"3.6.2","@types/ws":"^8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.31.0","@types/got":"9.6.12","fetch-mock":"12.5.3","jest-junit":"16.0.0","typescript":"5.8.3","@types/jest":"30.0.0","@types/node":"22.16.5","lint-staged":"16.1.2","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.9.1_1753187856452_0.2475686163646893","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@open-resource-discovery/provider-server","version":"0.9.2","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.9.2","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"b629b92e113ccfdafea98b685050d2b84fb4dbcb","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.9.2.tgz","fileCount":163,"integrity":"sha512-n6LQsNKelipNzxdXWDcNvalGhXOuT1RUV/fi0I5UI7Bxv1575qffV47n5RyYZBPSMANfeg6bof5kz3iIsNwFJQ==","signatures":[{"sig":"MEQCIHsEw/v8MJAHxfL/ke0fJCTqbX9f4EYj/ohmgMbdsUAFAiApVDh+MtkyztP+TrECKh8cgEudK+eXh5RPpcakvlhGxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":357156},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"53d56385ec6817627cbb79eaa23fa7f7bbc71045","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.0","dependencies":{"pino":"9.7.0","dotenv":"17.2.0","fastify":"5.4.0","p-limit":"^5.0.0","bcryptjs":"3.0.2","commander":"14.0.0","pino-pretty":"13.0.0","@fastify/auth":"5.0.2","@fastify/etag":"6.0.3","@octokit/rest":"^20.1.2","fastify-plugin":"5.0.1","@fastify/static":"8.2.0","fastify-raw-body":"^5.0.0","@fastify/websocket":"^11.0.1","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.3","jest":"30.0.4","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.31.0","rimraf":"6.0.1","ts-jest":"29.4.0","jest-cli":"30.0.4","prettier":"3.6.2","@types/ws":"^8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.31.0","@types/got":"9.6.12","fetch-mock":"12.5.3","jest-junit":"16.0.0","typescript":"5.8.3","@types/jest":"30.0.0","@types/node":"22.16.5","lint-staged":"16.1.2","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.9.2_1753193821324_0.13805680578598434","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@open-resource-discovery/provider-server","version":"0.10.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.10.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"cc3dc21f2f501fad282a381377bf7933d473781f","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.10.1.tgz","fileCount":193,"integrity":"sha512-lSPPb2BK2sGrjloupNyYZAxeaxsWTRZ3lHa4aL4yHSzr7pPEidSAA0O1x6VhPPWLn7W8sonFFJpsTN8HNdUY/g==","signatures":[{"sig":"MEYCIQCuCjmIZkdmb79Qf9y7RH15ZQ5V2Dbk+O1p5W9RfZmmXAIhAMAMa95oQNMwz0cspLTX8NlpXOGzqKgnmbYCsc8PQwa/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491220},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"03813a403e0bc47c8de10042cc0e9f766b30623d","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.3","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.20.0","dependencies":{"pino":"10.0.0","dotenv":"17.2.3","fastify":"5.6.1","p-limit":"7.1.1","bcryptjs":"3.0.2","commander":"14.0.1","pino-pretty":"13.1.1","@fastify/auth":"5.0.3","@fastify/cors":"11.1.0","@fastify/etag":"6.0.3","@octokit/rest":"22.0.0","fastify-plugin":"5.1.0","isomorphic-git":"^1.33.0","@fastify/static":"8.2.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.6","jest":"30.2.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.37.0","rimraf":"6.0.1","ts-jest":"29.4.4","jest-cli":"30.2.0","prettier":"3.6.2","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.37.0","@types/got":"9.6.12","fetch-mock":"12.5.4","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.6.2","lint-staged":"16.2.3","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.10.1_1760085302519_0.7603536894401743","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@open-resource-discovery/provider-server","version":"0.11.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.11.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"da0a5947c933edfc8f32a5c35cf26fab7266c157","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.11.0.tgz","fileCount":193,"integrity":"sha512-nt/W61dopgA4Ruc1rIca3EzMo8aT4+4hgiAtmw+zPWQQDINtYCDOh/FcNIBZ/kBnHMk1t1mjQF4ywZB6VAwU3w==","signatures":[{"sig":"MEUCIQCjNfMH6+kQ2+zUxaTxPXE54lgFoXSVn1kuHhkc0EgLTwIgQPi1h+HUeNT+/W0daKsSnyxHJoCWcLnjJcepob5BJ9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491518},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"7aa9bf54d8ab2713a3b8a5c61c288f25b8de7bd9","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.3","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.20.0","dependencies":{"pino":"10.0.0","dotenv":"17.2.3","fastify":"5.6.1","p-limit":"7.1.1","bcryptjs":"3.0.2","commander":"14.0.1","pino-pretty":"13.1.2","@fastify/auth":"5.0.3","@fastify/cors":"11.1.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.0","fastify-plugin":"5.1.0","isomorphic-git":"1.34.0","@fastify/static":"8.2.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.6","jest":"30.2.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.37.0","rimraf":"6.0.1","ts-jest":"29.4.5","jest-cli":"30.2.0","prettier":"3.6.2","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.37.0","@types/got":"9.6.12","fetch-mock":"12.5.4","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.7.2","lint-staged":"16.2.4","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.11.0_1760361773556_0.6741687684450524","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@open-resource-discovery/provider-server","version":"0.11.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@0.11.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"f7671786652ec7ae2f8ef754104b1ef59c59f008","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-0.11.1.tgz","fileCount":193,"integrity":"sha512-SLlQN++9dM2mF9d1NKulpVENOmmI8qnEQvXnbD7ADTeLvGiC7whgY1DyZa97AtKJmw8rAIDiUen/7A3iKoFJnw==","signatures":[{"sig":"MEQCIGmm/H+yHcKds+VWFS0UAh3MOZ+z42OAH1fEe9NpoyXpAiAFW/cVQ8wVNFpl1FEGpE85HsXMOiMm3kaq8S/739ti6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492596},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"f37ee87896c4b85ea2a4fc5562f81f029db80d59","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.4","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"pino":"10.1.0","dotenv":"17.2.3","fastify":"5.6.1","p-limit":"7.2.0","bcryptjs":"3.0.2","commander":"14.0.2","pino-pretty":"13.1.2","@fastify/auth":"5.0.3","@fastify/cors":"11.1.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.0","fastify-plugin":"5.1.0","isomorphic-git":"1.34.0","@fastify/static":"8.3.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.6","jest":"30.2.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.38.0","rimraf":"6.0.1","ts-jest":"29.4.5","jest-cli":"30.2.0","prettier":"3.6.2","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.38.0","@types/got":"9.6.12","fetch-mock":"12.5.5","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.9.1","lint-staged":"16.2.6","@types/js-yaml":"4.0.9","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.2","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_0.11.1_1761903637188_0.10800871095958553","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@open-resource-discovery/provider-server","version":"1.0.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.0.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"ff071708e602db4019b92ede0e70df2401c84ff5","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.0.0.tgz","fileCount":202,"integrity":"sha512-Z8YLymANGpzyqKiCmV3zgK6inC2ua71q2wCUQ00XXMria4/cfgcaERHm07AxvDeCfW+UHohtF78jN4P+h0AO0g==","signatures":[{"sig":"MEYCIQCVlxehwOSQeLuQ1CNkkO5vmGi4in/FXoq0vdzOcxa4jAIhAPUMjkSOi4X4TS+cpu8fTyJFNkhqKAI87CQJXPyhyXrz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":531156},"type":"module","engines":{"npm":">=10.8.2","node":">=22.8.0"},"gitHead":"06345dbbaef6c0a67846b24d5a1ba24d87982522","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"pavelkornev","email":"pavelkornev@gmail.com"},"overrides":{"glob":">=12.0.0","test-exclude":">=7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"10.9.4","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"pino":"10.1.0","dotenv":"17.2.3","fastify":"5.6.2","p-limit":"7.2.0","bcryptjs":"3.0.3","commander":"14.0.2","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.1.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.35.1","@fastify/static":"8.3.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.12.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.2.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.1","rimraf":"6.1.2","ts-jest":"29.4.6","jest-cli":"30.2.0","prettier":"3.7.4","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.39.1","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.10.1","lint-staged":"16.2.7","jest-fetch-mock":"3.0.3","@tsconfig/node22":"22.0.5","@sap/eslint-config":"0.4.0","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.0.0_1765377899145_0.9908652042134787","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@open-resource-discovery/provider-server","version":"1.0.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.0.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"2036a2b3894e9a095b951b3232db5adbdc6b8bb7","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.0.1.tgz","fileCount":202,"integrity":"sha512-H6BuSpfF99GeDKLEJ4+kI6PXSZGsMk6hxU7Rtu8BPuKNkObLOg/GRWqU+J9mn1ddycAaB3N0+W19IkkJGu+OQw==","signatures":[{"sig":"MEQCIE+akA7KHSmcHlIutCUXdaaqHRv2JMf55oAJ2ek2K/m9AiBVQrhYM92qDbe9iPa22ZkOF9bqCuNcbYSXOvj3s0/8Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":531214},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"5e4c0e412c09ba31fed7187a3a1c74e4ba8dd5e0","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.0","test-exclude":"7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.1.1","dotenv":"17.2.3","fastify":"5.6.2","p-limit":"7.2.0","bcryptjs":"3.0.3","commander":"14.0.2","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.36.1","@fastify/static":"9.0.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.2.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.2","ts-jest":"29.4.6","jest-cli":"30.2.0","prettier":"3.7.4","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.10.7","lint-staged":"16.2.7","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.0","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.0.1_1768236923439_0.1793300269306477","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@open-resource-discovery/provider-server","version":"1.1.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.1.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"1ed12ff8208c6a7930248c17fc9564f4748ae2e9","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.1.0.tgz","fileCount":205,"integrity":"sha512-OvBXVwgvzyeKg7nTEe5n72yxfy4kzItp9ReHXzhetTDFOWCyVDyVl6YinQepySZM3NMUt7DG8qzjOeVBAlxcTQ==","signatures":[{"sig":"MEUCIEZxT580xmVczeGeYk1nz/cnXcChLCLMSe9Nwg8wSCHXAiEA23o0XX0HK2i2Q+oaTustDxQBh0BUrEGf8EQoHoWcnl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536539},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"b9506ed8ec52f0fb0d34ad3ac8dcc4f1740526a6","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.0","test-exclude":"7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"14.0.3","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.37.5","@fastify/static":"9.1.1","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.14.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.3.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.3","ts-jest":"29.4.9","jest-cli":"30.3.0","prettier":"3.8.1","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.12.2","lint-staged":"16.4.0","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.1.0_1776843324945_0.43165740341933834","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@open-resource-discovery/provider-server","version":"1.1.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.1.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"c473167c9343c9934023c31f6ff31893e660b10e","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.1.1.tgz","fileCount":205,"integrity":"sha512-4pcK/ZUf3fSYAYdQa6AbsHKWyeYftw2hRp3PQemEHV36P8wUDw623aZOh2PGU+nsp5kYd6QfGabfQM63en//ig==","signatures":[{"sig":"MEUCIHYndQpowKHBez1nrvKE1VTSko3nVFbjIBKrgfglZm0kAiEA78dFGP+tccCr/2oL3dGjUGc2+eY5GrTv1SMNdP+h3Oo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":538003},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"46ad11f06b47a0ef7cd2a20951cf26c156abe5d8","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.0","eslint":{"minimatch":{"brace-expansion":"1.1.13"}},"test-exclude":"7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"14.0.3","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.37.5","@fastify/static":"9.1.1","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.14.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.3.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.3","ts-jest":"29.4.9","jest-cli":"30.3.0","prettier":"3.8.1","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.12.2","lint-staged":"16.4.0","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.1.1_1776866771870_0.8910093527223468","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@open-resource-discovery/provider-server","version":"1.1.2","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.1.2","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"003c290c748fa242c4c5b8c00ef80ba6163c39f9","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.1.2.tgz","fileCount":205,"integrity":"sha512-OZl1Oui+WxH/GOCpt3Lt2/4x5wKOtBTdY+6/OqFziHpop6kmpl6TXEK3SPYJeVh0R4QRsmBs2zfiJ+buQtefxw==","signatures":[{"sig":"MEYCIQDUMSXssMogYAZgIBRifhOPT1s5B241OPLnTyy+3Uu72gIhAOYlPYoaUPQ4VfyiiOrCsPv9vnVcDnnov3VFLHg+Pxp1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539040},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"7c3e694f9c983f335117fcf4c8169343eb90f9eb","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.0","eslint":{"minimatch":{"brace-expansion":"1.1.13"}},"test-exclude":"7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"14.0.3","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.37.5","@fastify/static":"9.1.1","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.14.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.3.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.3","ts-jest":"29.4.9","jest-cli":"30.3.0","prettier":"3.8.1","@types/ws":"8.18.1","tsc-alias":"1.8.16","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"16.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.12.2","lint-staged":"16.4.0","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.1.2_1776929545980_0.26499539135643757","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@open-resource-discovery/provider-server","version":"1.1.3","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.1.3","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"869e41ba04cb3af8ac412829492f09ce7e668872","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.1.3.tgz","fileCount":205,"integrity":"sha512-sjijxNY3xPPkeG5H5dXFC7A5QH/r0zkS/ERwWY1v1Ln0l5dmpWpVt3jGX+to781YJ+KQ1rSuFYrR8cxTpT+nww==","signatures":[{"sig":"MEYCIQDDsnDt7Vke5XJdjYObVbyumF2T9xTsscwdhbs/hPTMsgIhAKASGti3XH5CrpG/sa856qn9q5tDrUwABuvScvyqi7yN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539817},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"32117a3a55db772f227c19b0fdf9e7f81eb90007","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.0","eslint":{"minimatch":{"brace-expansion":"1.1.13"}},"test-exclude":"7.0.1"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"14.0.3","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.37.6","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.14.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.3.0","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.3","ts-jest":"29.4.9","jest-cli":"30.3.0","prettier":"3.8.1","@types/ws":"8.18.1","tsc-alias":"1.8.17","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.12.2","lint-staged":"16.4.0","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.1.3_1778151428979_0.7757989149721671","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@open-resource-discovery/provider-server","version":"1.1.4","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.1.4","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/src/cli.js"},"dist":{"shasum":"a0ee79ccea7f24750f4765dcc041e87ae6a6e00f","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.1.4.tgz","fileCount":205,"integrity":"sha512-hQYZrmqXC7Q2YTfPdkE1kw+gdKLC7LyFHIBB7/qci2X+p8P5ojuKJUGK5F6YvFGaXP4dfnavq2JpphXzudnIiw==","signatures":[{"sig":"MEYCIQCH1qSJuAiLBUYmzGgyLL7q3DDIcFXHfObiiRAlnykoywIhAP9gq9RNBkfoCW3GPU/6OAS1Mwke8rs7LeeSYW3XqwhG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539918},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"0bbb1ab98ab9ce24774784bd12375fa3697dc4cb","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/src/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.12.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"14.0.3","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.38.0","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.15.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.1","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"9.39.2","rimraf":"6.1.3","ts-jest":"29.4.9","jest-cli":"30.4.2","prettier":"3.8.1","@types/ws":"8.18.1","tsc-alias":"1.8.17","@eslint/js":"9.39.2","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.12.4","lint-staged":"17.0.5","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.4.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.1.4_1779011410246_0.5902226661027332","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@open-resource-discovery/provider-server","version":"1.2.0","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.2.0","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/cli.js"},"dist":{"shasum":"1d31f734a734c5817b62c09701bcbb53012a98aa","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.0.tgz","fileCount":204,"integrity":"sha512-uVCJ1FYbH/1q4m2LPwjmGVMjWXHrgXu0TJ1C3cI5pmyqjCVTTjaaWNcbGkVRPaN0bRVifzA/pZeBBOloWwbQIA==","signatures":[{"sig":"MEUCIHN293Lij8pk+w3I0ljyODQka8u2Fu2Nv3Jg3fxeBCrKAiEAjm/9998zUytaDZybP+RtvUM04UUlJdypbS5osqsWkU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":538020},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"781c3f2a3e6744488a67f406950d2ab36fbfe4d2","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.13.0","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"15.0.0","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"5.1.0","isomorphic-git":"1.38.4","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.16.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"10.4.1","rimraf":"6.1.3","ts-jest":"29.4.11","jest-cli":"30.4.2","prettier":"3.8.3","@types/ws":"8.18.1","tsc-alias":"1.8.17","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"6.0.3","@types/jest":"30.0.0","@types/node":"24.13.1","lint-staged":"17.0.7","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.5.1","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.2.0_1781099796465_0.3480643437886657","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@open-resource-discovery/provider-server","version":"1.2.1","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.2.1","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/cli.js"},"dist":{"shasum":"69a50159bf1e25f2646452a41b842e95cae5d1c1","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.1.tgz","fileCount":204,"integrity":"sha512-gN1u5uZRIHopL9g60zbmCTECOeMWXq2/vgTkqdHfmjPYgZ8xOk/39mK6hVpT36VOgB6V1yqicPrAW6JRJzBodg==","signatures":[{"sig":"MEQCIAVXV09R4ViGZBnx2JxXQITtFKh3YvP6sb1tZsnJqyl1AiAQY1n95rqH7tdiDlq+ZDJy7wxBVLPJftZAB7CrrMtHZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540278},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"5c69bcbb3ca3b416341f79dea160eca05c63ed29","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.13.0","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"15.0.0","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"6.0.0","isomorphic-git":"1.38.5","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.16.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"10.5.0","rimraf":"6.1.3","ts-jest":"29.4.11","jest-cli":"30.4.2","prettier":"3.8.4","@types/ws":"8.18.1","tsc-alias":"1.8.17","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"6.0.3","@types/jest":"30.0.0","@types/node":"24.13.2","lint-staged":"17.0.8","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.5.2","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.2.1_1782118412018_0.28878818954319563","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@open-resource-discovery/provider-server","version":"1.2.2","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.2.2","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/cli.js"},"dist":{"shasum":"94e4b350723a16e2c8bf84fa62e1e134b322fe72","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.2.tgz","fileCount":204,"integrity":"sha512-Km3p85OfmsTMxNshbLKn2R8BdrwzwNeJbDzw+HXG3QuwOYtupjL71L8qbGpiSXrLxEmlSOaaG9vvcS+oP7oGMw==","signatures":[{"sig":"MEQCIGMyPEiL2GgxfXaLzNJeEX167zWZUGF/tR36tkpj86WnAiAIAm71rcnCLXosQ98AizDEQinW1IkyaamNvqTvIAbYRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540278},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"301030b79d1f55090ffafb6bbdf92144455d3926","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.13.0","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"15.0.0","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"6.0.0","isomorphic-git":"1.38.5","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.16.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"10.5.0","rimraf":"6.1.3","ts-jest":"29.4.11","jest-cli":"30.4.2","prettier":"3.8.4","@types/ws":"8.18.1","tsc-alias":"1.8.17","@types/got":"9.6.12","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"6.0.3","@types/jest":"30.0.0","@types/node":"24.13.2","lint-staged":"17.0.8","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.5.2","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.2.2_1782207555682_0.24782651358254437","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@open-resource-discovery/provider-server","version":"1.2.3","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.2.3","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/cli.js"},"dist":{"shasum":"eeb77f1c32106b7f646c6b5e25040fa33230d797","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.3.tgz","fileCount":204,"integrity":"sha512-msfmJZMXOYYOXo8iSAtHGtcsiUNdF1wNrDzCVqXiQZed3fXHjmhJMmyRe8sfX1EHdi6LkmCvP6h3nIOyBW5NPA==","signatures":[{"sig":"MEYCIQCSNZdYUWbnQ7x50/Y9WMBdOVGSqxccn/uCkkwmmQdbFwIhANIUuW/7IOif5qL8xYaA2kJr9vPn61CWI1D8X9ePEiBM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540325},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"8125d090949a89fc0ee4b71ee81510d8b0dc0e3c","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","esbuild":"0.28.1","js-yaml":"4.2.0","form-data":"4.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.13.0","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"15.0.0","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"6.0.0","isomorphic-git":"1.38.5","@fastify/static":"9.1.3","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.16.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"10.5.0","rimraf":"6.1.3","ts-jest":"29.4.11","jest-cli":"30.4.2","prettier":"3.8.4","@types/ws":"8.18.1","tsc-alias":"1.8.17","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"6.0.3","@types/jest":"30.0.0","@types/node":"24.13.2","lint-staged":"17.0.8","jest-fetch-mock":"3.0.3","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.5.2","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.2.3_1782234734105_0.7256584194819773","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@open-resource-discovery/provider-server","version":"1.2.4","author":{"name":"SAP SE"},"license":"Apache-2.0","_id":"@open-resource-discovery/provider-server@1.2.4","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"homepage":"https://github.com/open-resource-discovery/provider-server#readme","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"bin":{"provider-server":"dist/cli.js"},"dist":{"shasum":"ce9c8d5909903dbb5b6dbd6d944dbdc6d762dc34","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.4.tgz","fileCount":204,"integrity":"sha512-OatjflJcM3b9k3Z9n6uoggRTZVmbh9okvvYnsMnwr64UK2IReePPPNKio6HmaKQrDshhcjrFH4mOS8t15SrTZg==","signatures":[{"sig":"MEQCIAGBi2WZKzhy0FkymreX3SUzZWOvm+qL8K7HYLln6vNSAiAPb5phXO1Uv8auDTbwCutR0v2CT0DWLWlw5ZNXCcHVpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540601},"type":"module","engines":{"npm":">=11.6.1","node":">=24.10.7"},"gitHead":"267a1683960d378896d57380aec066b3c5b542d3","scripts":{"dev":"tsx watch ./src/cli.ts","test":"npm run test:ci","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","start":"node dist/cli.js","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","eslint":"eslint . --fix","format":"npm run prettier && npm run eslint","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky","test:ci":"jest --ci --collectCoverage","coverage":"jest --coverage --maxWorkers=1","prebuild":"rimraf ./dist","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","eslint:ci":"eslint .","test:watch":"jest --watchAll","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"overrides":{"glob":"13.0.6","esbuild":"0.28.1","js-yaml":"4.3.0","form-data":"4.0.6","test-exclude":"8.0.0"},"repository":{"url":"git+https://github.com/open-resource-discovery/provider-server.git","type":"git"},"_npmVersion":"11.16.0","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","directories":{},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"pino":"10.3.1","dotenv":"17.4.2","fastify":"5.8.5","p-limit":"7.3.0","bcryptjs":"3.0.3","commander":"15.0.0","pino-pretty":"13.1.3","@fastify/auth":"5.0.4","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@octokit/rest":"22.0.1","fastify-plugin":"6.0.0","isomorphic-git":"1.38.7","@fastify/static":"10.1.0","fastify-raw-body":"5.0.0","@fastify/websocket":"11.2.0","@fastify/basic-auth":"6.2.0","@open-resource-discovery/specification":"1.16.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.0","jest":"30.4.2","husky":"9.1.7","is-ci":"4.1.0","eslint":"10.6.0","rimraf":"6.1.3","ts-jest":"29.4.11","jest-cli":"30.4.2","prettier":"3.8.5","@types/ws":"8.18.1","tsc-alias":"1.9.0","fetch-mock":"12.6.0","jest-junit":"17.0.0","typescript":"6.0.3","@types/jest":"30.0.0","@types/node":"24.13.3","lint-staged":"17.0.8","jest-fetch-mock":"4.2.0","@tsconfig/node24":"24.0.4","@sap/eslint-config":"0.5.2","jest-watch-typeahead":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-server_1.2.4_1784186378667_0.9432989442279969","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@open-resource-discovery/provider-server","version":"1.2.5","description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","engines":{"node":">=24.10.7","npm":">=11.6.1"},"type":"module","bin":{"provider-server":"dist/cli.js"},"scripts":{"prebuild":"rimraf ./dist","build":"tsc -p tsconfig.prod.json && tsc-alias -p tsconfig.prod.json","prepublishOnly":"npm run build","deploy":"npm run build && npm prune --production && cf login -a https://api.cf.sap.hana.ondemand.com -o CORE_CF -s open-discovery && cf push && npm install","start":"node dist/cli.js","dev":"tsx watch ./src/cli.ts","eslint":"eslint . --fix","eslint:ci":"eslint .","prettier":"prettier --write \"**/*.{json,yml,yaml,md}\"","prettier:ci":"prettier --check \"**/*.{json,yml,yaml,md}\"","format":"npm run prettier && npm run eslint","test:ci":"jest --ci --collectCoverage","test:watch":"jest --watchAll","test":"npm run test:ci","coverage":"jest --coverage --maxWorkers=1","prepare":"[ ! -z \"$CF_INSTANCE_IP\" ] || is-ci || husky"},"repository":{"type":"git","url":"git+https://github.com/open-resource-discovery/provider-server.git"},"author":{"name":"SAP SE"},"license":"Apache-2.0","dependencies":{"@fastify/auth":"5.0.4","@fastify/basic-auth":"6.2.0","@fastify/cors":"11.2.0","@fastify/etag":"6.1.0","@fastify/static":"10.1.2","@fastify/websocket":"11.2.0","@octokit/rest":"22.0.1","@open-resource-discovery/specification":"1.16.3","bcryptjs":"3.0.3","commander":"15.0.0","dotenv":"17.4.2","fastify":"5.8.5","fastify-plugin":"6.0.0","fastify-raw-body":"6.0.1","isomorphic-git":"1.41.4","p-limit":"7.3.1","pino":"10.3.1","pino-pretty":"13.1.3"},"devDependencies":{"@sap/eslint-config":"0.5.2","@tsconfig/node24":"24.0.5","@types/jest":"30.0.0","@types/node":"24.13.3","@types/ws":"8.18.1","eslint":"10.6.0","fetch-mock":"12.6.0","husky":"9.1.7","is-ci":"4.1.0","jest":"30.4.2","jest-cli":"30.4.2","jest-fetch-mock":"4.2.0","jest-junit":"17.0.0","jest-watch-typeahead":"3.0.1","lint-staged":"17.3.0","prettier":"3.8.5","rimraf":"6.1.3","ts-jest":"29.4.12","tsc-alias":"1.9.1","tsx":"4.23.12","typescript":"6.0.3"},"lint-staged":{"./**/*.{js,ts}":["eslint --quiet"],"**/*.{json,yml,yaml,md}":["prettier --write"]},"overrides":{"test-exclude":"8.0.0","glob":"13.0.6","form-data":"4.0.6","js-yaml":"4.3.1","esbuild":"0.28.1","brace-expansion":"5.0.9","fast-uri":"3.1.5","find-my-way":"9.7.0"},"gitHead":"1931c8b5b77dd831266bbd0abbb487dee9929328","_id":"@open-resource-discovery/provider-server@1.2.5","bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"homepage":"https://github.com/open-resource-discovery/provider-server#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-pSN/XEBqsHMfSAmRBdH9FKv7rGp6J3sWgcuoUx+Ek4WVd+R7gzliEESGFb76bYfmpKRP2cQi9j7sOeJN4MW5QA==","shasum":"f142470bd7faac8de0d03c82bd9375868c26ec10","tarball":"https://registry.npmjs.org/@open-resource-discovery/provider-server/-/provider-server-1.2.5.tgz","fileCount":204,"unpackedSize":542680,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@open-resource-discovery%2fprovider-server@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCS+yldQ2U/gtB5MmsxzSuL/3QxLRg2mm+7yPtzVRpXYQIgE0PCa3E/tvPNxHi8+thkQ7v6mk0XiwH+Jj8UvA1SJtw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85c5b4d4-bd43-43a1-8465-37aa760ab848"}},"directories":{},"maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider-server_1.2.5_1787038997398_0.21652056937177377"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-14T07:44:28.151Z","modified":"2026-08-18T07:43:18.615Z","0.7.0":"2025-03-14T07:44:28.470Z","0.7.1":"2025-03-14T12:42:59.423Z","0.7.2":"2025-03-18T15:42:09.202Z","0.7.3":"2025-03-19T09:36:11.452Z","0.7.4":"2025-03-25T18:52:54.119Z","0.8.0":"2025-04-09T08:01:36.632Z","0.8.1":"2025-04-15T12:13:43.446Z","0.8.2":"2025-04-22T08:39:44.714Z","0.9.0":"2025-07-22T08:40:09.750Z","0.9.1":"2025-07-22T12:37:36.715Z","0.9.2":"2025-07-22T14:17:01.505Z","0.10.1":"2025-10-10T08:35:02.716Z","0.11.0":"2025-10-13T13:22:53.743Z","0.11.1":"2025-10-31T09:40:37.413Z","1.0.0":"2025-12-10T14:44:59.464Z","1.0.1":"2026-01-12T16:55:23.605Z","1.1.0":"2026-04-22T07:35:25.093Z","1.1.1":"2026-04-22T14:06:12.046Z","1.1.2":"2026-04-23T07:32:26.126Z","1.1.3":"2026-05-07T10:57:09.150Z","1.1.4":"2026-05-17T09:50:10.409Z","1.2.0":"2026-06-10T13:56:36.654Z","1.2.1":"2026-06-22T08:53:32.178Z","1.2.2":"2026-06-23T09:39:15.844Z","1.2.3":"2026-06-23T17:12:14.270Z","1.2.4":"2026-07-16T07:19:38.806Z","1.2.5":"2026-08-18T07:43:17.550Z"},"bugs":{"url":"https://github.com/open-resource-discovery/provider-server/issues"},"author":{"name":"SAP SE"},"license":"Apache-2.0","homepage":"https://github.com/open-resource-discovery/provider-server#readme","repository":{"type":"git","url":"git+https://github.com/open-resource-discovery/provider-server.git"},"description":"A CLI application or server that takes multiple ORD documents and other metadata files and exposes them as a ORD Provider implementation (ORD Document API)","maintainers":[{"name":"pavelkornev","email":"pavelkornev@gmail.com"}],"readme":"[![REUSE status](https://api.reuse.software/badge/github.com/open-resource-discovery/provider-server)](https://api.reuse.software/info/github.com/open-resource-discovery/provider-server) [![CI](https://github.com/open-resource-discovery/provider-server/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/open-resource-discovery/provider-server/actions/workflows/main.yml) [![npm version](https://img.shields.io/npm/v/@open-resource-discovery/provider-server)](https://www.npmjs.com/package/@open-resource-discovery/provider-server) [![Docker Image](https://img.shields.io/github/v/release/open-resource-discovery/provider-server?label=docker)](https://github.com/open-resource-discovery/provider-server/pkgs/container/provider-server)\n\n# Open Resource Discovery Provider Server\n\nThis project helps to expose static metadata using [Open Resource Discovery](https://open-resource-discovery.github.io/specification/) (ORD) protocol via HTTP endpoint. Exposed metadata can be consumed by other application/services or [aggregators](https://open-resource-discovery.github.io/specification/spec-v1#ord-aggregator).\n\n## Usage\n\nReplace \"/path-to-your-metadata\" with the directory, that has your ORD Documents.\n\n### Via **Docker**\n\n1. **Local** (default: open)\n\n```bash\ndocker run -p 8080:8080 \\\n           -v \"$(pwd)/path-to-your-metadata:/app/data\" \\\n           ghcr.io/open-resource-discovery/provider-server:latest \\\n           -d /app/data \\\n           --base-url 'http://127.0.0.1:8080'\n```\n\n2. **Local** (basic auth)\n\n```bash\ndocker run -p 8080:8080 -v \"$(pwd)/path-to-your-metadata:/app/data\" \\\n  -e BASIC_AUTH='{\"admin\":\"$2y$05$TjeC./ljKi7VLTBbzjTVyOi6lQBYpzfXiZSfJiGECHVi0eEN6/QG.\"}' \\\n  ghcr.io/open-resource-discovery/provider-server:latest \\\n  -d /app/data --auth basic --base-url 'http://127.0.0.1:8080'\n```\n\n3. **GitHub** (open)\n\n```bash\ndocker run -p 8080:8080 \\\n  -e GITHUB_TOKEN=\"<your-token>\" \\\n  -e WEBHOOK_SECRET=\"<your-webhook-secret>\" \\\n  -e UPDATE_DELAY=\"30\" \\\n  -e STATUS_DASHBOARD_ENABLED=\"true\" \\\n  -e LOG_LEVEL=\"info\" \\\n  ghcr.io/open-resource-discovery/provider-server:latest \\\n  -s github \\\n  --github-api-url \"https://api.github.com\" \\\n  --github-repository \"owner/repo\" \\\n  --github-branch \"main\" \\\n  --base-url 'http://127.0.0.1:8080'\n```\n\n### Via **npx**\n\n**Prerequisites**\n\n- Node.js >=24.10.7\n- NPM >=11.6.1\n\n1. **Local** (default: open)\n\n```bash\n npx @open-resource-discovery/provider-server -d /path-to-your-metadata --base-url 'http://127.0.0.1:8080'\n```\n\n2. **Local** (basic auth)\n\n```bash\n BASIC_AUTH='{\"admin\":\"$2y$05$TjeC./ljKi7VLTBbzjTVyOi6lQBYpzfXiZSfJiGECHVi0eEN6/QG.\"}' npx @open-resource-discovery/provider-server -d /path-to-your-metadata --auth basic --base-url 'http://127.0.0.1:8080'\n```\n\n3. **GitHub** (open)\n\n```bash\n npx @open-resource-discovery/provider-server -s github \\\n   --github-api-url \"https://api.github.com\" \\\n   --github-repository \"owner/repo\" \\\n   --github-branch \"main\" \\\n   --github-token \"<your-token>\" \\\n   --base-url 'http://127.0.0.1:8080'\n```\n\n### CLI Options\n\n```bash\nnpx @open-resource-discovery/provider-server --help\n```\n\n| Option                                 | Default                  | Required         | Env Var                      | Description                                                                                                                                           |\n| -------------------------------------- | ------------------------ | ---------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-b, --base-url <type>`                | `local`                  | Yes              | `ORD_BASE_URL`               | Base URL of the server. If deployed in CF environment, the VCAP_APPLICATION env will be used as fallback                                              |\n| `-s, --source-type <type>`             | `local`                  | No               | `ORD_SOURCE_TYPE`            | Source type for ORD Documents (`local` or `github`)                                                                                                   |\n| `-a, --auth <types>`                   | `open`                   | No               | `ORD_AUTH_TYPE`              | Server authentication method(s) (`open`, `basic`, `cf-mtls`)                                                                                          |\n| `-d, --directory <path>`               | -                        | Yes (for local)  | `ORD_DIRECTORY`              | Root directory containing the ORD Documents directory and resource definition files.                                                                  |\n| `-ds, --documents-subdirectory <path>` | `documents`              | No               | `ORD_DOCUMENTS_SUBDIRECTORY` | Directory containing the ORD Documents with at least one ORD document. Supports nested folder structures. Can also be applied to a GitHub Repository. |\n| `--host <host>`                        | `0.0.0.0`                | No               | `SERVER_HOST`                | Host for server, without port                                                                                                                         |\n| `--port <number>`                      | `8080`                   | No               | `SERVER_PORT`                | Server port                                                                                                                                           |\n| `--github-api-url <apiUrl>`            | `https://api.github.com` | Yes (for github) | `GITHUB_API_URL`             | GitHub API endpoint for API calls                                                                                                                     |\n| `--github-branch <branch>`             | `main`                   | Yes (for github) | `GITHUB_BRANCH`              | GitHub branch to use                                                                                                                                  |\n| `--github-repository <repo>`           | -                        | Yes (for github) | `GITHUB_REPOSITORY`          | GitHub repository in format `<OWNER>/<REPO>`                                                                                                          |\n| `--github-token <token>`               | -                        | Yes (for github) | `GITHUB_TOKEN`               | GitHub token for authentication                                                                                                                       |\n| `--update-delay <seconds>`             | `5`                      | No               | `UPDATE_DELAY`               | Cooldown between webhook-triggered updates (seconds)                                                                                                  |\n| `--status-dashboard-enabled <boolean>` | `true`                   | No               | `STATUS_DASHBOARD_ENABLED`   | Enable/disable status dashboard (true/false)                                                                                                          |\n\n### Enabling Dynatrace OneAgent for Observability\n\nWhen running the Provider Server via Docker you can integrate Dynatrace for monitoring. This can be done by setting the `BOOTSTRAP_DYNATRACE_ONEAGENT` environment variable to `true` when starting the server. This result in an attempt to automatically bootstrap the Dynatrace OneAgent using the [Deployment API](https://docs.dynatrace.com/docs/dynatrace-api/environment-api/deployment/oneagent/download-oneagent-latest). In order to do that you need to either bind the container to a Dynatrace service instance (if in Cloud Foundry) or provide the following environment variables:\n\n- `DT_API_URL`: Your Dynatrace Managed URL, including the environment ID. An example URL might look like so `https://{your-managed-cluster.com}/e/{environmentid}/api`\n- `DT_TENANT`: Your Dynatrace environment ID is the unique identifier of your Dynatrace environment. You can find it in the deploy Dynatrace section within your environment.\n- `DT_API_TOKEN`: Dynatrace token that has the `InstallerDownload` scope (see: [Dynatrace API - Tokens and authentication](https://docs.dynatrace.com/docs/dynatrace-api/basics/dynatrace-api-authentication))\n\n### Environment-Only Variables\n\nSome configuration options are only available as environment variables for security reasons:\n\n| Environment Variable           | Description                                                                                                             |\n| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |\n| `WEBHOOK_SECRET`               | GitHub webhook secret for signature validation (required for webhook security in GitHub mode)                           |\n| `BASIC_AUTH`                   | JSON object with username:password-hash pairs for basic authentication (e.g., `{\"admin\":\"$2y$...\"})`                    |\n| `CF_MTLS_TRUSTED_CERTS`        | JSON config for CF mTLS authentication (see [CF mTLS Authentication](#cf-mtls-authentication))                          |\n| `BOOTSTRAP_DYNATRACE_ONEAGENT` | Bootstrap Dyntrace OneAgent for enabling observability via Dynatrace (possible values: `true\\|false`, default: `false`) |\n\n## System Requirements\n\nThe provider server's resource requirements depend on your repository size and content type.\n\n### Memory (RAM) Requirements\n\nMemory usage varies based on content type:\n\n#### ORD Documents (in `documents/` folder)\n\n- **Formula**: ~4× document size\n- **Reason**: Validation, parsing, caching, and processing overhead\n- **Example**: 500MB of ORD documents → 2GB RAM\n\n#### Resource Definition Files (outside `documents/` folder)\n\n- **Formula**: ~2× file size\n- **Reason**: Git clone operations only, no validation overhead\n- **Example**: 500MB of resource files → ~1GB RAM\n\n#### Combined Example\n\nIf you have 500MB ORD documents + 500MB resource files:\n\n- ORD documents: 500MB × 4 = 2GB\n- Resource files: 500MB × 2 = 1GB\n- **Total**: ~3GB RAM recommended\n\n#### General Recommendations\n\n- **Small repositories** (<10MB): 512MB RAM minimum\n- **Medium repositories** (10-500MB): 1-2GB RAM\n- **Large repositories** (>500MB): Calculate using formulas above\n\n### Disk Space Requirements\n\n**Formula**: Total repository size × 2.5\n\n**Reason**: Space needed for:\n\n- Git repository clone\n- Working directory\n- Temporary directory during updates\n\n**Examples**:\n\n- 10MB repository → ~25MB disk space\n- 100MB repository → ~250MB disk space\n- 1GB repository → ~2.5GB disk space\n\n#### General Recommendations\n\n- **Small repositories** (<10MB): 512MB disk minimum\n- **Medium repositories** (10-500MB): 1-2GB disk\n- **Large repositories** (>500MB): Calculate using formula above\n\n> **Note**: These are minimum recommendations. Consider adding 20-30% buffer for optimal performance and to handle temporary spikes during operations.\n\n### Required Structure\n\nThe specified directory path (`-d`) should contain a documents directory (configurable via `--documents-subdirectory`, default is `documents`) with at least one valid ORD Document. Other resources referenced by ORD Documents can be placed anywhere in the specified directory.\n\nThis structure applies to both source types:\n\n- **Local** (`-s local`): The path points to a local directory\n- **GitHub** (`-s github`): The path specifies a subdirectory within the repository\n\n```\n./<directory>/                            # Directory specified with -d\n├── documents/                            # Default folder containing ORD Document(s) (configurable via --documents-subdirectory)\n│   └── ord-document.json                 # ORD Document\n└── <ord-id-1>                            # Optional resources\n    └── <resource-definition-file-1>\n└── <ord-id-2>                            # Optional resources\n    ├── <resource-definition-file-2>\n    └── <resource-definition-file-3>\n```\n\n#### Example with Default Structure:\n\n```\n./my-ord-provider/                                        # Directory specified with -d\n├── documents/                                            # Default folder containing ORD Document(s)\n│   ├── ord-document.json                                 # ORD Document\n│   └── ord-document2.json                                # Additional ORD Document\n└── sap.xref:apiResource:astronomy:v1/                    # Optional resources\n    └── openapi-v3.json\n└── sap.xref:apiResource:astronomy:v2/                    # Optional resources\n    ├── openapi-v3.json\n    └── _metadata.json\n└── sap.xref:eventResource:odm-finance-costobject:v0/     # Optional resources\n    └── asyncapi-v3.json\n```\n\n#### Important Notes:\n\n1. **ORD Documents Location**\n   - All ORD Documents must be placed in the documents directory (configurable via `--documents-subdirectory`, default is `documents/`)\n   - ORD Documents can be placed in nested folders within the documents directory\n   - Supported format: `.json`\n\n2. **Resource References**\n   - Resources referenced in the ORD Documents can be placed anywhere within the `-d` directory\n   - The URLs in the ORD Document's `resourceDefinitions` must match the relative paths from the `-d` directory\n   - Example resource definition in an ORD Document:\n     ```json\n     {\n       \"resourceDefinitions\": [\n         {\n           \"type\": \"openapi-v3\",\n           \"mediaType\": \"application/json\",\n           \"url\": \"/apis/api-one/openapi.json\"\n         }\n       ]\n     }\n     ```\n   - The server will resolve `/apis/api-one/openapi.json` relative to the `-d` directory\n   - The access strategies of the `resourceDefinitions` will be overwritten by the configured access strategies (derived from the authentication method, or from `accessStrategies` in `CF_MTLS_TRUSTED_CERTS` when using `cf-mtls`)\n\n3. **Base URL**\n   - The `baseUrl` is a required parameter that must match the format specified in the [ORD Specification](https://open-resource-discovery.github.io/specification/spec-v1/interfaces/configuration#ord-configuration_baseurl).\n   - For local development:\n     - Use `http://127.0.0.1:8080` instead of `localhost`\n     - Alternatively, use a [Fully Qualified Domain Name (FQDN)](https://en.wikipedia.org/wiki/Fully_qualified_domain_name)\n   - This `baseUrl` value will:\n     - Be set in the ORD Configuration\n     - Override the existing baseUrl in the `describedSystemInstance` field of any ORD Documents\n\n### Perspective Filtering\n\nThe ORD Configuration endpoint supports filtering documents by perspective using the `?perspective=` query parameter:\n\n```bash\n# Get all documents (default)\ncurl http://127.0.0.1:8080/.well-known/open-resource-discovery\n\n# Filter by perspective\ncurl http://127.0.0.1:8080/.well-known/open-resource-discovery?perspective=system-version\ncurl http://127.0.0.1:8080/.well-known/open-resource-discovery?perspective=system-instance\ncurl http://127.0.0.1:8080/.well-known/open-resource-discovery?perspective=system-independent\ncurl http://127.0.0.1:8080/.well-known/open-resource-discovery?perspective=system-type\n```\n\n> [!NOTE]\n> ORD documents without an explicit `perspective` property default to `system-instance`.\n\n### Authentication\n\nBy default, if no `--auth` parameter is specified, the server starts without authentication.\n\n#### Open\n\nWhen the `open` authentication parameter is used, the server bypasses authentication checks.\n\n> Cannot be used together with other authentication types.\n\n#### Basic Authentication\n\nThe server supports Basic Authentication through an environment variable that contains a JSON string mapping usernames to bcrypt-hashed passwords:\n\n```json\n{ \"admin\": \"$2a$05$....\", \"reader\": \"$2y$a2$\" }\n```\n\nTo generate hashes, use [htpasswd](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) utility:\n\n```bash\nhtpasswd -Bnb <user> <password>\n```\n\nThis will output something like `admin:$2y$05$...` - use only the hash part (starting with `$2y$`) in your `BASIC_AUTH` JSON.\n\n> [!IMPORTANT]\n> Make sure to use strong passwords and handle the BASIC_AUTH environment variable securely. Never commit real credentials or .env files to version control.\n\n<details>\n<summary>Using htpasswd in your environment</summary>\n\n- **Platform independent**:\n\n  > Prerequisite is to have [NodeJS](https://nodejs.org/en) installed on the machine.\n\n  ```bash\n  npm install -g htpasswd\n  ```\n\n  After installing package globally, command `htpasswd` should be available in the Terminal.\n\n- **macOS**:\n\n  Installation of any additional packages is not required. Utility `htpasswd` is available in Terminal by default.\n\n- **Linux**:\n\n  Install apache2-utils package:\n\n  ```bash\n  # Debian/Ubuntu\n  sudo apt-get install apache2-utils\n\n  # RHEL/CentOS\n  sudo yum install httpd-tools\n  ```\n\n</details>\n\n#### Cloud Foundry mTLS Authentication\n\nFor SAP BTP CloudFoundry environments, the server supports mTLS (mutual TLS) authentication using client certificate headers.\n\n> [!IMPORTANT]\n> The `cf-mtls` authentication method can only be activated in a Cloud Foundry environment. The server will fail to start if this authentication method is used outside of Cloud Foundry.\n\nSet the `CF_MTLS_TRUSTED_CERTS` environment variable with a JSON object:\n\n```json\n{\n  \"certs\": [{ \"issuer\": \"CN=CA,O=Org,C=DE\", \"subject\": \"CN=service,O=Org,C=DE\" }],\n  \"rootCaDn\": [\"CN=Root CA,O=Org,C=DE\"],\n  \"configEndpoints\": [\"https://config.example.com/mtls-info\"],\n  \"accessStrategies\": [\"sap:cmp-mtls:v1\"]\n}\n```\n\n| Field              | Required | Description                                                             |\n| ------------------ | -------- | ----------------------------------------------------------------------- |\n| `certs`            | No\\*     | Array of trusted issuer/subject certificate pairs                       |\n| `rootCaDn`         | Yes      | Array of trusted root CA Distinguished Names                            |\n| `configEndpoints`  | No       | Array of URLs to fetch additional cert info from                        |\n| `accessStrategies` | No       | Array of ORD access strategy identifiers written into served documents. |\n\n\\* `certs` can be omitted when `configEndpoints` is provided (certs will be fetched from endpoints).\n\n> [!NOTE]\n> Root CA DNs are only read from `CF_MTLS_TRUSTED_CERTS`, not from config endpoints (security by design).\n\n##### Wildcard Support\n\nYou can use `\"*\"` as a wildcard for `issuer` and/or `subject` fields:\n\n| Configuration                                     | Behavior                                               |\n| ------------------------------------------------- | ------------------------------------------------------ |\n| `issuer: \"*\"`                                     | Accept any issuer, validate subject only               |\n| `subject: \"*\"`                                    | Accept any subject, validate issuer only               |\n| Both `\"*\"`                                        | Skip issuer/subject validation, only validate rootCaDn |\n| Provide only `configEndpoints` instead of `certs` | Certs fetched from endpoints at startup                |\n\n**Examples:**\n\n```json\n// configEndpoints used at startup, to fetch certs\n{\"rootCaDn\": [\"CN=Root CA,O=Org,C=DE\"], \"configEndpoints\": [\"https://config.example.com/mtls-info\"]}\n\n// Wildcard issuer - accept certs from any CA for a specific service\n{\"certs\": [{\"issuer\": \"*\", \"subject\": \"CN=my-service,O=Org,C=DE\"}], \"rootCaDn\": [\"CN=Root CA,O=Org,C=DE\"]}\n\n// Wildcard subject - accept any service from a specific CA\n{\"certs\": [{\"issuer\": \"CN=Trusted CA,O=Org,C=DE\", \"subject\": \"*\"}], \"rootCaDn\": [\"CN=Root CA,O=Org,C=DE\"]}\n\n// Both wildcards - only validate rootCaDn\n{\"certs\": [{\"issuer\": \"*\", \"subject\": \"*\"}], \"rootCaDn\": [\"CN=Root CA,O=Org,C=DE\"]}\n```\n\n> [!NOTE]\n> The `rootCaDn` validation is always enforced and cannot be bypassed with wildcards.\n\n### Cloud Foundry Deployment\n\nFirst, install the Cloud Foundry CLI by following the official documentation:\n[Cloud Foundry CLI Installation](https://docs.cloudfoundry.org/cf-cli/install-go-cli.html).\n\nThe ORD Provider Server can be deployed to Cloud Foundry either by using Cloud Foundry CLI to deploy our Docker image or via a manifest file with the Node.js buildpack.\n\n#### Via CF CLI\n\nDeploy using our Docker image from the private repository:\n\n```bash\n# 1. Login to Cloud Foundry\ncf login -a <api-url> -o <org> -s <space>\n\n# 2. Push the app without starting it\ncf push <your-app-name> \\\n--no-manifest \\\n--docker-image \"ghcr.io/open-resource-discovery/provider-server:latest\" \\\n--docker-username <docker-username> \\\n--memory 512MB \\\n--disk 512MB \\\n--no-route \\\n--no-start\n\n# 3. Set all environment variables\ncf set-env <your-app-name> ORD_SOURCE_TYPE <github|local>\ncf set-env <your-app-name> GITHUB_BRANCH <branch_name>\ncf set-env <your-app-name> GITHUB_API_URL <url>\ncf set-env <your-app-name> GITHUB_REPOSITORY <owner/repo>\ncf set-env <your-app-name> GITHUB_TOKEN <github_token>\n\n# 4. Add and map a route for your app\ncf map-route <your-app-name> <domain> --hostname <your-app-name>\n\n# 5. Start the app\ncf start <your-app-name>\n```\n\n<details>\n<summary>Via CF Manifest (Alternative Approach)</summary>\n\nYou can also deploy your current repository using a manifest file:\n\n1. Create `manifest.yaml`:\n\n```yaml\n---\napplications:\n  - name: <your-app-name>\n    buildpacks:\n      - nodejs_buildpack\n    instances: 1\n    memory: 512M\n    disk_quota: 512M\n    routes:\n      - route: <your-app-name>.example.com\n    env:\n      GITHUB_BRANCH: <branch_name>\n      GITHUB_API_URL: <url>\n      GITHUB_REPOSITORY: <owner/repository>\n      GITHUB_TOKEN: <ghp_token>\n      ORD_SOURCE_TYPE: <github|local>\n```\n\n2. Deploy:\n\n```bash\ncf push\n```\n\n</details>\n\n##### Re-deploy a CF app\n\n```bash\n\n# 1. Login to Cloud Foundry\ncf login -a <api-url> -o <org> -s <space>\n\n# 2. Push the updated app\ncf push <your-app-name> \\\n--no-manifest \\\n--docker-image \"ghcr.io/open-resource-discovery/provider-server:<your-new-version>\" \\\n--docker-username <docker-username>\n```\n\n## GitHub Token Permissions\n\nWhen using the GitHub source type (`-s github`), you need to provide a GitHub token with appropriate permissions. Both fine-grained personal access tokens (PATs) and classic tokens are supported.\n\n### Required Permissions\n\nFor **Fine-grained personal access tokens**:\n\n- **Repository Access**: Select the specific repository(ies) you need access to\n- **Permissions**: Only `Contents` with `Read-only` access is required\n\nFor **Tokens (classic)**:\n\n- **Repository Access**:\n  - `repo` access for private repositories\n  - `public_repo` scope for public repositories only\n\n## GitHub Webhooks\n\nWhen using the GitHub source type (`-s github`), you can configure webhooks to automatically update content when changes are pushed to your repository.\n\n### Setting up GitHub Webhooks\n\n1. Go to your GitHub repository → Settings → Webhooks\n2. Click \"Add webhook\"\n3. Configure the webhook:\n   - **Payload URL**: `https://your-server.com/api/v1/webhook/github`\n   - **Content type**: `application/json`\n   - **Secret**: A secure random string\n   - **Events**: Select \"Just the push event\"\n\n### Update Delay\n\nThe `--update-delay` parameter sets a cooldown period between webhook-triggered updates. This prevents excessive updates when multiple commits are pushed in quick succession. During the cooldown period, only the latest push event will be processed after the delay expires.\n\n## Status Dashboard\n\nThe provider server includes a built-in status dashboard accessible at `/status` that provides real-time monitoring of your ORD provider.\nNavigate to `http://127.0.0.1:8080/status` in your browser.\n\nWhen disabled, `/status` will redirect to the ORD endpoint.\n\n## Caching Architecture\n\nThe provider server implements a sophisticated caching system to optimize performance:\n\n- **Memory Cache**: Hash-keyed in-memory storage for instant request serving\n- **Smart Invalidation**: Automatic cache invalidation based on file modifications\n\nFor detailed information about the caching architecture, cache warming process, and performance characteristics, see [ORD Provider Server Caching Architecture](internal/ORDProviderServerCacheArchitecture.md).\n\n## License\n\nCopyright 2025 SAP SE or an SAP affiliate company and contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](.reuse/dep5).\n","readmeFilename":"README.md"}