@qbraid-core/ibm-cloud 0.9.0 → 0.10.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
@@ -5,7 +5,7 @@
5
5
  [![Stable][preview-stability]](https://qbraid.github.io/qbraid-core-js/#launch-stages)
6
6
  [![npm](https://img.shields.io/npm/v/@qbraid-core/ibm-cloud?color=blue)](https://npm.im/@qbraid-core/ibm/cloud)
7
7
 
8
- IBM Cloud API client used for interacting with IBM's Qiskit Runtime Service API.
8
+ Client for interacting with IBM's Qiskit Runtime Service via the IBM Cloud API.
9
9
 
10
10
  ## Installation
11
11
 
@@ -1,23 +1,13 @@
1
1
  import { AllDevicesResponse, DeviceProperties, DeviceConfiguration, DeviceErrors, DeviceStatus, JobList, Job, JobMetrics, GetJobParams, APIErrorResponse, JobTranspiledCircuitResponse } from './types';
2
2
  export declare class IBMCloudClient {
3
- private apiKey?;
4
- private token?;
5
- private crn;
6
3
  private baseUrl;
7
4
  private client;
5
+ private configManager;
8
6
  constructor({ apiKey, token, crn }: {
9
7
  apiKey?: string;
10
8
  token?: string;
11
9
  crn?: string;
12
10
  });
13
- loadCredsFromFile(): {
14
- apiKey?: string;
15
- crn?: string;
16
- };
17
- loadCredsFromEnv(): {
18
- apiKey?: string;
19
- crn?: string;
20
- };
21
11
  private handleJobRequest;
22
12
  getBackends(): Promise<AllDevicesResponse>;
23
13
  getBackendProperties(backendName: string, updatedBefore?: string): Promise<DeviceProperties>;
@@ -6,43 +6,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.IBMCloudClient = void 0;
9
- const fs_1 = __importDefault(require("fs"));
10
9
  const https_1 = require("https");
11
- const os_1 = __importDefault(require("os"));
12
- const path_1 = __importDefault(require("path"));
13
10
  const axios_1 = __importDefault(require("axios"));
14
- const homedir = os_1.default.homedir();
11
+ const config_1 = require("./config");
15
12
  class IBMCloudClient {
16
- apiKey;
17
- token;
18
- crn;
19
13
  baseUrl;
20
14
  client;
15
+ configManager;
21
16
  constructor({ apiKey, token, crn }) {
22
- if (!apiKey && !token && !crn) {
23
- // attempt to load the creds from ~/.qiskit/qiskit-ibm.json file
24
- // or from the env vars QISKIT_IBM_TOKEN and QISKIT_IBM_INSTANCE
25
- let creds = this.loadCredsFromFile();
26
- if (Object.keys(creds).length === 0) {
27
- creds = this.loadCredsFromEnv();
28
- }
29
- apiKey = creds.apiKey;
30
- token = undefined;
31
- crn = creds.crn;
32
- }
33
- if (!apiKey && !token) {
17
+ this.configManager = new config_1.IBMConfigManager();
18
+ if (apiKey)
19
+ this.configManager.setApiKey(apiKey);
20
+ if (token)
21
+ this.configManager.setBearerToken(token);
22
+ if (crn)
23
+ this.configManager.setServiceCRN(crn);
24
+ if (!this.configManager.getApiKey() && !this.configManager.getBearerToken()) {
34
25
  throw new Error('Either apiKey or token must be provided');
35
26
  }
36
- if (!crn) {
27
+ if (!this.configManager.getServiceCRN()) {
37
28
  throw new Error('Service CRN must be provided');
38
29
  }
39
- this.apiKey = apiKey;
40
- this.token = token;
41
- this.crn = crn;
42
30
  this.baseUrl = 'https://quantum.cloud.ibm.com/api/v1';
43
31
  const headers = {
44
- 'Service-CRN': this.crn,
45
- Authorization: this.apiKey ? `apikey ${this.apiKey}` : `Bearer ${this.token}`,
32
+ 'Service-CRN': this.configManager.getServiceCRN(),
33
+ Authorization: this.configManager.getApiKey()
34
+ ? `apikey ${this.configManager.getApiKey()}`
35
+ : `Bearer ${this.configManager.getBearerToken()}`,
46
36
  };
47
37
  const axiosInstance = axios_1.default.create({
48
38
  baseURL: this.baseUrl,
@@ -51,51 +41,6 @@ class IBMCloudClient {
51
41
  });
52
42
  this.client = axiosInstance;
53
43
  }
54
- loadCredsFromFile() {
55
- const filePath = path_1.default.join(homedir, '.qiskit', 'qiskit-ibm.json');
56
- try {
57
- if (fs_1.default.existsSync(filePath)) {
58
- const rawData = fs_1.default.readFileSync(filePath, 'utf-8');
59
- const parsedData = JSON.parse(rawData);
60
- // Get the default-ibm-cloud credentials
61
- if (parsedData['default-ibm-cloud']) {
62
- const cloudCreds = parsedData['default-ibm-cloud'];
63
- console.log('Loaded credentials from file');
64
- return {
65
- // In the IBM Cloud format, the token is equivalent to apiKey
66
- apiKey: cloudCreds.token,
67
- crn: cloudCreds.instance, // The instance field contains the CRN
68
- };
69
- }
70
- else {
71
- console.log('IBM Cloud credentials not found in the file');
72
- }
73
- }
74
- else {
75
- console.log('Credentials file not found');
76
- }
77
- }
78
- catch (error) {
79
- console.error('Error loading credentials from file: ', error);
80
- }
81
- return {};
82
- }
83
- loadCredsFromEnv() {
84
- // Loading account from environment variables
85
- // Ref : https://github.com/Qiskit/qiskit-ibm-runtime/tree/main?tab=readme-ov-file#loading-account-from-environment-variables
86
- const apiKey = process.env.QISKIT_IBM_TOKEN;
87
- const crn = process.env.QISKIT_IBM_INSTANCE;
88
- if (!apiKey || !crn) {
89
- console.log('Environment variables not found');
90
- return {};
91
- }
92
- // in this case, token is null
93
- console.log('Loaded credentials from env');
94
- return {
95
- apiKey: apiKey,
96
- crn: crn,
97
- };
98
- }
99
44
  async handleJobRequest(request) {
100
45
  try {
101
46
  const response = await request;
@@ -133,6 +78,9 @@ class IBMCloudClient {
133
78
  // 5. GET /backends/:backend_name/errors - get the gate errors of a specific backend
134
79
  async getBackendErrors(backendName) {
135
80
  const backendProps = await this.getBackendProperties(backendName);
81
+ if (!backendProps.gates || backendProps.gates.length === 0) {
82
+ return { gate_errors: [] };
83
+ }
136
84
  const gates = backendProps.gates;
137
85
  const gateErrors = {};
138
86
  for (let gate of gates) {
@@ -140,7 +88,7 @@ class IBMCloudClient {
140
88
  // check if gate is not present
141
89
  if (gateErrors[gateName] === undefined) {
142
90
  gateErrors[gateName] = {
143
- name: gate.name,
91
+ name: gate.gate,
144
92
  num_qubits: gate.qubits.length,
145
93
  lowest: 1e6,
146
94
  highest: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ConfigManager } from '@qbraid-core/base';
2
+ type IBMConfigData = Record<string, Record<string, string | boolean>>;
3
+ export declare const DEFAULT_IBM_CONFIG_PATH: string;
4
+ declare class IBMConfigManager extends ConfigManager<IBMConfigData> {
5
+ private bearerToken;
6
+ constructor(filePath?: string);
7
+ protected parseConfig(content: string): IBMConfigData;
8
+ protected stringifyConfig(config: IBMConfigData): string;
9
+ protected getDefaultConfig(): IBMConfigData;
10
+ getApiKey(): string;
11
+ setApiKey(apiKey: string): void;
12
+ getServiceCRN(): string;
13
+ setServiceCRN(crn: string): void;
14
+ getBearerToken(): string;
15
+ setBearerToken(token: string): void;
16
+ }
17
+ export { IBMConfigManager };
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // Copyright (c) 2025, qBraid Development Team
3
+ // All rights reserved.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.IBMConfigManager = exports.DEFAULT_IBM_CONFIG_PATH = void 0;
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const base_1 = require("@qbraid-core/base");
42
+ exports.DEFAULT_IBM_CONFIG_PATH = path.join(os.homedir(), '.qiskit', 'qiskit-ibm.json');
43
+ class IBMConfigManager extends base_1.ConfigManager {
44
+ // this field is not used in the config file, but is an option which can be used
45
+ // to authenticate with the IBM Quantum API. Needed if user provides it separately
46
+ bearerToken = '';
47
+ constructor(filePath) {
48
+ super(filePath ? filePath : exports.DEFAULT_IBM_CONFIG_PATH);
49
+ }
50
+ parseConfig(content) {
51
+ return JSON.parse(content);
52
+ }
53
+ stringifyConfig(config) {
54
+ return JSON.stringify(config);
55
+ }
56
+ getDefaultConfig() {
57
+ return {
58
+ 'default-ibm-cloud': {
59
+ channel: 'ibm_cloud',
60
+ // Loading account from environment variables
61
+ // Ref : https://github.com/Qiskit/qiskit-ibm-runtime/tree/main?tab=readme-ov-file#loading-account-from-environment-variables
62
+ instance: process.env.QISKIT_IBM_INSTANCE ?? '',
63
+ token: process.env.QISKIT_IBM_TOKEN ?? '',
64
+ private_endpoint: false,
65
+ url: 'https://cloud.ibm.com',
66
+ },
67
+ };
68
+ }
69
+ getApiKey() {
70
+ return this.config['default-ibm-cloud'].token;
71
+ }
72
+ setApiKey(apiKey) {
73
+ this.config['default-ibm-cloud'].token = apiKey;
74
+ }
75
+ getServiceCRN() {
76
+ return this.config['default-ibm-cloud'].instance;
77
+ }
78
+ setServiceCRN(crn) {
79
+ this.config['default-ibm-cloud'].instance = crn;
80
+ }
81
+ getBearerToken() {
82
+ return this.bearerToken;
83
+ }
84
+ setBearerToken(token) {
85
+ this.bearerToken = token;
86
+ }
87
+ }
88
+ exports.IBMConfigManager = IBMConfigManager;
89
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,uCAAyB;AACzB,2CAA6B;AAE7B,4CAAkD;AAIrC,QAAA,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE7F,MAAM,gBAAiB,SAAQ,oBAA4B;IACzD,gFAAgF;IAChF,kFAAkF;IAC1E,WAAW,GAAW,EAAE,CAAC;IAEjC,YAAY,QAAiB;QAC3B,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAAuB,CAAC,CAAC;IACvD,CAAC;IAES,WAAW,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAES,eAAe,CAAC,MAAqB;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,gBAAgB;QACxB,OAAO;YACL,mBAAmB,EAAE;gBACnB,OAAO,EAAE,WAAW;gBACpB,6CAA6C;gBAC7C,6HAA6H;gBAC7H,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;gBAC/C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;gBACzC,gBAAgB,EAAE,KAAK;gBACvB,GAAG,EAAE,uBAAuB;aAC7B;SACF,CAAC;IACJ,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAe,CAAC;IAC1D,CAAC;IAEM,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC;IAClD,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAkB,CAAC;IAC7D,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IAClD,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,cAAc,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAEQ,4CAAgB"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@qbraid-core/ibm-cloud",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
- "description": "Functionality for interacting with Qiskit Runtime services on qBraid Cloud.",
6
+ "description": "Client for interacting with IBM's Qiskit Runtime Service via the IBM Cloud API.",
7
7
  "author": "qBraid Development Team",
8
8
  "license": "Proprietary",
9
9
  "files": [
@@ -13,14 +13,15 @@
13
13
  "qbraid",
14
14
  "qbraid-core",
15
15
  "qbraid-core-js",
16
- "qbraid ibm",
17
16
  "qbraid cloud",
18
- "qbraid api",
19
- "qbraid apis",
17
+ "ibm",
18
+ "ibm cloud",
19
+ "ibm quantum",
20
+ "qiskit",
21
+ "qiskit runtime",
20
22
  "cloud",
21
23
  "quantum",
22
- "quantum computing",
23
- "ibm"
24
+ "quantum computing"
24
25
  ],
25
26
  "repository": {
26
27
  "type": "git",
@@ -30,11 +31,7 @@
30
31
  "homepage": "https://qbraid.github.io/qbraid-core-js/modules/ibm-cloud.html",
31
32
  "dependencies": {
32
33
  "axios": "^1.8.2",
33
- "fs": "^0.0.1-security",
34
- "ini": "^5.0.0"
35
- },
36
- "devDependencies": {
37
- "@types/ini": "^4.1.1"
34
+ "@qbraid-core/base": "0.10.0"
38
35
  },
39
36
  "scripts": {
40
37
  "clean": "rimraf dist tsconfig.tsbuildinfo src/*.js",