@functional-systems/lambdadb 0.4.3 → 0.5.0-rc.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 +138 -0
- package/FUNCTIONS.md +7 -2
- package/README.md +76 -4
- package/RUNTIMES.md +7 -0
- package/USAGE.md +20 -0
- package/dist/commonjs/client.d.ts +31 -14
- package/dist/commonjs/client.d.ts.map +1 -1
- package/dist/commonjs/client.js +188 -60
- package/dist/commonjs/client.js.map +1 -1
- package/dist/commonjs/compat/qdrant/client.d.ts +3 -6
- package/dist/commonjs/compat/qdrant/client.d.ts.map +1 -1
- package/dist/commonjs/compat/qdrant/client.js +17 -11
- package/dist/commonjs/compat/qdrant/client.js.map +1 -1
- package/dist/commonjs/funcs/collectionsCreate.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsCreate.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsCreate.js +1 -1
- package/dist/commonjs/funcs/collectionsCreate.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDelete.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDelete.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDelete.js +1 -1
- package/dist/commonjs/funcs/collectionsDelete.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsBulkUpsert.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsBulkUpsert.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsBulkUpsert.js +1 -1
- package/dist/commonjs/funcs/collectionsDocsBulkUpsert.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsDelete.d.ts +2 -2
- package/dist/commonjs/funcs/collectionsDocsDelete.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsDelete.js +2 -2
- package/dist/commonjs/funcs/collectionsDocsDelete.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsFetch.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsFetch.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsFetch.js +1 -1
- package/dist/commonjs/funcs/collectionsDocsFetch.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.js +5 -1
- package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocs.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocs.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocs.js +3 -1
- package/dist/commonjs/funcs/collectionsDocsListDocs.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocsExtended.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocsExtended.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocsExtended.js +1 -1
- package/dist/commonjs/funcs/collectionsDocsListDocsExtended.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpdate.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpdate.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpdate.js +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpdate.js.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpsert.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpsert.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpsert.js +1 -1
- package/dist/commonjs/funcs/collectionsDocsUpsert.js.map +1 -1
- package/dist/commonjs/funcs/collectionsGet.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsGet.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsGet.js +1 -1
- package/dist/commonjs/funcs/collectionsGet.js.map +1 -1
- package/dist/commonjs/funcs/collectionsList.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsList.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsList.js +1 -1
- package/dist/commonjs/funcs/collectionsList.js.map +1 -1
- package/dist/commonjs/funcs/collectionsQuery.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsQuery.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsQuery.js +1 -1
- package/dist/commonjs/funcs/collectionsQuery.js.map +1 -1
- package/dist/commonjs/funcs/collectionsUpdate.d.ts +1 -1
- package/dist/commonjs/funcs/collectionsUpdate.d.ts.map +1 -1
- package/dist/commonjs/funcs/collectionsUpdate.js +1 -1
- package/dist/commonjs/funcs/collectionsUpdate.js.map +1 -1
- package/dist/commonjs/index.d.ts +4 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +15 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/collectionContract.d.ts +4 -0
- package/dist/commonjs/lib/collectionContract.d.ts.map +1 -0
- package/dist/commonjs/lib/collectionContract.js +68 -0
- package/dist/commonjs/lib/collectionContract.js.map +1 -0
- package/dist/commonjs/lib/config.d.ts +2 -2
- package/dist/commonjs/lib/config.js +2 -2
- package/dist/commonjs/lib/config.js.map +1 -1
- package/dist/commonjs/lib/matchers.d.ts +3 -0
- package/dist/commonjs/lib/matchers.d.ts.map +1 -1
- package/dist/commonjs/lib/matchers.js +11 -0
- package/dist/commonjs/lib/matchers.js.map +1 -1
- package/dist/commonjs/lib/queryInput.d.ts +3 -11
- package/dist/commonjs/lib/queryInput.d.ts.map +1 -1
- package/dist/commonjs/lib/queryInput.js.map +1 -1
- package/dist/commonjs/models/collectionresponse.d.ts +16 -22
- package/dist/commonjs/models/collectionresponse.d.ts.map +1 -1
- package/dist/commonjs/models/collectionresponse.js +6 -7
- package/dist/commonjs/models/collectionresponse.js.map +1 -1
- package/dist/commonjs/models/errors/gatewayerrors.d.ts +47 -0
- package/dist/commonjs/models/errors/gatewayerrors.d.ts.map +1 -0
- package/dist/commonjs/models/errors/gatewayerrors.js +104 -0
- package/dist/commonjs/models/errors/gatewayerrors.js.map +1 -0
- package/dist/commonjs/models/errors/index.d.ts +1 -0
- package/dist/commonjs/models/errors/index.d.ts.map +1 -1
- package/dist/commonjs/models/errors/index.js +1 -0
- package/dist/commonjs/models/errors/index.js.map +1 -1
- package/dist/commonjs/models/errors/lambdadberror.d.ts +2 -0
- package/dist/commonjs/models/errors/lambdadberror.d.ts.map +1 -1
- package/dist/commonjs/models/errors/lambdadberror.js +4 -0
- package/dist/commonjs/models/errors/lambdadberror.js.map +1 -1
- package/dist/commonjs/models/index.d.ts +1 -0
- package/dist/commonjs/models/index.d.ts.map +1 -1
- package/dist/commonjs/models/index.js +1 -0
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/operations/bulkupsertdocs.d.ts +6 -0
- package/dist/commonjs/models/operations/bulkupsertdocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/bulkupsertdocs.js +3 -1
- package/dist/commonjs/models/operations/bulkupsertdocs.js.map +1 -1
- package/dist/commonjs/models/operations/createcollection.d.ts +20 -13
- package/dist/commonjs/models/operations/createcollection.d.ts.map +1 -1
- package/dist/commonjs/models/operations/createcollection.js +15 -8
- package/dist/commonjs/models/operations/createcollection.js.map +1 -1
- package/dist/commonjs/models/operations/deletedocs.d.ts +26 -2
- package/dist/commonjs/models/operations/deletedocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/deletedocs.js +2 -1
- package/dist/commonjs/models/operations/deletedocs.js.map +1 -1
- package/dist/commonjs/models/operations/fetchdocs.d.ts +4 -1
- package/dist/commonjs/models/operations/fetchdocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/fetchdocs.js +9 -0
- package/dist/commonjs/models/operations/fetchdocs.js.map +1 -1
- package/dist/commonjs/models/operations/getbulkupsertdocs.d.ts +5 -0
- package/dist/commonjs/models/operations/getbulkupsertdocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getbulkupsertdocs.js +5 -3
- package/dist/commonjs/models/operations/getbulkupsertdocs.js.map +1 -1
- package/dist/commonjs/models/operations/listdocs.d.ts +11 -2
- package/dist/commonjs/models/operations/listdocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/listdocs.js +12 -1
- package/dist/commonjs/models/operations/listdocs.js.map +1 -1
- package/dist/commonjs/models/operations/querycollection.d.ts +4 -1
- package/dist/commonjs/models/operations/querycollection.d.ts.map +1 -1
- package/dist/commonjs/models/operations/querycollection.js +9 -0
- package/dist/commonjs/models/operations/querycollection.js.map +1 -1
- package/dist/commonjs/models/operations/updatecollection.d.ts +33 -4
- package/dist/commonjs/models/operations/updatecollection.d.ts.map +1 -1
- package/dist/commonjs/models/operations/updatecollection.js +6 -2
- package/dist/commonjs/models/operations/updatecollection.js.map +1 -1
- package/dist/commonjs/models/operations/updatedocs.d.ts +3 -0
- package/dist/commonjs/models/operations/updatedocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/updatedocs.js +2 -1
- package/dist/commonjs/models/operations/updatedocs.js.map +1 -1
- package/dist/commonjs/models/operations/upsertdocs.d.ts +3 -0
- package/dist/commonjs/models/operations/upsertdocs.d.ts.map +1 -1
- package/dist/commonjs/models/operations/upsertdocs.js +2 -1
- package/dist/commonjs/models/operations/upsertdocs.js.map +1 -1
- package/dist/commonjs/models/versioning.d.ts +100 -0
- package/dist/commonjs/models/versioning.d.ts.map +1 -0
- package/dist/commonjs/models/versioning.js +93 -0
- package/dist/commonjs/models/versioning.js.map +1 -0
- package/dist/commonjs/sdk/docs.d.ts +1 -1
- package/dist/commonjs/sdk/docs.js +1 -1
- package/dist/commonjs/types/errors.d.ts +15 -13
- package/dist/commonjs/types/errors.d.ts.map +1 -1
- package/dist/commonjs/types/errors.js +6 -1
- package/dist/commonjs/types/errors.js.map +1 -1
- package/dist/commonjs/types/public.d.ts +80 -6
- package/dist/commonjs/types/public.d.ts.map +1 -1
- package/dist/commonjs/types/public.js +30 -7
- package/dist/commonjs/types/public.js.map +1 -1
- package/dist/commonjs/versioning.d.ts +63 -0
- package/dist/commonjs/versioning.d.ts.map +1 -0
- package/dist/commonjs/versioning.js +402 -0
- package/dist/commonjs/versioning.js.map +1 -0
- package/dist/esm/client.d.ts +31 -14
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +189 -62
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/compat/qdrant/client.d.ts +3 -6
- package/dist/esm/compat/qdrant/client.d.ts.map +1 -1
- package/dist/esm/compat/qdrant/client.js +17 -11
- package/dist/esm/compat/qdrant/client.js.map +1 -1
- package/dist/esm/funcs/collectionsCreate.d.ts +1 -1
- package/dist/esm/funcs/collectionsCreate.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsCreate.js +1 -1
- package/dist/esm/funcs/collectionsCreate.js.map +1 -1
- package/dist/esm/funcs/collectionsDelete.d.ts +1 -1
- package/dist/esm/funcs/collectionsDelete.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDelete.js +1 -1
- package/dist/esm/funcs/collectionsDelete.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsBulkUpsert.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsBulkUpsert.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsBulkUpsert.js +1 -1
- package/dist/esm/funcs/collectionsDocsBulkUpsert.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsDelete.d.ts +2 -2
- package/dist/esm/funcs/collectionsDocsDelete.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsDelete.js +2 -2
- package/dist/esm/funcs/collectionsDocsDelete.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsFetch.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsFetch.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsFetch.js +1 -1
- package/dist/esm/funcs/collectionsDocsFetch.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsGetBulkUpsert.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsGetBulkUpsert.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsGetBulkUpsert.js +6 -2
- package/dist/esm/funcs/collectionsDocsGetBulkUpsert.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsListDocs.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsListDocs.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsListDocs.js +3 -1
- package/dist/esm/funcs/collectionsDocsListDocs.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsListDocsExtended.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsListDocsExtended.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsListDocsExtended.js +1 -1
- package/dist/esm/funcs/collectionsDocsListDocsExtended.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsUpdate.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsUpdate.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsUpdate.js +1 -1
- package/dist/esm/funcs/collectionsDocsUpdate.js.map +1 -1
- package/dist/esm/funcs/collectionsDocsUpsert.d.ts +1 -1
- package/dist/esm/funcs/collectionsDocsUpsert.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsDocsUpsert.js +1 -1
- package/dist/esm/funcs/collectionsDocsUpsert.js.map +1 -1
- package/dist/esm/funcs/collectionsGet.d.ts +1 -1
- package/dist/esm/funcs/collectionsGet.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsGet.js +1 -1
- package/dist/esm/funcs/collectionsGet.js.map +1 -1
- package/dist/esm/funcs/collectionsList.d.ts +1 -1
- package/dist/esm/funcs/collectionsList.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsList.js +1 -1
- package/dist/esm/funcs/collectionsList.js.map +1 -1
- package/dist/esm/funcs/collectionsQuery.d.ts +1 -1
- package/dist/esm/funcs/collectionsQuery.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsQuery.js +1 -1
- package/dist/esm/funcs/collectionsQuery.js.map +1 -1
- package/dist/esm/funcs/collectionsUpdate.d.ts +1 -1
- package/dist/esm/funcs/collectionsUpdate.d.ts.map +1 -1
- package/dist/esm/funcs/collectionsUpdate.js +1 -1
- package/dist/esm/funcs/collectionsUpdate.js.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/collectionContract.d.ts +4 -0
- package/dist/esm/lib/collectionContract.d.ts.map +1 -0
- package/dist/esm/lib/collectionContract.js +32 -0
- package/dist/esm/lib/collectionContract.js.map +1 -0
- package/dist/esm/lib/config.d.ts +2 -2
- package/dist/esm/lib/config.js +2 -2
- package/dist/esm/lib/config.js.map +1 -1
- package/dist/esm/lib/matchers.d.ts +3 -0
- package/dist/esm/lib/matchers.d.ts.map +1 -1
- package/dist/esm/lib/matchers.js +10 -0
- package/dist/esm/lib/matchers.js.map +1 -1
- package/dist/esm/lib/queryInput.d.ts +3 -11
- package/dist/esm/lib/queryInput.d.ts.map +1 -1
- package/dist/esm/lib/queryInput.js.map +1 -1
- package/dist/esm/models/collectionresponse.d.ts +16 -22
- package/dist/esm/models/collectionresponse.d.ts.map +1 -1
- package/dist/esm/models/collectionresponse.js +6 -7
- package/dist/esm/models/collectionresponse.js.map +1 -1
- package/dist/esm/models/errors/gatewayerrors.d.ts +47 -0
- package/dist/esm/models/errors/gatewayerrors.d.ts.map +1 -0
- package/dist/esm/models/errors/gatewayerrors.js +63 -0
- package/dist/esm/models/errors/gatewayerrors.js.map +1 -0
- package/dist/esm/models/errors/index.d.ts +1 -0
- package/dist/esm/models/errors/index.d.ts.map +1 -1
- package/dist/esm/models/errors/index.js +1 -0
- package/dist/esm/models/errors/index.js.map +1 -1
- package/dist/esm/models/errors/lambdadberror.d.ts +2 -0
- package/dist/esm/models/errors/lambdadberror.d.ts.map +1 -1
- package/dist/esm/models/errors/lambdadberror.js +4 -0
- package/dist/esm/models/errors/lambdadberror.js.map +1 -1
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/operations/bulkupsertdocs.d.ts +6 -0
- package/dist/esm/models/operations/bulkupsertdocs.d.ts.map +1 -1
- package/dist/esm/models/operations/bulkupsertdocs.js +3 -1
- package/dist/esm/models/operations/bulkupsertdocs.js.map +1 -1
- package/dist/esm/models/operations/createcollection.d.ts +20 -13
- package/dist/esm/models/operations/createcollection.d.ts.map +1 -1
- package/dist/esm/models/operations/createcollection.js +15 -8
- package/dist/esm/models/operations/createcollection.js.map +1 -1
- package/dist/esm/models/operations/deletedocs.d.ts +26 -2
- package/dist/esm/models/operations/deletedocs.d.ts.map +1 -1
- package/dist/esm/models/operations/deletedocs.js +2 -1
- package/dist/esm/models/operations/deletedocs.js.map +1 -1
- package/dist/esm/models/operations/fetchdocs.d.ts +4 -1
- package/dist/esm/models/operations/fetchdocs.d.ts.map +1 -1
- package/dist/esm/models/operations/fetchdocs.js +9 -0
- package/dist/esm/models/operations/fetchdocs.js.map +1 -1
- package/dist/esm/models/operations/getbulkupsertdocs.d.ts +5 -0
- package/dist/esm/models/operations/getbulkupsertdocs.d.ts.map +1 -1
- package/dist/esm/models/operations/getbulkupsertdocs.js +6 -4
- package/dist/esm/models/operations/getbulkupsertdocs.js.map +1 -1
- package/dist/esm/models/operations/listdocs.d.ts +11 -2
- package/dist/esm/models/operations/listdocs.d.ts.map +1 -1
- package/dist/esm/models/operations/listdocs.js +12 -1
- package/dist/esm/models/operations/listdocs.js.map +1 -1
- package/dist/esm/models/operations/querycollection.d.ts +4 -1
- package/dist/esm/models/operations/querycollection.d.ts.map +1 -1
- package/dist/esm/models/operations/querycollection.js +9 -0
- package/dist/esm/models/operations/querycollection.js.map +1 -1
- package/dist/esm/models/operations/updatecollection.d.ts +33 -4
- package/dist/esm/models/operations/updatecollection.d.ts.map +1 -1
- package/dist/esm/models/operations/updatecollection.js +6 -2
- package/dist/esm/models/operations/updatecollection.js.map +1 -1
- package/dist/esm/models/operations/updatedocs.d.ts +3 -0
- package/dist/esm/models/operations/updatedocs.d.ts.map +1 -1
- package/dist/esm/models/operations/updatedocs.js +2 -1
- package/dist/esm/models/operations/updatedocs.js.map +1 -1
- package/dist/esm/models/operations/upsertdocs.d.ts +3 -0
- package/dist/esm/models/operations/upsertdocs.d.ts.map +1 -1
- package/dist/esm/models/operations/upsertdocs.js +2 -1
- package/dist/esm/models/operations/upsertdocs.js.map +1 -1
- package/dist/esm/models/versioning.d.ts +100 -0
- package/dist/esm/models/versioning.d.ts.map +1 -0
- package/dist/esm/models/versioning.js +57 -0
- package/dist/esm/models/versioning.js.map +1 -0
- package/dist/esm/sdk/docs.d.ts +1 -1
- package/dist/esm/sdk/docs.js +1 -1
- package/dist/esm/types/errors.d.ts +15 -13
- package/dist/esm/types/errors.d.ts.map +1 -1
- package/dist/esm/types/errors.js +1 -1
- package/dist/esm/types/errors.js.map +1 -1
- package/dist/esm/types/public.d.ts +80 -6
- package/dist/esm/types/public.d.ts.map +1 -1
- package/dist/esm/types/public.js +26 -7
- package/dist/esm/types/public.js.map +1 -1
- package/dist/esm/versioning.d.ts +63 -0
- package/dist/esm/versioning.d.ts.map +1 -0
- package/dist/esm/versioning.js +356 -0
- package/dist/esm/versioning.js.map +1 -0
- package/jsr.json +3 -1
- package/package.json +14 -2
- package/src/client.ts +306 -65
- package/src/compat/qdrant/client.ts +28 -16
- package/src/funcs/collectionsCreate.ts +14 -1
- package/src/funcs/collectionsDelete.ts +18 -1
- package/src/funcs/collectionsDocsBulkUpsert.ts +13 -0
- package/src/funcs/collectionsDocsDelete.ts +14 -1
- package/src/funcs/collectionsDocsFetch.ts +13 -0
- package/src/funcs/collectionsDocsGetBulkUpsert.ts +19 -1
- package/src/funcs/collectionsDocsListDocs.ts +15 -0
- package/src/funcs/collectionsDocsListDocsExtended.ts +13 -0
- package/src/funcs/collectionsDocsUpdate.ts +13 -0
- package/src/funcs/collectionsDocsUpsert.ts +13 -0
- package/src/funcs/collectionsGet.ts +13 -0
- package/src/funcs/collectionsList.ts +13 -0
- package/src/funcs/collectionsQuery.ts +13 -0
- package/src/funcs/collectionsUpdate.ts +17 -0
- package/src/index.ts +17 -0
- package/src/lib/collectionContract.ts +42 -0
- package/src/lib/config.ts +2 -2
- package/src/lib/matchers.ts +27 -0
- package/src/lib/queryInput.ts +3 -10
- package/src/models/collectionresponse.ts +25 -28
- package/src/models/errors/gatewayerrors.ts +104 -0
- package/src/models/errors/index.ts +1 -0
- package/src/models/errors/lambdadberror.ts +5 -0
- package/src/models/index.ts +1 -0
- package/src/models/operations/bulkupsertdocs.ts +9 -1
- package/src/models/operations/createcollection.ts +37 -19
- package/src/models/operations/deletedocs.ts +36 -3
- package/src/models/operations/fetchdocs.ts +13 -1
- package/src/models/operations/getbulkupsertdocs.ts +11 -4
- package/src/models/operations/listdocs.ts +23 -3
- package/src/models/operations/querycollection.ts +13 -1
- package/src/models/operations/updatecollection.ts +45 -6
- package/src/models/operations/updatedocs.ts +5 -1
- package/src/models/operations/upsertdocs.ts +5 -1
- package/src/models/versioning.ts +118 -0
- package/src/sdk/docs.ts +1 -1
- package/src/types/errors.ts +32 -13
- package/src/types/public.ts +127 -14
- package/src/versioning.ts +509 -0
- package/examples/collectionScoped.example.ts +0 -38
- package/examples/collectionsList.example.ts +0 -25
- package/examples/package-lock.json +0 -612
- package/examples/package.json +0 -18
- package/test/integration/qdrant-compat-external.test.mjs +0 -351
- package/test/integration/qdrant-compat-live.test.mjs +0 -122
- package/test/null-response.test.mjs +0 -73
- package/test/public-api.test.mjs +0 -540
- package/test/qdrant-compat.test.mjs +0 -547
- package/tsconfig.json +0 -39
package/src/types/public.ts
CHANGED
|
@@ -6,15 +6,39 @@
|
|
|
6
6
|
// ---- Input types (RequestBody / Request aliased as XxxInput) ----
|
|
7
7
|
export type { CreateCollectionRequest as CreateCollectionInput } from "../models/operations/createcollection.js";
|
|
8
8
|
export type { UpdateCollectionRequestBody as UpdateCollectionInput } from "../models/operations/updatecollection.js";
|
|
9
|
-
export type { QueryCollectionRequestBody as QueryCollectionInput } from "../models/operations/querycollection.js";
|
|
10
9
|
export type { UpsertDocsRequestBody as UpsertDocsInput } from "../models/operations/upsertdocs.js";
|
|
11
10
|
export type { UpdateDocsRequestBody as UpdateDocsInput } from "../models/operations/updatedocs.js";
|
|
12
11
|
export type { DeleteDocsRequestBody as DeleteDocsInput } from "../models/operations/deletedocs.js";
|
|
13
|
-
export type { FetchDocsRequestBody as FetchDocsInput } from "../models/operations/fetchdocs.js";
|
|
14
12
|
export type { BulkUpsertDocsRequestBody as BulkUpsertInput } from "../models/operations/bulkupsertdocs.js";
|
|
15
13
|
|
|
16
14
|
import type { ListDocsRequest } from "../models/operations/listdocs.js";
|
|
17
15
|
import type { ListCollectionsRequest } from "../models/operations/listcollections.js";
|
|
16
|
+
import type { QueryCollectionRequestBody } from "../models/operations/querycollection.js";
|
|
17
|
+
import type { FetchDocsRequestBody } from "../models/operations/fetchdocs.js";
|
|
18
|
+
import type {
|
|
19
|
+
AliasDetails as AliasDetailsModel,
|
|
20
|
+
AliasRef,
|
|
21
|
+
BranchRef,
|
|
22
|
+
ReadRef,
|
|
23
|
+
RefDetails as RefDetailsModel,
|
|
24
|
+
TagRef,
|
|
25
|
+
} from "../models/versioning.js";
|
|
26
|
+
|
|
27
|
+
type ConsistentReadForRef =
|
|
28
|
+
| { ref?: BranchRef | undefined; consistentRead?: boolean | undefined }
|
|
29
|
+
| { ref: TagRef | AliasRef; consistentRead?: false | undefined };
|
|
30
|
+
|
|
31
|
+
/** Query input with consistent reads restricted to direct Branch refs. */
|
|
32
|
+
export type QueryCollectionInput = Omit<
|
|
33
|
+
QueryCollectionRequestBody,
|
|
34
|
+
"ref" | "consistentRead"
|
|
35
|
+
> & ConsistentReadForRef;
|
|
36
|
+
|
|
37
|
+
/** Fetch input with consistent reads restricted to direct Branch refs. */
|
|
38
|
+
export type FetchDocsInput = Omit<
|
|
39
|
+
FetchDocsRequestBody,
|
|
40
|
+
"ref" | "consistentRead"
|
|
41
|
+
> & ConsistentReadForRef;
|
|
18
42
|
|
|
19
43
|
/** Parameters for listing documents, including extended list options. */
|
|
20
44
|
export type ListDocsInput = Pick<
|
|
@@ -24,6 +48,8 @@ export type ListDocsInput = Pick<
|
|
|
24
48
|
filter?: Record<string, unknown> | undefined;
|
|
25
49
|
partitionFilter?: import("../models/index.js").PartitionFilter | undefined;
|
|
26
50
|
fields?: import("../models/index.js").FieldsSelectorUnion | undefined;
|
|
51
|
+
/** Read target. Omitting it reads from main. */
|
|
52
|
+
ref?: ReadRef | undefined;
|
|
27
53
|
};
|
|
28
54
|
|
|
29
55
|
/** Parameters for listing collections (size, pageToken). */
|
|
@@ -46,12 +72,57 @@ export type {
|
|
|
46
72
|
ListDocsDoc,
|
|
47
73
|
} from "../models/operations/listdocs.js";
|
|
48
74
|
export type { MessageResponse } from "../models/index.js";
|
|
49
|
-
export type {
|
|
50
|
-
FetchDocsResponse,
|
|
51
|
-
FetchDocsDoc,
|
|
52
|
-
} from "../models/operations/fetchdocs.js";
|
|
75
|
+
export type { FetchDocsResponse, FetchDocsDoc } from "../models/operations/fetchdocs.js";
|
|
53
76
|
export type { GetBulkUpsertDocsResponse } from "../models/operations/getbulkupsertdocs.js";
|
|
54
77
|
|
|
78
|
+
export type {
|
|
79
|
+
AliasRef,
|
|
80
|
+
AliasTarget,
|
|
81
|
+
BranchRef,
|
|
82
|
+
BranchSource,
|
|
83
|
+
ReadRef,
|
|
84
|
+
RefSource,
|
|
85
|
+
TagRef,
|
|
86
|
+
TagSource,
|
|
87
|
+
} from "../models/versioning.js";
|
|
88
|
+
|
|
89
|
+
export type RefDetails = Omit<RefDetailsModel, "createdAt"> & {
|
|
90
|
+
createdAt: Date;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export type AliasDetails = Omit<AliasDetailsModel, "createdAt"> & {
|
|
94
|
+
createdAt: Date;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export type CreateBranchInput = {
|
|
98
|
+
branchName: string;
|
|
99
|
+
source?: import("../models/versioning.js").RefSource | undefined;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export type CreateBranchResponse = { branch: RefDetails };
|
|
103
|
+
export type ListBranchesResponse = { branches: RefDetails[] };
|
|
104
|
+
|
|
105
|
+
export type CreateTagInput = {
|
|
106
|
+
tagName: string;
|
|
107
|
+
source?: import("../models/versioning.js").RefSource | undefined;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export type CreateTagResponse = { tag: RefDetails };
|
|
111
|
+
export type ListTagsResponse = { tags: RefDetails[] };
|
|
112
|
+
|
|
113
|
+
export type CreateAliasInput = {
|
|
114
|
+
aliasName: string;
|
|
115
|
+
target: import("../models/versioning.js").AliasTarget;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export type RetargetAliasInput = {
|
|
119
|
+
target: import("../models/versioning.js").AliasTarget;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export type AliasResponse = { alias: AliasDetails };
|
|
123
|
+
export type ListAliasesResponse = { aliases: AliasDetails[] };
|
|
124
|
+
export type GetBulkUpsertInput = { branch?: string | undefined };
|
|
125
|
+
|
|
55
126
|
// ---- Models referenced by request/response bodies ----
|
|
56
127
|
export type {
|
|
57
128
|
IndexConfigsUnion,
|
|
@@ -64,8 +135,11 @@ export type {
|
|
|
64
135
|
CollectionResponse,
|
|
65
136
|
} from "../models/index.js";
|
|
66
137
|
|
|
67
|
-
// ---- Timestamp helpers (Unix
|
|
138
|
+
// ---- Timestamp helpers (Unix epoch milliseconds → Date) ----
|
|
68
139
|
import type { CollectionResponse as CollectionResponseModel } from "../models/index.js";
|
|
140
|
+
import type {
|
|
141
|
+
CreateCollectionResponse as CreateCollectionResponseModel,
|
|
142
|
+
} from "../models/operations/createcollection.js";
|
|
69
143
|
|
|
70
144
|
/**
|
|
71
145
|
* Collection response with timestamp fields as Date (for better DX).
|
|
@@ -75,8 +149,8 @@ export type CollectionResponseWithDates = Omit<
|
|
|
75
149
|
CollectionResponseModel,
|
|
76
150
|
"createdAt" | "updatedAt" | "dataUpdatedAt"
|
|
77
151
|
> & {
|
|
78
|
-
createdAt
|
|
79
|
-
updatedAt
|
|
152
|
+
createdAt: Date;
|
|
153
|
+
updatedAt: Date;
|
|
80
154
|
dataUpdatedAt?: Date | undefined;
|
|
81
155
|
};
|
|
82
156
|
|
|
@@ -89,17 +163,19 @@ export type ListCollectionsResponseWithDates = {
|
|
|
89
163
|
};
|
|
90
164
|
|
|
91
165
|
/**
|
|
92
|
-
* Converts Unix-
|
|
166
|
+
* Converts Unix-millisecond timestamp fields to Date. Safe to call on partial responses.
|
|
93
167
|
*/
|
|
94
168
|
export function collectionResponseWithDates(
|
|
95
169
|
c: CollectionResponseModel,
|
|
96
170
|
): CollectionResponseWithDates {
|
|
97
171
|
const { createdAt, updatedAt, dataUpdatedAt, ...rest } = c;
|
|
98
|
-
const out: CollectionResponseWithDates = {
|
|
99
|
-
|
|
100
|
-
|
|
172
|
+
const out: CollectionResponseWithDates = {
|
|
173
|
+
...rest,
|
|
174
|
+
createdAt: new Date(createdAt),
|
|
175
|
+
updatedAt: new Date(updatedAt),
|
|
176
|
+
};
|
|
101
177
|
if (dataUpdatedAt != null)
|
|
102
|
-
out.dataUpdatedAt = new Date(dataUpdatedAt
|
|
178
|
+
out.dataUpdatedAt = new Date(dataUpdatedAt);
|
|
103
179
|
return out;
|
|
104
180
|
}
|
|
105
181
|
|
|
@@ -126,3 +202,40 @@ export function getCollectionResponseWithDates(res: {
|
|
|
126
202
|
}): GetCollectionResponseWithDates {
|
|
127
203
|
return { collection: collectionResponseWithDates(res.collection) };
|
|
128
204
|
}
|
|
205
|
+
|
|
206
|
+
/** Update response with timestamp fields converted to Date. */
|
|
207
|
+
export type UpdateCollectionResponseWithDates = GetCollectionResponseWithDates;
|
|
208
|
+
|
|
209
|
+
export function updateCollectionResponseWithDates(res: {
|
|
210
|
+
collection: CollectionResponseModel;
|
|
211
|
+
}): UpdateCollectionResponseWithDates {
|
|
212
|
+
return getCollectionResponseWithDates(res);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** Create response with its Unix-millisecond timestamp converted to Date. */
|
|
216
|
+
export type CreateCollectionResponseWithDates = {
|
|
217
|
+
collection: Omit<CreateCollectionResponseModel["collection"], "createdAt"> & {
|
|
218
|
+
createdAt: Date;
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export function createCollectionResponseWithDates(
|
|
223
|
+
response: CreateCollectionResponseModel,
|
|
224
|
+
): CreateCollectionResponseWithDates {
|
|
225
|
+
return {
|
|
226
|
+
collection: {
|
|
227
|
+
...response.collection,
|
|
228
|
+
createdAt: new Date(response.collection.createdAt),
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/** @internal */
|
|
234
|
+
export function refDetailsWithDate(details: RefDetailsModel): RefDetails {
|
|
235
|
+
return { ...details, createdAt: new Date(details.createdAt) };
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** @internal */
|
|
239
|
+
export function aliasDetailsWithDate(details: AliasDetailsModel): AliasDetails {
|
|
240
|
+
return { ...details, createdAt: new Date(details.createdAt) };
|
|
241
|
+
}
|
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
import * as z from "zod/v3";
|
|
2
|
+
|
|
3
|
+
import type { LambdaDBCore } from "./core.js";
|
|
4
|
+
import * as M from "./lib/matchers.js";
|
|
5
|
+
import { compactMap } from "./lib/primitives.js";
|
|
6
|
+
import { safeParse } from "./lib/schemas.js";
|
|
7
|
+
import type { RequestOptions } from "./lib/sdks.js";
|
|
8
|
+
import { extractSecurity, resolveGlobalSecurity } from "./lib/security.js";
|
|
9
|
+
import * as errors from "./models/errors/index.js";
|
|
10
|
+
import type { LambdaDBError } from "./models/errors/lambdadberror.js";
|
|
11
|
+
import type { ResponseValidationError } from "./models/errors/responsevalidationerror.js";
|
|
12
|
+
import type { SDKValidationError } from "./models/errors/sdkvalidationerror.js";
|
|
13
|
+
import {
|
|
14
|
+
AliasDetails$inboundSchema,
|
|
15
|
+
AliasTarget$schema,
|
|
16
|
+
RefDetails$inboundSchema,
|
|
17
|
+
RefSource$schema,
|
|
18
|
+
type AliasRef,
|
|
19
|
+
type BranchRef,
|
|
20
|
+
type BranchSource,
|
|
21
|
+
type TagRef,
|
|
22
|
+
type TagSource,
|
|
23
|
+
} from "./models/versioning.js";
|
|
24
|
+
import type {
|
|
25
|
+
ConnectionError,
|
|
26
|
+
InvalidRequestError,
|
|
27
|
+
RequestAbortedError,
|
|
28
|
+
RequestTimeoutError,
|
|
29
|
+
UnexpectedClientError,
|
|
30
|
+
} from "./models/errors/httpclienterrors.js";
|
|
31
|
+
import {
|
|
32
|
+
aliasDetailsWithDate,
|
|
33
|
+
refDetailsWithDate,
|
|
34
|
+
type AliasResponse,
|
|
35
|
+
type CreateAliasInput,
|
|
36
|
+
type CreateBranchInput,
|
|
37
|
+
type CreateBranchResponse,
|
|
38
|
+
type CreateTagInput,
|
|
39
|
+
type CreateTagResponse,
|
|
40
|
+
type ListAliasesResponse,
|
|
41
|
+
type ListBranchesResponse,
|
|
42
|
+
type ListTagsResponse,
|
|
43
|
+
type MessageResponse,
|
|
44
|
+
type RetargetAliasInput,
|
|
45
|
+
} from "./types/public.js";
|
|
46
|
+
import type { Result } from "./types/fp.js";
|
|
47
|
+
|
|
48
|
+
/** Exact public contract revision implemented by this SDK. */
|
|
49
|
+
export const DATA_VERSIONING_CONTRACT_REVISION =
|
|
50
|
+
"b171ff0a408bbeb024535941b83b861d205a829f" as const;
|
|
51
|
+
|
|
52
|
+
const refNamePattern = /^[a-zA-Z0-9_-]{3,52}$/;
|
|
53
|
+
const refNameSchema = z.string().regex(refNamePattern);
|
|
54
|
+
|
|
55
|
+
function checkedRefName(name: string): string {
|
|
56
|
+
if (!refNamePattern.test(name)) {
|
|
57
|
+
throw new TypeError(
|
|
58
|
+
"Ref names must contain 3 to 52 letters, numbers, underscores, or hyphens",
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return name;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Creates a validated Branch read ref. */
|
|
65
|
+
export function branchRef(name: string): BranchRef {
|
|
66
|
+
return { kind: "branch", name: checkedRefName(name) };
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Creates a validated Tag read ref. */
|
|
70
|
+
export function tagRef(name: string): TagRef {
|
|
71
|
+
return { kind: "tag", name: checkedRefName(name) };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Creates a validated Alias read ref. */
|
|
75
|
+
export function aliasRef(name: string): AliasRef {
|
|
76
|
+
return { kind: "alias", name: checkedRefName(name) };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Creates a validated Branch source, optionally at a Unix-millisecond cutoff. */
|
|
80
|
+
export function branchSource(
|
|
81
|
+
name: string,
|
|
82
|
+
asOf?: Date | number,
|
|
83
|
+
): BranchSource {
|
|
84
|
+
const source: BranchSource = { kind: "branch", name: checkedRefName(name) };
|
|
85
|
+
if (asOf !== undefined) {
|
|
86
|
+
const milliseconds = asOf instanceof Date ? asOf.getTime() : asOf;
|
|
87
|
+
if (!Number.isInteger(milliseconds)) {
|
|
88
|
+
throw new TypeError("Branch source asOf must be a valid Date or integer Unix milliseconds");
|
|
89
|
+
}
|
|
90
|
+
source.asOf = milliseconds;
|
|
91
|
+
}
|
|
92
|
+
return source;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Creates a validated Tag source. `asOf` is intentionally unavailable. */
|
|
96
|
+
export function tagSource(name: string): TagSource {
|
|
97
|
+
return tagRef(name);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/** Creates a validated Branch Alias target. */
|
|
101
|
+
export function branchTarget(name: string): BranchRef {
|
|
102
|
+
return branchRef(name);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** Creates a validated Tag Alias target. */
|
|
106
|
+
export function tagTarget(name: string): TagRef {
|
|
107
|
+
return tagRef(name);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export type VersioningError =
|
|
111
|
+
| errors.BadRequestError
|
|
112
|
+
| errors.UnauthenticatedError
|
|
113
|
+
| errors.ResourceNotFoundError
|
|
114
|
+
| errors.ResourceAlreadyExistsError
|
|
115
|
+
| errors.CatalogConflictError
|
|
116
|
+
| errors.PayloadTooLargeError
|
|
117
|
+
| errors.TooManyRequestsError
|
|
118
|
+
| errors.InternalServerError
|
|
119
|
+
| errors.BadGatewayError
|
|
120
|
+
| errors.ServiceUnavailableError
|
|
121
|
+
| errors.GatewayTimeoutError
|
|
122
|
+
| LambdaDBError
|
|
123
|
+
| ResponseValidationError
|
|
124
|
+
| ConnectionError
|
|
125
|
+
| RequestAbortedError
|
|
126
|
+
| RequestTimeoutError
|
|
127
|
+
| InvalidRequestError
|
|
128
|
+
| UnexpectedClientError
|
|
129
|
+
| SDKValidationError;
|
|
130
|
+
|
|
131
|
+
type VersioningRequest<TInput, TOutput> = {
|
|
132
|
+
body?: TInput | undefined;
|
|
133
|
+
bodySchema?: z.ZodType<TInput> | undefined;
|
|
134
|
+
method: "GET" | "POST" | "PATCH" | "DELETE";
|
|
135
|
+
path: string;
|
|
136
|
+
responseSchema: z.ZodType<TOutput>;
|
|
137
|
+
successStatus: 200 | 201;
|
|
138
|
+
conflict?: "already-exists" | "catalog" | undefined;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
async function requestVersioning<TInput, TOutput>(
|
|
142
|
+
client: LambdaDBCore,
|
|
143
|
+
request: VersioningRequest<TInput, TOutput>,
|
|
144
|
+
options?: RequestOptions,
|
|
145
|
+
): Promise<Result<TOutput, VersioningError>> {
|
|
146
|
+
let body: string | null = null;
|
|
147
|
+
if (request.bodySchema !== undefined) {
|
|
148
|
+
const parsed = safeParse(
|
|
149
|
+
request.body,
|
|
150
|
+
(value) => request.bodySchema?.parse(value) as TInput,
|
|
151
|
+
"Input validation failed",
|
|
152
|
+
);
|
|
153
|
+
if (!parsed.ok) return parsed;
|
|
154
|
+
body = JSON.stringify(parsed.value);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const headers = new Headers(compactMap({
|
|
158
|
+
Accept: "application/json",
|
|
159
|
+
"Content-Type": body == null ? undefined : "application/json",
|
|
160
|
+
}));
|
|
161
|
+
const secConfig = await extractSecurity(client._options.projectApiKey);
|
|
162
|
+
const securityInput = secConfig == null ? {} : { projectApiKey: secConfig };
|
|
163
|
+
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
164
|
+
const retryConfig = options?.retries
|
|
165
|
+
|| client._options.retryConfig
|
|
166
|
+
|| {
|
|
167
|
+
strategy: "backoff" as const,
|
|
168
|
+
backoff: {
|
|
169
|
+
initialInterval: 500,
|
|
170
|
+
maxInterval: 60000,
|
|
171
|
+
exponent: 1.5,
|
|
172
|
+
maxElapsedTime: 3600000,
|
|
173
|
+
},
|
|
174
|
+
retryConnectionErrors: true,
|
|
175
|
+
};
|
|
176
|
+
const retryCodes = options?.retryCodes || ["429", "5XX"];
|
|
177
|
+
const context = {
|
|
178
|
+
options: client._options,
|
|
179
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
180
|
+
operationID: `${request.method} ${request.path}`,
|
|
181
|
+
oAuth2Scopes: null,
|
|
182
|
+
resolvedSecurity: requestSecurity,
|
|
183
|
+
securitySource: client._options.projectApiKey,
|
|
184
|
+
retryConfig,
|
|
185
|
+
retryCodes,
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const requestResult = client._createRequest(context, {
|
|
189
|
+
security: requestSecurity,
|
|
190
|
+
method: request.method,
|
|
191
|
+
baseURL: options?.serverURL,
|
|
192
|
+
path: request.path,
|
|
193
|
+
headers,
|
|
194
|
+
body,
|
|
195
|
+
userAgent: client._options.userAgent,
|
|
196
|
+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
197
|
+
}, options);
|
|
198
|
+
if (!requestResult.ok) return requestResult;
|
|
199
|
+
|
|
200
|
+
const httpRequest = requestResult.value;
|
|
201
|
+
const responseResult = await client._do(httpRequest, {
|
|
202
|
+
context,
|
|
203
|
+
errorCodes: ["400", "401", "404", "409", "429", "4XX", "500", "5XX"],
|
|
204
|
+
retryConfig,
|
|
205
|
+
retryCodes,
|
|
206
|
+
});
|
|
207
|
+
if (!responseResult.ok) return responseResult;
|
|
208
|
+
|
|
209
|
+
const response = responseResult.value;
|
|
210
|
+
const conflictMatchers = request.conflict === "already-exists"
|
|
211
|
+
? [M.jsonErr(409, errors.ResourceAlreadyExistsError$inboundSchema)]
|
|
212
|
+
: request.conflict === "catalog"
|
|
213
|
+
? [M.jsonErr(409, errors.CatalogConflictError$inboundSchema)]
|
|
214
|
+
: [];
|
|
215
|
+
const [result] = await M.match<TOutput, VersioningError>(
|
|
216
|
+
M.json(request.successStatus, request.responseSchema),
|
|
217
|
+
M.jsonErr(400, errors.BadRequestError$inboundSchema),
|
|
218
|
+
M.jsonErr(401, errors.UnauthenticatedError$inboundSchema),
|
|
219
|
+
M.jsonErr(404, errors.ResourceNotFoundError$inboundSchema),
|
|
220
|
+
...conflictMatchers,
|
|
221
|
+
M.jsonErr(429, errors.TooManyRequestsError$inboundSchema),
|
|
222
|
+
M.jsonErr(500, errors.InternalServerError$inboundSchema),
|
|
223
|
+
...M.gatewayErrorMatchers(),
|
|
224
|
+
M.fail("4XX"),
|
|
225
|
+
M.fail("5XX"),
|
|
226
|
+
)(response, httpRequest, {
|
|
227
|
+
extraFields: { HttpMeta: { Response: response, Request: httpRequest } },
|
|
228
|
+
});
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function pathFor(collectionName: string, suffix: string): string {
|
|
233
|
+
return `/collections/${encodeURIComponent(collectionName)}${suffix}`;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const createBranchSchema: z.ZodType<CreateBranchInput> = z.object({
|
|
237
|
+
branchName: z.string().regex(refNamePattern),
|
|
238
|
+
source: RefSource$schema.optional(),
|
|
239
|
+
}).strict();
|
|
240
|
+
const createBranchResponseSchema = z.object({ branch: RefDetails$inboundSchema });
|
|
241
|
+
const listBranchesResponseSchema = z.object({ branches: z.array(RefDetails$inboundSchema) });
|
|
242
|
+
|
|
243
|
+
const createTagSchema: z.ZodType<CreateTagInput> = z.object({
|
|
244
|
+
tagName: z.string().regex(refNamePattern),
|
|
245
|
+
source: RefSource$schema.optional(),
|
|
246
|
+
}).strict();
|
|
247
|
+
const createTagResponseSchema = z.object({ tag: RefDetails$inboundSchema });
|
|
248
|
+
const listTagsResponseSchema = z.object({ tags: z.array(RefDetails$inboundSchema) });
|
|
249
|
+
|
|
250
|
+
const createAliasSchema: z.ZodType<CreateAliasInput> = z.object({
|
|
251
|
+
aliasName: z.string().regex(refNamePattern),
|
|
252
|
+
target: AliasTarget$schema,
|
|
253
|
+
}).strict();
|
|
254
|
+
const retargetAliasSchema: z.ZodType<RetargetAliasInput> = z.object({
|
|
255
|
+
target: AliasTarget$schema,
|
|
256
|
+
}).strict();
|
|
257
|
+
const aliasResponseSchema = z.object({ alias: AliasDetails$inboundSchema });
|
|
258
|
+
const listAliasesResponseSchema = z.object({ aliases: z.array(AliasDetails$inboundSchema) });
|
|
259
|
+
const messageResponseSchema = z.object({ message: z.string() });
|
|
260
|
+
|
|
261
|
+
export class CollectionBranches {
|
|
262
|
+
constructor(
|
|
263
|
+
private readonly client: LambdaDBCore,
|
|
264
|
+
private readonly collectionName: string,
|
|
265
|
+
) {}
|
|
266
|
+
|
|
267
|
+
async create(input: CreateBranchInput, options?: RequestOptions): Promise<CreateBranchResponse> {
|
|
268
|
+
const result = await this.createSafe(input, options);
|
|
269
|
+
if (!result.ok) throw result.error;
|
|
270
|
+
return result.value;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
async createSafe(
|
|
274
|
+
input: CreateBranchInput,
|
|
275
|
+
options?: RequestOptions,
|
|
276
|
+
): Promise<Result<CreateBranchResponse, VersioningError>> {
|
|
277
|
+
const result = await requestVersioning(this.client, {
|
|
278
|
+
body: input,
|
|
279
|
+
bodySchema: createBranchSchema,
|
|
280
|
+
method: "POST",
|
|
281
|
+
path: pathFor(this.collectionName, "/branches"),
|
|
282
|
+
responseSchema: createBranchResponseSchema,
|
|
283
|
+
successStatus: 201,
|
|
284
|
+
conflict: "already-exists",
|
|
285
|
+
}, options);
|
|
286
|
+
if (!result.ok) return result;
|
|
287
|
+
return { ok: true, value: { branch: refDetailsWithDate(result.value.branch) } };
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
async list(options?: RequestOptions): Promise<ListBranchesResponse> {
|
|
291
|
+
const result = await this.listSafe(options);
|
|
292
|
+
if (!result.ok) throw result.error;
|
|
293
|
+
return result.value;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
async listSafe(options?: RequestOptions): Promise<Result<ListBranchesResponse, VersioningError>> {
|
|
297
|
+
const result = await requestVersioning(this.client, {
|
|
298
|
+
method: "GET",
|
|
299
|
+
path: pathFor(this.collectionName, "/branches"),
|
|
300
|
+
responseSchema: listBranchesResponseSchema,
|
|
301
|
+
successStatus: 200,
|
|
302
|
+
}, options);
|
|
303
|
+
if (!result.ok) return result;
|
|
304
|
+
return { ok: true, value: { branches: result.value.branches.map(refDetailsWithDate) } };
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
async delete(branchName: string, options?: RequestOptions): Promise<MessageResponse> {
|
|
308
|
+
const result = await this.deleteSafe(branchName, options);
|
|
309
|
+
if (!result.ok) throw result.error;
|
|
310
|
+
return result.value;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
async deleteSafe(
|
|
314
|
+
branchName: string,
|
|
315
|
+
options?: RequestOptions,
|
|
316
|
+
): Promise<Result<MessageResponse, VersioningError>> {
|
|
317
|
+
const parsedName = safeParse(
|
|
318
|
+
branchName,
|
|
319
|
+
(value) => refNameSchema.parse(value),
|
|
320
|
+
"Input validation failed",
|
|
321
|
+
);
|
|
322
|
+
if (!parsedName.ok) return parsedName;
|
|
323
|
+
return requestVersioning(this.client, {
|
|
324
|
+
method: "DELETE",
|
|
325
|
+
path: pathFor(this.collectionName, `/branches/${encodeURIComponent(parsedName.value)}`),
|
|
326
|
+
responseSchema: messageResponseSchema,
|
|
327
|
+
successStatus: 200,
|
|
328
|
+
conflict: "catalog",
|
|
329
|
+
}, options);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export class CollectionTags {
|
|
334
|
+
constructor(
|
|
335
|
+
private readonly client: LambdaDBCore,
|
|
336
|
+
private readonly collectionName: string,
|
|
337
|
+
) {}
|
|
338
|
+
|
|
339
|
+
async create(input: CreateTagInput, options?: RequestOptions): Promise<CreateTagResponse> {
|
|
340
|
+
const result = await this.createSafe(input, options);
|
|
341
|
+
if (!result.ok) throw result.error;
|
|
342
|
+
return result.value;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
async createSafe(
|
|
346
|
+
input: CreateTagInput,
|
|
347
|
+
options?: RequestOptions,
|
|
348
|
+
): Promise<Result<CreateTagResponse, VersioningError>> {
|
|
349
|
+
const result = await requestVersioning(this.client, {
|
|
350
|
+
body: input,
|
|
351
|
+
bodySchema: createTagSchema,
|
|
352
|
+
method: "POST",
|
|
353
|
+
path: pathFor(this.collectionName, "/tags"),
|
|
354
|
+
responseSchema: createTagResponseSchema,
|
|
355
|
+
successStatus: 201,
|
|
356
|
+
conflict: "already-exists",
|
|
357
|
+
}, options);
|
|
358
|
+
if (!result.ok) return result;
|
|
359
|
+
return { ok: true, value: { tag: refDetailsWithDate(result.value.tag) } };
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
async list(options?: RequestOptions): Promise<ListTagsResponse> {
|
|
363
|
+
const result = await this.listSafe(options);
|
|
364
|
+
if (!result.ok) throw result.error;
|
|
365
|
+
return result.value;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
async listSafe(options?: RequestOptions): Promise<Result<ListTagsResponse, VersioningError>> {
|
|
369
|
+
const result = await requestVersioning(this.client, {
|
|
370
|
+
method: "GET",
|
|
371
|
+
path: pathFor(this.collectionName, "/tags"),
|
|
372
|
+
responseSchema: listTagsResponseSchema,
|
|
373
|
+
successStatus: 200,
|
|
374
|
+
}, options);
|
|
375
|
+
if (!result.ok) return result;
|
|
376
|
+
return { ok: true, value: { tags: result.value.tags.map(refDetailsWithDate) } };
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
async delete(tagName: string, options?: RequestOptions): Promise<MessageResponse> {
|
|
380
|
+
const result = await this.deleteSafe(tagName, options);
|
|
381
|
+
if (!result.ok) throw result.error;
|
|
382
|
+
return result.value;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
async deleteSafe(
|
|
386
|
+
tagName: string,
|
|
387
|
+
options?: RequestOptions,
|
|
388
|
+
): Promise<Result<MessageResponse, VersioningError>> {
|
|
389
|
+
const parsedName = safeParse(
|
|
390
|
+
tagName,
|
|
391
|
+
(value) => refNameSchema.parse(value),
|
|
392
|
+
"Input validation failed",
|
|
393
|
+
);
|
|
394
|
+
if (!parsedName.ok) return parsedName;
|
|
395
|
+
return requestVersioning(this.client, {
|
|
396
|
+
method: "DELETE",
|
|
397
|
+
path: pathFor(this.collectionName, `/tags/${encodeURIComponent(parsedName.value)}`),
|
|
398
|
+
responseSchema: messageResponseSchema,
|
|
399
|
+
successStatus: 200,
|
|
400
|
+
conflict: "catalog",
|
|
401
|
+
}, options);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export class CollectionAliases {
|
|
406
|
+
constructor(
|
|
407
|
+
private readonly client: LambdaDBCore,
|
|
408
|
+
private readonly collectionName: string,
|
|
409
|
+
) {}
|
|
410
|
+
|
|
411
|
+
async create(input: CreateAliasInput, options?: RequestOptions): Promise<AliasResponse> {
|
|
412
|
+
const result = await this.createSafe(input, options);
|
|
413
|
+
if (!result.ok) throw result.error;
|
|
414
|
+
return result.value;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
async createSafe(
|
|
418
|
+
input: CreateAliasInput,
|
|
419
|
+
options?: RequestOptions,
|
|
420
|
+
): Promise<Result<AliasResponse, VersioningError>> {
|
|
421
|
+
const result = await requestVersioning(this.client, {
|
|
422
|
+
body: input,
|
|
423
|
+
bodySchema: createAliasSchema,
|
|
424
|
+
method: "POST",
|
|
425
|
+
path: pathFor(this.collectionName, "/aliases"),
|
|
426
|
+
responseSchema: aliasResponseSchema,
|
|
427
|
+
successStatus: 201,
|
|
428
|
+
conflict: "already-exists",
|
|
429
|
+
}, options);
|
|
430
|
+
if (!result.ok) return result;
|
|
431
|
+
return { ok: true, value: { alias: aliasDetailsWithDate(result.value.alias) } };
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
async list(options?: RequestOptions): Promise<ListAliasesResponse> {
|
|
435
|
+
const result = await this.listSafe(options);
|
|
436
|
+
if (!result.ok) throw result.error;
|
|
437
|
+
return result.value;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
async listSafe(options?: RequestOptions): Promise<Result<ListAliasesResponse, VersioningError>> {
|
|
441
|
+
const result = await requestVersioning(this.client, {
|
|
442
|
+
method: "GET",
|
|
443
|
+
path: pathFor(this.collectionName, "/aliases"),
|
|
444
|
+
responseSchema: listAliasesResponseSchema,
|
|
445
|
+
successStatus: 200,
|
|
446
|
+
}, options);
|
|
447
|
+
if (!result.ok) return result;
|
|
448
|
+
return { ok: true, value: { aliases: result.value.aliases.map(aliasDetailsWithDate) } };
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
async retarget(
|
|
452
|
+
aliasName: string,
|
|
453
|
+
input: RetargetAliasInput,
|
|
454
|
+
options?: RequestOptions,
|
|
455
|
+
): Promise<AliasResponse> {
|
|
456
|
+
const result = await this.retargetSafe(aliasName, input, options);
|
|
457
|
+
if (!result.ok) throw result.error;
|
|
458
|
+
return result.value;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
async retargetSafe(
|
|
462
|
+
aliasName: string,
|
|
463
|
+
input: RetargetAliasInput,
|
|
464
|
+
options?: RequestOptions,
|
|
465
|
+
): Promise<Result<AliasResponse, VersioningError>> {
|
|
466
|
+
const parsedName = safeParse(
|
|
467
|
+
aliasName,
|
|
468
|
+
(value) => refNameSchema.parse(value),
|
|
469
|
+
"Input validation failed",
|
|
470
|
+
);
|
|
471
|
+
if (!parsedName.ok) return parsedName;
|
|
472
|
+
const result = await requestVersioning(this.client, {
|
|
473
|
+
body: input,
|
|
474
|
+
bodySchema: retargetAliasSchema,
|
|
475
|
+
method: "PATCH",
|
|
476
|
+
path: pathFor(this.collectionName, `/aliases/${encodeURIComponent(parsedName.value)}`),
|
|
477
|
+
responseSchema: aliasResponseSchema,
|
|
478
|
+
successStatus: 200,
|
|
479
|
+
conflict: "catalog",
|
|
480
|
+
}, options);
|
|
481
|
+
if (!result.ok) return result;
|
|
482
|
+
return { ok: true, value: { alias: aliasDetailsWithDate(result.value.alias) } };
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
async delete(aliasName: string, options?: RequestOptions): Promise<MessageResponse> {
|
|
486
|
+
const result = await this.deleteSafe(aliasName, options);
|
|
487
|
+
if (!result.ok) throw result.error;
|
|
488
|
+
return result.value;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
async deleteSafe(
|
|
492
|
+
aliasName: string,
|
|
493
|
+
options?: RequestOptions,
|
|
494
|
+
): Promise<Result<MessageResponse, VersioningError>> {
|
|
495
|
+
const parsedName = safeParse(
|
|
496
|
+
aliasName,
|
|
497
|
+
(value) => refNameSchema.parse(value),
|
|
498
|
+
"Input validation failed",
|
|
499
|
+
);
|
|
500
|
+
if (!parsedName.ok) return parsedName;
|
|
501
|
+
return requestVersioning(this.client, {
|
|
502
|
+
method: "DELETE",
|
|
503
|
+
path: pathFor(this.collectionName, `/aliases/${encodeURIComponent(parsedName.value)}`),
|
|
504
|
+
responseSchema: messageResponseSchema,
|
|
505
|
+
successStatus: 200,
|
|
506
|
+
conflict: "catalog",
|
|
507
|
+
}, options);
|
|
508
|
+
}
|
|
509
|
+
}
|