@functional-systems/lambdadb 0.3.0-dev → 0.3.0-dev.1

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.
@@ -10,16 +10,37 @@
10
10
  * await collection.docs.upsert({ docs: [{ id: "1", text: "hello" }] });
11
11
  */
12
12
  import { LambdaDBCore } from "./core.js";
13
+ import type { SDKOptions } from "./lib/config.js";
13
14
  import type { RequestOptions } from "./lib/sdks.js";
14
15
  import type * as operations from "./models/operations/index.js";
15
16
  import type * as models from "./models/index.js";
16
17
  export type { RequestOptions };
17
18
  export type { operations, models };
19
+ /** Default base URL for the LambdaDB API. */
20
+ export declare const DEFAULT_BASE_URL = "https://api.lambdadb.ai";
21
+ /** Default project name when not specified. */
22
+ export declare const DEFAULT_PROJECT_NAME = "playground";
23
+ /**
24
+ * Options for LambdaDBClient. Supports baseUrl + projectName (recommended) or
25
+ * legacy projectHost / serverURL. When neither serverURL nor projectHost is set,
26
+ * the base URL is built as `${baseUrl}/projects/${projectName}`.
27
+ */
28
+ export type LambdaDBClientOptions = SDKOptions & {
29
+ /**
30
+ * API base URL (e.g. https://api.lambdadb.ai). Default: "https://api.lambdadb.ai"
31
+ */
32
+ baseUrl?: string;
33
+ /**
34
+ * Project name (path segment under /projects/). Default: "playground"
35
+ */
36
+ projectName?: string;
37
+ };
18
38
  /**
19
39
  * Client with collection-scoped API. Prefer this over the legacy
20
40
  * `LambdaDB` when you want to avoid passing collectionName on every call.
21
41
  */
