@redocly/reef 0.133.0-next.1 → 0.133.0-next.2
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 +44 -2
- package/dist/server/constants/plugins/catalog-entities.d.ts +2 -0
- package/dist/server/constants/plugins/catalog-entities.js +1 -1
- package/dist/server/persistence/cache/mappers/create-cache-db-record.d.ts +1 -1
- package/dist/server/persistence/cache/mappers/create-cache-read-model.d.ts +1 -1
- package/dist/server/persistence/cache/repositories/{cache-local-repository.d.ts → cache-repository.d.ts} +3 -3
- package/dist/server/persistence/cache/repositories/cache-repository.js +1 -0
- package/dist/server/persistence/cache/services/cache-service.d.ts +2 -2
- package/dist/server/persistence/cache/services/cache-service.js +1 -1
- package/dist/server/persistence/file-hashes/mappers/create-file-hash-db-record.d.ts +1 -1
- package/dist/server/persistence/file-hashes/mappers/create-file-hash-read-model.d.ts +2 -2
- package/dist/server/persistence/file-hashes/mappers/create-file-hash-read-model.js +1 -1
- package/dist/server/persistence/file-hashes/repositories/{file-hashes-local-read-repository.d.ts → file-hashes-read-repository.d.ts} +3 -7
- package/dist/server/persistence/file-hashes/repositories/file-hashes-read-repository.js +1 -0
- package/dist/server/persistence/file-hashes/repositories/{file-hashes-local-repository.d.ts → file-hashes-repository.d.ts} +4 -3
- package/dist/server/persistence/file-hashes/repositories/file-hashes-repository.js +1 -0
- package/dist/server/persistence/file-hashes/repositories/{file-hashes-local-write-repository.d.ts → file-hashes-write-repository.d.ts} +2 -2
- package/dist/server/persistence/file-hashes/repositories/file-hashes-write-repository.js +1 -0
- package/dist/server/persistence/file-hashes/services/file-hashes-service.d.ts +3 -5
- package/dist/server/persistence/file-hashes/services/file-hashes-service.js +1 -1
- package/dist/server/persistence/kv/mappers/create-kv-db-record.d.ts +1 -1
- package/dist/server/persistence/kv/mappers/create-kv-list-entry.d.ts +1 -1
- package/dist/server/persistence/kv/mappers/create-kv-value.d.ts +1 -1
- package/dist/server/persistence/kv/repositories/{kv-remote-repository.d.ts → kv-repository.d.ts} +3 -3
- package/dist/server/persistence/kv/repositories/kv-repository.js +2 -0
- package/dist/server/persistence/kv/services/kv-service.d.ts +2 -2
- package/dist/server/persistence/kv/services/kv-service.js +1 -1
- package/dist/server/plugins/catalog-entities/database/catalog-entities-publisher.d.ts +6 -0
- package/dist/server/plugins/catalog-entities/database/catalog-entities-publisher.js +12 -0
- package/dist/server/plugins/catalog-entities/database/catalog-entities-service.d.ts +29 -66
- package/dist/server/plugins/catalog-entities/database/catalog-entities-service.js +1 -1
- package/dist/server/plugins/catalog-entities/database/consts.d.ts +45 -0
- package/dist/server/plugins/catalog-entities/database/consts.js +1 -0
- package/dist/server/plugins/catalog-entities/database/mappers/create-bff-entity.d.ts +1 -2
- package/dist/server/plugins/catalog-entities/database/mappers/create-bff-entity.js +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.d.ts +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-db-record.d.ts +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-read-model.d.ts +1 -3
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-read-model.js +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-db-record-from-dto.d.ts +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-db-record-from-file-schema.d.ts +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.d.ts +3 -3
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/{local/catalog-entities-bff-repository.d.ts → bffEntities/bff-entities-read-repository.d.ts} +4 -4
- package/dist/server/plugins/catalog-entities/database/repositories/bffEntities/bff-entities-read-repository.js +131 -0
- package/dist/server/plugins/catalog-entities/database/repositories/catalog-entities-repository.d.ts +26 -0
- package/dist/server/plugins/catalog-entities/database/repositories/catalog-entities-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/filters-repository.d.ts +8 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/filters-repository.js +82 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts +7 -7
- package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-read-repository.d.ts +27 -0
- package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-read-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-write-repository.d.ts +27 -0
- package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-write-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/entityAttributes/entity-attributes-write-repository.d.ts +12 -0
- package/dist/server/plugins/catalog-entities/database/repositories/entityAttributes/entity-attributes-write-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/{local/catalog-entities-relations-repository.d.ts → relations/relations-read-repository.d.ts} +7 -4
- package/dist/server/plugins/catalog-entities/database/repositories/relations/relations-read-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/relations/relations-write-repository.d.ts +28 -0
- package/dist/server/plugins/catalog-entities/database/repositories/relations/relations-write-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/types.d.ts +39 -0
- package/dist/server/plugins/catalog-entities/database/repositories/types.js +0 -0
- package/dist/server/plugins/catalog-entities/database/types.d.ts +26 -0
- package/dist/server/plugins/catalog-entities/database/types.js +0 -0
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.d.ts +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.d.ts +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.d.ts +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/fs-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/get-server-props.js +1 -1
- package/dist/server/plugins/catalog-entities/plugin.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.d.ts +38 -36
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/dto-schemas.d.ts +1 -3
- package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.d.ts +3 -1
- package/dist/server/plugins/catalog-entities/utils/catalog-data-collector.d.ts +15 -0
- package/dist/server/plugins/catalog-entities/utils/catalog-data-collector.js +1 -1
- package/dist/server/plugins/catalog-entities/utils/hash-manager.d.ts +1 -0
- package/dist/server/plugins/catalog-entities/utils/hash-manager.js +1 -1
- package/dist/server/plugins/catalog-entities/utils/rbac-config-hash-cache.d.ts +18 -0
- package/dist/server/plugins/catalog-entities/utils/rbac-config-hash-cache.js +1 -0
- package/dist/server/plugins/entitlements/index.js +1 -1
- package/dist/server/plugins/entitlements/utils/get-billed-catalog-build-pages-count.d.ts +0 -1
- package/dist/server/plugins/entitlements/utils/get-billed-catalog-build-pages-count.js +1 -1
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/types.d.ts +5 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.d.ts +1 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -1
- package/dist/server/plugins/scorecards/database/repositories/{local/scorecards-config-local-repository.d.ts → scorecards-config-repository.d.ts} +4 -4
- package/dist/server/plugins/scorecards/database/repositories/scorecards-config-repository.js +1 -0
- package/dist/server/plugins/scorecards/database/scorecards-config-service.js +1 -1
- package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -1
- package/dist/server/providers/database/base-repository.js +2 -2
- package/dist/server/providers/database/client.d.ts +1 -1
- package/dist/server/providers/database/client.js +1 -1
- package/dist/server/providers/database/constants.d.ts +4 -9
- package/dist/server/providers/database/constants.js +1 -1
- package/dist/server/providers/database/copy-migrations.js +1 -1
- package/dist/server/providers/database/database-connection-factory.d.ts +2 -2
- package/dist/server/providers/database/database-connection-factory.js +1 -1
- package/dist/server/providers/database/database-connections-manager.d.ts +3 -8
- package/dist/server/providers/database/database-connections-manager.js +1 -1
- package/dist/server/providers/database/database-preconnect-service.js +1 -1
- package/dist/server/providers/database/databases/sqlite-db/drizzle.config.d.ts +12 -0
- package/dist/server/providers/database/databases/sqlite-db/drizzle.config.js +1 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/0009_add-missing-local-tables.sql +41 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/0010_add-last-seen-run-id-to-entities-tables.sql +4 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/0011_update-entities-relations-index.sql +2 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/meta/0009_snapshot.json +1141 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/meta/0010_snapshot.json +1165 -0
- package/dist/server/providers/database/databases/sqlite-db/migrations/meta/0011_snapshot.json +1165 -0
- package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/_journal.json +21 -0
- package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-relations-table.d.ts +19 -0
- package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-relations-table.js +1 -1
- package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-table.d.ts +19 -0
- package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-table.js +1 -1
- package/dist/server/providers/database/pagination/limit.d.ts +5 -0
- package/dist/server/providers/database/pagination/limit.js +1 -1
- package/dist/server/providers/database/transient-sqld-error.d.ts +14 -0
- package/dist/server/providers/database/transient-sqld-error.js +1 -0
- package/dist/server/providers/database/types.d.ts +6 -6
- package/dist/server/providers/database/utils/get-first-row.d.ts +19 -0
- package/dist/server/providers/database/utils/get-first-row.js +1 -0
- package/dist/server/store.d.ts +1 -0
- package/dist/server/store.js +1 -1
- package/dist/server/types/plugins/common.d.ts +1 -0
- package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
- package/dist/server/web-server/routes/catalog/catalog.js +1 -1
- package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.d.ts +0 -147
- package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.js +1 -1
- package/dist/server/web-server/routes/catalog/helpers/upsert-pages-stats.js +1 -1
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.d.ts +1 -2
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.d.ts +1 -2
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.d.ts +1 -2
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.d.ts +1 -1
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.d.ts +1 -1
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.d.ts +1 -1
- package/dist/server/workers/mcp-tool-worker-pool.d.ts +1 -0
- package/dist/server/workers/mcp-tool-worker-pool.js +1 -1
- package/dist/server/workers/mcp-tool-worker.js +1 -1
- package/dist/server/workers/types.d.ts +5 -1
- package/package.json +9 -9
- package/dist/server/persistence/cache/repositories/cache-local-repository.js +0 -1
- package/dist/server/persistence/file-hashes/repositories/file-hashes-local-read-repository.js +0 -1
- package/dist/server/persistence/file-hashes/repositories/file-hashes-local-repository.js +0 -1
- package/dist/server/persistence/file-hashes/repositories/file-hashes-local-write-repository.js +0 -1
- package/dist/server/persistence/file-hashes/repositories/utils.d.ts +0 -10
- package/dist/server/persistence/file-hashes/repositories/utils.js +0 -1
- package/dist/server/persistence/kv/repositories/kv-remote-repository.js +0 -2
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.js +0 -123
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.d.ts +0 -98
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +0 -145
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.d.ts +0 -100
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.js +0 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.d.ts +0 -43
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.js +0 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.js +0 -1
- package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.d.ts +0 -20
- package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.js +0 -1
- package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.js +0 -1
- package/dist/server/providers/database/database-initialization-strategy.d.ts +0 -17
- package/dist/server/providers/database/database-initialization-strategy.js +0 -1
- package/dist/server/providers/database/databases/catalog-sqlite/drizzle.config.d.ts +0 -11
- package/dist/server/providers/database/databases/catalog-sqlite/drizzle.config.js +0 -1
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0001_catalog-versions-and-revisions.sql +0 -20
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0002_add-scorecards-status.sql +0 -1
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0003_catalog_versions_and_revisions_relations.sql +0 -46
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0004_normalize_relation_types.sql +0 -147
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0005_catalog-relations-constraint-fix.sql +0 -2
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0006_add-catalog-entitities-attributes-table.sql +0 -11
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0001_snapshot.json +0 -378
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0002_snapshot.json +0 -385
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0003_snapshot.json +0 -392
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0004_snapshot.json +0 -392
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0005_snapshot.json +0 -393
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0006_snapshot.json +0 -458
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/_journal.json +0 -55
- package/dist/server/providers/database/databases/main-sqlite/drizzle.config.d.ts +0 -10
- package/dist/server/providers/database/databases/main-sqlite/drizzle.config.js +0 -1
- package/dist/server/providers/database/databases/main-sqlite/migrations/0000_initial_migration.sql +0 -11
- package/dist/server/providers/database/databases/main-sqlite/migrations/0001_update_file_hashes_file_type_values.sql +0 -10
- package/dist/server/providers/database/databases/main-sqlite/migrations/0002_cache-table.sql +0 -11
- package/dist/server/providers/database/databases/main-sqlite/migrations/0003_file-path-added.sql +0 -6
- package/dist/server/providers/database/databases/main-sqlite/migrations/0004_add-scorecards-tables.sql +0 -10
- package/dist/server/providers/database/databases/main-sqlite/migrations/0005_recreate-scorecards-config.sql +0 -25
- package/dist/server/providers/database/databases/main-sqlite/migrations/0006_change-scorecards-config-timestamps-field-types.sql +0 -19
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0000_snapshot.json +0 -82
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0001_snapshot.json +0 -82
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0002_snapshot.json +0 -146
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0003_snapshot.json +0 -153
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0004_snapshot.json +0 -221
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0005_snapshot.json +0 -263
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0006_snapshot.json +0 -261
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/_journal.json +0 -55
- package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.d.ts +0 -14
- package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.js +0 -1
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/0000_initial_migration.sql +0 -46
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0000_snapshot.json +0 -307
- /package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/migrations/0000_initial_migration.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0001_add_kv_table.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0002_catalog-versions-and-revisions.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0003_add-scorecards-tables.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0004_add-scorecards-status.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0005_recreate-scorecards-tables.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0006_catalog-versions-and-revisions-relations.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0007_catalog-relations-constraint-fix.sql +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/0008_add-catalog-entitities-attributes-table.sql +0 -0
- /package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/migrations/meta/0000_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0001_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0002_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0003_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0004_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0005_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0006_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0007_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/migrations/meta/0008_snapshot.json +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/cache-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/cache-table.js +0 -0
- /package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-attributes-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{catalog-sqlite → sqlite-db}/schemas/entities-attributes-table.js +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/file-hashes-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/file-hashes-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/kv-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/kv-table.js +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/scorecards-config-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{main-sqlite → sqlite-db}/schemas/scorecards-config-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-evaluation-runs-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-evaluation-runs-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-level-results-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-level-results-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-levels-rules-results-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-levels-rules-results-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-results-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-results-table.js +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-rule-results-table.d.ts +0 -0
- /package/dist/server/providers/database/databases/{sqld-sqlite → sqlite-db}/schemas/scorecards-rule-results-table.js +0 -0
|
@@ -1,60 +1,61 @@
|
|
|
1
1
|
import type { FromSchema } from 'json-schema-to-ts';
|
|
2
|
+
/** Matches Drizzle `DatabaseEntityRelation` / `createEntityRelationFieldsForSelect` (camelCase). */
|
|
2
3
|
export declare const entityRelationDatabaseSchema: {
|
|
3
4
|
readonly type: "object";
|
|
4
5
|
readonly properties: {
|
|
5
6
|
readonly id: {
|
|
6
7
|
readonly type: "string";
|
|
7
8
|
};
|
|
8
|
-
readonly
|
|
9
|
+
readonly organizationId: {
|
|
9
10
|
readonly type: "string";
|
|
10
11
|
};
|
|
11
|
-
readonly
|
|
12
|
+
readonly projectId: {
|
|
12
13
|
readonly type: "string";
|
|
13
14
|
};
|
|
14
|
-
readonly
|
|
15
|
+
readonly sourceKey: {
|
|
15
16
|
readonly type: "string";
|
|
16
17
|
};
|
|
17
|
-
readonly
|
|
18
|
-
readonly type:
|
|
19
|
-
};
|
|
20
|
-
readonly source_version: {
|
|
21
|
-
readonly type: readonly ["string", "null"];
|
|
22
|
-
};
|
|
23
|
-
readonly source_revision: {
|
|
24
|
-
readonly type: readonly ["string", "null"];
|
|
18
|
+
readonly sourceVersion: {
|
|
19
|
+
readonly type: "string";
|
|
25
20
|
};
|
|
26
|
-
readonly
|
|
21
|
+
readonly sourceRevision: {
|
|
27
22
|
readonly type: "string";
|
|
28
23
|
};
|
|
29
|
-
readonly
|
|
24
|
+
readonly sourceToTargetRelation: {
|
|
30
25
|
readonly type: "string";
|
|
31
26
|
};
|
|
32
|
-
readonly
|
|
33
|
-
readonly type:
|
|
27
|
+
readonly targetKey: {
|
|
28
|
+
readonly type: "string";
|
|
34
29
|
};
|
|
35
|
-
readonly
|
|
36
|
-
readonly type:
|
|
30
|
+
readonly targetVersion: {
|
|
31
|
+
readonly type: "string";
|
|
37
32
|
};
|
|
38
|
-
readonly
|
|
39
|
-
readonly type:
|
|
33
|
+
readonly targetRevision: {
|
|
34
|
+
readonly type: "string";
|
|
40
35
|
};
|
|
41
|
-
readonly
|
|
36
|
+
readonly targetToSourceRelation: {
|
|
42
37
|
readonly type: "string";
|
|
43
38
|
};
|
|
44
|
-
readonly
|
|
39
|
+
readonly sourceFile: {
|
|
45
40
|
readonly type: readonly ["string", "null"];
|
|
46
41
|
};
|
|
47
|
-
readonly
|
|
42
|
+
readonly fileHash: {
|
|
48
43
|
readonly type: readonly ["string", "null"];
|
|
49
44
|
};
|
|
50
|
-
readonly
|
|
45
|
+
readonly isDeleted: {
|
|
46
|
+
readonly type: readonly ["boolean", "null"];
|
|
47
|
+
};
|
|
48
|
+
readonly createdAt: {
|
|
51
49
|
readonly type: "string";
|
|
52
50
|
};
|
|
53
|
-
readonly
|
|
51
|
+
readonly updatedAt: {
|
|
54
52
|
readonly type: "string";
|
|
55
53
|
};
|
|
54
|
+
readonly lastSeenRunId: {
|
|
55
|
+
readonly type: readonly ["string", "null"];
|
|
56
|
+
};
|
|
56
57
|
};
|
|
57
|
-
readonly required: readonly ["id", "
|
|
58
|
+
readonly required: readonly ["id", "organizationId", "projectId", "sourceKey", "sourceVersion", "sourceRevision", "sourceToTargetRelation", "targetKey", "targetVersion", "targetRevision", "targetToSourceRelation", "createdAt", "updatedAt"];
|
|
58
59
|
readonly additionalProperties: false;
|
|
59
60
|
};
|
|
60
61
|
export declare const entityDatabaseSchema: {
|
|
@@ -63,10 +64,10 @@ export declare const entityDatabaseSchema: {
|
|
|
63
64
|
readonly id: {
|
|
64
65
|
readonly type: "string";
|
|
65
66
|
};
|
|
66
|
-
readonly
|
|
67
|
+
readonly organizationId: {
|
|
67
68
|
readonly type: "string";
|
|
68
69
|
};
|
|
69
|
-
readonly
|
|
70
|
+
readonly projectId: {
|
|
70
71
|
readonly type: "string";
|
|
71
72
|
};
|
|
72
73
|
readonly key: {
|
|
@@ -96,19 +97,20 @@ export declare const entityDatabaseSchema: {
|
|
|
96
97
|
readonly links: {
|
|
97
98
|
readonly type: readonly ["string", "null"];
|
|
98
99
|
};
|
|
99
|
-
readonly
|
|
100
|
+
readonly createdAt: {
|
|
100
101
|
readonly type: "string";
|
|
101
102
|
};
|
|
102
|
-
readonly
|
|
103
|
+
readonly updatedAt: {
|
|
103
104
|
readonly type: "string";
|
|
104
105
|
};
|
|
105
106
|
readonly source: {
|
|
106
107
|
readonly type: "string";
|
|
108
|
+
readonly enum: readonly ["file", "remote"];
|
|
107
109
|
};
|
|
108
|
-
readonly
|
|
110
|
+
readonly sourceFile: {
|
|
109
111
|
readonly type: readonly ["string", "null"];
|
|
110
112
|
};
|
|
111
|
-
readonly
|
|
113
|
+
readonly fileHash: {
|
|
112
114
|
readonly type: readonly ["string", "null"];
|
|
113
115
|
};
|
|
114
116
|
readonly version: {
|
|
@@ -120,20 +122,20 @@ export declare const entityDatabaseSchema: {
|
|
|
120
122
|
readonly hash: {
|
|
121
123
|
readonly type: readonly ["string", "null"];
|
|
122
124
|
};
|
|
123
|
-
readonly
|
|
125
|
+
readonly isCurrent: {
|
|
124
126
|
readonly type: readonly ["boolean", "null"];
|
|
125
127
|
};
|
|
126
|
-
readonly
|
|
128
|
+
readonly isDefaultVersion: {
|
|
127
129
|
readonly type: readonly ["boolean", "null"];
|
|
128
130
|
};
|
|
129
|
-
readonly
|
|
131
|
+
readonly isDeleted: {
|
|
130
132
|
readonly type: readonly ["boolean", "null"];
|
|
131
133
|
};
|
|
132
|
-
readonly
|
|
134
|
+
readonly rbacTeams: {
|
|
133
135
|
readonly type: readonly ["string", "null"];
|
|
134
136
|
};
|
|
135
137
|
};
|
|
136
|
-
readonly required: readonly ["id", "
|
|
138
|
+
readonly required: readonly ["id", "organizationId", "projectId", "key", "type", "title", "createdAt", "updatedAt", "source"];
|
|
137
139
|
readonly additionalProperties: false;
|
|
138
140
|
};
|
|
139
141
|
export declare const relatedEntityDatabaseSchema: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ENTITY_RELATION_TYPES as t}from"@redocly/config";const i={type:"object",properties:{id:{type:"string"},
|
|
1
|
+
import{ENTITY_RELATION_TYPES as t}from"@redocly/config";const i={type:"object",properties:{id:{type:"string"},organizationId:{type:"string"},projectId:{type:"string"},sourceKey:{type:"string"},sourceVersion:{type:"string"},sourceRevision:{type:"string"},sourceToTargetRelation:{type:"string"},targetKey:{type:"string"},targetVersion:{type:"string"},targetRevision:{type:"string"},targetToSourceRelation:{type:"string"},sourceFile:{type:["string","null"]},fileHash:{type:["string","null"]},isDeleted:{type:["boolean","null"]},createdAt:{type:"string"},updatedAt:{type:"string"},lastSeenRunId:{type:["string","null"]}},required:["id","organizationId","projectId","sourceKey","sourceVersion","sourceRevision","sourceToTargetRelation","targetKey","targetVersion","targetRevision","targetToSourceRelation","createdAt","updatedAt"],additionalProperties:!1},r={type:"object",properties:{id:{type:"string"},organizationId:{type:"string"},projectId:{type:"string"},key:{type:"string"},type:{type:"string"},title:{type:"string"},summary:{type:["string","null"]},tags:{type:["string","null"]},metadata:{type:["string","null"]},git:{type:["string","null"]},contact:{type:["string","null"]},links:{type:["string","null"]},createdAt:{type:"string"},updatedAt:{type:"string"},source:{type:"string",enum:["file","remote"]},sourceFile:{type:["string","null"]},fileHash:{type:["string","null"]},version:{type:["string","null"]},revision:{type:["string","null"]},hash:{type:["string","null"]},isCurrent:{type:["boolean","null"]},isDefaultVersion:{type:["boolean","null"]},isDeleted:{type:["boolean","null"]},rbacTeams:{type:["string","null"]}},required:["id","organizationId","projectId","key","type","title","createdAt","updatedAt","source"],additionalProperties:!1},n={type:"object",properties:{id:{type:"string"},key:{type:"string"},title:{type:"string"},type:{type:"string"},summary:{type:["string","null"]},source:{type:"string"},relation_role:{type:["string","null"]},relation_type:{type:["string","null"],enum:t},source_file:{type:["string","null"]},created_at:{type:["string"]},updated_at:{type:["string"]},metadata:{type:["string","null"]},version:{type:["string","null"]}},required:["id","key","title","type","source","created_at","updated_at"],additionalProperties:!1},s={type:"object",properties:{id:{type:"string",minLength:1},key:{type:"string",minLength:1},title:{type:"string",minLength:1},type:{type:"string",minLength:1},summary:{type:["string","null"]},source:{type:"string",minLength:1},source_file:{type:["string","null"]},created_at:{type:["string"]},updated_at:{type:["string"]},metadata:{type:["string","object","null"]},version:{type:["string","null"]},revision:{type:["string","null"]},direction:{type:"string",enum:["outgoing","incoming"]},relation_field:{type:"string",minLength:1}},required:["id","key","title","type","source","direction","relation_field","created_at","updated_at"],additionalProperties:!1};export{r as entityDatabaseSchema,i as entityRelationDatabaseSchema,n as relatedEntityDatabaseSchema,s as relatedEntityQueryRowDatabaseSchema};
|
|
@@ -100,8 +100,6 @@ export declare const entitiesRelationsDtoSchema: {
|
|
|
100
100
|
};
|
|
101
101
|
export type EntityRelationDtoSchema = FromSchema<typeof entityRelationDtoSchema>;
|
|
102
102
|
export type EntitiesRelationsDtoSchema = FromSchema<typeof entitiesRelationsDtoSchema>;
|
|
103
|
-
export type EntityDtoSchema = EntityBaseFileSchema
|
|
104
|
-
revision?: string;
|
|
105
|
-
};
|
|
103
|
+
export type EntityDtoSchema = EntityBaseFileSchema;
|
|
106
104
|
export type EntityAttributesDtoSchema = FromSchema<typeof entityAttributesDtoSchema>;
|
|
107
105
|
//# sourceMappingURL=dto-schemas.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EntityLinkFileSchema, EntityContactFileSchema } from '@redocly/config';
|
|
2
|
+
export type EntitySource = 'file' | 'remote';
|
|
2
3
|
export type EntityRelationReadModelSchema = {
|
|
3
4
|
id: string;
|
|
4
5
|
organizationId: string;
|
|
@@ -10,6 +11,7 @@ export type EntityRelationReadModelSchema = {
|
|
|
10
11
|
targetVersion?: string | null;
|
|
11
12
|
targetRevision?: string | null;
|
|
12
13
|
type: string;
|
|
14
|
+
lastSeenRunId: string | null;
|
|
13
15
|
createdAt: string;
|
|
14
16
|
updatedAt: string;
|
|
15
17
|
object: 'catalogEntityRelation';
|
|
@@ -27,7 +29,7 @@ export type EntityReadModelSchema = {
|
|
|
27
29
|
git?: string[] | null;
|
|
28
30
|
contact?: EntityContactFileSchema | null;
|
|
29
31
|
links?: EntityLinkFileSchema[] | null;
|
|
30
|
-
source:
|
|
32
|
+
source: EntitySource;
|
|
31
33
|
sourceFile?: string | null;
|
|
32
34
|
version: string;
|
|
33
35
|
revision: string;
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
import type { SpecType } from '../types/extractors';
|
|
2
2
|
import type { CatalogEntitiesService } from '../database/catalog-entities-service';
|
|
3
|
+
import type { FileType } from '../../../persistence/file-hashes/types.js';
|
|
3
4
|
type Extractor = SpecType | 'fs';
|
|
4
5
|
type CountOfEntitiesByType = Record<string, number>;
|
|
6
|
+
export type PendingFileHashConfirmation = {
|
|
7
|
+
fileType: FileType;
|
|
8
|
+
filePath: string;
|
|
9
|
+
hash: string;
|
|
10
|
+
};
|
|
5
11
|
export declare class CatalogDataCollector {
|
|
6
12
|
#private;
|
|
13
|
+
resetForRun(): void;
|
|
7
14
|
addExtractor(extractor: Extractor): void;
|
|
8
15
|
increaseSkippedFilesCount(): void;
|
|
9
16
|
increaseProcessedFilesCount(): void;
|
|
17
|
+
markSourceFileAsChanged(sourceFile: string): void;
|
|
18
|
+
markSourceFileAsRemoved(sourceFile: string): void;
|
|
19
|
+
getPublishDelta(): {
|
|
20
|
+
changedSourceFiles: string[];
|
|
21
|
+
removedSourceFiles: string[];
|
|
22
|
+
};
|
|
23
|
+
markFileHashPendingConfirmation(entry: PendingFileHashConfirmation): void;
|
|
24
|
+
getFileHashConfirmations(): PendingFileHashConfirmation[];
|
|
10
25
|
getCatalogEntitiesData(catalogEntitiesService: CatalogEntitiesService): Promise<{
|
|
11
26
|
totalEntitiesCount: number | "error";
|
|
12
27
|
countOfEntitiesByType: "error" | CountOfEntitiesByType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const s="error";class o{#e=new Set;#t;#i;#s=0;#a=0;#n=new Set;#o=new Set;#r=new Map;resetForRun(){this.#e.clear(),this.#t=void 0,this.#i=void 0,this.#s=0,this.#a=0,this.#n.clear(),this.#o.clear(),this.#r.clear()}addExtractor(e){this.#e.add(e)}increaseSkippedFilesCount(){this.#s++}increaseProcessedFilesCount(){this.#a++}markSourceFileAsChanged(e){this.#n.add(e)}markSourceFileAsRemoved(e){this.#o.add(e)}getPublishDelta(){return{changedSourceFiles:Array.from(this.#n),removedSourceFiles:Array.from(this.#o)}}markFileHashPendingConfirmation(e){const t=`${e.fileType}::${e.filePath}`;this.#r.set(t,e)}getFileHashConfirmations(){return Array.from(this.#r.values())}async getCatalogEntitiesData(e){this.#t=this.#l(e),this.#i=this.#u(e);const[t,i]=await Promise.allSettled([this.#t,this.#i]);return{totalEntitiesCount:t.status==="fulfilled"?t.value:s,countOfEntitiesByType:i.status==="fulfilled"?i.value:s,extractors:Array.from(this.#e),totalFilesSkippedByHash:this.#s,totalProcessedFiles:this.#a}}async#l(e){return(await e.getEntities({paginationParams:{limit:1,filter:{field:"is_deleted",operator:"equal",value:!1}}})).page.total}async#u(e){return(await e.getEntitiesCountByTypes()).reduce((i,{type:a,count:n})=>(i[a]=n,i),{})}}const l=new o;export{o as CatalogDataCollector,l as catalogDataCollector};
|
|
@@ -18,6 +18,7 @@ export declare class HashManager {
|
|
|
18
18
|
getByPath(filePath: string): Promise<FileHashReadModelSchema | null>;
|
|
19
19
|
upsert(fileType: FileType, filePath: string, hash: string, status: FileHashStatus): Promise<string | null>;
|
|
20
20
|
getAllOutdated(fileType: FileType): Promise<FileHashReadModelSchema[]>;
|
|
21
|
+
getStatusSnapshot(fileType: FileType): Promise<Map<string, FileHashStatus>>;
|
|
21
22
|
computeFileHash(fileContent: unknown): Promise<string>;
|
|
22
23
|
deleteFileHashes(filter: Filter): Promise<boolean>;
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{FileHashStatus as
|
|
1
|
+
import{FileHashStatus as r}from"../../../persistence/file-hashes/types.js";import{sha1 as i}from"../../../utils/crypto/sha1.js";class o{#t;constructor(t){this.#t=t}async markAllAsOutdated(t){return await this.#t.updateFileHashes(r.OUTDATED,{field:"file_type",operator:"equal",value:t})}async getByPath(t){return await this.#t.getByPath(t)}async upsert(t,s,e,a){return await this.#t.upsertFileHash({fileType:t,filePath:s,hash:e,status:a})}async getAllOutdated(t){return await this.#t.getAllOutdated(t)}async getStatusSnapshot(t){const s=await this.#t.getAllByFileType(t),e=new Map;for(const a of s)e.set(a.filePath,a.status);return e}async computeFileHash(t){try{return i(JSON.stringify(t))}catch{throw new Error(`Error computing hash for file content: ${JSON.stringify(t)}`)}}async deleteFileHashes(t){return await this.#t.deleteFileHashes(t)}}export{o as HashManager};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CacheService } from '../../../persistence/cache/services/cache-service.js';
|
|
2
|
+
/**
|
|
3
|
+
* Persists a hash of the catalog RBAC config between builds and detects when it changes
|
|
4
|
+
* (so entity extraction can re-run attribute work tied to team membership).
|
|
5
|
+
*/
|
|
6
|
+
export declare class RbacConfigHashCache {
|
|
7
|
+
private readonly cache;
|
|
8
|
+
constructor(cache: CacheService);
|
|
9
|
+
/**
|
|
10
|
+
* Compares the current RBAC config to the last build, updates the cache when the hash
|
|
11
|
+
* differs, and returns whether RBAC **changed** since a prior run. First run
|
|
12
|
+
* (`previousHash` missing) returns `rbacConfigChanged: false` but still stores the current hash.
|
|
13
|
+
*/
|
|
14
|
+
syncAndDetectChange(rbacConfig: unknown): Promise<{
|
|
15
|
+
rbacConfigChanged: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=rbac-config-hash-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{sha1 as h}from"../../../utils/crypto/sha1.js";import{CATALOG_META_CACHE_NAMESPACE as s,RBAC_CONFIG_HASH_CACHE_KEY as t}from"../../../constants/plugins/catalog-entities.js";class C{cache;constructor(a){this.cache=a}async syncAndDetectChange(a){const c=h(JSON.stringify(a??null)),e=(await this.cache.get({key:t,namespace:s}))?.hash??null,n=e!==null&&e!==c;return e!==c&&await this.cache.set({key:t,namespace:s,value:{hash:c}}),{rbacConfigChanged:n}}}export{C as RbacConfigHashCache};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{writeFileSync as
|
|
1
|
+
import{writeFileSync as F}from"node:fs";import S from"path";import{PAGE_COUNT_OUTPUT_FILE_NAME as b}from"../../constants/common.js";import{envConfig as O}from"../../config/env-config.js";import{logger as o}from"../../tools/notifiers/logger.js";import{isReactPage as C}from"../../utils/content/is-react-page.js";import{EntitlementsProvider as R}from"../../entitlements/entitlements-provider.js";import{getBilledPagesCount as $,isPathIgnored as M}from"../../utils/index.js";import{isGraphqlDoc as k}from"../graphql-docs/is-graphql-doc.js";import{isMarkdownPage as D}from"../markdown/is-markdown-page.js";import{isOpenapiDoc as E}from"../openapi-docs/is-openapi-doc.js";import{PRODUCT_NAME as p}from"../../../config/product-gates.js";import{isAsyncapiDoc as _}from"../asyncapi-docs/is-asyncapi-doc.js";import{telemetryTraceStep as I}from"../../../cli/telemetry/helpers/trace-step.js";import{getBilledCatalogBuildPagesCount as j}from"./utils/get-billed-catalog-build-pages-count.js";async function X(){return{id:"entitlements",async afterRoutesCreated(g,u){await I("build.plugin.entitlements",async t=>{const i=R.instance(),s=[],n=[],r=[],a=[],l=[];for(const{relativePath:e}of u.fs.scan())M(e)||(D(e)?s.push(e):k(e)?r.push(e):C(e)?a.push(e):await E(e,u)?n.push(e):await _(e,u)&&l.push(e));const c=i.canAccessFeature("markdown");t?.setAttribute("totalMarkdownFiles",s.length.toString()),t?.setAttribute("isMarkdownSupported",(!!c).toString()),s.length>0&&!c&&o.warn(`The product you are using ("${p}") does not support Markdown pages. The following Markdown files were detected but will be ignored: ${s.map(()=>"%rp").join(", ")}`,...s);const d=i.canAccessFeature("openapi");t?.setAttribute("totalOpenApiFiles",n.length.toString()),t?.setAttribute("isOpenApiSupported",(!!d).toString()),n.length>0&&!d&&o.warn(`The product you are using ("${p}") does not support OpenAPI documents. The following files are ignored: ${n.map(()=>"%rp").join(", ")}`,...n);const f=i.canAccessFeature("asyncapi");t?.setAttribute("totalAsyncApiFiles",l.length.toString()),t?.setAttribute("isAsyncApiSupported",(!!f).toString()),l.length>0&&!f&&o.warn(`The product you are using ("${p}") does not support AsyncAPI documents. The following files are ignored: ${l.map(()=>"%rp").join(", ")}`,...l);const m=i.canAccessFeature("graphql");t?.setAttribute("totalGraphqlFiles",r.length.toString()),t?.setAttribute("isGraphqlSupported",(!!m).toString()),r.length>0&&!m&&o.warn(`The product you are using ("${p}") does not support GraphQL documents. The following files are ignored: ${r.map(()=>"%rp").join(", ")}`,...r);const A=i.canAccessFeature("reactPages");t?.setAttribute("totalReactFiles",a.length.toString()),t?.setAttribute("isReactPagesSupported",(!!A).toString()),a.length>0&&!A&&o.warn(`The product you are using ("${p}") does not support React pages. The following files are ignored: ${a.map(()=>"%rp").join(", ")}`,...a);const P=(await u.getConfig()).entitiesCatalog,T=$(g.getAllRoutes()),{total:y}=await j(g.serverOutDir,P),h=T+y;t?.setAttribute("totalBilledPages",h.toString());const w=O.REDOCLY_METADATA_OUTPUT_FOLDER;w&&(o.info("Save total pages..."),F(S.join(w,b),JSON.stringify({totalPages:h},null)))})}}}export{X as entitlementsPlugin};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { RedoclyConfig } from '@redocly/config';
|
|
2
2
|
export declare function getBilledCatalogBuildPagesCount(serverOutDir: string, catalogConfig: RedoclyConfig['entitiesCatalog']): Promise<{
|
|
3
3
|
total: number;
|
|
4
|
-
duplicatedEntitiesPages: number;
|
|
5
4
|
}>;
|
|
6
5
|
//# sourceMappingURL=get-billed-catalog-build-pages-count.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{envConfig as
|
|
1
|
+
import{envConfig as r}from"../../../config/env-config.js";import{PRODUCT_NAME as s}from"../../../../config/product-gates.js";import{CatalogEntitiesService as c}from"../../catalog-entities/database/catalog-entities-service.js";async function d(t,a){const o=s.toLowerCase().includes("realm")||s.toLowerCase().includes("reef"),e=r.NEW_CATALOG_ENABLED??!1;if(!o||!e)return{total:0};const i=await c.getInstance({baseDbDir:t,databaseType:"local"}),{total:n}=await i.getEntitiesCount("file"),l=g(a);return{total:n+l}}function g(t){return t?.show?Object.entries(t.catalogs??{}).filter(([o,e])=>!e?.hide).length:0}export{d as getBilledCatalogBuildPagesCount};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{McpServer as
|
|
1
|
+
import{McpServer as b}from"@redocly/mcp-typescript-sdk/server/mcp.js";import{StreamableHTTPServerTransport as g}from"@redocly/mcp-typescript-sdk/server/streamableHttp.js";import{logger as n}from"../../../tools/notifiers/logger.js";import{mcpToolWorkers as c,MCP_TOOL_WORKER_KEY as S,MCP_TOOL_IS_AVAILABLE_KEY as _}from"../../../workers/mcp-tool-worker-pool.js";async function w({name:e,tools:l,context:u}){const a=new b({name:e,version:new Date().toISOString().slice(0,10)},{capabilities:{logging:{}}}),s=new g({sessionIdGenerator:void 0}),i=M(u);for(const o of l){const m=async(r,d)=>{n.info(`MCP tool called: ${o.name}`);const I={toolName:o.name,args:r,context:i,extra:q(d)};return await c.exec(S,[I],{timeout:6e4})},f=a.tool(o.name,o.description,o.schema,m),p={toolName:o.name,context:i};let t=!1;try{t=await c.exec(_,[p],{timeout:1e4})}catch(r){n.error(`Failed to check MCP tool availability for "${o.name}": ${r instanceof Error?r.message:String(r)}`),t=!1}t||f.disable()}return await a.connect(s),{server:a,transport:s,cleanup:async()=>{s.close()}}}function q(e){return{sessionId:e.sessionId,authInfo:e.authInfo,requestId:e.requestId,requestInfo:e.requestInfo,_meta:e._meta}}function M(e){return{user:e.user,config:e.config,outdir:e.outdir,baseUrl:e.baseUrl,params:e.params,query:e.query,cookies:e.cookies,apiDescriptionsMap:e.apiDescriptionsMap,products:e.products,accessToken:e.accessToken}}export{w as createDocsMcpServer};
|
|
@@ -80,6 +80,11 @@ export type McpToolContext = Omit<ApiFunctionsContext, 'telemetry' | 'getKv' | k
|
|
|
80
80
|
accessToken?: string;
|
|
81
81
|
};
|
|
82
82
|
export type McpToolHandler<TArgs extends Record<string, unknown> = Record<string, unknown>> = (args: TArgs, context: McpToolContext, extra: McpToolExtra) => Promise<McpToolWorkerResponse>;
|
|
83
|
+
export type McpToolIsAvailable = (context: McpToolContext) => boolean | Promise<boolean>;
|
|
84
|
+
export type McpToolHandlerExtended<TArgs extends Record<string, unknown> = Record<string, unknown>> = {
|
|
85
|
+
execute: McpToolHandler<TArgs>;
|
|
86
|
+
isAvailable?: McpToolIsAvailable;
|
|
87
|
+
};
|
|
83
88
|
export type McpToolExecutionParams = {
|
|
84
89
|
toolName: string;
|
|
85
90
|
args: Record<string, unknown>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { McpToolExecutionParams, McpToolWorkerResponse } from '../types.js';
|
|
2
2
|
export declare function executeMcpTool(params: McpToolExecutionParams): Promise<McpToolWorkerResponse>;
|
|
3
|
+
export declare function isMcpToolAvailable(params: Omit<McpToolExecutionParams, 'args' | 'extra'>): Promise<boolean>;
|
|
3
4
|
//# sourceMappingURL=execute-mcp-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{telemetry as s}from"../../../telemetry/index.js";import{mcpToolHandlers as
|
|
1
|
+
import{telemetry as s}from"../../../telemetry/index.js";import{mcpToolHandlers as l}from"../../../../client/mcp-tool-handlers-entry.js";async function y(r){s.initialize();const{toolName:e,args:c,context:o,extra:i}=r;try{const t=l[e];if(!t)throw new Error(`Unknown MCP tool: ${e}`);const{default:f}=await t(),n=f[e];if(!n)throw new Error(`MCP tool module does not export a handler for "${e}". Expected \`export default { '${e}': handler }\`.`);const a=await(typeof n=="function"?n:n.execute)(c,o,i);if(!d(a))throw new Error(`MCP tool "${e}" returned an invalid result.`);return a.isError?s.sendMcpErrorMessage([{object:"mcp_server",server_type:"docs",tool:e,message:`${a.content.map(({text:p})=>p).join(" ")}`,stack:""}]):s.sendMcpToolCalledMessage([{object:"mcp_server",server_type:"docs",tool:e}]),a}catch(t){throw s.sendMcpErrorMessage([{object:"mcp_server",server_type:"docs",tool:e,message:t instanceof Error?t.message:String(t),stack:t instanceof Error&&t.stack||""}]),t}}function d(r){return!r||typeof r!="object"?!1:Array.isArray(r.content)}async function h(r){s.initialize();const{toolName:e,context:c}=r;try{const o=l[e];if(!o)return!1;const{default:i}=await o(),t=i[e];return t?typeof t=="object"&&typeof t.isAvailable=="function"?await t.isAvailable(c):!0:!1}catch(o){throw s.sendMcpErrorMessage([{object:"mcp_server",server_type:"docs",tool:e,message:"Failed to check if MCP tool is available: "+(o instanceof Error?o.message:String(o)),stack:o instanceof Error&&o.stack||""}]),o}}export{y as executeMcpTool,h as isMcpToolAvailable};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DatabaseClient } from '
|
|
2
|
-
import type { DatabaseScorecardsConfig, DatabaseScorecardsConfigDto } from '
|
|
3
|
-
export declare class
|
|
1
|
+
import type { DatabaseClient } from '../../../../providers/database/client.js';
|
|
2
|
+
import type { DatabaseScorecardsConfig, DatabaseScorecardsConfigDto } from '../../../../providers/database/databases/sqlite-db/schemas/scorecards-config-table.js';
|
|
3
|
+
export declare class ScorecardsConfigRepository {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(db: DatabaseClient);
|
|
6
6
|
findActiveConfigByKey(key: string): Promise<DatabaseScorecardsConfig | null>;
|
|
@@ -9,4 +9,4 @@ export declare class ScorecardsConfigLocalRepository {
|
|
|
9
9
|
updateConfigById(id: string, updates: Partial<Omit<DatabaseScorecardsConfigDto, 'id' | 'createdAt'>>): Promise<DatabaseScorecardsConfig>;
|
|
10
10
|
archiveConfigById(id: string, archivedAt: string): Promise<DatabaseScorecardsConfig>;
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=scorecards-config-
|
|
12
|
+
//# sourceMappingURL=scorecards-config-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{and as o,eq as n,isNull as s}from"drizzle-orm";import{scorecardsConfigTable as r}from"../../../../providers/database/databases/sqlite-db/schemas/scorecards-config-table.js";class d{#e;constructor(e){this.#e=e}async findActiveConfigByKey(e){return(await this.#e.client.select().from(r).where(o(n(r.key,e),s(r.archivedAt))).limit(1))[0]??null}async findAllActiveConfigs(){return await this.#e.client.select().from(r).where(s(r.archivedAt))}async insertConfig(e){const t=await this.#e.client.insert(r).values(e).returning();if(!t[0])throw new Error(`Failed to insert scorecard config with key: ${e.key}`);return t[0]}async updateConfigById(e,t){const i=await this.#e.client.update(r).set(t).where(n(r.id,e)).returning();if(!i[0])throw new Error(`Failed to update scorecard config with id: ${e}`);return i[0]}async archiveConfigById(e,t){const i=await this.#e.client.update(r).set({archivedAt:t}).where(n(r.id,e)).returning();if(!i[0])throw new Error(`Failed to archive scorecard config with id: ${e}`);return i[0]}}export{d as ScorecardsConfigRepository};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ulid as g}from"ulid";import{logger as r}from"../../../tools/notifiers/logger.js";import{DatabaseConnectionFactory as
|
|
1
|
+
import{ulid as g}from"ulid";import{logger as r}from"../../../tools/notifiers/logger.js";import{DatabaseConnectionFactory as d}from"../../../providers/database/database-connection-factory.js";import{BaseRepository as h}from"../../../providers/database/base-repository.js";import{shaHex as l}from"../../../utils/crypto/sha-hex.js";import{hasOptionsChanged as m}from"../../../plugins/catalog-entities/utils/has-options-changed.js";import{slug as y}from"../../../../utils/slugger.js";import{withTimestamp as f}from"../../../utils/time/with-timestamp.js";import{ScorecardsConfigRepository as p}from"./repositories/scorecards-config-repository.js";class o extends h{static#i;static#e;#t;constructor(t){if(!t)throw new Error("Database connection is required for ScorecardsConfigService");super(t),this.#t=new p(this.databaseClient)}static async getInstance(t){const i=m(o.#e,t);if(!o.#i||i){const n=await d.create(t);if(!n)throw new Error("Failed to create db connection for scorecards config service");o.#i=new o(n),o.#e=t}return o.#i}async syncConfig(t,i){const n=new Set;(!Array.isArray(t)||t.length===0)&&r.verbose("No scorecard configs to sync"),r.verbose(`Starting scorecard config sync for ${t.length} config(s)`);for(const s of t)try{const e=s.key;if(!/^[a-z0-9-]+$/i.test(e)){r.error(`Skipping invalid scorecard config item: key "${e}" does not match kebab-case format (letters, numbers, and dashes only)`,{scorecard:s});continue}n.add(e);const a=this.#s(s),c=await this.#t.findActiveConfigByKey(e);if(c){if(c.configHash===a){r.verbose(`Config "${e}" unchanged, skipping update`);continue}r.verbose(`Updating config "${e}"`),await this.#r(c.id,s,a)}else r.verbose(`Inserting new config "${e}"`),await this.#n(e,s,a);i&&await i(e)}catch(e){r.error("Error processing scorecard config item:",{error:e.message??e,scorecard:s})}await this.#o(n),r.verbose("Sync scorecard configuration: success")}#s(t){const i=JSON.stringify({entities:t.entities,levels:t.levels});return l(i)}async#n(t,i,n){await this.#t.insertConfig(f({id:`sc_${g()}`,key:t,slug:y(t),name:i.name,description:i.description??null,entitiesFilter:JSON.stringify(i.entities),levels:JSON.stringify(i.levels),configHash:n,archivedAt:null}))}async#r(t,i,n){const s=f({entitiesFilter:JSON.stringify(i.entities),levels:JSON.stringify(i.levels),configHash:n,archivedAt:null},{fields:["updatedAt"]});await this.#t.updateConfigById(t,s)}async#o(t){const i=await this.#t.findAllActiveConfigs(),n=new Date().toISOString();for(const s of i)if(!t.has(s.key)){r.verbose(`Archiving removed config "${s.key}"`);try{await this.#t.archiveConfigById(s.id,n)}catch(e){r.error(`Error archiving config item "${s.key}":`,e.message??e)}}}}export{o as ScorecardsConfigService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import p from"node:path";import{existsSync as v}from"node:fs";import{writeFile as
|
|
1
|
+
import p from"node:path";import{existsSync as v}from"node:fs";import{writeFile as S,access as b,rm as X,constants as $}from"fs/promises";import{REDOCLY_ROUTE_RBAC as P,REDOCLY_TEAMS_RBAC as d}from"@redocly/config";import N from"picomatch";import{combineUrls as U}from"@redocly/theme/core/utils";import{DEFAULT_LOCALE_PLACEHOLDER as _}from"../../../../constants/common.js";import{AI_INDEX_EXPORT_FOLDER as j}from"../../../constants/plugins/search.js";import{LLMS_TXT_FILE_NAME as B}from"../../../constants/common.js";import{envConfig as G}from"../../../config/env-config.js";import{logger as a}from"../../../tools/notifiers/logger.js";import{shaHexShort as H}from"../../../utils/crypto/sha-hex-short.js";import{promiseMapLimit as w}from"../../../utils/async/promise-map-limit.js";import{getLlmsTxtMdPathBySlug as k}from"../../../utils/llmstxt/get-llms-txt-md-path-by-slug.js";import{validateLLMsTxtConfig as Y,generateLLMsTxt as J}from"../llmstxt/index.js";import{ensureDir as D}from"../../../utils/fs.js";import{isResourcePubliclyAccessible as K,extractTeamsFromScopeItems as V,getRbacTeamsListForResource as W}from"../../../utils/rbac.js";const C=20,A="llms.txt:";async function Rt(t,i,{embeddingsEnabled:o,llmstxtEnabled:r}){const c=p.join(t.outdir,B);if(!r){try{await b(c,$.W_OK),await X(c)}catch{}if(!o)return}o&&a.info("Preparing semantic documents..."),r&&a.info(`${A} Generating llms.txt files...`);const L=a.startTiming(),l=a.startTiming(),u=t.getGlobalConfig("seo"),m=u?.llmstxt,T=p.resolve(t.outdir,j),f=t.getConfig(),F=f.access?.rbac??{},M=t.getAllRoutes(),y=f?.l10n?.defaultLocale||f?.i18n?.defaultLocale||_,O=(m?.excludeFiles||[]).map(e=>N(e)),R=[];if(await w(M,C,async e=>{if(e.excludeFromSearch)return;const E=await q(e,t),x=await z(e,E,i,t);if(x){if(r)for(const s of await x.getLLMsTxts()){if(O.some(h=>h(s.fsPath)))continue;const g=k(s.slug),n=p.join(t.outdir,g);D(n),await S(n,s.content),t.setResourceResponseHeaders(g,[{name:"X-Robots-Tag",value:"noindex, follow"},...f.seo?.siteUrl?[{name:"Link",value:`<${U(f.seo.siteUrl,s.slug)}>; rel="canonical"`}]:[]]),s.includeInLLMsTxt&&K(e,f)&&R.push(s)}if(o&&G.isBuildMode){const s=await x.getSearchDocuments();if(!s.length)return;const g=Q(e,F),n=e.versions?.find(({active:I})=>I),h=n&&{folder:n.folderId,label:n.label,default:n.default};await Z(s,e.fsPath,g,T,y,h)}}}),o&&a.infoTime(l,"Semantic search documents prepared"),R.length)try{Y(m);const e=await J(R,m,{title:u?.title,description:u?.description},i);D(c),await S(c,e),a.infoTime(L,`${A} files generated`)}catch(e){a.error(`${A} Failed to generate llms.txt file. ${e.message}`)}}async function q(t,i){return t.getStaticData?t.getStaticData(t,i):{}}async function z(t,i,o,r){if(t.getAiDocumentsStore)return t.getAiDocumentsStore(t,{...i,[d]:t[d],[P]:t[P]},o,r)}function Q(t,i){const o=V(t?.[d]);return o?.length?o:W(t,i)}async function Z(t,i,o,r,c,L){await w(t,C,async l=>{const u=`${H(i+l.content)}.json`,m=D(p.join(r,u)),T=l.locale===_?c:l.locale;v(m)||await S(m,JSON.stringify({...l,rbacTeams:o||[],version:L,locale:T}),"utf-8")})}export{Rt as prepareSemanticDocuments};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{sql as a}from"drizzle-orm";import{envConfig as i}from"../../config/env-config.js";import{SQLD_REMOTE_DATABASE_URL_NO_DEPLOYMENT_YET_VAR as
|
|
1
|
+
import{sql as a}from"drizzle-orm";import{getFirstRunRow as o}from"../../providers/database/utils/get-first-row.js";import{envConfig as i}from"../../config/env-config.js";import{SQLD_REMOTE_DATABASE_URL_NO_DEPLOYMENT_YET_VAR as E}from"../../constants/plugins/catalog-entities.js";class n{static#t="ORGANIZATION_ID";static#e="PROJECT_ID";organizationId;projectId;databaseClient;path;constructor(e){const t=this.isNonRemoteDatabaseMode();this.organizationId=this.#i(t),this.projectId=this.#n(t),this.databaseClient=e.client,this.path=e.path}async close(){await this.databaseClient.close()}async sync(){await this.databaseClient.sync()}async getTableSizeInBytes(e){const t=await this.databaseClient.client.run(a`
|
|
2
2
|
SELECT COALESCE(SUM(pgsize), 0) AS bytes
|
|
3
3
|
FROM dbstat
|
|
4
4
|
WHERE name = ${e}
|
|
5
|
-
`))
|
|
5
|
+
`),s=o(t)?.bytes,r=Number(s??0);return Number.isFinite(r)?r:0}#i=e=>{const t=i.ORGANIZATION_ID;if(t)return t;if(e)return n.#t;throw new Error("ORGANIZATION_ID environment variable is required. Ensure it is set in your environment configuration.")};#n=e=>{const t=i.PROJECT_ID;if(t)return t;if(e)return n.#e;throw new Error("PROJECT_ID environment variable is required. Ensure it is set in your environment configuration.")};isNonRemoteDatabaseMode=()=>i.SQLD_REMOTE_DATABASE_URL===E||!i.SQLD_REMOTE_DATABASE_AUTH_TOKEN}export{n as BaseRepository};
|
|
@@ -17,7 +17,7 @@ export declare class DatabaseClient {
|
|
|
17
17
|
static init(config: Config, options?: DatabaseClientInitOptions): Promise<DatabaseClient>;
|
|
18
18
|
migrate(prefix: string, suffix?: string): Promise<void>;
|
|
19
19
|
close(): Promise<void>;
|
|
20
|
-
sync(): Promise<
|
|
20
|
+
sync(): Promise<void>;
|
|
21
21
|
}
|
|
22
22
|
export {};
|
|
23
23
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import a from"node:path";import{sql as o}from"drizzle-orm";import{drizzle as c}from"drizzle-orm/libsql";import{migrate as l}from"drizzle-orm/libsql/migrator";import{TransactionsManager as m}from"./transactions-manager.js";class e{dbClient;#t;constructor(t,i){this.dbClient=c(i(t)),this.#t=new m(this.dbClient)}get transactionsManager(){return this.#t}get client(){return this.#t.tx??this.dbClient}static async init(t,i){const{createClient:s}=await import("@libsql/client"),r=new e(t,s);return i?.runWithPragmaWalWriteOptimization&&await r.dbClient.run(o.raw("PRAGMA journal_mode = WAL;")),r}async migrate(t,i=""){await l(this.dbClient,{migrationsFolder:a.join(t,"migrations",i)})}async close(){this.dbClient.$client.close()}async sync(){try{await this.dbClient.$client.sync()}catch(t){if(d(t))return;throw t}}}function d(n){if(!(n instanceof Error))return!1;const t=n.message.toLowerCase();return t.includes("syncnotsupported")&&(t.includes('("file")')||t.includes('"file"'))}export{e as DatabaseClient};
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const MAIN_LOCAL_DATABASE_FOLDER = "main-local";
|
|
6
|
-
export declare const MAIN_LOCAL_DATABASE_MIGRATIONS_FOLDER = "main-sqlite";
|
|
7
|
-
export declare const SQLD_REMOTE_DATABASE_NAME = "sqld-remote.sqlite";
|
|
8
|
-
export declare const SQLD_REMOTE_DATABASE_FOLDER = "sqld-remote";
|
|
9
|
-
export declare const SQLD_REMOTE_DATABASE_MIGRATIONS_FOLDER = "sqld-sqlite";
|
|
1
|
+
export declare const SQLITE_DATABASE_NAME = "db.sqlite";
|
|
2
|
+
export declare const SQLITE_DATABASE_MIGRATIONS_FOLDER = "sqlite-db";
|
|
3
|
+
export declare const SQLITE_LOCAL_DATABASE_FOLDER = "local-sqlite-db";
|
|
4
|
+
export declare const SQLITE_REMOTE_DATABASE_FOLDER = "remote-sqlite-db";
|
|
10
5
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const A="
|
|
1
|
+
const A="db.sqlite",E="sqlite-db",t="local-sqlite-db",_="remote-sqlite-db";export{E as SQLITE_DATABASE_MIGRATIONS_FOLDER,A as SQLITE_DATABASE_NAME,t as SQLITE_LOCAL_DATABASE_FOLDER,_ as SQLITE_REMOTE_DATABASE_FOLDER};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import a from"node:path";import{cpSync as c,existsSync as t,mkdirSync as m}from"node:fs";import{logger as i}from"../../tools/notifiers/logger.js";import{fromCurrentDir as d}from"../../utils/index.js";import{PACKAGE_NAME as f}from"../../../config/product-gates.js";const l=["@redocly/realm","@redocly/reef","@redocly/redoc-reef","@redocly/revel-reef"],A=r=>{if(!l.includes(f))return;const o="sqlite-db",e=d(import.meta.url,`./databases/${o}/migrations`),s=a.join(r.serverOutDir,"migrations",o);if(!t(e)){i.warn(`Migrations folder not found at ${e}`);return}t(r.serverOutDir)||m(r.serverOutDir,{recursive:!0});try{c(e,s,{recursive:!0})}catch(n){i.error("Failed to copy migrations folder: %s",n)}};export{A as copyMigrationsFolder};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DatabaseConnection, DatabaseConnectionOptions
|
|
1
|
+
import type { DatabaseConnection, DatabaseConnectionOptions } from './types.js';
|
|
2
2
|
export declare class DatabaseConnectionFactory {
|
|
3
3
|
#private;
|
|
4
|
-
static create(
|
|
4
|
+
static create(options: DatabaseConnectionOptions): Promise<DatabaseConnection | null>;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=database-connection-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as
|
|
1
|
+
import{logger as n}from"../../tools/notifiers/logger.js";import{envConfig as r}from"../../config/env-config.js";import{SQLITE_DATABASE_MIGRATIONS_FOLDER as o,SQLITE_LOCAL_DATABASE_FOLDER as c,SQLITE_REMOTE_DATABASE_FOLDER as l,SQLITE_DATABASE_NAME as i}from"./constants.js";import{DatabaseConnectionsManager as s}from"./database-connections-manager.js";import{SQLD_REMOTE_DATABASE_URL_NO_DEPLOYMENT_YET_VAR as T}from"../../constants/plugins/catalog-entities.js";class u{static async create(e){return this.#r(e)==="local"?await this.#t(e):await this.#a(e)}static async#t(e){return await s.getLocalConnection({...e,databaseName:i,additionalFolder:c,migrationsFolder:o})}static async#a(e){try{const{syncUrl:t,authToken:a}=this.#e(e);return!t||!a?(r.isDevelopMode||n.warn("Your remote database is not initialized yet, please wait for production deployment."),null):await s.getRemoteConnection({...e,databaseName:i,additionalFolder:l,migrationsFolder:o,syncUrl:t,authToken:a})}catch(t){return n.error("Remote database connection initialization failed",t),null}}static#r(e){if(e.databaseType)return e.databaseType;const{syncUrl:t,authToken:a}=this.#e(e);return t&&a?"remote":"local"}static#e(e){const t=r.SQLD_REMOTE_DATABASE_URL||e.sqldRemoteDatabaseUrl,a=r.SQLD_REMOTE_DATABASE_AUTH_TOKEN||e.sqldRemoteDatabaseAuthToken;return{syncUrl:this.#n(t),authToken:a}}static#n(e){return e===T?void 0:e}}export{u as DatabaseConnectionFactory};
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { type DatabaseInitializationStrategy } from './database-initialization-strategy.js';
|
|
3
|
-
type GetConnectionParams<TConfig extends DatabaseConnectionInitOptions> = {
|
|
4
|
-
config: TConfig;
|
|
5
|
-
strategy: DatabaseInitializationStrategy;
|
|
6
|
-
};
|
|
1
|
+
import type { DatabaseConnection, LocalDatabaseConnectionInitOptions, RemoteDatabaseConnectionInitOptions } from './types.js';
|
|
7
2
|
export declare class DatabaseConnectionsManager {
|
|
8
3
|
#private;
|
|
9
|
-
static
|
|
4
|
+
static getLocalConnection(config: LocalDatabaseConnectionInitOptions): Promise<DatabaseConnection | null>;
|
|
5
|
+
static getRemoteConnection(config: RemoteDatabaseConnectionInitOptions): Promise<DatabaseConnection | null>;
|
|
10
6
|
}
|
|
11
|
-
export {};
|
|
12
7
|
//# sourceMappingURL=database-connections-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as
|
|
1
|
+
import{logger as c}from"../../tools/notifiers/logger.js";import{SqldNotRunningError as y}from"./sqld-not-running-error.js";import{retryAsyncOperation as f}from"./utils/retry-async-operation.js";import{DatabasePathGenerator as h}from"./database-path-generator.js";import{DatabaseClient as w}from"./client.js";const m="_redocly_db_preconnect_cache_";class i{static get#t(){const t=globalThis;if(!t[m]){const n={connections:new Map,pendingConnections:new Map,failedConnections:new Set};t[m]=n}return t[m]}static get#i(){return i.#t.connections}static get#e(){return i.#t.failedConnections}static get#n(){return i.#t.pendingConnections}static async getLocalConnection(t){return i.#r(t,async()=>i.#a(t))}static async getRemoteConnection(t){return i.#r(t,async()=>i.#d(t))}static async#r(t,n){const e=i.#o(t),r=i.#i.get(e);if(r)if(r.client.dbClient.$client.closed)c.warn("Cached database client is closed. Reinitializing connection..."),i.#i.delete(e);else return r;return i.#l({key:e,initializer:n})}static#o=t=>{const n="syncUrl"in t&&typeof t.syncUrl=="string"?`|${t.syncUrl}`:"",e=t.additionalFolder??"";return`${t.baseDbDir}|${e}|${t.databaseName}${n}`};static async#l({key:t,initializer:n}){let e=i.#n.get(t);e||(i.#e.has(t)&&c.warn("Error connecting to the database, retrying..."),e=i.#s(t,n),i.#n.set(t,e));try{return await e}catch(r){return c.error("Error connecting to the database",r),i.#e.add(t),null}finally{i.#n.delete(t)}}static async#s(t,n){const e=await n();return i.#i.set(t,e),i.#e.delete(t),e}static async#a({removeExisting:t,baseDbDir:n,runWithPragmaWalWriteOptimization:e,databaseName:r,additionalFolder:a,migrationsFolder:d}){c.info("Initializing local database client...");const l=c.startTiming(),s=await i.#c({removeExisting:t,baseDbDir:n,databaseName:r,additionalFolder:a,migrationsFolder:d,runWithPragmaWalWriteOptimization:e});return c.infoTime(l,"Local database client initialized"),s}static async#d({removeExisting:t,baseDbDir:n,syncUrl:e,authToken:r,databaseName:a,additionalFolder:d,migrationsFolder:l}){c.info("Initializing remote database client...");const s=c.startTiming();return await f(async()=>{try{const o=await i.#c({removeExisting:t,baseDbDir:n,databaseName:a,additionalFolder:d,migrationsFolder:l,syncUrl:e,authToken:r});return c.infoTime(s,"Remote database client initialized"),o}catch(o){throw y.isSqldNotRunningError(o)?new y("SQLD server is not running yet, wait for production deployment",{cause:o}):o}},{maxRetries:3,retryStrategy:"exponential",delay:1e3,logger:c,messages:{retry:"Retrying remote database client initialization",maxRetriesReached:"Max retries reached, remote database client initialization failed"}})}static async#c({removeExisting:t,baseDbDir:n,databaseName:e,additionalFolder:r,migrationsFolder:a,runWithPragmaWalWriteOptimization:d,syncUrl:l,authToken:s}){const{databasePath:o}=await h.prepareDatabasePath({baseDir:n,databaseName:e,additionalFolder:r,removeExisting:t}),p=l&&s?{url:`file:${o}`,syncUrl:l,authToken:s}:{url:`file:${o}`},u=await w.init(p,{runWithPragmaWalWriteOptimization:d});return await u.migrate(n,a),{client:u,path:o}}}export{i as DatabaseConnectionsManager};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as o}from"../../tools/notifiers/logger.js";import{envConfig as
|
|
1
|
+
import{logger as o}from"../../tools/notifiers/logger.js";import{envConfig as a}from"../../config/env-config.js";import{DatabaseConnectionFactory as i}from"./database-connection-factory.js";class t{static#t=!1;static async init(e){if(!(a.REDOCLY_INTERNAL_DEV||a.CI)&&!t.#t)try{await t.#e(e)==="PRECONNECTED"&&(t.#t=!0)}catch(r){o.error("Failed to preconnect to sqld remote database",r)}}static#e=async e=>await i.create({baseDbDir:e,databaseType:"remote"})?(o.info("Sqld remote database preconnected"),"PRECONNECTED"):(o.warn("Sqld remote database preconnect failed"),"NOT_PRECONNECTED")}export{t as DatabasePreconnectService};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type DrizzleDbCredentials = {
|
|
2
|
+
url: string;
|
|
3
|
+
authToken?: string;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: {
|
|
6
|
+
schema: string;
|
|
7
|
+
out: string;
|
|
8
|
+
dialect: "turso";
|
|
9
|
+
dbCredentials: DrizzleDbCredentials;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=drizzle.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DatabasePathGenerator as a}from"../../database-path-generator";import{SQLITE_DATABASE_NAME as o,SQLITE_LOCAL_DATABASE_FOLDER as A}from"../../constants";const E="./dist/server/esbuild/cache/server",_="./src/server/providers/database/databases/sqlite-db/schemas/*",n="./src/server/providers/database/databases/sqlite-db/migrations",r="DRIZZLE_DB_TARGET",T=()=>process.env[r]==="remote"?"remote":"local",c=()=>`file:${a.generateDatabasePath({baseDir:E,databaseName:o,additionalFolder:A})}`,D=()=>{const s=T(),e=process.env.SQLD_REMOTE_DATABASE_URL,t=process.env.SQLD_REMOTE_DATABASE_AUTH_TOKEN;if(s==="remote"){if(!e||!t)throw new Error(`Remote DB selected (${r}=remote), but SQLD_REMOTE_DATABASE_URL or SQLD_REMOTE_DATABASE_AUTH_TOKEN is missing.`);return{url:e,authToken:t}}return{url:c()}};var S={schema:_,out:n,dialect:"turso",dbCredentials:D()};export{S as default};
|