@b10cks/client 0.10.1 → 0.10.2
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/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
package/dist/index.d.ts
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n B10cksApiClientOptions,\n IBBaseQueryParams,\n IBCollectionResponse,\n IBMeta,\n IBResponse,\n} from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint =\n | 'blocks'\n | 'contents'\n | `contents/${string}`\n | `datasources/${string}/entries`\n | 'datasources'\n | 'spaces/me'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * as types from './types'\nexport type { B10cksApiClientOptions, IBBlock, IBContent, IBResponse } from './types'\n\nlet rv: string | number = 0\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, url: URL) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n this.fetchClient = options.fetchClient\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n this.vid = url.searchParams.get('b10cks_vid') || options.version || 'published'\n this.setRv(url.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n ...params,\n rv: this.getRv(),\n token: this.token,\n })\n\n const response = (await this.fetchClient(url)) as unknown as IBResponse<T>\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n return response as T\n }\n\n async getAll<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T[]> {\n const response = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(endpoint, {\n ...params,\n page: 1,\n })\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n if (!response.meta || response.meta.last_page <= 1) {\n return 'data' in response ? response.data : (response as unknown as T[])\n }\n\n const pageRequests = Array.from({ length: response.meta.last_page }, (_, i) =>\n this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 1 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return allResponses.flatMap((r) => r.data)\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n}\n"],"names":["rv","ApiClient","options","url","endpoint","params","response","pageRequests","_","i","r","value","key"],"mappings":"mLAyBA,IAAIA,EAAsB,EAEnB,MAAMC,CAAU,CACJ,QACA,MACA,IACA,YACA,QACA,QAEjB,YAAYC,EAAiCC,EAAU,CACrD,KAAK,QAAUD,EAAQ,QAAQ,SAAS,GAAG,EAAIA,EAAQ,QAAQ,MAAM,EAAG,EAAE,EAAIA,EAAQ,QACtF,KAAK,MAAQA,EAAQ,MACrB,KAAK,YAAcA,EAAQ,YAC3B,KAAK,QAAUA,EAAQ,MACvB,KAAK,QAAUA,EAAQ,MAEvB,KAAK,IAAMC,EAAI,aAAa,IAAI,YAAY,GAAKD,EAAQ,SAAW,YACpE,KAAK,MAAMC,EAAI,aAAa,IAAI,WAAW,GAAKD,EAAQ,IAAMF,CAAE,CAClE,CAEA,MAAM,IAAOI,EAAoBC,EAA2C,GAAgB,CAC1F,MAAMF,EAAM,KAAK,SAASC,EAAU,CAClC,IAAK,KAAK,IACV,GAAGC,EACH,GAAI,KAAK,MAAA,EACT,MAAO,KAAK,KAAA,CACb,EAEKC,EAAY,MAAM,KAAK,YAAYH,CAAG,EAC5C,OAAIG,EAAS,IACX,KAAK,MAAMA,EAAS,EAAE,EAGjBA,CACT,CAEA,MAAM,OAAUF,EAAoBC,EAA2C,GAAkB,CAC/F,MAAMC,EAAW,MAAM,KAAK,IAAiDF,EAAU,CACrF,GAAGC,EACH,KAAM,CAAA,CACP,EAKD,GAJIC,EAAS,IACX,KAAK,MAAMA,EAAS,EAAE,EAGpB,CAACA,EAAS,MAAQA,EAAS,KAAK,WAAa,EAC/C,MAAO,SAAUA,EAAWA,EAAS,KAAQA,EAG/C,MAAMC,EAAe,MAAM,KAAK,CAAE,OAAQD,EAAS,KAAK,SAAA,EAAa,CAACE,EAAGC,IACvE,KAAK,IAA6BL,EAAU,CAAE,GAAGC,EAAQ,KAAMI,EAAI,CAAA,CAAG,CAAA,EAKxE,OAFqB,MAAM,QAAQ,IAAIF,CAAY,GAE/B,QAASG,GAAMA,EAAE,IAAI,CAC3C,CAEA,MAAMC,EAAwB,CACxB,KAAK,QACP,KAAK,QAAQA,CAAK,EAElBX,EAAKW,CAET,CAEA,OAAQ,CACN,OAAI,KAAK,QACA,KAAK,QAAA,EAEPX,CACT,CAEQ,SAASI,EAAkBC,EAAyC,CAC1E,MAAMF,EAAM,IAAI,IAAI,GAAG,KAAK,OAAO,OAAOC,CAAQ,EAAE,EAEpD,cAAO,QAAQC,CAAM,EAAE,QAAQ,CAAC,CAACO,EAAKD,CAAK,IAAM,CACpBA,GAAU,MACnCR,EAAI,aAAa,OAAOS,EAAK,OAAOD,CAAK,CAAC,CAE9C,CAAC,EAEMR,EAAI,SAAA,CACb,CACF"}
|
package/dist/index.mjs
CHANGED
|
@@ -22,7 +22,10 @@ class c {
|
|
|
22
22
|
return r.rv && this.setRv(r.rv), r;
|
|
23
23
|
}
|
|
24
24
|
async getAll(t, s = {}) {
|
|
25
|
-
const e = await this.get(t, {
|
|
25
|
+
const e = await this.get(t, {
|
|
26
|
+
...s,
|
|
27
|
+
page: 1
|
|
28
|
+
});
|
|
26
29
|
if (e.rv && this.setRv(e.rv), !e.meta || e.meta.last_page <= 1)
|
|
27
30
|
return "data" in e ? e.data : e;
|
|
28
31
|
const r = Array.from(
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {\n B10cksApiClientOptions,\n IBBaseQueryParams,\n IBCollectionResponse,\n IBMeta,\n IBResponse,\n} from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint =\n | 'blocks'\n | 'contents'\n | `contents/${string}`\n | `datasources/${string}/entries`\n | 'datasources'\n | 'spaces/me'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * as types from './types'\nexport type { B10cksApiClientOptions, IBBlock, IBContent, IBResponse } from './types'\n\nlet rv: string | number = 0\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, url: URL) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n this.fetchClient = options.fetchClient\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n this.vid = url.searchParams.get('b10cks_vid') || options.version || 'published'\n this.setRv(url.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n ...params,\n rv: this.getRv(),\n token: this.token,\n })\n\n const response = (await this.fetchClient(url)) as unknown as IBResponse<T>\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n return response as T\n }\n\n async getAll<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T[]> {\n const response = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(endpoint, {\n ...params,\n page: 1,\n })\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n if (!response.meta || response.meta.last_page <= 1) {\n return 'data' in response ? response.data : (response as unknown as T[])\n }\n\n const pageRequests = Array.from({ length: response.meta.last_page }, (_, i) =>\n this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 1 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return allResponses.flatMap((r) => r.data)\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n}\n"],"names":["rv","ApiClient","options","url","endpoint","params","response","pageRequests","_","i","r","value","key"],"mappings":";;;AAyBA,IAAIA,IAAsB;AAEnB,MAAMC,EAAU;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,YAAYC,GAAiCC,GAAU;AACrD,SAAK,UAAUD,EAAQ,QAAQ,SAAS,GAAG,IAAIA,EAAQ,QAAQ,MAAM,GAAG,EAAE,IAAIA,EAAQ,SACtF,KAAK,QAAQA,EAAQ,OACrB,KAAK,cAAcA,EAAQ,aAC3B,KAAK,UAAUA,EAAQ,OACvB,KAAK,UAAUA,EAAQ,OAEvB,KAAK,MAAMC,EAAI,aAAa,IAAI,YAAY,KAAKD,EAAQ,WAAW,aACpE,KAAK,MAAMC,EAAI,aAAa,IAAI,WAAW,KAAKD,EAAQ,MAAMF,CAAE;AAAA,EAClE;AAAA,EAEA,MAAM,IAAOI,GAAoBC,IAA2C,IAAgB;AAC1F,UAAMF,IAAM,KAAK,SAASC,GAAU;AAAA,MAClC,KAAK,KAAK;AAAA,MACV,GAAGC;AAAA,MACH,IAAI,KAAK,MAAA;AAAA,MACT,OAAO,KAAK;AAAA,IAAA,CACb,GAEKC,IAAY,MAAM,KAAK,YAAYH,CAAG;AAC5C,WAAIG,EAAS,MACX,KAAK,MAAMA,EAAS,EAAE,GAGjBA;AAAA,EACT;AAAA,EAEA,MAAM,OAAUF,GAAoBC,IAA2C,IAAkB;AAC/F,UAAMC,IAAW,MAAM,KAAK,IAAiDF,GAAU;AAAA,MACrF,GAAGC;AAAA,MACH,MAAM;AAAA,IAAA,CACP;AAKD,QAJIC,EAAS,MACX,KAAK,MAAMA,EAAS,EAAE,GAGpB,CAACA,EAAS,QAAQA,EAAS,KAAK,aAAa;AAC/C,aAAO,UAAUA,IAAWA,EAAS,OAAQA;AAG/C,UAAMC,IAAe,MAAM;AAAA,MAAK,EAAE,QAAQD,EAAS,KAAK,UAAA;AAAA,MAAa,CAACE,GAAGC,MACvE,KAAK,IAA6BL,GAAU,EAAE,GAAGC,GAAQ,MAAMI,IAAI,EAAA,CAAG;AAAA,IAAA;AAKxE,YAFqB,MAAM,QAAQ,IAAIF,CAAY,GAE/B,QAAQ,CAACG,MAAMA,EAAE,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAMC,GAAwB;AAC5B,IAAI,KAAK,UACP,KAAK,QAAQA,CAAK,IAElBX,IAAKW;AAAA,EAET;AAAA,EAEA,QAAQ;AACN,WAAI,KAAK,UACA,KAAK,QAAA,IAEPX;AAAA,EACT;AAAA,EAEQ,SAASI,GAAkBC,GAAyC;AAC1E,UAAMF,IAAM,IAAI,IAAI,GAAG,KAAK,OAAO,OAAOC,CAAQ,EAAE;AAEpD,kBAAO,QAAQC,CAAM,EAAE,QAAQ,CAAC,CAACO,GAAKD,CAAK,MAAM;AAC/C,MAA2BA,KAAU,QACnCR,EAAI,aAAa,OAAOS,GAAK,OAAOD,CAAK,CAAC;AAAA,IAE9C,CAAC,GAEMR,EAAI,SAAA;AAAA,EACb;AACF;"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b10cks/client",
|
|
3
|
+
"version": "0.10.2",
|
|
4
|
+
"description": "Core b10cks API client",
|
|
3
5
|
"license": "MIT",
|
|
4
|
-
"version": "0.10.1",
|
|
5
6
|
"author": "Michael Wallner @ Coder's Cantina",
|
|
6
|
-
"description": "Core b10cks API client",
|
|
7
|
-
"type": "module",
|
|
8
7
|
"repository": {
|
|
9
8
|
"type": "git",
|
|
10
9
|
"url": "https://github.com/b10cks/sdk.git",
|
|
11
10
|
"directory": "packages/client"
|
|
12
11
|
},
|
|
12
|
+
"source": "src/index.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"type": "module",
|
|
13
17
|
"sideEffects": false,
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"module": "./dist/index.mjs",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
14
21
|
"exports": {
|
|
15
22
|
".": {
|
|
16
23
|
"types": "./dist/index.d.ts",
|
|
@@ -18,13 +25,9 @@
|
|
|
18
25
|
"require": "./dist/index.js"
|
|
19
26
|
}
|
|
20
27
|
},
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"source": "src/index.ts",
|
|
25
|
-
"files": [
|
|
26
|
-
"dist"
|
|
27
|
-
],
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
28
31
|
"devDependencies": {
|
|
29
32
|
"chalk": "^5.6.2",
|
|
30
33
|
"vite": "^7.2.4",
|
|
@@ -37,9 +40,6 @@
|
|
|
37
40
|
"main"
|
|
38
41
|
]
|
|
39
42
|
},
|
|
40
|
-
"publishConfig": {
|
|
41
|
-
"access": "public"
|
|
42
|
-
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "vite build",
|
|
45
45
|
"dev": "vite build --watch",
|