22
42
  export declare class LambdaDBClient extends LambdaDBCore {
43
+ constructor(options?: LambdaDBClientOptions);
23
44
  /**
24
45
  * Get a handle for a specific collection. All methods on the handle
25
46
  * use this collection name; you do not pass it again.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAczC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAGjD,YAAY,EAAE,cAAc,EAAE,CAAC;AAG/B,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAEnC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C;;;OAGG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB;IAIpD;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc;IAI9C;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,uBAAuB,EAC3C,OAAO,CAAC,EAAE,cAAc;CAI3B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;gBADd,MAAM,EAAE,YAAY,EAC5B,cAAc,EAAE,MAAM;IAGjC;;OAEG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc;IAMlC;;OAEG;IACG,MAAM,CACV,WAAW,EAAE,UAAU,CAAC,2BAA2B,EACnD,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc;IAUrC;;OAEG;IACG,KAAK,CACT,WAAW,EAAE,UAAU,CAAC,0BAA0B,EAClD,OAAO,CAAC,EAAE,cAAc;IAc1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAwD;CACtF;AAED;;GAEG;AACH,cAAM,cAAc;IAEhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM;IAGzC;;OAEG;IACG,IAAI,CACR,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc;IAW1B;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,KAAK,CACT,IAAI,EAAE,UAAU,CAAC,oBAAoB,EACrC,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc;IAU5C;;OAEG;IACG,UAAU,CACd,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;CAYnC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAclD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAGjD,YAAY,EAAE,cAAc,EAAE,CAAC;AAG/B,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAEnC,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAyBF;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,qBAAqB;IAI3C;;;OAGG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB;IAIpD;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc;IAI9C;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,uBAAuB,EAC3C,OAAO,CAAC,EAAE,cAAc;CAI3B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;gBADd,MAAM,EAAE,YAAY,EAC5B,cAAc,EAAE,MAAM;IAGjC;;OAEG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc;IAMlC;;OAEG;IACG,MAAM,CACV,WAAW,EAAE,UAAU,CAAC,2BAA2B,EACnD,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc;IAUrC;;OAEG;IACG,KAAK,CACT,WAAW,EAAE,UAAU,CAAC,0BAA0B,EAClD,OAAO,CAAC,EAAE,cAAc;IAc1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAwD;CACtF;AAED;;GAEG;AACH,cAAM,cAAc;IAEhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM;IAGzC;;OAEG;IACG,IAAI,CACR,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc;IAW1B;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,KAAK,CACT,IAAI,EAAE,UAAU,CAAC,oBAAoB,EACrC,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc;IAU5C;;OAEG;IACG,UAAU,CACd,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;CAYnC"}
@@ -11,7 +11,7 @@
11
11
  * await collection.docs.upsert({ docs: [{ id: "1", text: "hello" }] });
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.CollectionHandle = exports.LambdaDBClient = void 0;
14
+ exports.CollectionHandle = exports.LambdaDBClient = exports.DEFAULT_PROJECT_NAME = exports.DEFAULT_BASE_URL = void 0;
15
15
  const core_js_1 = require("./core.js");
16
16
  const collectionsCreate_js_1 = require("./funcs/collectionsCreate.js");
17
17
  const collectionsDelete_js_1 = require("./funcs/collectionsDelete.js");
@@ -27,11 +27,30 @@ const collectionsDocsListDocs_js_1 = require("./funcs/collectionsDocsListDocs.js
27
27
  const collectionsDocsUpdate_js_1 = require("./funcs/collectionsDocsUpdate.js");
28
28
  const collectionsDocsUpsert_js_1 = require("./funcs/collectionsDocsUpsert.js");
29
29
  const fp_js_1 = require("./types/fp.js");
30
+ /** Default base URL for the LambdaDB API. */
31
+ exports.DEFAULT_BASE_URL = "https://api.lambdadb.ai";
32
+ /** Default project name when not specified. */
33
+ exports.DEFAULT_PROJECT_NAME = "playground";
34
+ function normalizeClientOptions(options = {}) {
35
+ const { baseUrl = exports.DEFAULT_BASE_URL, projectName = exports.DEFAULT_PROJECT_NAME, serverURL, projectHost, ...rest } = options;
36
+ if (serverURL !== undefined && serverURL !== null) {
37
+ return { ...rest, serverURL };
38
+ }
39
+ if (projectHost !== undefined && projectHost !== null) {
40
+ return { ...rest, projectHost };
41
+ }
42
+ const base = baseUrl.replace(/\/+$/, "");
43
+ const serverURLFromBase = `${base}/projects/${encodeURIComponent(projectName)}`;
44
+ return { ...rest, serverURL: serverURLFromBase };
45
+ }
30
46
  /**
31
47
  * Client with collection-scoped API. Prefer this over the legacy
32
48
  * `LambdaDB` when you want to avoid passing collectionName on every call.
33
49
  */
34
50
  class LambdaDBClient extends core_js_1.LambdaDBCore {
51
+ constructor(options) {
52
+ super(normalizeClientOptions(options));
53
+ }
35
54
  /**
36
55
  * Get a handle for a specific collection. All methods on the handle
37
56
  * use this collection name; you do not pass it again.
@@ -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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"}
@@ -4,5 +4,5 @@ export { HTTPClient } from "./lib/http.js";
4
4
  export type { Fetcher, HTTPClientOptions } from "./lib/http.js";
5
5
  export * from "./sdk/sdk.js";
6
6
  /** Collection-scoped client (recommended). See docs/REFACTORING_PROPOSAL.md */
7
- export { LambdaDBClient, CollectionHandle, type RequestOptions as ClientRequestOptions, } from "./client.js";
7
+ export { LambdaDBClient, CollectionHandle, DEFAULT_BASE_URL, DEFAULT_PROJECT_NAME, type RequestOptions as ClientRequestOptions, type LambdaDBClientOptions, } from "./client.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,cAAc,IAAI,oBAAoB,GAC5C,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,cAAc,IAAI,oBAAoB,EAC3C,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC"}
@@ -39,7 +39,7 @@ var __importStar = (this && this.__importStar) || (function () {
39
39
  };
40
40
  })();
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.CollectionHandle = exports.LambdaDBClient = exports.HTTPClient = exports.files = void 0;
42
+ exports.DEFAULT_PROJECT_NAME = exports.DEFAULT_BASE_URL = exports.CollectionHandle = exports.LambdaDBClient = exports.HTTPClient = exports.files = void 0;
43
43
  __exportStar(require("./lib/config.js"), exports);
