From fd8438351978198e0e7717c85e05a905443077a1 Mon Sep 17 00:00:00 2001 From: quannguyen Date: Sun, 10 Sep 2023 22:04:36 +0700 Subject: [PATCH] update version --- .github/workflows/release.yml | 2 +- dist/config.d.ts | 10 ++++ dist/config.js | 101 ++++++++++++++++++++++++++++++++++ dist/index.d.ts | 71 ++++++++++++++++++++++++ dist/index.js | 86 +++++++++++++++++++++++++++++ dist/repositories.d.ts | 2 +- dist/repositories.js | 2 +- package.json | 21 +++++-- readme.md | 19 ++++++- src/index.ts | 96 +++++++++++++++++++++++++++++++- src/repositories.ts | 2 +- 11 files changed, 399 insertions(+), 13 deletions(-) create mode 100644 dist/config.d.ts create mode 100644 dist/config.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bb574ae..a594049 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - registry-url: https://registry.npmjs.org/ + registry-url: https://npm.pkg.github.com/@quannadev - run: npm ci - run: npm publish env: diff --git a/dist/config.d.ts b/dist/config.d.ts new file mode 100644 index 0000000..5a18898 --- /dev/null +++ b/dist/config.d.ts @@ -0,0 +1,10 @@ +import { BaseService } from "./base_service"; +import { BlockstoreConfig, Config, CreateUserRequest, GarbageCollectionConfig, SetupStatus, UserCertificate, Version } from "./modules"; +export declare class ConfigSetup extends BaseService { + constructor(config: Config); + getVersion(): Promise; + getStorage(): Promise; + getGarbageCollection(): Promise; + getSetupStatus(): Promise; + setupAdminUser(info: CreateUserRequest): Promise; +} diff --git a/dist/config.js b/dist/config.js new file mode 100644 index 0000000..49d0f94 --- /dev/null +++ b/dist/config.js @@ -0,0 +1,101 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +exports.__esModule = true; +exports.ConfigSetup = void 0; +var base_service_1 = require("./base_service"); +var modules_1 = require("./modules"); +var ConfigSetup = /** @class */ (function (_super) { + __extends(ConfigSetup, _super); + function ConfigSetup(config) { + return _super.call(this, config) || this; + } + ConfigSetup.prototype.getVersion = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.get(this.getEndpoint(modules_1.ApiEndpoint.Config).concat('/version'))]; + }); + }); + }; + ConfigSetup.prototype.getStorage = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.get(this.getEndpoint(modules_1.ApiEndpoint.Config).concat('/storage'))]; + }); + }); + }; + ///config/garbage-collection + ConfigSetup.prototype.getGarbageCollection = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.get(this.getEndpoint(modules_1.ApiEndpoint.Config).concat('/garbage-collection'))]; + }); + }); + }; + /// Setup + ConfigSetup.prototype.getSetupStatus = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.get(this.getEndpoint(modules_1.ApiEndpoint.Setup))]; + }); + }); + }; + ConfigSetup.prototype.setupAdminUser = function (info) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.post(this.getEndpoint(modules_1.ApiEndpoint.Setup), this.getDefaultParams(), info)]; + }); + }); + }; + return ConfigSetup; +}(base_service_1.BaseService)); +exports.ConfigSetup = ConfigSetup; diff --git a/dist/index.d.ts b/dist/index.d.ts index 7f12dcf..4f025b9 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,5 +1,76 @@ +import { Config } from "./modules"; +import { Repositories } from "./repositories"; +import { ObjectsService } from "./objects"; +import { Branch } from "./branch"; +import { ConfigSetup } from "./config"; export * from "./modules"; export * from "./auth"; export * from "./branch"; export * from "./repositories"; export * from "./objects"; +declare class Client { + config: Config; + repositories: Repositories; + branches: Branch; + objects: ObjectsService; + setupConfig: ConfigSetup; + constructor(config: Config); + getConfig(): Config; + /*** + Get setup config + - [x] GET /config/version + - [x] GET /config/storage + - [x] GET /config/garbage-collection + - [x] POST /setup_lakefs + * @returns {ConfigSetup} + */ + configSetup(): ConfigSetup; + /*** + Get repositories + - [x] repositories - list repositories + - [x] createRepository - create repository + - [x] getRepository - get repository + - [x] deleteRepository - delete repository + - [x] getRepositoryMetadata - get repository metadata + - [x] setAllowedBranchProtection - set allowed branch protection + - [x] getBranchProtection - get branch protection + - [x] setBranchProtection - set branch protection + - [x] deleteBranchProtection - delete branch protection + * @returns {Repositories} + ***/ + getRepositories(): Repositories; + /*** + API for branches + - [x] getBranches - list branches + - [x] createBranch - create branch + - [x] getBranch - get branch + - [x] deleteBranch - delete branch + - [x] revertBranch - revert branch + - [x] cherryPickBranch - cherry-pick branch + - [x] getBranchDiff - get branch diff + - [x] dumpRefs - dump refs + - [x] getTags - list tags + - [x] createTag - create tag + - [x] getTag - get tag + - [x] deleteTag - delete tag + - [x] getDiff - get diff + - [x] restoreRefs - restore refs + - [x] getCommits - get commit + - [x] merge - merge + - [x] mergeStatus - merge status + * @returns {Branch} + ***/ + getBranches(): Branch; + /*** + API for objects + - [x] getObjects - list objects + - [x] checkObjectExits - check object exists + - [x] deleteObject - delete object + - [x] copyObject - copy object + - [x] getObjectStat - get object stat + - [x] uploadObject - upload object + * @returns {ObjectsService} + ***/ + getObjects(): ObjectsService; +} +export declare function newClient(config: Config): Client; diff --git a/dist/index.js b/dist/index.js index 0dc7275..69603c2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14,8 +14,94 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; exports.__esModule = true; +exports.newClient = void 0; +var repositories_1 = require("./repositories"); +var objects_1 = require("./objects"); +var branch_1 = require("./branch"); +var config_1 = require("./config"); __exportStar(require("./modules"), exports); __exportStar(require("./auth"), exports); __exportStar(require("./branch"), exports); __exportStar(require("./repositories"), exports); __exportStar(require("./objects"), exports); +var Client = /** @class */ (function () { + function Client(config) { + this.config = config; + this.repositories = new repositories_1.Repositories(config); + this.branches = new branch_1.Branch(config); + this.objects = new objects_1.ObjectsService(config); + this.setupConfig = new config_1.ConfigSetup(config); + } + Client.prototype.getConfig = function () { + return this.config; + }; + /*** + Get setup config + - [x] GET /config/version + - [x] GET /config/storage + - [x] GET /config/garbage-collection + - [x] POST /setup_lakefs + * @returns {ConfigSetup} + */ + Client.prototype.configSetup = function () { + return this.setupConfig; + }; + /*** + Get repositories + - [x] repositories - list repositories + - [x] createRepository - create repository + - [x] getRepository - get repository + - [x] deleteRepository - delete repository + - [x] getRepositoryMetadata - get repository metadata + - [x] setAllowedBranchProtection - set allowed branch protection + - [x] getBranchProtection - get branch protection + - [x] setBranchProtection - set branch protection + - [x] deleteBranchProtection - delete branch protection + * @returns {Repositories} + ***/ + Client.prototype.getRepositories = function () { + return this.repositories; + }; + /*** + API for branches + - [x] getBranches - list branches + - [x] createBranch - create branch + - [x] getBranch - get branch + - [x] deleteBranch - delete branch + - [x] revertBranch - revert branch + - [x] cherryPickBranch - cherry-pick branch + - [x] getBranchDiff - get branch diff + - [x] dumpRefs - dump refs + - [x] getTags - list tags + - [x] createTag - create tag + - [x] getTag - get tag + - [x] deleteTag - delete tag + - [x] getDiff - get diff + - [x] restoreRefs - restore refs + - [x] getCommits - get commit + - [x] merge - merge + - [x] mergeStatus - merge status + * @returns {Branch} + ***/ + Client.prototype.getBranches = function () { + return this.branches; + }; + /*** + API for objects + - [x] getObjects - list objects + - [x] checkObjectExits - check object exists + - [x] deleteObject - delete object + - [x] copyObject - copy object + - [x] getObjectStat - get object stat + - [x] uploadObject - upload object + * @returns {ObjectsService} + ***/ + Client.prototype.getObjects = function () { + return this.objects; + }; + return Client; +}()); +function newClient(config) { + return new Client(config); +} +exports.newClient = newClient; diff --git a/dist/repositories.d.ts b/dist/repositories.d.ts index e34981b..d299290 100644 --- a/dist/repositories.d.ts +++ b/dist/repositories.d.ts @@ -2,7 +2,7 @@ import { ApiEndpoint, Config, CreateRepositoryRequest, Metadata, RepositoryInfo, import { BaseService } from "./base_service"; export declare class Repositories extends BaseService { constructor(config: Config); - Repositories(): Promise>; + repositories(): Promise>; createRepository(requestData: CreateRepositoryRequest): Promise; getRepository(name: string): Promise; deleteRepository(name: string): Promise; diff --git a/dist/repositories.js b/dist/repositories.js index fd6ca92..0a50470 100644 --- a/dist/repositories.js +++ b/dist/repositories.js @@ -59,7 +59,7 @@ var Repositories = /** @class */ (function (_super) { function Repositories(config) { return _super.call(this, config) || this; } - Repositories.prototype.Repositories = function () { + Repositories.prototype.repositories = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, this.get(this.getEndpoint(modules_1.ApiEndpoint.Repositories), this.getDefaultParams())]; diff --git a/package.json b/package.json index 8b49858..94cfa61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@quannadev/lakefs-ts", - "version": "1.0.2", + "version": "1.0.3", "description": "Lakefs api for nodejs", "main": "dist/index", "typings": "dist/index.d.ts", @@ -11,10 +11,13 @@ }, "repository": { "type": "git", - "url": "git@github.com:quannadev/lakefs-ts.git" + "url": "git+ssh://git@github.com/quannadev/lakefs-ts.git" }, "keywords": [ - "lakefs" + "lakefs", + "api", + "typescript", + "lakefs-ts" ], "engines": { "node": ">=16" @@ -31,7 +34,7 @@ }, "publishConfig": { "registry": "https://npm.pkg.github.com/@quannadev", - "tag": "v1.0.1" + "tag": "v1.0.3" }, "devDependencies": { "@types/jest": "^29.5.4", @@ -39,5 +42,13 @@ "jest": "^29.6.4", "ts-jest": "^29.1.1", "typescript": "^4.4.2" + }, + "bugs": { + "url": "https://github.com/quannadev/lakefs-ts/issues" + }, + "homepage": "https://github.com/quannadev/lakefs-ts#readme", + "directories": { + "example": "examples", + "test": "tests" } -} \ No newline at end of file +} diff --git a/readme.md b/readme.md index ba298d9..bce100c 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,7 @@ -# Lakefs client for Node.js - -This is the Node.js client for [lakeFS](https://lakefs.io/). +Lakefs client for Node.js +==== +This is a Node.js client for [lakeFS]("https://lakefs.io/"). +It is generated from the api spec using [openapi-generator]("https://docs.lakefs.io/reference/api.html#/") ## Installation @@ -28,3 +29,15 @@ main().catch(err => { process.exit(1); }) ``` + +- Use a client directly + +```typescript +import {newClient, getConfigFromEnv} from "../dist"; +const config = getConfigFromEnv(); +const client = newClient(config); +// get branches +const branches = await client.getBranches(); +// get commits +const commits = await client.getCommits(); +``` diff --git a/src/index.ts b/src/index.ts index d7c0019..b439322 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,99 @@ +import {Config} from "./modules"; +import {Repositories} from "./repositories"; +import {ObjectsService} from "./objects"; +import {Branch} from "./branch"; +import {ConfigSetup} from "./config"; + export * from "./modules"; export * from "./auth"; export * from "./branch"; export * from "./repositories"; -export * from "./objects"; \ No newline at end of file +export * from "./objects"; + + +class Client { + config: Config; + repositories: Repositories; + branches: Branch; + objects: ObjectsService; + setupConfig: ConfigSetup; + constructor(config: Config) { + this.config = config; + this.repositories = new Repositories(config); + this.branches = new Branch(config); + this.objects = new ObjectsService(config); + this.setupConfig = new ConfigSetup(config); + } + + getConfig(): Config { + return this.config; + } + /*** + Get setup config + - [x] GET /config/version + - [x] GET /config/storage + - [x] GET /config/garbage-collection + - [x] POST /setup_lakefs + * @returns {ConfigSetup} + */ + configSetup(): ConfigSetup { + return this.setupConfig; + } + /*** + Get repositories + - [x] repositories - list repositories + - [x] createRepository - create repository + - [x] getRepository - get repository + - [x] deleteRepository - delete repository + - [x] getRepositoryMetadata - get repository metadata + - [x] setAllowedBranchProtection - set allowed branch protection + - [x] getBranchProtection - get branch protection + - [x] setBranchProtection - set branch protection + - [x] deleteBranchProtection - delete branch protection + * @returns {Repositories} + ***/ + getRepositories(): Repositories { + return this.repositories; + } + /*** + API for branches + - [x] getBranches - list branches + - [x] createBranch - create branch + - [x] getBranch - get branch + - [x] deleteBranch - delete branch + - [x] revertBranch - revert branch + - [x] cherryPickBranch - cherry-pick branch + - [x] getBranchDiff - get branch diff + - [x] dumpRefs - dump refs + - [x] getTags - list tags + - [x] createTag - create tag + - [x] getTag - get tag + - [x] deleteTag - delete tag + - [x] getDiff - get diff + - [x] restoreRefs - restore refs + - [x] getCommits - get commit + - [x] merge - merge + - [x] mergeStatus - merge status + * @returns {Branch} + ***/ + getBranches(): Branch { + return this.branches; + } + /*** + API for objects + - [x] getObjects - list objects + - [x] checkObjectExits - check object exists + - [x] deleteObject - delete object + - [x] copyObject - copy object + - [x] getObjectStat - get object stat + - [x] uploadObject - upload object + * @returns {ObjectsService} + ***/ + getObjects(): ObjectsService { + return this.objects; + } +} + +export function newClient(config: Config): Client { + return new Client(config); +} \ No newline at end of file diff --git a/src/repositories.ts b/src/repositories.ts index 84612c4..52d7f5a 100644 --- a/src/repositories.ts +++ b/src/repositories.ts @@ -14,7 +14,7 @@ export class Repositories extends BaseService { super(config); } - async Repositories(): Promise> { + async repositories(): Promise> { return this.get(this.getEndpoint(ApiEndpoint.Repositories), this.getDefaultParams()); }