@qbraid-core/base 0.1.0 → 0.3.0

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/README.md CHANGED
@@ -1,4 +1,9 @@
1
- # @qbraid-core/base
1
+ <img align="right" width="100" alt="qbraid" src="https://qbraid-static.s3.amazonaws.com/logos/qbraid.png">
2
+
3
+ # [@qbraid-core/base](https://qbraid.github.io/qbraid-core-js/modules/base.html)
4
+
5
+ [![Stable][preview-stability]](https://qbraid.github.io/qbraid-core-js/#launch-stages)
6
+ [![npm](https://img.shields.io/npm/v/@qbraid-core/base?color=blue)](https://npm.im/@qbraid-core/base)
2
7
 
3
8
  Base API client used for authentication, requests, and other core functionality for interacting with qBraid Cloud Services.
4
9
 
@@ -19,3 +24,11 @@ const user = await client.getUser();
19
24
 
20
25
  console.log(`email: ${user.email}`, `role: ${user.role}`);
21
26
  ```
27
+
28
+ ## License
29
+
30
+ This software is proprietary and subject to the terms of the [qBraid Commercial Software License](https://qbraid.github.io/qbraid-core-js/#license).
31
+
32
+ [stable-stability]: https://img.shields.io/badge/stability-stable-green
33
+ [preview-stability]: https://img.shields.io/badge/stability-preview-orange
34
+ [deprecated-stability]: https://img.shields.io/badge/stability-deprecated-red
@@ -1 +1 @@
1
- export declare const version = "0.1.0";
1
+ export declare const version = "0.3.0";
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // This file is auto-generated. Do not edit manually.
5
- exports.version = '0.1.0';
5
+ exports.version = '0.3.0';
6
6
  //# sourceMappingURL=_version.js.map
@@ -1,9 +1,11 @@
1
- import { Config } from './config';
2
1
  import { QbraidSession } from './session';
3
2
  import { QbraidUser } from './user';
4
3
  export declare class QbraidClient {
4
+ /**
5
+ * The QbraidSession instance used by this client.
6
+ */
5
7
  protected session: QbraidSession;
6
- constructor(config?: Config);
8
+ constructor(session?: QbraidSession);
7
9
  getUser(): Promise<QbraidUser>;
8
10
  runningInLab(): Promise<boolean>;
9
11
  }
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
5
  if (k2 === undefined) k2 = k;
4
6
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,16 +39,26 @@ exports.QbraidClient = void 0;
37
39
  const fs = __importStar(require("fs"));
38
40
  const path = __importStar(require("path"));
39
41
  const config_1 = require("./config");
40
- const session_1 = require("./session");
41
- const context_1 = require("./context");
42
42
  const config_2 = require("./config");
43
+ const context_1 = require("./context");
44
+ const session_1 = require("./session");
43
45
  class QbraidClient {
46
+ /**
47
+ * The QbraidSession instance used by this client.
48
+ */
44
49
  session;
45
- constructor(config = new config_1.ConfigLoader().config) {
46
- this.session = new session_1.QbraidSession(config);
50
+ constructor(session) {
51
+ if (!session) {
52
+ const configManager = new config_1.QbraidConfigManager();
53
+ const authData = configManager.getAuthData();
54
+ const baseURL = configManager.getUrl();
55
+ const userPool = session_1.DEFAULT_USER_POOL;
56
+ session = new session_1.QbraidSession(authData, userPool, baseURL);
57
+ }
58
+ this.session = session;
47
59
  }
48
60
  async getUser() {
49
- const response = await this.session.request('GET', '/identity');
61
+ const response = await this.session.client.get('/identity');
50
62
  return {
51
63
  _id: response.data._id,
52
64
  email: response.data.email,
@@ -76,7 +88,7 @@ class QbraidClient {
76
88
  throw error;
77
89
  });
78
90
  fileCreated = true;
79
- const response = await this.session.request('GET', `/lab/is-mounted/${formattedTime}`);
91
+ const response = await this.session.client.get(`/lab/is-mounted/${formattedTime}`);
80
92
  return Boolean(response.data?.isMounted);
81
93
  }
82
94
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAgD;AAChD,uCAA0C;AAE1C,uCAA4C;AAC5C,qCAA4C;AAE5C,MAAa,YAAY;IACb,OAAO,CAAgB;IAEjC,YAAY,SAAiB,IAAI,qBAAY,EAAE,CAAC,MAAM;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAIzC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEtB,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAa;YAChC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAe;YACpC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAkB;YAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAc;YAClC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAA4B;YAC5D,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAmC;YAC3D,SAAS,EAAE;gBACT,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAiB;gBAClD,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAiB;gBAClD,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACvD;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAEzF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,yBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACrD,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,OAAO,MAAM,IAAA,yBAAe,EAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;gBACxD,IAAI,CAAC;oBACH,+CAA+C;oBAC/C,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;wBAC/D,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9D,MAAM,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC;oBAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACzC,KAAK,EACL,mBAAmB,aAAa,EAAE,CACnC,CAAC;oBACF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3C,CAAC;wBAAS,CAAC;oBACT,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACrC,CAAC;wBAAC,OAAO,KAAc,EAAE,CAAC;4BACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gCAC3B,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;4BAC7E,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,iBAAiB,CAAC,CAAC;4BAC1E,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CACX,wBAAwB,EACxB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AA1ED,oCA0EC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,36 @@
1
- interface ConfigDefaults {
2
- section: string;
3
- userPool: string;
4
- endpointURL: string;
5
- path: string;
6
- }
7
- export interface Config {
8
- baseURL: string;
9
- jupyterToken: string | null;
10
- authHeaders: Record<string, string>;
11
- headers: Record<string, string>;
1
+ import { AuthData } from './session';
2
+ type ConfigSection = Record<string, string>;
3
+ type ConfigData = Record<string, ConfigSection>;
4
+ export declare class ConfigManager {
5
+ private configPath;
6
+ private config;
7
+ constructor(filePath: string);
8
+ private ensureConfigFileExists;
9
+ loadConfig(): void;
10
+ saveConfig(): void;
11
+ getConfig(): ConfigData;
12
+ getSection(section: string): Record<string, string> | undefined;
13
+ getValue(section: string, key: string): string | undefined;
14
+ setValue(section: string, key: string, value: string): void;
15
+ updateConfig(newConfig: ConfigData): void;
16
+ removeSection(section: string): void;
17
+ removeValue(section: string, key: string): void;
12
18
  }
13
- export declare const DEFAULT_CONFIG: ConfigDefaults;
19
+ export declare const DEFAULT_CONFIG_PATH: string;
14
20
  export declare const USER_CONFIG_PATH: string;
15
- export declare class ConfigLoader {
16
- private configPath;
17
- private configSection;
18
- private _config;
19
- private readonly expandedConfigPath;
20
- constructor(configPath?: string, configSection?: string);
21
- get config(): Config;
22
- private loadConfig;
23
- private parseConfigSection;
24
- private extractConfigValues;
25
- private buildAuthHeaders;
21
+ export declare const DEFAULT_CONFIG: ConfigData;
22
+ export declare class QbraidConfigManager extends ConfigManager {
23
+ constructor(filePath?: string);
24
+ private initializeDefaultConfig;
25
+ private deepMerge;
26
+ getApiKey(): string;
27
+ setApiKey(apiKey: string): void;
28
+ getRefreshToken(): string;
29
+ setRefreshToken(refreshToken: string): void;
30
+ getEmail(): string;
31
+ setEmail(email: string): void;
32
+ getUrl(): string;
33
+ setUrl(url: string): void;
34
+ getAuthData(): AuthData;
26
35
  }
27
36
  export {};
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
5
  if (k2 === undefined) k2 = k;
4
6
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,77 +35,147 @@ var __importStar = (this && this.__importStar) || (function () {
33
35
  };
34
36
  })();
35
37
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ConfigLoader = exports.USER_CONFIG_PATH = exports.DEFAULT_CONFIG = void 0;
38
+ exports.QbraidConfigManager = exports.DEFAULT_CONFIG = exports.USER_CONFIG_PATH = exports.DEFAULT_CONFIG_PATH = exports.ConfigManager = void 0;
37
39
  const fs = __importStar(require("fs"));
38
- const ini = __importStar(require("ini"));
39
40
  const os = __importStar(require("os"));
40
41
  const path = __importStar(require("path"));
41
- function normalizePath(path) {
42
- return path.replace(/^~/, os.homedir());
43
- }
44
- exports.DEFAULT_CONFIG = {
45
- section: 'default',
46
- userPool: 'qbraid',
47
- endpointURL: 'https://api.qbraid.com/api',
48
- path: path.join(os.homedir(), '.qbraid', 'qbraidrc'),
49
- };
50
- exports.USER_CONFIG_PATH = normalizePath(process.env.QBRAID_CONFIG_FILE || exports.DEFAULT_CONFIG.path);
51
- class ConfigLoader {
42
+ const ini = __importStar(require("ini"));
43
+ const session_1 = require("./session");
44
+ class ConfigManager {
52
45
  configPath;
53
- configSection;
54
- _config = null;
55
- expandedConfigPath;
56
- constructor(configPath = exports.USER_CONFIG_PATH, configSection = exports.DEFAULT_CONFIG.section) {
57
- this.configPath = configPath;
58
- this.configSection = configSection;
59
- this.expandedConfigPath = normalizePath(this.configPath);
60
- }
61
- get config() {
62
- return (this._config ??= this.loadConfig());
63
- }
64
- loadConfig(configSection = this.configSection) {
65
- let section;
66
- if (fs.existsSync(this.expandedConfigPath)) {
67
- section = this.parseConfigSection(configSection);
46
+ config = {};
47
+ constructor(filePath) {
48
+ this.configPath = filePath;
49
+ this.loadConfig();
50
+ }
51
+ ensureConfigFileExists() {
52
+ if (!fs.existsSync(this.configPath)) {
53
+ const dirPath = path.dirname(this.configPath);
54
+ if (!fs.existsSync(dirPath)) {
55
+ fs.mkdirSync(dirPath, { recursive: true });
56
+ }
57
+ fs.writeFileSync(this.configPath, '', 'utf-8');
58
+ }
59
+ }
60
+ loadConfig() {
61
+ try {
62
+ if (fs.existsSync(this.configPath)) {
63
+ const fileContent = fs.readFileSync(this.configPath, 'utf-8');
64
+ this.config = ini.parse(fileContent);
65
+ }
66
+ else {
67
+ console.warn(`Config file not found at ${this.configPath}. Initializing with empty config.`);
68
+ this.config = {};
69
+ }
70
+ }
71
+ catch (error) {
72
+ if (error instanceof Error) {
73
+ console.error(`Error loading config file: ${error.message}`);
74
+ }
75
+ else {
76
+ console.error(`An unknown error occurred while loading the config file.`);
77
+ }
78
+ this.config = {};
68
79
  }
69
- const configValues = this.extractConfigValues(section);
70
- return {
71
- baseURL: configValues.baseURL,
72
- jupyterToken: configValues.jupyterToken,
73
- headers: { domain: configValues.userPool },
74
- authHeaders: this.buildAuthHeaders(configValues),
75
- };
76
80
  }
77
- parseConfigSection(configSection) {
78
- const parsedConfig = ini.parse(fs.readFileSync(this.expandedConfigPath, 'utf-8'));
79
- const section = parsedConfig[configSection];
80
- if (!section) {
81
- throw new Error(`Section [${configSection}] not found in config file: ${this.expandedConfigPath}`);
81
+ saveConfig() {
82
+ this.ensureConfigFileExists();
83
+ try {
84
+ const configString = ini.stringify(this.config);
85
+ fs.writeFileSync(this.configPath, configString, 'utf-8');
86
+ }
87
+ catch (error) {
88
+ console.error(`Error saving config file: ${error}`);
82
89
  }
83
- return section;
84
90
  }
85
- extractConfigValues(section) {
86
- return {
87
- userPool: section?.pool ?? process.env.QBRAID_USER_POOL ?? exports.DEFAULT_CONFIG.userPool,
88
- jupyterToken: section?.['jupyter-token'] ?? process.env.JUPYTERHUB_TOKEN ?? null,
89
- apiKey: section?.['api-key'] ?? process.env.QBRAID_API_KEY ?? '',
90
- refreshToken: section?.['refresh-token'] ?? process.env.REFRESH ?? '',
91
- userEmail: section?.email ?? process.env.JUPYTERHUB_USER ?? '',
92
- baseURL: section?.url ?? process.env.QBRAID_API_URL ?? exports.DEFAULT_CONFIG.endpointURL,
93
- };
91
+ getConfig() {
92
+ return this.config;
94
93
  }
95
- buildAuthHeaders(values) {
96
- if (values.userEmail && values.refreshToken) {
97
- return {
98
- email: values.userEmail,
99
- 'refresh-token': values.refreshToken,
100
- };
94
+ getSection(section) {
95
+ return this.config[section];
96
+ }
97
+ getValue(section, key) {
98
+ return this.config[section]?.[key];
99
+ }
100
+ setValue(section, key, value) {
101
+ if (!this.config[section]) {
102
+ this.config[section] = {};
101
103
  }
102
- if (values.apiKey) {
103
- return { 'api-key': values.apiKey };
104
+ this.config[section][key] = value;
105
+ }
106
+ updateConfig(newConfig) {
107
+ this.config = { ...this.config, ...newConfig };
108
+ }
109
+ removeSection(section) {
110
+ delete this.config[section];
111
+ }
112
+ removeValue(section, key) {
113
+ if (this.config[section]) {
114
+ delete this.config[section][key];
104
115
  }
105
- return {};
106
116
  }
107
117
  }
108
- exports.ConfigLoader = ConfigLoader;
118
+ exports.ConfigManager = ConfigManager;
119
+ exports.DEFAULT_CONFIG_PATH = path.join(os.homedir(), '.qbraid', 'qbraidrc');
120
+ exports.USER_CONFIG_PATH = process.env.QBRAID_CONFIG_FILE || exports.DEFAULT_CONFIG_PATH;
121
+ exports.DEFAULT_CONFIG = {
122
+ default: {
123
+ 'api-key': process.env.QBRAID_API_KEY ?? '',
124
+ 'refresh-token': process.env.REFRESH ?? '',
125
+ email: process.env.JUPYTERHUB_USER ?? '',
126
+ url: session_1.DEFAULT_BASE_URL,
127
+ },
128
+ };
129
+ class QbraidConfigManager extends ConfigManager {
130
+ constructor(filePath = exports.USER_CONFIG_PATH) {
131
+ super(filePath);
132
+ this.initializeDefaultConfig();
133
+ }
134
+ initializeDefaultConfig() {
135
+ const currentConfig = this.getConfig();
136
+ const mergedConfig = this.deepMerge(exports.DEFAULT_CONFIG, currentConfig);
137
+ this.updateConfig(mergedConfig);
138
+ }
139
+ deepMerge(target, source) {
140
+ const output = { ...target };
141
+ Object.keys(source).forEach(key => {
142
+ if (typeof source[key] === 'object' && source[key] !== null) {
143
+ output[key] = output[key] ? { ...output[key], ...source[key] } : { ...source[key] };
144
+ }
145
+ });
146
+ return output;
147
+ }
148
+ getApiKey() {
149
+ return this.getValue('default', 'api-key') || '';
150
+ }
151
+ setApiKey(apiKey) {
152
+ this.setValue('default', 'api-key', apiKey);
153
+ }
154
+ getRefreshToken() {
155
+ return this.getValue('default', 'refresh-token') || '';
156
+ }
157
+ setRefreshToken(refreshToken) {
158
+ this.setValue('default', 'refresh-token', refreshToken);
159
+ }
160
+ getEmail() {
161
+ return this.getValue('default', 'email') || '';
162
+ }
163
+ setEmail(email) {
164
+ this.setValue('default', 'email', email);
165
+ }
166
+ getUrl() {
167
+ return this.getValue('default', 'url') || session_1.DEFAULT_BASE_URL;
168
+ }
169
+ setUrl(url) {
170
+ this.setValue('default', 'url', url);
171
+ }
172
+ getAuthData() {
173
+ return {
174
+ apiKey: this.getApiKey(),
175
+ refreshToken: this.getRefreshToken(),
176
+ email: this.getEmail(),
177
+ };
178
+ }
179
+ }
180
+ exports.QbraidConfigManager = QbraidConfigManager;
109
181
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
5
  if (k2 === undefined) k2 = k;
4
6
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,sBAUC;AAQD,0CAMC;AAtED,uCAAyB;AACzB,2CAA6B;AAS7B;;GAEG;AACH,MAAM,gBAAgB;IACZ,OAAO,CAAU;IACjB,IAAI,CAAS;IACb,eAAe,CAAU;IAEjC,YAAY,OAAe,EAAE,eAAwB;QACnD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACI,KAAK,UAAU,KAAK,CACzB,QAAuC,EACvC,EAA+B;IAE/B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,eAAwB,EACxB,EAAoB;IAEpB,OAAO,KAAK,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDvB,sBAUC;AAQD,0CAMC;AAtED,uCAAyB;AACzB,2CAA6B;AAS7B;;GAEG;AACH,MAAM,gBAAgB;IACZ,OAAO,CAAU;IACjB,IAAI,CAAS;IACb,eAAe,CAAU;IAEjC,YAAY,OAAe,EAAE,eAAwB;QACnD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACI,KAAK,UAAU,KAAK,CACzB,QAAuC,EACvC,EAA+B;IAE/B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,eAAwB,EACxB,EAAoB;IAEpB,OAAO,KAAK,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC"}
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  exports.QbraidError = void 0;
4
6
  const DEFAULT_ERROR_MESSAGE = 'An unexpected error occurred while processing your qBraid command. ' +
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAM,qBAAqB,GACzB,qEAAqE;IACrE,kEAAkE;IAClE,wEAAwE,CAAC;AAE3E,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAE1B,iFAAiF;QACjF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAVD,kCAUC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB;;;AAEvB,MAAM,qBAAqB,GACzB,qEAAqE;IACrE,kEAAkE;IAClE,wEAAwE,CAAC;AAE3E,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAE1B,iFAAiF;QACjF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAVD,kCAUC"}
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * @module base
3
3
  */
4
- export { ConfigLoader } from './config';
5
4
  export { QbraidClient } from './client';
6
5
  export { QbraidSession } from './session';
7
6
  export { QbraidError } from './errors';
8
- export type { Method } from 'axios';
7
+ export { QbraidConfigManager } from './config';
9
8
  export type { QbraidUser, DiskUsage } from './user';
10
- export type { Config } from './config';
9
+ export type { AuthData } from './session';
package/dist/src/index.js CHANGED
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QbraidError = exports.QbraidSession = exports.QbraidClient = exports.ConfigLoader = void 0;
5
+ exports.QbraidConfigManager = exports.QbraidError = exports.QbraidSession = exports.QbraidClient = void 0;
4
6
  /**
5
7
  * @module base
6
8
  */
7
- var config_1 = require("./config");
8
- Object.defineProperty(exports, "ConfigLoader", { enumerable: true, get: function () { return config_1.ConfigLoader; } });
9
9
  var client_1 = require("./client");
10
10
  Object.defineProperty(exports, "QbraidClient", { enumerable: true, get: function () { return client_1.QbraidClient; } });
11
11
  var session_1 = require("./session");
12
12
  Object.defineProperty(exports, "QbraidSession", { enumerable: true, get: function () { return session_1.QbraidSession; } });
13
13
  var errors_1 = require("./errors");
14
14
  Object.defineProperty(exports, "QbraidError", { enumerable: true, get: function () { return errors_1.QbraidError; } });
15
+ var config_1 = require("./config");
16
+ Object.defineProperty(exports, "QbraidConfigManager", { enumerable: true, get: function () { return config_1.QbraidConfigManager; } });
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,mCAAuC;AAA9B,qGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB;;;AAEvB;;GAEG;AACH,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,mCAAuC;AAA9B,qGAAA,WAAW,OAAA;AACpB,mCAA+C;AAAtC,6GAAA,mBAAmB,OAAA"}
@@ -1,17 +1,17 @@
1
- /**
2
- * Module for making requests to the qBraid API.
3
- */
4
- import { AxiosRequestConfig, AxiosResponse, Method } from 'axios';
5
- import type { Config } from './config';
1
+ import { AxiosInstance } from 'axios';
2
+ export declare const DEFAULT_USER_POOL = "qbraid";
3
+ export declare const DEFAULT_BASE_URL = "https://api.qbraid.com/api";
4
+ export interface AuthData {
5
+ apiKey: string | undefined;
6
+ refreshToken: string | undefined;
7
+ email: string | undefined;
8
+ }
6
9
  export declare class QbraidSession {
7
- private readonly config;
8
- private readonly client;
9
- constructor(config: Config);
10
+ client: AxiosInstance;
11
+ constructor(authData: AuthData, userPool?: string, baseURL?: string);
12
+ private authDataToHeaders;
13
+ private normalizeBaseURL;
10
14
  private createAxiosInstance;
11
15
  private getUserAgent;
12
16
  addUserAgent(userAgent: string): void;
13
- private joinUrl;
14
- request<T>(method: Method, url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>;
15
- private getErrorMessage;
16
- private maskSensitiveData;
17
17
  }
@@ -1,35 +1,59 @@
1
1
  "use strict";
2
- /**
3
- * Module for making requests to the qBraid API.
4
- */
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
5
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
6
  };
8
7
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.QbraidSession = void 0;
10
- const _version_1 = require("./_version");
11
- const axios_1 = __importDefault(require("axios"));
8
+ exports.QbraidSession = exports.DEFAULT_BASE_URL = exports.DEFAULT_USER_POOL = void 0;
9
+ /**
10
+ * Module for making requests to the qBraid API.
11
+ */
12
12
  const https_1 = require("https");
13
- const url_1 = require("url");
14
- const errors_1 = require("./errors");
13
+ const axios_1 = __importDefault(require("axios"));
14
+ const _version_1 = require("./_version");
15
+ exports.DEFAULT_USER_POOL = 'qbraid';
16
+ exports.DEFAULT_BASE_URL = 'https://api.qbraid.com/api';
15
17
  class QbraidSession {
16
- config;
17
18
  client;
18
- constructor(config) {
19
- this.config = config;
20
- this.client = this.createAxiosInstance();
19
+ constructor(authData, userPool = exports.DEFAULT_USER_POOL, baseURL = exports.DEFAULT_BASE_URL) {
20
+ this.client = this.createAxiosInstance(authData, userPool, baseURL);
21
21
  }
22
- createAxiosInstance() {
22
+ authDataToHeaders(authData) {
23
+ let headers = {};
24
+ if (authData.refreshToken && authData.email) {
25
+ headers['refresh-token'] = authData.refreshToken;
26
+ headers['email'] = authData.email;
27
+ }
28
+ else if (authData.apiKey) {
29
+ headers['api-key'] = authData.apiKey;
30
+ }
31
+ else {
32
+ throw new Error('Invalid authentication data. Please provide either an API key or refresh token and email.');
33
+ }
34
+ return headers;
35
+ }
36
+ normalizeBaseURL(baseURL) {
37
+ return baseURL.replace(/\/+$/, '');
38
+ }
39
+ createAxiosInstance(authData, userPool, baseURL) {
40
+ const authHeaders = this.authDataToHeaders(authData);
23
41
  const headers = {
24
- ...this.config.headers,
25
- ...this.config.authHeaders,
42
+ domain: userPool,
26
43
  'User-Agent': this.getUserAgent(),
44
+ 'Content-Type': 'application/json; charset=utf-8',
27
45
  };
28
- return axios_1.default.create({
29
- baseURL: this.config.baseURL,
46
+ const axiosInstance = axios_1.default.create({
47
+ baseURL: this.normalizeBaseURL(baseURL),
30
48
  headers,
31
49
  httpsAgent: new https_1.Agent({ keepAlive: true }),
32
50
  });
51
+ axiosInstance.interceptors.request.use(async (config) => {
52
+ const updatedConfig = { ...config };
53
+ updatedConfig.headers.set(authHeaders);
54
+ return updatedConfig;
55
+ });
56
+ return axiosInstance;
33
57
  }
34
58
  getUserAgent() {
35
59
  return `QbraidCoreJs/${_version_1.version}`;
@@ -40,30 +64,6 @@ class QbraidSession {
40
64
  this.client.defaults.headers['User-Agent'] = `${currentUserAgent} ${userAgent}`.trim();
41
65
  }
42
66
  }
43
- joinUrl(baseUrl, path) {
44
- const base = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
45
- const relativePath = path.startsWith('/') ? path.slice(1) : path;
46
- return new url_1.URL(relativePath, base).toString();
47
- }
48
- async request(method, url, config = {}) {
49
- const fullUrl = this.config.baseURL && !url.startsWith('http') ? this.joinUrl(this.config.baseURL, url) : url;
50
- try {
51
- return await this.client.request({ method, url: fullUrl, ...config });
52
- }
53
- catch (error) {
54
- const message = this.maskSensitiveData(this.getErrorMessage(error));
55
- throw new errors_1.QbraidError(message);
56
- }
57
- }
58
- getErrorMessage(error) {
59
- if (axios_1.default.isAxiosError(error)) {
60
- return `AxiosError: ${error.message}`;
61
- }
62
- return error instanceof Error ? error.message : String(error);
63
- }
64
- maskSensitiveData(message) {
65
- return Object.values(this.config.authHeaders).reduce((maskedMessage, value) => maskedMessage.replace(value, '...'), message);
66
- }
67
67
  }
68
68
  exports.QbraidSession = QbraidSession;
69
69
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB;;;;;;AAEvB;;GAEG;AAEH,iCAA8B;AAE9B,kDAA6C;AAE7C,yCAAqC;AAExB,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAC7B,QAAA,gBAAgB,GAAG,4BAA4B,CAAC;AAQ7D,MAAa,aAAa;IACjB,MAAM,CAAgB;IAE7B,YACE,QAAkB,EAClB,WAAmB,yBAAiB,EACpC,UAAkB,wBAAgB;QAElC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEO,iBAAiB,CAAC,QAAkB;QAC1C,IAAI,OAAO,GAA2B,EAAE,CAAC;QAEzC,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC5C,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;YACjD,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpC,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,mBAAmB,CACzB,QAAkB,EAClB,QAAgB,EAChB,OAAe;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;YACjC,cAAc,EAAE,iCAAiC;SAClD,CAAC;QAEF,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACvC,OAAO;YACP,UAAU,EAAE,IAAI,aAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAC3C,CAAC,CAAC;QAEH,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACpD,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YACpC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,OAAO,gBAAgB,kBAAO,EAAE,CAAC;IACnC,CAAC;IAEM,YAAY,CAAC,SAAiB;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAW,CAAC;QAC9E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;CACF;AArED,sCAqEC"}
package/dist/src/user.js CHANGED
@@ -1,3 +1,5 @@
1
1
  "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qbraid-core/base",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "description": "Core functionality for interacting with qBraid Cloud Services.",
@@ -35,7 +35,7 @@
35
35
  "@types/ini": "^4.1.1"
36
36
  },
37
37
  "scripts": {
38
- "clean": "rimraf dist && rm -f tsconfig.tsbuildinfo && rimraf src/_version.ts",
38
+ "clean": "rimraf dist tsconfig.tsbuildinfo src/_version.ts src/_version.js src/*.d.ts src/*.js",
39
39
  "lint": "eslint src",
40
40
  "lint:fix": "eslint src --fix",
41
41
  "format": "prettier --write \"src/**/*.{ts,json}\"",