44
44
  exports.files = __importStar(require("./lib/files.js"));
45
45
  var http_js_1 = require("./lib/http.js");
@@ -49,4 +49,6 @@ __exportStar(require("./sdk/sdk.js"), exports);
49
49
  var client_js_1 = require("./client.js");
50
50
  Object.defineProperty(exports, "LambdaDBClient", { enumerable: true, get: function () { return client_js_1.LambdaDBClient; } });
51
51
  Object.defineProperty(exports, "CollectionHandle", { enumerable: true, get: function () { return client_js_1.CollectionHandle; } });
52
+ Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return client_js_1.DEFAULT_BASE_URL; } });
53
+ Object.defineProperty(exports, "DEFAULT_PROJECT_NAME", { enumerable: true, get: function () { return client_js_1.DEFAULT_PROJECT_NAME; } });
52
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,wDAAwC;AACxC,yCAA2C;AAAlC,qGAAA,UAAU,OAAA;AAEnB,+CAA6B;AAE7B,+EAA+E;AAC/E,yCAIqB;AAHnB,2GAAA,cAAc,OAAA;AACd,6GAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,wDAAwC;AACxC,yCAA2C;AAAlC,qGAAA,UAAU,OAAA;AAEnB,+CAA6B;AAE7B,+EAA+E;AAC/E,yCAOqB;AANnB,2GAAA,cAAc,OAAA;AACd,6GAAA,gBAAgB,OAAA;AAChB,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA"}
@@ -10,16 +10,37 @@
10
10
  * await collection.docs.upsert({ docs: [{ id: "1", text: "hello" }] });
11
11
  */
12
12
  import { LambdaDBCore } from "./core.js";
13
+ import type { SDKOptions } from "./lib/config.js";
13
14
  import type { RequestOptions } from "./lib/sdks.js";
14
15
  import type * as operations from "./models/operations/index.js";
15
16
  import type * as models from "./models/index.js";
16
17
  export type { RequestOptions };
17
18
  export type { operations, models };
19
+ /** Default base URL for the LambdaDB API. */
20
+ export declare const DEFAULT_BASE_URL = "https://api.lambdadb.ai";
21
+ /** Default project name when not specified. */
22
+ export declare const DEFAULT_PROJECT_NAME = "playground";
23
+ /**
24
+ * Options for LambdaDBClient. Supports baseUrl + projectName (recommended) or
25
+ * legacy projectHost / serverURL. When neither serverURL nor projectHost is set,
26
+ * the base URL is built as `${baseUrl}/projects/${projectName}`.
27
+ */
28
+ export type LambdaDBClientOptions = SDKOptions & {
29
+ /**
30
+ * API base URL (e.g. https://api.lambdadb.ai). Default: "https://api.lambdadb.ai"
31
+ */
32
+ baseUrl?: string;
33
+ /**
34
+ * Project name (path segment under /projects/). Default: "playground"
35
+ */
36
+ projectName?: string;
37
+ };
18
38
  /**
19
39
  * Client with collection-scoped API. Prefer this over the legacy
20
40
  * `LambdaDB` when you want to avoid passing collectionName on every call.
21
41
  */
