gina 0.6.7 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +27 -26
- package/ROADMAP.md +3 -2
- package/framework/v0.6.8/VERSION +1 -0
- package/framework/{v0.6.7 → v0.6.8}/core/config.js +10 -0
- package/framework/v0.6.8/core/connectors/couchbase/lib/storage-store.js +1074 -0
- package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.js +532 -22
- package/framework/v0.6.8/core/controller/controller.render-stream.js +270 -0
- package/framework/{v0.6.7 → v0.6.8}/core/gna.js +10 -2
- package/framework/{v0.6.7 → v0.6.8}/core/router.js +30 -10
- package/framework/{v0.6.7 → v0.6.8}/core/server.isaac.js +42 -7
- package/framework/{v0.6.7 → v0.6.8}/lib/cmd/storage/gc.js +6 -0
- package/framework/{v0.6.7 → v0.6.8}/lib/cmd/storage/stats.js +7 -0
- package/framework/{v0.6.7 → v0.6.8}/lib/cmd/storage/verify.js +6 -0
- package/framework/{v0.6.7 → v0.6.8}/lib/storage/src/local-cas.js +107 -9
- package/framework/v0.6.8/lib/storage/src/local-stream.js +1418 -0
- package/framework/{v0.6.7 → v0.6.8}/lib/storage/src/local.js +177 -16
- package/framework/{v0.6.7 → v0.6.8}/lib/storage/src/main.js +406 -25
- package/framework/{v0.6.7 → v0.6.8}/lib/storage/src/meta-store.js +13 -2
- package/framework/v0.6.8/lib/storage/src/s3.js +759 -0
- package/framework/{v0.6.7 → v0.6.8}/lib/storage/src/util.js +26 -1
- package/framework/{v0.6.7 → v0.6.8}/lib/storage-store.js +33 -23
- package/framework/{v0.6.7 → v0.6.8}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +22 -47
- package/package.json +3 -3
- package/schema/routing.json +4 -0
- package/schema/settings.json +84 -10
- package/script/check_no_local_leak.js +2 -1
- package/script/retry_lockfile_sync.js +2 -1
- package/script/soak/storage-couchbase/README.md +61 -0
- package/script/soak/storage-couchbase/probe-cas.js +77 -0
- package/script/soak/storage-couchbase/probe-store.js +101 -0
- package/types/index.d.ts +18 -0
- package/framework/v0.6.7/VERSION +0 -1
- package/framework/v0.6.7/core/controller/controller.render-stream.js +0 -169
- /package/framework/{v0.6.7 → v0.6.8}/AUTHORS +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/LICENSE +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/param-redact.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/content.encoding +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/dev/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/locales/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/mime.types +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/model/entity.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/model/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/server.express.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/server.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/status.codes +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/console.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/context.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/path.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/task.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/helpers/text.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/async/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/storage/arguments.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/storage/help.txt +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/config.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/job/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/job-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/math/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/model.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/proc.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/session-store.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/shell.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/state.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/storage/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/url/README.md +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/url/index.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/validator.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.7 → v0.6.8}/lib/ws-session/src/main.js +0 -0
|
@@ -72,22 +72,36 @@ var TMP_DIR = '.tmp';
|
|
|
72
72
|
* seam in the tree (job-store, session-store, the upload mover) rather than
|
|
73
73
|
* introducing a promise style the surrounding code does not use.
|
|
74
74
|
*
|
|
75
|
-
* Verbs arrive WITH the strategy that needs them
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
75
|
+
* Verbs arrive WITH the strategy that needs them. `getRange` (Range serving)
|
|
76
|
+
* has LANDED on every local strategy — it is contract, not strategy detail, and
|
|
77
|
+
* a Range verb that existed only on `stream` would serve nobody, since `sharded`
|
|
78
|
+
* is the zero-config default. The five resumable verbs (`createUpload` /
|
|
79
|
+
* `writeSegment` / `statUpload` / `finalize` / `abortUpload`) are `stream`-only
|
|
80
|
+
* and `findByDigest` (content-addressed dedup) `cas`-only; both stay
|
|
81
|
+
* capability-gated (`capabilities.resumable`, `capabilities.dedup`).
|
|
82
|
+
*
|
|
83
|
+
* `capabilities.ranges` is consumed by the framework itself: the controller's
|
|
84
|
+
* `serveFromStorage()` facade answers 206/416/304 with `Accept-Ranges`/
|
|
85
|
+
* `Content-Range` on both engines, gated on this flag — an adapter that
|
|
86
|
+
* cannot serve ranges is transparently answered with the full 200.
|
|
79
87
|
*
|
|
80
88
|
* @typedef {Object} StorageDriver
|
|
81
89
|
* @property {function(object, object, function): void} put - Store a readable stream; `fn(err, {@link StoragePutResult})`.
|
|
82
|
-
* @property {function(string, function): void} get - Open a readable stream for `key`; `fn(err, stream)`. Errors on an unknown key — see `stat` for the existence question.
|
|
90
|
+
* @property {function(string, function): void} get - Open a readable stream for `key`; `fn(err, stream)`. Errors on an unknown key — see `stat` for the existence question. Read-verb errors carry a machine `code` (`STORAGE_NO_OBJECT` / `STORAGE_RANGE_UNSATISFIABLE` / `STORAGE_INVALID_RANGE` — see `util.codedError`) so an HTTP serving layer maps 404/416/400 without parsing message text.
|
|
91
|
+
* @property {function(string, number, number, function): void} getRange - Open a readable stream over an INCLUSIVE byte range; `fn(err, stream)`. An over-long `end` is clamped; an unsatisfiable `start` errors (the caller's 416).
|
|
83
92
|
* @property {function(string, function): void} stat - Metadata for `key`; `fn(err, meta|null)`. `null` (not an error) when unknown.
|
|
84
93
|
* @property {function(string, function=): void} release - Delete object and metadata; `fn(err, existed)`.
|
|
85
|
-
* @property {function(string, function): void}
|
|
94
|
+
* @property {function(string, ?object, function): void} resolve - How to serve `key` — `resolve(key[, opts], fn)`; `fn(err, {kind:'path', path} | {kind:'inline'} | {kind:'url', url, expiresAt})`. `opts` carries offload response overrides (`contentType`/`download`/`filename`/`cacheControl` → the provider's signed `response-*` params); local strategies accept and IGNORE it, so one facade call site serves every driver.
|
|
86
95
|
* @property {function(): void} close - Release the metadata handle. Teardown/tests only.
|
|
87
96
|
* @property {object} capabilities - What this driver can do; every consumer must branch on it rather than assume.
|
|
88
97
|
* @property {function(function): void} [stats] - Driver statistics for the operator surface (`storage:stats`); `fn(err, {name, strategy, root, capabilities, store})` — `store` is the metadata store's aggregate counts, or `null` when the store reports no stats. Present on both local strategies.
|
|
89
|
-
* @property {function((object|function)=, function=): void} [sweepNow] - cas-only: run one GC pass now; `{dryRun: true}` lists collectable keys without touching anything. `fn(err, {collected, drained}|{collectable, drained})`. A strategy without a sweep simply lacks the verb — callers branch, never assume.
|
|
98
|
+
* @property {function((object|function)=, function=): void} [sweepNow] - cas-only: run one GC pass now; `{dryRun: true}` lists collectable keys without touching anything. `fn(err, {collected, drained}|{collectable, drained})`. A strategy without a sweep simply lacks the verb — callers branch, never assume. NB `stream` reclaims abandoned upload sessions on its own schedule but exposes no operator door in v1, so it correctly lacks this verb.
|
|
90
99
|
* @property {function(object, function): void} [verify] - cas-only: files↔rows consistency scan (age-gated); see `src/local-cas`.
|
|
100
|
+
* @property {function(object, function): void} [createUpload] - stream-only: open a resumable upload session; `fn(err, {uploadId, chunkSize, expectedSize})`. `expectedSize` is REQUIRED — see `src/local-stream`.
|
|
101
|
+
* @property {function(string, number, object, function): void} [writeSegment] - stream-only: write one segment at a byte offset, out of order and idempotently; `fn(err, {offset, length, received})`.
|
|
102
|
+
* @property {function(string, function): void} [statUpload] - stream-only: what landed and what is missing; `fn(err, {expectedSize, received, missing, complete, …})`. The resumable twin of `stat()`.
|
|
103
|
+
* @property {function(string, function): void} [finalize] - stream-only: verify coverage as an interval union, publish, index; `fn(err, {key, size, contentType})`. Idempotent, with a heal path.
|
|
104
|
+
* @property {function(string, function=): void} [abortUpload] - stream-only: discard a session; `fn(err, {aborted})`. Idempotent.
|
|
91
105
|
*/
|
|
92
106
|
|
|
93
107
|
/**
|
|
@@ -103,6 +117,12 @@ var TMP_DIR = '.tmp';
|
|
|
103
117
|
* parsed (defaults resolve in `start()`). Objects
|
|
104
118
|
* strictly under it are stored inline in the
|
|
105
119
|
* metadata store; `0`/absent disables tiering.
|
|
120
|
+
* @param {number} [conf.sweepGrace] - How old a temp file must be before the
|
|
121
|
+
* build-time orphan sweep reclaims it, in ms
|
|
122
|
+
* (defaults resolve in `start()`). Same key,
|
|
123
|
+
* default and meaning as cas's; `sharded` has no
|
|
124
|
+
* periodic sweep, so this gates the build pass
|
|
125
|
+
* alone (#B349).
|
|
106
126
|
* @param {StorageMetaStore} metaStore - Metadata backend (embedded SQLite by default).
|
|
107
127
|
* @returns {StorageDriver} A ready driver.
|
|
108
128
|
*
|
|
@@ -119,6 +139,38 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
119
139
|
var inlineThreshold = ( typeof conf.inlineThreshold === 'number' && conf.inlineThreshold > 0 )
|
|
120
140
|
? conf.inlineThreshold
|
|
121
141
|
: 0;
|
|
142
|
+
var sweepGraceMs = ( typeof conf.sweepGrace === 'number' && conf.sweepGrace > 0 )
|
|
143
|
+
? conf.sweepGrace
|
|
144
|
+
: 0;
|
|
145
|
+
|
|
146
|
+
// #B349 — build-time temp-orphan sweep, age-gated. A put() whose PROCESS
|
|
147
|
+
// died leaves its temp behind, and until now nothing on `sharded` ever
|
|
148
|
+
// removed it: cas has this same pass and `stream` has its own, so sharded
|
|
149
|
+
// was the one strategy where the leak was permanent. Build time is the
|
|
150
|
+
// right and only trigger — a restart is the earliest moment the previous
|
|
151
|
+
// process is provably gone — and the age gate is what keeps a SIBLING
|
|
152
|
+
// process's in-flight write safe on a shared root, which is precisely the
|
|
153
|
+
// shape a connector-backed store exists to support. Never throws: an
|
|
154
|
+
// unreadable temp dir is the next put()'s problem to report properly, and
|
|
155
|
+
// a sweep that took the build down would be a worse failure than the leak
|
|
156
|
+
// it prevents.
|
|
157
|
+
if ( sweepGraceMs > 0 ) {
|
|
158
|
+
try {
|
|
159
|
+
var _tmpD = nodePath.join(root, TMP_DIR);
|
|
160
|
+
if ( fs.existsSync(_tmpD) ) {
|
|
161
|
+
var _cutoff = Date.now() - sweepGraceMs;
|
|
162
|
+
var _entries = fs.readdirSync(_tmpD);
|
|
163
|
+
for (var _t = 0; _t < _entries.length; _t++) {
|
|
164
|
+
var _tp = nodePath.join(_tmpD, _entries[_t]);
|
|
165
|
+
try {
|
|
166
|
+
if ( fs.statSync(_tp).mtimeMs < _cutoff ) {
|
|
167
|
+
fs.unlinkSync(_tp);
|
|
168
|
+
}
|
|
169
|
+
} catch (_e) { /* raced or unreadable — leave it */ }
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
} catch (_e) { /* never blocks the build */ }
|
|
173
|
+
}
|
|
122
174
|
|
|
123
175
|
/**
|
|
124
176
|
* Resolve a caller-supplied key to a confined absolute path.
|
|
@@ -143,7 +195,7 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
143
195
|
*/
|
|
144
196
|
var capabilities = {
|
|
145
197
|
offload : false,
|
|
146
|
-
ranges :
|
|
198
|
+
ranges : true,
|
|
147
199
|
dedup : false,
|
|
148
200
|
resumable : false,
|
|
149
201
|
inline : ( inlineThreshold > 0 )
|
|
@@ -232,14 +284,42 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
232
284
|
}
|
|
233
285
|
}
|
|
234
286
|
|
|
287
|
+
/**
|
|
288
|
+
* Abandon the put: tear both streams down, remove the temp, report.
|
|
289
|
+
*
|
|
290
|
+
* #B358 — the unlink WAITS for the write stream to close, and the
|
|
291
|
+
* callback waits with it. `createWriteStream()` opens
|
|
292
|
+
* asynchronously, so an error arriving right after `spill()` — the
|
|
293
|
+
* source failing on the chunk that crossed `inlineThreshold` is the
|
|
294
|
+
* measured case — reaches here while the `open(2)` is still in the
|
|
295
|
+
* threadpool: the temp does not exist YET at this instant but lands
|
|
296
|
+
* a tick later, on the worker thread, with no event-loop turn in
|
|
297
|
+
* between for a synchronous check to see. The previous
|
|
298
|
+
* `existsSync`-gated unlink therefore read false, skipped, and
|
|
299
|
+
* orphaned the temp. A null `ws` means `spill()` never ran and no
|
|
300
|
+
* temp was ever created, so that arm finishes immediately; `force`
|
|
301
|
+
* makes the unlink a no-op there rather than a special case.
|
|
302
|
+
*
|
|
303
|
+
* @inner
|
|
304
|
+
* @param {*} err - The failure to report; wrapped if not an Error.
|
|
305
|
+
* @returns {void}
|
|
306
|
+
*/
|
|
235
307
|
var onError = function(err) {
|
|
236
308
|
if (settled) return;
|
|
237
309
|
settled = true;
|
|
238
310
|
head = null;
|
|
239
311
|
try { stream.destroy(); } catch (_e) {}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
312
|
+
|
|
313
|
+
var finish = function() {
|
|
314
|
+
try { fs.rmSync(tmp, { force: true }); } catch (_e) {}
|
|
315
|
+
fn(( err instanceof Error ) ? err : new Error(String(err)));
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
// No ws (never spilled), or one that already emitted 'close' —
|
|
319
|
+
// neither will emit it again, so those arms must not wait.
|
|
320
|
+
if ( !ws || ws.closed || ws.destroyed ) { return finish(); }
|
|
321
|
+
ws.once('close', finish);
|
|
322
|
+
try { ws.destroy(); } catch (_e) { finish(); }
|
|
243
323
|
};
|
|
244
324
|
|
|
245
325
|
/**
|
|
@@ -404,7 +484,7 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
404
484
|
return fn(null, Readable.from([m.data]));
|
|
405
485
|
}
|
|
406
486
|
if ( !fs.existsSync(r.path) ) {
|
|
407
|
-
return fn(
|
|
487
|
+
return fn(util.codedError('STORAGE_NO_OBJECT', '[storage:' + name + '] no object for key `' + key + '`'));
|
|
408
488
|
}
|
|
409
489
|
var rs = fs.createReadStream(r.path);
|
|
410
490
|
// Armed before the caller can touch it (#B143) — an fs error after
|
|
@@ -423,6 +503,83 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
423
503
|
});
|
|
424
504
|
},
|
|
425
505
|
|
|
506
|
+
/**
|
|
507
|
+
* Byte-range read — the driver half of HTTP Range serving.
|
|
508
|
+
*
|
|
509
|
+
* `end` is INCLUSIVE, matching both the HTTP `Range` header and
|
|
510
|
+
* `fs.createReadStream({start, end})`, so no arithmetic happens at the
|
|
511
|
+
* boundary between them. An `end` past the last byte is CLAMPED rather
|
|
512
|
+
* than refused (RFC 9110: a range whose start is satisfiable is
|
|
513
|
+
* satisfiable); only a `start` at or beyond the object's size is
|
|
514
|
+
* unsatisfiable, and that is the caller's 416.
|
|
515
|
+
*
|
|
516
|
+
* Both tiers answer: an inline row slices its buffer, a file-backed row
|
|
517
|
+
* gets a positioned read stream. The discriminator is `m.data != null`,
|
|
518
|
+
* exactly as `get()`/`resolve()` use — never the configured threshold,
|
|
519
|
+
* so a threshold change stays retroactively safe here too.
|
|
520
|
+
*
|
|
521
|
+
* @param {string} key - The opaque storage key.
|
|
522
|
+
* @param {number} start - First byte offset, inclusive; integer >= 0.
|
|
523
|
+
* @param {number} end - Last byte offset, INCLUSIVE; integer >= start.
|
|
524
|
+
* @param {function} fn - `fn(err, stream)`.
|
|
525
|
+
* @returns {void}
|
|
526
|
+
*
|
|
527
|
+
* @example
|
|
528
|
+
* // Serving `Range: bytes=0-1023`
|
|
529
|
+
* driver.getRange(key, 0, 1023, function (err, stream) {
|
|
530
|
+
* if (err) { return self.throwError(416); }
|
|
531
|
+
* stream.pipe(res);
|
|
532
|
+
* });
|
|
533
|
+
*/
|
|
534
|
+
getRange: function(key, start, end, fn) {
|
|
535
|
+
if ( typeof fn !== 'function' ) {
|
|
536
|
+
throw new Error('[storage:' + name + '] getRange() requires a callback');
|
|
537
|
+
}
|
|
538
|
+
if ( !Number.isInteger(start) || !Number.isInteger(end) || start < 0 || end < start ) {
|
|
539
|
+
return fn(util.codedError('STORAGE_INVALID_RANGE', '[storage:' + name + '] getRange(): invalid range [' + start + ', ' + end + '] — both bounds must be integers with 0 <= start <= end'));
|
|
540
|
+
}
|
|
541
|
+
var r = resolvePath(key);
|
|
542
|
+
if ( r.error ) { return fn(r.error); }
|
|
543
|
+
metaStore.get(key, function(metaErr, m) {
|
|
544
|
+
if (metaErr) { return fn(metaErr); }
|
|
545
|
+
if ( m && m.data != null ) {
|
|
546
|
+
if ( start >= m.data.length ) {
|
|
547
|
+
return fn(util.codedError('STORAGE_RANGE_UNSATISFIABLE', '[storage:' + name + '] getRange(): start ' + start + ' is beyond the object size (' + m.data.length + ') for key `' + key + '`'));
|
|
548
|
+
}
|
|
549
|
+
// subarray() is a VIEW, no copy; the array wrap is the same
|
|
550
|
+
// load-bearing detail as in get() — Readable.from(buffer)
|
|
551
|
+
// would iterate the bytes as INTEGERS.
|
|
552
|
+
return fn(null, Readable.from([ m.data.subarray(start, Math.min(end, m.data.length - 1) + 1) ]));
|
|
553
|
+
}
|
|
554
|
+
if ( !fs.existsSync(r.path) ) {
|
|
555
|
+
return fn(util.codedError('STORAGE_NO_OBJECT', '[storage:' + name + '] no object for key `' + key + '`'));
|
|
556
|
+
}
|
|
557
|
+
var size = fs.statSync(r.path).size;
|
|
558
|
+
if ( start >= size ) {
|
|
559
|
+
return fn(util.codedError('STORAGE_RANGE_UNSATISFIABLE', '[storage:' + name + '] getRange(): start ' + start + ' is beyond the object size (' + size + ') for key `' + key + '`'));
|
|
560
|
+
}
|
|
561
|
+
// The clamp is EXPLICITNESS, not necessity: measured, both
|
|
562
|
+
// `createReadStream({end})` and `Buffer.subarray()` already stop
|
|
563
|
+
// at the last byte, so the suite's clamp test passes with or
|
|
564
|
+
// without it. Stated here so the contract does not rest on two
|
|
565
|
+
// different APIs each happening to do the right thing.
|
|
566
|
+
var rs = fs.createReadStream(r.path, { start: start, end: Math.min(end, size - 1) });
|
|
567
|
+
// Armed before the caller can touch it (#B143) — identical
|
|
568
|
+
// handoff discipline to get().
|
|
569
|
+
var handed = false;
|
|
570
|
+
rs.on('error', function(err) {
|
|
571
|
+
if (handed) return;
|
|
572
|
+
handed = true;
|
|
573
|
+
fn(err);
|
|
574
|
+
});
|
|
575
|
+
rs.on('open', function() {
|
|
576
|
+
if (handed) return;
|
|
577
|
+
handed = true;
|
|
578
|
+
fn(null, rs);
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
},
|
|
582
|
+
|
|
426
583
|
/**
|
|
427
584
|
* Metadata for `key`.
|
|
428
585
|
*
|
|
@@ -500,8 +657,11 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
500
657
|
* arrives with the s3 adapter. Callers must branch on `kind` rather
|
|
501
658
|
* than assume a path is always available.
|
|
502
659
|
*
|
|
503
|
-
* @param {string} key
|
|
504
|
-
* @param {
|
|
660
|
+
* @param {string} key - The opaque storage key.
|
|
661
|
+
* @param {?object} [opts] - Offload response overrides — consumed by
|
|
662
|
+
* offload-capable adapters (`s3`); accepted
|
|
663
|
+
* and IGNORED here.
|
|
664
|
+
* @param {function} fn - `fn(err, {kind: 'path', path: string} | {kind: 'inline'})`.
|
|
505
665
|
* @returns {void}
|
|
506
666
|
*
|
|
507
667
|
* @example
|
|
@@ -512,7 +672,8 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
512
672
|
* driver.get(key, function (err, stream) { stream.pipe(res); });
|
|
513
673
|
* });
|
|
514
674
|
*/
|
|
515
|
-
resolve: function(key, fn) {
|
|
675
|
+
resolve: function(key, opts, fn) {
|
|
676
|
+
if ( typeof opts === 'function' ) { fn = opts; }
|
|
516
677
|
if ( typeof fn !== 'function' ) {
|
|
517
678
|
throw new Error('[storage:' + name + '] resolve() requires a callback');
|
|
518
679
|
}
|
|
@@ -524,7 +685,7 @@ module.exports = function createLocalDriver(name, conf, metaStore) {
|
|
|
524
685
|
return fn(null, { kind: 'inline' });
|
|
525
686
|
}
|
|
526
687
|
if ( !fs.existsSync(r.path) ) {
|
|
527
|
-
return fn(
|
|
688
|
+
return fn(util.codedError('STORAGE_NO_OBJECT', '[storage:' + name + '] no object for key `' + key + '`'));
|
|
528
689
|
}
|
|
529
690
|
fn(null, { kind: 'path', path: r.path });
|
|
530
691
|
});
|