@marginfront/sdk 0.1.2 → 0.2.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
@@ -336,7 +336,7 @@ mf verify [options]
336
336
 
337
337
  Options:
338
338
  --api-key <key> API key (mf_sk_* or mf_pk_*)
339
- --base-url <url> API base URL (default: https://api.revmax.ai/v1)
339
+ --base-url <url> API base URL (default: https://api.marginfront.com/v1)
340
340
  --debug Enable debug output
341
341
  ```
342
342
 
@@ -349,7 +349,7 @@ mf track-event [options]
349
349
 
350
350
  Options:
351
351
  --api-key <key> API key (mf_sk_*)
352
- --base-url <url> API base URL (default: https://api.revmax.ai/v1)
352
+ --base-url <url> API base URL (default: https://api.marginfront.com/v1)
353
353
  --customer-id <id> Customer external ID
354
354
  --agent-id <id> Agent UUID
355
355
  --signal <name> Signal name (e.g. CALL_MINUTES)
@@ -128,8 +128,10 @@ function parseApiError(error) {
128
128
  const err = error;
129
129
  const message = err.message || "Unknown error";
130
130
  const statusCode = err.response?.status;
131
- const responseData = err.response?.data || {};
131
+ const rawData = err.response?.data;
132
+ const responseData = rawData && typeof rawData === "object" && !Array.isArray(rawData) ? rawData : {};
132
133
  const requestId = err.config?.headers?.["X-Request-ID"] || "unknown";
134
+ const safeString = (v) => typeof v === "string" && v.length > 0 ? v : void 0;
133
135
  const metadata = {
134
136
  requestId,
135
137
  url: err.config?.url,
@@ -145,8 +147,8 @@ function parseApiError(error) {
145
147
  }
146
148
  return createErrorFromResponse(
147
149
  statusCode,
148
- responseData.message || responseData.error || message,
149
- responseData.errors,
150
+ safeString(responseData["message"]) ?? safeString(responseData["error"]) ?? message,
151
+ responseData["errors"],
150
152
  metadata
151
153
  );
152
154
  }
@@ -234,7 +236,7 @@ function validateApiKey(apiKey) {
234
236
 
235
237
  // src/utils/http.ts
236
238
  import axios from "axios";
237
- var DEFAULT_BASE_URL = "https://api-qa.costingly.com/v1";
239
+ var DEFAULT_BASE_URL = "https://api.marginfront.com/v1";
238
240
  var DEFAULT_TIMEOUT = 3e4;
239
241
  var DEFAULT_RETRIES = 0;
240
242
  var DEFAULT_RETRY_DELAY = 300;
package/dist/cli/index.js CHANGED
@@ -162,8 +162,10 @@ function parseApiError(error) {
162
162
  const err = error;
163
163
  const message = err.message || "Unknown error";
164
164
  const statusCode = err.response?.status;
165
- const responseData = err.response?.data || {};
165
+ const rawData = err.response?.data;
166
+ const responseData = rawData && typeof rawData === "object" && !Array.isArray(rawData) ? rawData : {};
166
167
  const requestId = err.config?.headers?.["X-Request-ID"] || "unknown";
168
+ const safeString = (v) => typeof v === "string" && v.length > 0 ? v : void 0;
167
169
  const metadata = {
168
170
  requestId,
169
171
  url: err.config?.url,
@@ -179,14 +181,14 @@ function parseApiError(error) {
179
181
  }
180
182
  return createErrorFromResponse(
181
183
  statusCode,
182
- responseData.message || responseData.error || message,
183
- responseData.errors,
184
+ safeString(responseData["message"]) ?? safeString(responseData["error"]) ?? message,
185
+ responseData["errors"],
184
186
  metadata
185
187
  );
186
188
  }
187
189
 
188
190
  // src/utils/http.ts
189
- var DEFAULT_BASE_URL = "https://api-qa.costingly.com/v1";
191
+ var DEFAULT_BASE_URL = "https://api.marginfront.com/v1";
190
192
  var DEFAULT_TIMEOUT = 3e4;
191
193
  var DEFAULT_RETRIES = 0;
192
194
  var DEFAULT_RETRY_DELAY = 300;
@@ -1317,7 +1319,7 @@ function loadCliEnv() {
1317
1319
 
1318
1320
  // src/cli/commands/verify.ts
1319
1321
  function verifyCommand() {
1320
- return new import_commander.Command("verify").description("Verify an API key and display organization details").option("--api-key <key>", "API key (mf_sk_* or mf_pk_*)").option("--base-url <url>", "API base URL (default: https://api.revmax.ai/v1)").option("--debug", "Enable debug output").action(async (options) => {
1322
+ return new import_commander.Command("verify").description("Verify an API key and display organization details").option("--api-key <key>", "API key (mf_sk_* or mf_pk_*)").option("--base-url <url>", "API base URL (default: https://api.marginfront.com/v1)").option("--debug", "Enable debug output").action(async (options) => {
1321
1323
  const env = loadCliEnv();
1322
1324
  const apiKey = options.apiKey ?? env["MF_API_KEY"];
1323
1325
  const baseUrl = options.baseUrl ?? env["MF_BASE_URL"];
@@ -1346,7 +1348,7 @@ function verifyCommand() {
1346
1348
  // src/cli/commands/track-event.ts
1347
1349
  var import_commander2 = require("commander");
1348
1350
  function trackEventCommand() {
1349
- return new import_commander2.Command("track-event").description("Send a usage event to the MarginFront API").option("--api-key <key>", "API key (mf_sk_*)").option("--base-url <url>", "API base URL (default: https://api.revmax.ai/v1)").option("--customer-id <id>", "Customer external ID").option("--agent-id <id>", "Agent UUID").option("--signal <name>", "Signal name (e.g. CALL_MINUTES)").option("--quantity <number>", "Quantity to record (default: 1)", "1").option("--metadata <json>", "Optional metadata as a JSON string").option("--debug", "Enable debug output").action(async (options) => {
1351
+ return new import_commander2.Command("track-event").description("Send a usage event to the MarginFront API").option("--api-key <key>", "API key (mf_sk_*)").option("--base-url <url>", "API base URL (default: https://api.marginfront.com/v1)").option("--customer-id <id>", "Customer external ID").option("--agent-id <id>", "Agent UUID").option("--signal <name>", "Signal name (e.g. CALL_MINUTES)").option("--quantity <number>", "Quantity to record (default: 1)", "1").option("--metadata <json>", "Optional metadata as a JSON string").option("--debug", "Enable debug output").action(async (options) => {
1350
1352
  const env = loadCliEnv();
1351
1353
  const apiKey = options.apiKey ?? env["MF_API_KEY"];
1352
1354
  const baseUrl = options.baseUrl ?? env["MF_BASE_URL"];
@@ -1400,7 +1402,7 @@ function trackEventCommand() {
1400
1402
  // package.json
1401
1403
  var package_default = {
1402
1404
  name: "@marginfront/sdk",
1403
- version: "0.1.2",
1405
+ version: "0.2.0",
1404
1406
  description: "Official Node.js SDK for MarginFront - usage-based billing, invoicing, and analytics",
1405
1407
  main: "dist/index.js",
1406
1408
  module: "dist/index.mjs",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  MarginFrontClient
4
- } from "../chunk-UIM2U5MX.mjs";
4
+ } from "../chunk-V74ZGXDQ.mjs";
5
5
 
6
6
  // src/cli/index.ts
7
7
  import { Command as Command3 } from "commander";
@@ -35,7 +35,7 @@ function loadCliEnv() {
35
35
 
36
36
  // src/cli/commands/verify.ts
37
37
  function verifyCommand() {
38
- return new Command("verify").description("Verify an API key and display organization details").option("--api-key <key>", "API key (mf_sk_* or mf_pk_*)").option("--base-url <url>", "API base URL (default: https://api.revmax.ai/v1)").option("--debug", "Enable debug output").action(async (options) => {
38
+ return new Command("verify").description("Verify an API key and display organization details").option("--api-key <key>", "API key (mf_sk_* or mf_pk_*)").option("--base-url <url>", "API base URL (default: https://api.marginfront.com/v1)").option("--debug", "Enable debug output").action(async (options) => {
39
39
  const env = loadCliEnv();
40
40
  const apiKey = options.apiKey ?? env["MF_API_KEY"];
41
41
  const baseUrl = options.baseUrl ?? env["MF_BASE_URL"];
@@ -64,7 +64,7 @@ function verifyCommand() {
64
64
  // src/cli/commands/track-event.ts
65
65
  import { Command as Command2 } from "commander";
66
66
  function trackEventCommand() {
67
- return new Command2("track-event").description("Send a usage event to the MarginFront API").option("--api-key <key>", "API key (mf_sk_*)").option("--base-url <url>", "API base URL (default: https://api.revmax.ai/v1)").option("--customer-id <id>", "Customer external ID").option("--agent-id <id>", "Agent UUID").option("--signal <name>", "Signal name (e.g. CALL_MINUTES)").option("--quantity <number>", "Quantity to record (default: 1)", "1").option("--metadata <json>", "Optional metadata as a JSON string").option("--debug", "Enable debug output").action(async (options) => {
67
+ return new Command2("track-event").description("Send a usage event to the MarginFront API").option("--api-key <key>", "API key (mf_sk_*)").option("--base-url <url>", "API base URL (default: https://api.marginfront.com/v1)").option("--customer-id <id>", "Customer external ID").option("--agent-id <id>", "Agent UUID").option("--signal <name>", "Signal name (e.g. CALL_MINUTES)").option("--quantity <number>", "Quantity to record (default: 1)", "1").option("--metadata <json>", "Optional metadata as a JSON string").option("--debug", "Enable debug output").action(async (options) => {
68
68
  const env = loadCliEnv();
69
69
  const apiKey = options.apiKey ?? env["MF_API_KEY"];
70
70
  const baseUrl = options.baseUrl ?? env["MF_BASE_URL"];
@@ -118,7 +118,7 @@ function trackEventCommand() {
118
118
  // package.json
119
119
  var package_default = {
120
120
  name: "@marginfront/sdk",
121
- version: "0.1.2",
121
+ version: "0.2.0",
122
122
  description: "Official Node.js SDK for MarginFront - usage-based billing, invoicing, and analytics",
123
123
  main: "dist/index.js",
124
124
  module: "dist/index.mjs",
package/dist/index.js CHANGED
@@ -184,8 +184,10 @@ function parseApiError(error) {
184
184
  const err = error;
185
185
  const message = err.message || "Unknown error";
186
186
  const statusCode = err.response?.status;
187
- const responseData = err.response?.data || {};
187
+ const rawData = err.response?.data;
188
+ const responseData = rawData && typeof rawData === "object" && !Array.isArray(rawData) ? rawData : {};
188
189
  const requestId = err.config?.headers?.["X-Request-ID"] || "unknown";
190
+ const safeString = (v) => typeof v === "string" && v.length > 0 ? v : void 0;
189
191
  const metadata = {
190
192
  requestId,
191
193
  url: err.config?.url,
@@ -201,14 +203,14 @@ function parseApiError(error) {
201
203
  }
202
204
  return createErrorFromResponse(
203
205
  statusCode,
204
- responseData.message || responseData.error || message,
205
- responseData.errors,
206
+ safeString(responseData["message"]) ?? safeString(responseData["error"]) ?? message,
207
+ responseData["errors"],
206
208
  metadata
207
209
  );
208
210
  }
209
211
 
210
212
  // src/utils/http.ts
211
- var DEFAULT_BASE_URL = "https://api-qa.costingly.com/v1";
213
+ var DEFAULT_BASE_URL = "https://api.marginfront.com/v1";
212
214
  var DEFAULT_TIMEOUT = 3e4;
213
215
  var DEFAULT_RETRIES = 0;
214
216
  var DEFAULT_RETRY_DELAY = 300;
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  isSecretKey,
18
18
  parseApiError,
19
19
  parseApiKey
20
- } from "./chunk-UIM2U5MX.mjs";
20
+ } from "./chunk-V74ZGXDQ.mjs";
21
21
  export {
22
22
  ApiError,
23
23
  AuthenticationError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marginfront/sdk",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Official Node.js SDK for MarginFront - usage-based billing, invoicing, and analytics",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",