22
42
  export declare class LambdaDBClient extends LambdaDBCore {
43
+ constructor(options?: LambdaDBClientOptions);
23
44
  /**
24
45
  * Get a handle for a specific collection. All methods on the handle
25
46
  * use this collection name; you do not pass it again.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAczC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAGjD,YAAY,EAAE,cAAc,EAAE,CAAC;AAG/B,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAEnC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C;;;OAGG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB;IAIpD;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc;IAI9C;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,uBAAuB,EAC3C,OAAO,CAAC,EAAE,cAAc;CAI3B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;gBADd,MAAM,EAAE,YAAY,EAC5B,cAAc,EAAE,MAAM;IAGjC;;OAEG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc;IAMlC;;OAEG;IACG,MAAM,CACV,WAAW,EAAE,UAAU,CAAC,2BAA2B,EACnD,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc;IAUrC;;OAEG;IACG,KAAK,CACT,WAAW,EAAE,UAAU,CAAC,0BAA0B,EAClD,OAAO,CAAC,EAAE,cAAc;IAc1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAwD;CACtF;AAED;;GAEG;AACH,cAAM,cAAc;IAEhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM;IAGzC;;OAEG;IACG,IAAI,CACR,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc;IAW1B;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAalC;;OAEG;IACG,KAAK,CACT,IAAI,EAAE,UAAU,CAAC,oBAAoB,EACrC,OAAO,CAAC,EAAE,cAAc;IAc1B;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc;IAU5C;;OAEG;IACG,UAAU,CACd,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;CAYnC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -24,11 +24,30 @@ import { collectionsDocsListDocs } from "./funcs/collectionsDocsListDocs.js";
24
24
  import { collectionsDocsUpdate } from "./funcs/collectionsDocsUpdate.js";
25
25
  import { collectionsDocsUpsert } from "./funcs/collectionsDocsUpsert.js";
26
26
  import { unwrapAsync } from "./types/fp.js";
27
+ /** Default base URL for the LambdaDB API. */
28
+ export const DEFAULT_BASE_URL = "https://api.lambdadb.ai";
29
+ /** Default project name when not specified. */
30
+ export const DEFAULT_PROJECT_NAME = "playground";
31
+ function normalizeClientOptions(options = {}) {
32
+ const { baseUrl = DEFAULT_BASE_URL, projectName = DEFAULT_PROJECT_NAME, serverURL, projectHost, ...rest } = options;
33
+ if (serverURL !== undefined && serverURL !== null) {
34
+ return { ...rest, serverURL };
35
+ }
36
+ if (projectHost !== undefined && projectHost !== null) {
37
+ return { ...rest, projectHost };
38
+ }
39
+ const base = baseUrl.replace(/\/+$/, "");
40
+ const serverURLFromBase = `${base}/projects/${encodeURIComponent(projectName)}`;
41
+ return { ...rest, serverURL: serverURLFromBase };
42
+ }
27
43
  /**
28
44
  * Client with collection-scoped API. Prefer this over the legacy
29
45
  * `LambdaDB` when you want to avoid passing collectionName on every call.
30
46
  */
31
47
  export class LambdaDBClient extends LambdaDBCore {
48
+ constructor(options) {
49
+ super(normalizeClientOptions(options));
50
+ }
32
51
  /**
33
52
  * Get a handle for a specific collection. All methods on the handle
34
53
  * use this collection name; you do not pass it again.
@@ -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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"}
@@ -4,5 +4,5 @@ export { HTTPClient } from "./lib/http.js";
4
4
  export type { Fetcher, HTTPClientOptions } from "./lib/http.js";
5
5
  export * from "./sdk/sdk.js";
6
6
  /** Collection-scoped client (recommended). See docs/REFACTORING_PROPOSAL.md */
7
- export { LambdaDBClient, CollectionHandle, type RequestOptions as ClientRequestOptions, } from "./client.js";
7
+ export { LambdaDBClient, CollectionHandle, DEFAULT_BASE_URL, DEFAULT_PROJECT_NAME, type RequestOptions as ClientRequestOptions, type LambdaDBClientOptions, } from "./client.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,cAAc,IAAI,oBAAoB,GAC5C,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,cAAc,IAAI,oBAAoB,EAC3C,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC"}
package/dist/esm/index.js CHANGED
@@ -6,5 +6,5 @@ export * as files from "./lib/files.js";
6
6
  export { HTTPClient } from "./lib/http.js";
7
7
  export * from "./sdk/sdk.js";
8
8
  /** Collection-scoped client (recommended). See docs/REFACTORING_PROPOSAL.md */
9
- export { LambdaDBClient, CollectionHandle, } from "./client.js";
9
+ export { LambdaDBClient, CollectionHandle, DEFAULT_BASE_URL, DEFAULT_PROJECT_NAME, } from "./client.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,GAEjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functional-systems/lambdadb",
3
- "version": "0.3.0-dev",
3
+ "version": "0.3.0-dev.1",
4
4
  "author": "Functional Systems, Inc.",
5
5
  "homepage": "https://github.com/lambdadb/lambdadb-typescript-client#readme",
6
6
  "license": "Apache-2.0",
package/src/client.ts CHANGED
@@ -11,6 +11,7 @@
11
11
  */
12
12
 
13
13
  import { LambdaDBCore } from "./core.js";
14
+ import type { SDKOptions } from "./lib/config.js";
14
15
  import { collectionsCreate } from "./funcs/collectionsCreate.js";
15
16
  import { collectionsDelete } from "./funcs/collectionsDelete.js";
16
17
  import { collectionsGet } from "./funcs/collectionsGet.js";
@@ -34,11 +35,59 @@ export type { RequestOptions };
34
35
  // Re-export common types for facade users
35
36
  export type { operations, models };
36
37
 
38
+ /** Default base URL for the LambdaDB API. */
39
+ export const DEFAULT_BASE_URL = "https://api.lambdadb.ai";
40
+ /** Default project name when not specified. */
41
+ export const DEFAULT_PROJECT_NAME = "playground";
42
+
43
+ /**
44
+ * Options for LambdaDBClient. Supports baseUrl + projectName (recommended) or
45
+ * legacy projectHost / serverURL. When neither serverURL nor projectHost is set,
46
+ * the base URL is built as `${baseUrl}/projects/${projectName}`.
47
+ */
48
+ export type LambdaDBClientOptions = SDKOptions & {
49
+ /**
50
+ * API base URL (e.g. https://api.lambdadb.ai). Default: "https://api.lambdadb.ai"
51
+ */
52
+ baseUrl?: string;
53
+ /**
54
+ * Project name (path segment under /projects/). Default: "playground"
55
+ */
56
+ projectName?: string;
57
+ };
58
+
59
+ function normalizeClientOptions(
60
+ options: LambdaDBClientOptions = {},
61
+ ): SDKOptions {
62
+ const {
63
+ baseUrl = DEFAULT_BASE_URL,
64
+ projectName = DEFAULT_PROJECT_NAME,
65
+ serverURL,
66
+ projectHost,
67
+ ...rest
68
+ } = options;
69
+
70
+ if (serverURL !== undefined && serverURL !== null) {
71
+ return { ...rest, serverURL };
72
+ }
73
+ if (projectHost !== undefined && projectHost !== null) {
74
+ return { ...rest, projectHost };
75
+ }
76
+
77
+ const base = baseUrl.replace(/\/+$/, "");
78
+ const serverURLFromBase = `${base}/projects/${encodeURIComponent(projectName)}`;
79
+ return { ...rest, serverURL: serverURLFromBase };
80
+ }
81
+
37
82
  /**
38
83
  * Client with collection-scoped API. Prefer this over the legacy
39
84
  * `LambdaDB` when you want to avoid passing collectionName on every call.
40
85
  */
41
86
  export class LambdaDBClient extends LambdaDBCore {
87
+ constructor(options?: LambdaDBClientOptions) {
88
+ super(normalizeClientOptions(options));
89
+ }
90
+
42
91
  /**
43
92
  * Get a handle for a specific collection. All methods on the handle
44
93
  * use this collection name; you do not pass it again.
package/src/index.ts CHANGED
@@ -12,5 +12,8 @@ export * from "./sdk/sdk.js";
12
12
  export {
13
13
  LambdaDBClient,
14
14
  CollectionHandle,
15
+ DEFAULT_BASE_URL,
16
+ DEFAULT_PROJECT_NAME,
15
17
  type RequestOptions as ClientRequestOptions,
18
+ type LambdaDBClientOptions,
16
19
  } from "./client.js";