@storyblok/api-client 0.1.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/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/error.cjs +21 -0
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.cts +19 -0
- package/dist/error.d.mts +19 -0
- package/dist/error.mjs +20 -0
- package/dist/error.mjs.map +1 -0
- package/dist/generated/datasource_entries/client.gen.cjs +10 -0
- package/dist/generated/datasource_entries/client.gen.cjs.map +1 -0
- package/dist/generated/datasource_entries/client.gen.mjs +10 -0
- package/dist/generated/datasource_entries/client.gen.mjs.map +1 -0
- package/dist/generated/datasource_entries/sdk.gen.cjs +21 -0
- package/dist/generated/datasource_entries/sdk.gen.cjs.map +1 -0
- package/dist/generated/datasource_entries/sdk.gen.mjs +21 -0
- package/dist/generated/datasource_entries/sdk.gen.mjs.map +1 -0
- package/dist/generated/datasource_entries/types.gen.d.cts +67 -0
- package/dist/generated/datasource_entries/types.gen.d.mts +67 -0
- package/dist/generated/datasources/client.gen.cjs +10 -0
- package/dist/generated/datasources/client.gen.cjs.map +1 -0
- package/dist/generated/datasources/client.gen.mjs +10 -0
- package/dist/generated/datasources/client.gen.mjs.map +1 -0
- package/dist/generated/datasources/sdk.gen.cjs +36 -0
- package/dist/generated/datasources/sdk.gen.cjs.map +1 -0
- package/dist/generated/datasources/sdk.gen.mjs +35 -0
- package/dist/generated/datasources/sdk.gen.mjs.map +1 -0
- package/dist/generated/datasources/types.gen.d.cts +109 -0
- package/dist/generated/datasources/types.gen.d.mts +109 -0
- package/dist/generated/links/client.gen.cjs +10 -0
- package/dist/generated/links/client.gen.cjs.map +1 -0
- package/dist/generated/links/client.gen.mjs +10 -0
- package/dist/generated/links/client.gen.mjs.map +1 -0
- package/dist/generated/links/sdk.gen.cjs +21 -0
- package/dist/generated/links/sdk.gen.cjs.map +1 -0
- package/dist/generated/links/sdk.gen.mjs +21 -0
- package/dist/generated/links/sdk.gen.mjs.map +1 -0
- package/dist/generated/links/types.gen.d.cts +142 -0
- package/dist/generated/links/types.gen.d.mts +142 -0
- package/dist/generated/shared/client/client.gen.cjs +215 -0
- package/dist/generated/shared/client/client.gen.cjs.map +1 -0
- package/dist/generated/shared/client/client.gen.mjs +213 -0
- package/dist/generated/shared/client/client.gen.mjs.map +1 -0
- package/dist/generated/shared/client/index.cjs +4 -0
- package/dist/generated/shared/client/index.mjs +6 -0
- package/dist/generated/shared/client/types.gen.d.cts +103 -0
- package/dist/generated/shared/client/types.gen.d.mts +103 -0
- package/dist/generated/shared/client/utils.gen.cjs +188 -0
- package/dist/generated/shared/client/utils.gen.cjs.map +1 -0
- package/dist/generated/shared/client/utils.gen.d.cts +21 -0
- package/dist/generated/shared/client/utils.gen.d.mts +21 -0
- package/dist/generated/shared/client/utils.gen.mjs +182 -0
- package/dist/generated/shared/client/utils.gen.mjs.map +1 -0
- package/dist/generated/shared/core/auth.gen.cjs +13 -0
- package/dist/generated/shared/core/auth.gen.cjs.map +1 -0
- package/dist/generated/shared/core/auth.gen.d.cts +21 -0
- package/dist/generated/shared/core/auth.gen.d.mts +21 -0
- package/dist/generated/shared/core/auth.gen.mjs +12 -0
- package/dist/generated/shared/core/auth.gen.mjs.map +1 -0
- package/dist/generated/shared/core/bodySerializer.gen.cjs +7 -0
- package/dist/generated/shared/core/bodySerializer.gen.cjs.map +1 -0
- package/dist/generated/shared/core/bodySerializer.gen.d.cts +20 -0
- package/dist/generated/shared/core/bodySerializer.gen.d.mts +20 -0
- package/dist/generated/shared/core/bodySerializer.gen.mjs +6 -0
- package/dist/generated/shared/core/bodySerializer.gen.mjs.map +1 -0
- package/dist/generated/shared/core/params.gen.cjs +11 -0
- package/dist/generated/shared/core/params.gen.cjs.map +1 -0
- package/dist/generated/shared/core/params.gen.mjs +11 -0
- package/dist/generated/shared/core/params.gen.mjs.map +1 -0
- package/dist/generated/shared/core/pathSerializer.gen.cjs +85 -0
- package/dist/generated/shared/core/pathSerializer.gen.cjs.map +1 -0
- package/dist/generated/shared/core/pathSerializer.gen.d.cts +13 -0
- package/dist/generated/shared/core/pathSerializer.gen.d.mts +13 -0
- package/dist/generated/shared/core/pathSerializer.gen.mjs +82 -0
- package/dist/generated/shared/core/pathSerializer.gen.mjs.map +1 -0
- package/dist/generated/shared/core/serverSentEvents.gen.cjs +96 -0
- package/dist/generated/shared/core/serverSentEvents.gen.cjs.map +1 -0
- package/dist/generated/shared/core/serverSentEvents.gen.d.cts +72 -0
- package/dist/generated/shared/core/serverSentEvents.gen.d.mts +72 -0
- package/dist/generated/shared/core/serverSentEvents.gen.mjs +95 -0
- package/dist/generated/shared/core/serverSentEvents.gen.mjs.map +1 -0
- package/dist/generated/shared/core/types.gen.d.cts +61 -0
- package/dist/generated/shared/core/types.gen.d.mts +61 -0
- package/dist/generated/shared/core/utils.gen.cjs +80 -0
- package/dist/generated/shared/core/utils.gen.cjs.map +1 -0
- package/dist/generated/shared/core/utils.gen.mjs +79 -0
- package/dist/generated/shared/core/utils.gen.mjs.map +1 -0
- package/dist/generated/spaces/client.gen.cjs +10 -0
- package/dist/generated/spaces/client.gen.cjs.map +1 -0
- package/dist/generated/spaces/client.gen.mjs +10 -0
- package/dist/generated/spaces/client.gen.mjs.map +1 -0
- package/dist/generated/spaces/sdk.gen.cjs +21 -0
- package/dist/generated/spaces/sdk.gen.cjs.map +1 -0
- package/dist/generated/spaces/sdk.gen.mjs +21 -0
- package/dist/generated/spaces/sdk.gen.mjs.map +1 -0
- package/dist/generated/spaces/types.gen.d.cts +34 -0
- package/dist/generated/spaces/types.gen.d.mts +34 -0
- package/dist/generated/stories/client.gen.cjs +10 -0
- package/dist/generated/stories/client.gen.cjs.map +1 -0
- package/dist/generated/stories/client.gen.mjs +10 -0
- package/dist/generated/stories/client.gen.mjs.map +1 -0
- package/dist/generated/stories/sdk.gen.cjs +36 -0
- package/dist/generated/stories/sdk.gen.cjs.map +1 -0
- package/dist/generated/stories/sdk.gen.mjs +35 -0
- package/dist/generated/stories/sdk.gen.mjs.map +1 -0
- package/dist/generated/stories/types.gen.d.cts +544 -0
- package/dist/generated/stories/types.gen.d.mts +544 -0
- package/dist/generated/tags/client.gen.cjs +10 -0
- package/dist/generated/tags/client.gen.cjs.map +1 -0
- package/dist/generated/tags/client.gen.mjs +10 -0
- package/dist/generated/tags/client.gen.mjs.map +1 -0
- package/dist/generated/tags/sdk.gen.cjs +21 -0
- package/dist/generated/tags/sdk.gen.cjs.map +1 -0
- package/dist/generated/tags/sdk.gen.mjs +21 -0
- package/dist/generated/tags/sdk.gen.mjs.map +1 -0
- package/dist/generated/tags/types.gen.d.cts +44 -0
- package/dist/generated/tags/types.gen.d.mts +44 -0
- package/dist/index.cjs +155 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +161 -0
- package/dist/index.d.mts +161 -0
- package/dist/index.mjs +150 -0
- package/dist/index.mjs.map +1 -0
- package/dist/resources/datasource-entries.cjs +22 -0
- package/dist/resources/datasource-entries.cjs.map +1 -0
- package/dist/resources/datasource-entries.mjs +22 -0
- package/dist/resources/datasource-entries.mjs.map +1 -0
- package/dist/resources/datasources.cjs +37 -0
- package/dist/resources/datasources.cjs.map +1 -0
- package/dist/resources/datasources.mjs +37 -0
- package/dist/resources/datasources.mjs.map +1 -0
- package/dist/resources/links.cjs +22 -0
- package/dist/resources/links.cjs.map +1 -0
- package/dist/resources/links.mjs +22 -0
- package/dist/resources/links.mjs.map +1 -0
- package/dist/resources/spaces.cjs +22 -0
- package/dist/resources/spaces.cjs.map +1 -0
- package/dist/resources/spaces.mjs +22 -0
- package/dist/resources/spaces.mjs.map +1 -0
- package/dist/resources/stories.cjs +69 -0
- package/dist/resources/stories.cjs.map +1 -0
- package/dist/resources/stories.d.cts +16 -0
- package/dist/resources/stories.d.mts +16 -0
- package/dist/resources/stories.mjs +69 -0
- package/dist/resources/stories.mjs.map +1 -0
- package/dist/resources/tags.cjs +22 -0
- package/dist/resources/tags.cjs.map +1 -0
- package/dist/resources/tags.mjs +22 -0
- package/dist/resources/tags.mjs.map +1 -0
- package/dist/types.d.cts +19 -0
- package/dist/types.d.mts +19 -0
- package/dist/utils/array.cjs +12 -0
- package/dist/utils/array.cjs.map +1 -0
- package/dist/utils/array.mjs +11 -0
- package/dist/utils/array.mjs.map +1 -0
- package/dist/utils/cache.cjs +73 -0
- package/dist/utils/cache.cjs.map +1 -0
- package/dist/utils/cache.d.cts +26 -0
- package/dist/utils/cache.d.mts +26 -0
- package/dist/utils/cache.mjs +71 -0
- package/dist/utils/cache.mjs.map +1 -0
- package/dist/utils/cv.cjs +19 -0
- package/dist/utils/cv.cjs.map +1 -0
- package/dist/utils/cv.mjs +18 -0
- package/dist/utils/cv.mjs.map +1 -0
- package/dist/utils/fetch-rel-uuids.cjs +45 -0
- package/dist/utils/fetch-rel-uuids.cjs.map +1 -0
- package/dist/utils/fetch-rel-uuids.mjs +45 -0
- package/dist/utils/fetch-rel-uuids.mjs.map +1 -0
- package/dist/utils/inline-relations.cjs +86 -0
- package/dist/utils/inline-relations.cjs.map +1 -0
- package/dist/utils/inline-relations.mjs +84 -0
- package/dist/utils/inline-relations.mjs.map +1 -0
- package/dist/utils/rate-limit.cjs +140 -0
- package/dist/utils/rate-limit.cjs.map +1 -0
- package/dist/utils/rate-limit.d.cts +36 -0
- package/dist/utils/rate-limit.d.mts +36 -0
- package/dist/utils/rate-limit.mjs +137 -0
- package/dist/utils/rate-limit.mjs.map +1 -0
- package/dist/utils/request.cjs +38 -0
- package/dist/utils/request.cjs.map +1 -0
- package/dist/utils/request.mjs +35 -0
- package/dist/utils/request.mjs.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/utils/request.ts
|
|
2
|
+
const CACHEABLE_METHODS = new Set(["GET"]);
|
|
3
|
+
const NON_CACHEABLE_PATHS = new Set(["/v2/cdn/spaces/me"]);
|
|
4
|
+
/** Returns `true` when the query targets draft content (`version: 'draft'`). Draft requests bypass the cache. */
|
|
5
|
+
const isDraftRequest = (query) => query.version === "draft";
|
|
6
|
+
/** Ensures a path always starts with a leading slash for consistent comparisons and cache keys. */
|
|
7
|
+
const normalizePath = (path) => path.startsWith("/") ? path : `/${path}`;
|
|
8
|
+
/**
|
|
9
|
+
* Recursively normalizes query values by sorting object keys.
|
|
10
|
+
* This makes JSON stringification deterministic for cache key generation.
|
|
11
|
+
*/
|
|
12
|
+
const normalizeQuery = (value) => {
|
|
13
|
+
if (Array.isArray(value)) return value.map((item) => normalizeQuery(item));
|
|
14
|
+
if (value && typeof value === "object") {
|
|
15
|
+
const sorted = {};
|
|
16
|
+
for (const [key, val] of Object.entries(value).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0)) sorted[key] = normalizeQuery(val);
|
|
17
|
+
return sorted;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
};
|
|
21
|
+
const createCacheKey = (method, path, query) => {
|
|
22
|
+
return JSON.stringify({
|
|
23
|
+
method,
|
|
24
|
+
path: normalizePath(path),
|
|
25
|
+
query: normalizeQuery(query)
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
/** Returns `false` for non-GET methods, the spaces endpoint, and draft requests — all of which bypass the cache. */
|
|
29
|
+
const shouldUseCache = (method, path, query) => {
|
|
30
|
+
return CACHEABLE_METHODS.has(method) && !NON_CACHEABLE_PATHS.has(normalizePath(path)) && !isDraftRequest(query);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { createCacheKey, isDraftRequest, shouldUseCache };
|
|
35
|
+
//# sourceMappingURL=request.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.mjs","names":[],"sources":["../../src/utils/request.ts"],"sourcesContent":["export const CACHEABLE_METHODS = new Set(['GET']);\nexport const NON_CACHEABLE_PATHS = new Set(['/v2/cdn/spaces/me']);\n\n/** Returns `true` when the query targets draft content (`version: 'draft'`). Draft requests bypass the cache. */\nexport const isDraftRequest = (query: Record<string, unknown>) => query.version === 'draft';\n\n/** Ensures a path always starts with a leading slash for consistent comparisons and cache keys. */\nconst normalizePath = (path: string) => path.startsWith('/') ? path : `/${path}`;\n\n/**\n * Recursively normalizes query values by sorting object keys.\n * This makes JSON stringification deterministic for cache key generation.\n */\nconst normalizeQuery = (value: unknown): unknown => {\n if (Array.isArray(value)) {\n return value.map(item => normalizeQuery(item));\n }\n\n if (value && typeof value === 'object') {\n const sorted: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))) {\n sorted[key] = normalizeQuery(val);\n }\n return sorted;\n }\n\n return value;\n};\n\nexport const createCacheKey = (method: string, path: string, query: Record<string, unknown>) => {\n return JSON.stringify({\n method,\n path: normalizePath(path),\n query: normalizeQuery(query),\n });\n};\n\n/** Returns `false` for non-GET methods, the spaces endpoint, and draft requests — all of which bypass the cache. */\nexport const shouldUseCache = (method: string, path: string, query: Record<string, unknown>) => {\n return CACHEABLE_METHODS.has(method)\n && !NON_CACHEABLE_PATHS.has(normalizePath(path))\n && !isDraftRequest(query);\n};\n"],"mappings":";AAAA,MAAa,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC;AACjD,MAAa,sBAAsB,IAAI,IAAI,CAAC,oBAAoB,CAAC;;AAGjE,MAAa,kBAAkB,UAAmC,MAAM,YAAY;;AAGpF,MAAM,iBAAiB,SAAiB,KAAK,WAAW,IAAI,GAAG,OAAO,IAAI;;;;;AAM1E,MAAM,kBAAkB,UAA4B;AAClD,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,KAAI,SAAQ,eAAe,KAAK,CAAC;AAGhD,KAAI,SAAS,OAAO,UAAU,UAAU;EACtC,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,EAAG,CAC7F,QAAO,OAAO,eAAe,IAAI;AAEnC,SAAO;;AAGT,QAAO;;AAGT,MAAa,kBAAkB,QAAgB,MAAc,UAAmC;AAC9F,QAAO,KAAK,UAAU;EACpB;EACA,MAAM,cAAc,KAAK;EACzB,OAAO,eAAe,MAAM;EAC7B,CAAC;;;AAIJ,MAAa,kBAAkB,QAAgB,MAAc,UAAmC;AAC9F,QAAO,kBAAkB,IAAI,OAAO,IAC/B,CAAC,oBAAoB,IAAI,cAAc,KAAK,CAAC,IAC7C,CAAC,eAAe,MAAM"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@storyblok/api-client",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"private": false,
|
|
6
|
+
"description": "Storyblok Content Delivery API Client",
|
|
7
|
+
"author": "",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"homepage": "https://github.com/storyblok/monoblok/tree/main/packages/capi-client#readme",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/storyblok/monoblok.git",
|
|
13
|
+
"directory": "packages/capi-client"
|
|
14
|
+
},
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/storyblok/monoblok/issues"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [],
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"import": "./dist/index.mjs",
|
|
22
|
+
"require": "./dist/index.cjs"
|
|
23
|
+
},
|
|
24
|
+
"./package.json": "./package.json"
|
|
25
|
+
},
|
|
26
|
+
"main": "./dist/index.cjs",
|
|
27
|
+
"module": "./dist/index.mjs",
|
|
28
|
+
"types": "./dist/index.d.cts",
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"ky": "^1.14.3",
|
|
34
|
+
"@storyblok/region-helper": "1.3.1"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@hey-api/openapi-ts": "^0.92.3",
|
|
38
|
+
"@msw/source": "^0.6.1",
|
|
39
|
+
"@types/node": "^24.11.0",
|
|
40
|
+
"eslint": "^9.39.2",
|
|
41
|
+
"glob": "^13.0.6",
|
|
42
|
+
"msw": "^2.12.9",
|
|
43
|
+
"tsdown": "^0.20.3",
|
|
44
|
+
"tsx": "^4.21.0",
|
|
45
|
+
"vitest": "^4.0.18",
|
|
46
|
+
"@storyblok/eslint-config": "0.4.2",
|
|
47
|
+
"@storyblok/openapi": "1.1.0"
|
|
48
|
+
},
|
|
49
|
+
"nx": {
|
|
50
|
+
"targets": {
|
|
51
|
+
"generate": {
|
|
52
|
+
"dependsOn": [
|
|
53
|
+
"^build"
|
|
54
|
+
],
|
|
55
|
+
"outputs": [
|
|
56
|
+
"{projectRoot}/src/generated/**"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"build": {
|
|
60
|
+
"dependsOn": [
|
|
61
|
+
"generate",
|
|
62
|
+
"^build"
|
|
63
|
+
],
|
|
64
|
+
"outputs": [
|
|
65
|
+
"{projectRoot}/dist/**"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"scripts": {
|
|
71
|
+
"generate": "tsx scripts/generate.ts",
|
|
72
|
+
"build": "tsdown",
|
|
73
|
+
"test": "vitest",
|
|
74
|
+
"test:ci": "vitest run",
|
|
75
|
+
"lint": "eslint .",
|
|
76
|
+
"lint:fix": "eslint . --fix",
|
|
77
|
+
"typecheck": "tsc --noEmit"
|
|
78
|
+
}
|
|
79
|
+
}
|