@storyblok/management-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 +8 -0
- package/README.md +241 -0
- package/dist/_virtual/rolldown_runtime.js +25 -0
- package/dist/client/client.d.mts +7 -0
- package/dist/client/client.d.ts +7 -0
- package/dist/client/client.js +160 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/client.mjs +159 -0
- package/dist/client/client.mjs.map +1 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.mjs +4 -0
- package/dist/client/types.d.mts +116 -0
- package/dist/client/types.d.ts +116 -0
- package/dist/client/utils.d.mts +23 -0
- package/dist/client/utils.d.ts +23 -0
- package/dist/client/utils.js +242 -0
- package/dist/client/utils.js.map +1 -0
- package/dist/client/utils.mjs +236 -0
- package/dist/client/utils.mjs.map +1 -0
- package/dist/core/auth.d.mts +21 -0
- package/dist/core/auth.d.ts +21 -0
- package/dist/core/auth.js +13 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/auth.mjs +12 -0
- package/dist/core/auth.mjs.map +1 -0
- package/dist/core/bodySerializer.d.mts +13 -0
- package/dist/core/bodySerializer.d.ts +13 -0
- package/dist/core/bodySerializer.js +7 -0
- package/dist/core/bodySerializer.js.map +1 -0
- package/dist/core/bodySerializer.mjs +6 -0
- package/dist/core/bodySerializer.mjs.map +1 -0
- package/dist/core/params.js +12 -0
- package/dist/core/params.js.map +1 -0
- package/dist/core/params.mjs +11 -0
- package/dist/core/params.mjs.map +1 -0
- package/dist/core/pathSerializer.d.mts +14 -0
- package/dist/core/pathSerializer.d.ts +14 -0
- package/dist/core/pathSerializer.js +85 -0
- package/dist/core/pathSerializer.js.map +1 -0
- package/dist/core/pathSerializer.mjs +82 -0
- package/dist/core/pathSerializer.mjs.map +1 -0
- package/dist/core/types.d.mts +78 -0
- package/dist/core/types.d.ts +78 -0
- package/dist/index.d.mts +50 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +82 -0
- package/dist/index.mjs.map +1 -0
- package/dist/sdk-registry.generated.d.mts +28 -0
- package/dist/sdk-registry.generated.d.ts +28 -0
- package/dist/sdk-registry.generated.js +26 -0
- package/dist/sdk-registry.generated.js.map +1 -0
- package/dist/sdk-registry.generated.mjs +26 -0
- package/dist/sdk-registry.generated.mjs.map +1 -0
- package/examples/index.ts +32 -0
- package/generate.ts +125 -0
- package/package.json +79 -0
- package/src/__tests__/integration.test.ts +143 -0
- package/src/__tests__/region-resolution.test.ts +89 -0
- package/src/client/client.ts +246 -0
- package/src/client/index.ts +22 -0
- package/src/client/types.ts +222 -0
- package/src/client/utils.ts +417 -0
- package/src/core/auth.ts +40 -0
- package/src/core/bodySerializer.ts +88 -0
- package/src/core/params.ts +151 -0
- package/src/core/pathSerializer.ts +179 -0
- package/src/core/types.ts +118 -0
- package/src/index.ts +129 -0
- package/src/shared-client.ts +13 -0
- package/tsconfig.json +25 -0
- package/tsdown.config.ts +21 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//#region src/core/pathSerializer.ts
|
|
2
|
+
const separatorArrayExplode = (style) => {
|
|
3
|
+
switch (style) {
|
|
4
|
+
case "label": return ".";
|
|
5
|
+
case "matrix": return ";";
|
|
6
|
+
case "simple": return ",";
|
|
7
|
+
default: return "&";
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
const separatorArrayNoExplode = (style) => {
|
|
11
|
+
switch (style) {
|
|
12
|
+
case "form": return ",";
|
|
13
|
+
case "pipeDelimited": return "|";
|
|
14
|
+
case "spaceDelimited": return "%20";
|
|
15
|
+
default: return ",";
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const separatorObjectExplode = (style) => {
|
|
19
|
+
switch (style) {
|
|
20
|
+
case "label": return ".";
|
|
21
|
+
case "matrix": return ";";
|
|
22
|
+
case "simple": return ",";
|
|
23
|
+
default: return "&";
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const serializeArrayParam = ({ allowReserved, explode, name, style, value }) => {
|
|
27
|
+
if (!explode) {
|
|
28
|
+
const joinedValues$1 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
|
|
29
|
+
switch (style) {
|
|
30
|
+
case "label": return `.${joinedValues$1}`;
|
|
31
|
+
case "matrix": return `;${name}=${joinedValues$1}`;
|
|
32
|
+
case "simple": return joinedValues$1;
|
|
33
|
+
default: return `${name}=${joinedValues$1}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const separator = separatorArrayExplode(style);
|
|
37
|
+
const joinedValues = value.map((v) => {
|
|
38
|
+
if (style === "label" || style === "simple") return allowReserved ? v : encodeURIComponent(v);
|
|
39
|
+
return serializePrimitiveParam({
|
|
40
|
+
allowReserved,
|
|
41
|
+
name,
|
|
42
|
+
value: v
|
|
43
|
+
});
|
|
44
|
+
}).join(separator);
|
|
45
|
+
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
46
|
+
};
|
|
47
|
+
const serializePrimitiveParam = ({ allowReserved, name, value }) => {
|
|
48
|
+
if (value === void 0 || value === null) return "";
|
|
49
|
+
if (typeof value === "object") throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");
|
|
50
|
+
return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
|
|
51
|
+
};
|
|
52
|
+
const serializeObjectParam = ({ allowReserved, explode, name, style, value, valueOnly }) => {
|
|
53
|
+
if (value instanceof Date) return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
|
|
54
|
+
if (style !== "deepObject" && !explode) {
|
|
55
|
+
let values = [];
|
|
56
|
+
Object.entries(value).forEach(([key, v]) => {
|
|
57
|
+
values = [
|
|
58
|
+
...values,
|
|
59
|
+
key,
|
|
60
|
+
allowReserved ? v : encodeURIComponent(v)
|
|
61
|
+
];
|
|
62
|
+
});
|
|
63
|
+
const joinedValues$1 = values.join(",");
|
|
64
|
+
switch (style) {
|
|
65
|
+
case "form": return `${name}=${joinedValues$1}`;
|
|
66
|
+
case "label": return `.${joinedValues$1}`;
|
|
67
|
+
case "matrix": return `;${name}=${joinedValues$1}`;
|
|
68
|
+
default: return joinedValues$1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const separator = separatorObjectExplode(style);
|
|
72
|
+
const joinedValues = Object.entries(value).map(([key, v]) => serializePrimitiveParam({
|
|
73
|
+
allowReserved,
|
|
74
|
+
name: style === "deepObject" ? `${name}[${key}]` : key,
|
|
75
|
+
value: v
|
|
76
|
+
})).join(separator);
|
|
77
|
+
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
//#endregion
|
|
81
|
+
export { serializeArrayParam, serializeObjectParam, serializePrimitiveParam };
|
|
82
|
+
//# sourceMappingURL=pathSerializer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathSerializer.mjs","names":["style: ArraySeparatorStyle","style: ObjectSeparatorStyle","joinedValues","values: string[]"],"sources":["../../src/core/pathSerializer.ts"],"sourcesContent":["interface SerializeOptions<T>\n extends SerializePrimitiveOptions,\n SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? (v as string) : encodeURIComponent(v as string),\n ];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Auth, AuthToken } from "./auth.mjs";
|
|
2
|
+
import { BodySerializer, QuerySerializer, QuerySerializerOptions } from "./bodySerializer.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/core/types.d.ts
|
|
5
|
+
interface Client<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never> {
|
|
6
|
+
/**
|
|
7
|
+
* Returns the final request URL.
|
|
8
|
+
*/
|
|
9
|
+
buildUrl: BuildUrlFn;
|
|
10
|
+
connect: MethodFn;
|
|
11
|
+
delete: MethodFn;
|
|
12
|
+
get: MethodFn;
|
|
13
|
+
getConfig: () => Config;
|
|
14
|
+
head: MethodFn;
|
|
15
|
+
options: MethodFn;
|
|
16
|
+
patch: MethodFn;
|
|
17
|
+
post: MethodFn;
|
|
18
|
+
put: MethodFn;
|
|
19
|
+
request: RequestFn;
|
|
20
|
+
setConfig: (config: Config) => Config;
|
|
21
|
+
trace: MethodFn;
|
|
22
|
+
}
|
|
23
|
+
interface Config {
|
|
24
|
+
/**
|
|
25
|
+
* Auth token or a function returning auth token. The resolved value will be
|
|
26
|
+
* added to the request payload as defined by its `security` array.
|
|
27
|
+
*/
|
|
28
|
+
auth?: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken;
|
|
29
|
+
/**
|
|
30
|
+
* A function for serializing request body parameter. By default,
|
|
31
|
+
* {@link JSON.stringify()} will be used.
|
|
32
|
+
*/
|
|
33
|
+
bodySerializer?: BodySerializer | null;
|
|
34
|
+
/**
|
|
35
|
+
* An object containing any HTTP headers that you want to pre-populate your
|
|
36
|
+
* `Headers` object with.
|
|
37
|
+
*
|
|
38
|
+
* {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
|
|
39
|
+
*/
|
|
40
|
+
headers?: RequestInit['headers'] | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
|
|
41
|
+
/**
|
|
42
|
+
* The request method.
|
|
43
|
+
*
|
|
44
|
+
* {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
|
|
45
|
+
*/
|
|
46
|
+
method?: 'CONNECT' | 'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT' | 'TRACE';
|
|
47
|
+
/**
|
|
48
|
+
* A function for serializing request query parameters. By default, arrays
|
|
49
|
+
* will be exploded in form style, objects will be exploded in deepObject
|
|
50
|
+
* style, and reserved characters are percent-encoded.
|
|
51
|
+
*
|
|
52
|
+
* This method will have no effect if the native `paramsSerializer()` Axios
|
|
53
|
+
* API function is used.
|
|
54
|
+
*
|
|
55
|
+
* {@link https://swagger.io/docs/specification/serialization/#query View examples}
|
|
56
|
+
*/
|
|
57
|
+
querySerializer?: QuerySerializer | QuerySerializerOptions;
|
|
58
|
+
/**
|
|
59
|
+
* A function validating request data. This is useful if you want to ensure
|
|
60
|
+
* the request conforms to the desired shape, so it can be safely sent to
|
|
61
|
+
* the server.
|
|
62
|
+
*/
|
|
63
|
+
requestValidator?: (data: unknown) => Promise<unknown>;
|
|
64
|
+
/**
|
|
65
|
+
* A function transforming response data before it's returned. This is useful
|
|
66
|
+
* for post-processing data, e.g. converting ISO strings into Date objects.
|
|
67
|
+
*/
|
|
68
|
+
responseTransformer?: (data: unknown) => Promise<unknown>;
|
|
69
|
+
/**
|
|
70
|
+
* A function validating response data. This is useful if you want to ensure
|
|
71
|
+
* the response conforms to the desired shape, so it can be safely passed to
|
|
72
|
+
* the transformers and returned to the user.
|
|
73
|
+
*/
|
|
74
|
+
responseValidator?: (data: unknown) => Promise<unknown>;
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { Client, Config };
|
|
78
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Auth, AuthToken } from "./auth.js";
|
|
2
|
+
import { BodySerializer, QuerySerializer, QuerySerializerOptions } from "./bodySerializer.js";
|
|
3
|
+
|
|
4
|
+
//#region src/core/types.d.ts
|
|
5
|
+
interface Client<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never> {
|
|
6
|
+
/**
|
|
7
|
+
* Returns the final request URL.
|
|
8
|
+
*/
|
|
9
|
+
buildUrl: BuildUrlFn;
|
|
10
|
+
connect: MethodFn;
|
|
11
|
+
delete: MethodFn;
|
|
12
|
+
get: MethodFn;
|
|
13
|
+
getConfig: () => Config;
|
|
14
|
+
head: MethodFn;
|
|
15
|
+
options: MethodFn;
|
|
16
|
+
patch: MethodFn;
|
|
17
|
+
post: MethodFn;
|
|
18
|
+
put: MethodFn;
|
|
19
|
+
request: RequestFn;
|
|
20
|
+
setConfig: (config: Config) => Config;
|
|
21
|
+
trace: MethodFn;
|
|
22
|
+
}
|
|
23
|
+
interface Config {
|
|
24
|
+
/**
|
|
25
|
+
* Auth token or a function returning auth token. The resolved value will be
|
|
26
|
+
* added to the request payload as defined by its `security` array.
|
|
27
|
+
*/
|
|
28
|
+
auth?: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken;
|
|
29
|
+
/**
|
|
30
|
+
* A function for serializing request body parameter. By default,
|
|
31
|
+
* {@link JSON.stringify()} will be used.
|
|
32
|
+
*/
|
|
33
|
+
bodySerializer?: BodySerializer | null;
|
|
34
|
+
/**
|
|
35
|
+
* An object containing any HTTP headers that you want to pre-populate your
|
|
36
|
+
* `Headers` object with.
|
|
37
|
+
*
|
|
38
|
+
* {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
|
|
39
|
+
*/
|
|
40
|
+
headers?: RequestInit['headers'] | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
|
|
41
|
+
/**
|
|
42
|
+
* The request method.
|
|
43
|
+
*
|
|
44
|
+
* {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
|
|
45
|
+
*/
|
|
46
|
+
method?: 'CONNECT' | 'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT' | 'TRACE';
|
|
47
|
+
/**
|
|
48
|
+
* A function for serializing request query parameters. By default, arrays
|
|
49
|
+
* will be exploded in form style, objects will be exploded in deepObject
|
|
50
|
+
* style, and reserved characters are percent-encoded.
|
|
51
|
+
*
|
|
52
|
+
* This method will have no effect if the native `paramsSerializer()` Axios
|
|
53
|
+
* API function is used.
|
|
54
|
+
*
|
|
55
|
+
* {@link https://swagger.io/docs/specification/serialization/#query View examples}
|
|
56
|
+
*/
|
|
57
|
+
querySerializer?: QuerySerializer | QuerySerializerOptions;
|
|
58
|
+
/**
|
|
59
|
+
* A function validating request data. This is useful if you want to ensure
|
|
60
|
+
* the request conforms to the desired shape, so it can be safely sent to
|
|
61
|
+
* the server.
|
|
62
|
+
*/
|
|
63
|
+
requestValidator?: (data: unknown) => Promise<unknown>;
|
|
64
|
+
/**
|
|
65
|
+
* A function transforming response data before it's returned. This is useful
|
|
66
|
+
* for post-processing data, e.g. converting ISO strings into Date objects.
|
|
67
|
+
*/
|
|
68
|
+
responseTransformer?: (data: unknown) => Promise<unknown>;
|
|
69
|
+
/**
|
|
70
|
+
* A function validating response data. This is useful if you want to ensure
|
|
71
|
+
* the response conforms to the desired shape, so it can be safely passed to
|
|
72
|
+
* the transformers and returned to the user.
|
|
73
|
+
*/
|
|
74
|
+
responseValidator?: (data: unknown) => Promise<unknown>;
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { Client, Config };
|
|
78
|
+
//# sourceMappingURL=types.d.ts.map
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Client } from "./client/types.mjs";
|
|
2
|
+
import { SdkRegistryInstance } from "./sdk-registry.generated.mjs";
|
|
3
|
+
import { createClient } from "./client/client.mjs";
|
|
4
|
+
import { Region } from "@storyblok/region-helper";
|
|
5
|
+
|
|
6
|
+
//#region src/index.d.ts
|
|
7
|
+
type PersonalAccessToken = {
|
|
8
|
+
accessToken: string;
|
|
9
|
+
};
|
|
10
|
+
type OAuthToken = {
|
|
11
|
+
oauthToken: string;
|
|
12
|
+
};
|
|
13
|
+
interface ManagementApiClientConfig<ThrowOnError extends boolean = false> {
|
|
14
|
+
token: PersonalAccessToken | OAuthToken;
|
|
15
|
+
region?: Region;
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
headers?: Record<string, string>;
|
|
18
|
+
throwOnError?: ThrowOnError;
|
|
19
|
+
}
|
|
20
|
+
interface ManagementApiClient<ThrowOnError extends boolean = false> extends SdkRegistryInstance {}
|
|
21
|
+
declare class ManagementApiClient<ThrowOnError extends boolean = false> {
|
|
22
|
+
protected client: Client;
|
|
23
|
+
protected config: ManagementApiClientConfig<ThrowOnError>;
|
|
24
|
+
protected sdkCache: Record<string, Promise<any>>;
|
|
25
|
+
constructor(config: ManagementApiClientConfig<ThrowOnError>);
|
|
26
|
+
/**
|
|
27
|
+
* @returns The client's interceptors
|
|
28
|
+
* @example
|
|
29
|
+
* client.interceptors.request.use((request, options) => {
|
|
30
|
+
* console.log('Request:', request);
|
|
31
|
+
* return request;
|
|
32
|
+
* });
|
|
33
|
+
*/
|
|
34
|
+
get interceptors(): Client['interceptors'];
|
|
35
|
+
/**
|
|
36
|
+
* @param config - The configuration to set
|
|
37
|
+
* @example
|
|
38
|
+
* client.setConfig({ region: 'eu' });
|
|
39
|
+
*/
|
|
40
|
+
setConfig(config: Partial<Omit<ManagementApiClientConfig, 'token'>>): void;
|
|
41
|
+
/**
|
|
42
|
+
* @param token - The token to set
|
|
43
|
+
* @example
|
|
44
|
+
* client.setToken({ accessToken: '123' });
|
|
45
|
+
*/
|
|
46
|
+
setToken(token: PersonalAccessToken | OAuthToken): void;
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { Client, ManagementApiClient, ManagementApiClientConfig, createClient };
|
|
50
|
+
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Client } from "./client/types.js";
|
|
2
|
+
import { SdkRegistryInstance } from "./sdk-registry.generated.js";
|
|
3
|
+
import { createClient } from "./client/client.js";
|
|
4
|
+
import { Region } from "@storyblok/region-helper";
|
|
5
|
+
|
|
6
|
+
//#region src/index.d.ts
|
|
7
|
+
type PersonalAccessToken = {
|
|
8
|
+
accessToken: string;
|
|
9
|
+
};
|
|
10
|
+
type OAuthToken = {
|
|
11
|
+
oauthToken: string;
|
|
12
|
+
};
|
|
13
|
+
interface ManagementApiClientConfig<ThrowOnError extends boolean = false> {
|
|
14
|
+
token: PersonalAccessToken | OAuthToken;
|
|
15
|
+
region?: Region;
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
headers?: Record<string, string>;
|
|
18
|
+
throwOnError?: ThrowOnError;
|
|
19
|
+
}
|
|
20
|
+
interface ManagementApiClient<ThrowOnError extends boolean = false> extends SdkRegistryInstance {}
|
|
21
|
+
declare class ManagementApiClient<ThrowOnError extends boolean = false> {
|
|
22
|
+
protected client: Client;
|
|
23
|
+
protected config: ManagementApiClientConfig<ThrowOnError>;
|
|
24
|
+
protected sdkCache: Record<string, Promise<any>>;
|
|
25
|
+
constructor(config: ManagementApiClientConfig<ThrowOnError>);
|
|
26
|
+
/**
|
|
27
|
+
* @returns The client's interceptors
|
|
28
|
+
* @example
|
|
29
|
+
* client.interceptors.request.use((request, options) => {
|
|
30
|
+
* console.log('Request:', request);
|
|
31
|
+
* return request;
|
|
32
|
+
* });
|
|
33
|
+
*/
|
|
34
|
+
get interceptors(): Client['interceptors'];
|
|
35
|
+
/**
|
|
36
|
+
* @param config - The configuration to set
|
|
37
|
+
* @example
|
|
38
|
+
* client.setConfig({ region: 'eu' });
|
|
39
|
+
*/
|
|
40
|
+
setConfig(config: Partial<Omit<ManagementApiClientConfig, 'token'>>): void;
|
|
41
|
+
/**
|
|
42
|
+
* @param token - The token to set
|
|
43
|
+
* @example
|
|
44
|
+
* client.setToken({ accessToken: '123' });
|
|
45
|
+
*/
|
|
46
|
+
setToken(token: PersonalAccessToken | OAuthToken): void;
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { Client, ManagementApiClient, ManagementApiClientConfig, createClient };
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_client = require('./client/client.js');
|
|
3
|
+
require('./client/index.js');
|
|
4
|
+
const require_sdk_registry_generated = require('./sdk-registry.generated.js');
|
|
5
|
+
const __storyblok_region_helper = require_rolldown_runtime.__toESM(require("@storyblok/region-helper"));
|
|
6
|
+
|
|
7
|
+
//#region src/index.ts
|
|
8
|
+
var ManagementApiClient = class {
|
|
9
|
+
client;
|
|
10
|
+
config;
|
|
11
|
+
sdkCache = {};
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.client = createClientInstance(config);
|
|
15
|
+
Object.entries(require_sdk_registry_generated.sdkRegistry).forEach(([name, Sdk]) => {
|
|
16
|
+
Object.defineProperty(this, name, {
|
|
17
|
+
get: () => new Sdk({ client: this.client }),
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @returns The client's interceptors
|
|
25
|
+
* @example
|
|
26
|
+
* client.interceptors.request.use((request, options) => {
|
|
27
|
+
* console.log('Request:', request);
|
|
28
|
+
* return request;
|
|
29
|
+
* });
|
|
30
|
+
*/
|
|
31
|
+
get interceptors() {
|
|
32
|
+
return this.client.interceptors;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @param config - The configuration to set
|
|
36
|
+
* @example
|
|
37
|
+
* client.setConfig({ region: 'eu' });
|
|
38
|
+
*/
|
|
39
|
+
setConfig(config) {
|
|
40
|
+
const { region, baseUrl, headers } = config;
|
|
41
|
+
let finalBaseUrl = baseUrl;
|
|
42
|
+
if (region && !baseUrl) finalBaseUrl = (0, __storyblok_region_helper.getManagementBaseUrl)(region, "https");
|
|
43
|
+
if (finalBaseUrl) this.client.setConfig({ baseUrl: finalBaseUrl });
|
|
44
|
+
if (headers) this.client.setConfig({ headers: {
|
|
45
|
+
"Content-Type": "application/json",
|
|
46
|
+
...getAuthHeader(this.config.token),
|
|
47
|
+
...headers
|
|
48
|
+
} });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @param token - The token to set
|
|
52
|
+
* @example
|
|
53
|
+
* client.setToken({ accessToken: '123' });
|
|
54
|
+
*/
|
|
55
|
+
setToken(token) {
|
|
56
|
+
this.config.token = token;
|
|
57
|
+
this.client.setConfig({ headers: {
|
|
58
|
+
"Content-Type": "application/json",
|
|
59
|
+
...getAuthHeader(token),
|
|
60
|
+
...this.config.headers
|
|
61
|
+
} });
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
function createClientInstance(config) {
|
|
65
|
+
const { token, region = "eu", baseUrl, headers = {}, throwOnError = false } = config;
|
|
66
|
+
const finalBaseUrl = baseUrl || (0, __storyblok_region_helper.getManagementBaseUrl)(region, "https");
|
|
67
|
+
return require_client.createClient({
|
|
68
|
+
baseUrl: finalBaseUrl,
|
|
69
|
+
headers: {
|
|
70
|
+
"Content-Type": "application/json",
|
|
71
|
+
...getAuthHeader(token),
|
|
72
|
+
...headers
|
|
73
|
+
},
|
|
74
|
+
throwOnError: throwOnError ?? false
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function getAuthHeader(token) {
|
|
78
|
+
return "accessToken" in token ? { "Authorization": token.accessToken } : { "Authorization": token.oauthToken };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
exports.ManagementApiClient = ManagementApiClient;
|
|
83
|
+
exports.createClient = require_client.createClient;
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["config: ManagementApiClientConfig<ThrowOnError>","sdkRegistry","config: Partial<Omit<ManagementApiClientConfig, 'token'>>","token: PersonalAccessToken | OAuthToken","createClient"],"sources":["../src/index.ts"],"sourcesContent":["// Import generated SDKs with shared client support\nimport { createClient } from './client';\nimport type { Client } from './client/types';\nimport { getManagementBaseUrl, type Region } from '@storyblok/region-helper';\nimport { sdkRegistry, SdkRegistryInstance } from './sdk-registry.generated';\n\ntype PersonalAccessToken = {\n accessToken: string;\n}\n\ntype OAuthToken = {\n oauthToken: string;\n}\n\nexport interface ManagementApiClientConfig<ThrowOnError extends boolean = false> {\n token: PersonalAccessToken | OAuthToken;\n region?: Region;\n baseUrl?: string; // Override for custom endpoints\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n}\n\nexport interface ManagementApiClient<ThrowOnError extends boolean = false> extends SdkRegistryInstance {}\nexport class ManagementApiClient<ThrowOnError extends boolean = false> {\n protected client: Client;\n protected config: ManagementApiClientConfig<ThrowOnError>;\n protected sdkCache: Record<string, Promise<any>> = {};\n\n constructor(config: ManagementApiClientConfig<ThrowOnError>) {\n this.config = config;\n this.client = createClientInstance(config);\n\n Object.entries(sdkRegistry).forEach(([name, Sdk]) => {\n Object.defineProperty(this, name, {\n get: () => new Sdk({ client: this.client }),\n enumerable: true,\n configurable: true\n });\n });\n }\n\n\n /**\n * @returns The client's interceptors\n * @example\n * client.interceptors.request.use((request, options) => {\n * console.log('Request:', request);\n * return request;\n * });\n */\n public get interceptors(): Client['interceptors'] {\n return this.client.interceptors;\n }\n\n /**\n * @param config - The configuration to set\n * @example\n * client.setConfig({ region: 'eu' });\n */\n setConfig(config: Partial<Omit<ManagementApiClientConfig, 'token'>>): void {\n const { region, baseUrl, headers } = config;\n \n let finalBaseUrl = baseUrl;\n if (region && !baseUrl) {\n finalBaseUrl = getManagementBaseUrl(region, \"https\");\n }\n \n if (finalBaseUrl) {\n this.client.setConfig({ baseUrl: finalBaseUrl });\n }\n \n if (headers) {\n this.client.setConfig({ \n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(this.config.token),\n ...headers\n }\n });\n }\n }\n\n /**\n * @param token - The token to set\n * @example\n * client.setToken({ accessToken: '123' });\n */\n setToken(token: PersonalAccessToken | OAuthToken): void {\n this.config.token = token;\n this.client.setConfig({\n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(token),\n ...this.config.headers\n }\n });\n }\n}\n\n// Pure functions for client creation and setup\nfunction createClientInstance<ThrowOnError extends boolean = false>(\n config: ManagementApiClientConfig<ThrowOnError>\n): Client {\n const { token, region = \"eu\", baseUrl, headers = {}, throwOnError = false } = config;\n \n const finalBaseUrl = baseUrl || getManagementBaseUrl(region, 'https');\n \n return createClient({\n baseUrl: finalBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(token),\n ...headers\n },\n throwOnError: throwOnError ?? false\n });\n}\n\nfunction getAuthHeader(token: PersonalAccessToken | OAuthToken): Record<string, string> {\n return 'accessToken' in token ? {\n 'Authorization': token.accessToken\n } : {\n 'Authorization': token.oauthToken\n }\n}\n\n// Export client utilities\nexport { createClient } from './client';\nexport type { Client } from './client/types';\n"],"mappings":";;;;;;;AAuBA,IAAa,sBAAb,MAAuE;CACrE,AAAU;CACV,AAAU;CACV,AAAU,WAAyC,CAAE;CAErD,YAAYA,QAAiD;EAC3D,KAAK,SAAS;EACd,KAAK,SAAS,qBAAqB,OAAO;EAE1C,OAAO,QAAQC,2CAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK;GACnD,OAAO,eAAe,MAAM,MAAM;IAChC,KAAK,MAAM,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAQ;IAC1C,YAAY;IACZ,cAAc;GACf,EAAC;EACH,EAAC;CACH;;;;;;;;;CAWD,IAAW,eAAuC;AAChD,SAAO,KAAK,OAAO;CACpB;;;;;;CAOD,UAAUC,QAAiE;EACzE,MAAM,EAAE,QAAQ,SAAS,SAAS,GAAG;EAErC,IAAI,eAAe;AACnB,MAAI,UAAU,CAAC,SACb,mEAAoC,QAAQ,QAAQ;AAGtD,MAAI,cACF,KAAK,OAAO,UAAU,EAAE,SAAS,aAAc,EAAC;AAGlD,MAAI,SACF,KAAK,OAAO,UAAU,EACpB,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,KAAK,OAAO,MAAM;GACnC,GAAG;EACJ,EACF,EAAC;CAEL;;;;;;CAOD,SAASC,OAA+C;EACtD,KAAK,OAAO,QAAQ;EACpB,KAAK,OAAO,UAAU,EACpB,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,MAAM;GACvB,GAAG,KAAK,OAAO;EAChB,EACF,EAAC;CACH;AACF;AAGD,SAAS,qBACPH,QACQ;CACR,MAAM,EAAE,OAAO,SAAS,MAAM,SAAS,UAAU,CAAE,GAAE,eAAe,OAAO,GAAG;CAE9E,MAAM,eAAe,+DAAgC,QAAQ,QAAQ;AAErE,QAAOI,4BAAa;EAClB,SAAS;EACT,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,MAAM;GACvB,GAAG;EACJ;EACD,cAAc,gBAAgB;CAC/B,EAAC;AACH;AAED,SAAS,cAAcD,OAAiE;AACtF,QAAO,iBAAiB,QAAQ,EAC9B,iBAAiB,MAAM,YACxB,IAAG,EACF,iBAAiB,MAAM,WACxB;AACF"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createClient } from "./client/client.mjs";
|
|
2
|
+
import "./client/index.mjs";
|
|
3
|
+
import { sdkRegistry } from "./sdk-registry.generated.mjs";
|
|
4
|
+
import { getManagementBaseUrl } from "@storyblok/region-helper";
|
|
5
|
+
|
|
6
|
+
//#region src/index.ts
|
|
7
|
+
var ManagementApiClient = class {
|
|
8
|
+
client;
|
|
9
|
+
config;
|
|
10
|
+
sdkCache = {};
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.client = createClientInstance(config);
|
|
14
|
+
Object.entries(sdkRegistry).forEach(([name, Sdk]) => {
|
|
15
|
+
Object.defineProperty(this, name, {
|
|
16
|
+
get: () => new Sdk({ client: this.client }),
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @returns The client's interceptors
|
|
24
|
+
* @example
|
|
25
|
+
* client.interceptors.request.use((request, options) => {
|
|
26
|
+
* console.log('Request:', request);
|
|
27
|
+
* return request;
|
|
28
|
+
* });
|
|
29
|
+
*/
|
|
30
|
+
get interceptors() {
|
|
31
|
+
return this.client.interceptors;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @param config - The configuration to set
|
|
35
|
+
* @example
|
|
36
|
+
* client.setConfig({ region: 'eu' });
|
|
37
|
+
*/
|
|
38
|
+
setConfig(config) {
|
|
39
|
+
const { region, baseUrl, headers } = config;
|
|
40
|
+
let finalBaseUrl = baseUrl;
|
|
41
|
+
if (region && !baseUrl) finalBaseUrl = getManagementBaseUrl(region, "https");
|
|
42
|
+
if (finalBaseUrl) this.client.setConfig({ baseUrl: finalBaseUrl });
|
|
43
|
+
if (headers) this.client.setConfig({ headers: {
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
...getAuthHeader(this.config.token),
|
|
46
|
+
...headers
|
|
47
|
+
} });
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @param token - The token to set
|
|
51
|
+
* @example
|
|
52
|
+
* client.setToken({ accessToken: '123' });
|
|
53
|
+
*/
|
|
54
|
+
setToken(token) {
|
|
55
|
+
this.config.token = token;
|
|
56
|
+
this.client.setConfig({ headers: {
|
|
57
|
+
"Content-Type": "application/json",
|
|
58
|
+
...getAuthHeader(token),
|
|
59
|
+
...this.config.headers
|
|
60
|
+
} });
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
function createClientInstance(config) {
|
|
64
|
+
const { token, region = "eu", baseUrl, headers = {}, throwOnError = false } = config;
|
|
65
|
+
const finalBaseUrl = baseUrl || getManagementBaseUrl(region, "https");
|
|
66
|
+
return createClient({
|
|
67
|
+
baseUrl: finalBaseUrl,
|
|
68
|
+
headers: {
|
|
69
|
+
"Content-Type": "application/json",
|
|
70
|
+
...getAuthHeader(token),
|
|
71
|
+
...headers
|
|
72
|
+
},
|
|
73
|
+
throwOnError: throwOnError ?? false
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function getAuthHeader(token) {
|
|
77
|
+
return "accessToken" in token ? { "Authorization": token.accessToken } : { "Authorization": token.oauthToken };
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//#endregion
|
|
81
|
+
export { ManagementApiClient, createClient };
|
|
82
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["config: ManagementApiClientConfig<ThrowOnError>","config: Partial<Omit<ManagementApiClientConfig, 'token'>>","token: PersonalAccessToken | OAuthToken"],"sources":["../src/index.ts"],"sourcesContent":["// Import generated SDKs with shared client support\nimport { createClient } from './client';\nimport type { Client } from './client/types';\nimport { getManagementBaseUrl, type Region } from '@storyblok/region-helper';\nimport { sdkRegistry, SdkRegistryInstance } from './sdk-registry.generated';\n\ntype PersonalAccessToken = {\n accessToken: string;\n}\n\ntype OAuthToken = {\n oauthToken: string;\n}\n\nexport interface ManagementApiClientConfig<ThrowOnError extends boolean = false> {\n token: PersonalAccessToken | OAuthToken;\n region?: Region;\n baseUrl?: string; // Override for custom endpoints\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n}\n\nexport interface ManagementApiClient<ThrowOnError extends boolean = false> extends SdkRegistryInstance {}\nexport class ManagementApiClient<ThrowOnError extends boolean = false> {\n protected client: Client;\n protected config: ManagementApiClientConfig<ThrowOnError>;\n protected sdkCache: Record<string, Promise<any>> = {};\n\n constructor(config: ManagementApiClientConfig<ThrowOnError>) {\n this.config = config;\n this.client = createClientInstance(config);\n\n Object.entries(sdkRegistry).forEach(([name, Sdk]) => {\n Object.defineProperty(this, name, {\n get: () => new Sdk({ client: this.client }),\n enumerable: true,\n configurable: true\n });\n });\n }\n\n\n /**\n * @returns The client's interceptors\n * @example\n * client.interceptors.request.use((request, options) => {\n * console.log('Request:', request);\n * return request;\n * });\n */\n public get interceptors(): Client['interceptors'] {\n return this.client.interceptors;\n }\n\n /**\n * @param config - The configuration to set\n * @example\n * client.setConfig({ region: 'eu' });\n */\n setConfig(config: Partial<Omit<ManagementApiClientConfig, 'token'>>): void {\n const { region, baseUrl, headers } = config;\n \n let finalBaseUrl = baseUrl;\n if (region && !baseUrl) {\n finalBaseUrl = getManagementBaseUrl(region, \"https\");\n }\n \n if (finalBaseUrl) {\n this.client.setConfig({ baseUrl: finalBaseUrl });\n }\n \n if (headers) {\n this.client.setConfig({ \n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(this.config.token),\n ...headers\n }\n });\n }\n }\n\n /**\n * @param token - The token to set\n * @example\n * client.setToken({ accessToken: '123' });\n */\n setToken(token: PersonalAccessToken | OAuthToken): void {\n this.config.token = token;\n this.client.setConfig({\n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(token),\n ...this.config.headers\n }\n });\n }\n}\n\n// Pure functions for client creation and setup\nfunction createClientInstance<ThrowOnError extends boolean = false>(\n config: ManagementApiClientConfig<ThrowOnError>\n): Client {\n const { token, region = \"eu\", baseUrl, headers = {}, throwOnError = false } = config;\n \n const finalBaseUrl = baseUrl || getManagementBaseUrl(region, 'https');\n \n return createClient({\n baseUrl: finalBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n ...getAuthHeader(token),\n ...headers\n },\n throwOnError: throwOnError ?? false\n });\n}\n\nfunction getAuthHeader(token: PersonalAccessToken | OAuthToken): Record<string, string> {\n return 'accessToken' in token ? {\n 'Authorization': token.accessToken\n } : {\n 'Authorization': token.oauthToken\n }\n}\n\n// Export client utilities\nexport { createClient } from './client';\nexport type { Client } from './client/types';\n"],"mappings":";;;;;;AAuBA,IAAa,sBAAb,MAAuE;CACrE,AAAU;CACV,AAAU;CACV,AAAU,WAAyC,CAAE;CAErD,YAAYA,QAAiD;EAC3D,KAAK,SAAS;EACd,KAAK,SAAS,qBAAqB,OAAO;EAE1C,OAAO,QAAQ,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK;GACnD,OAAO,eAAe,MAAM,MAAM;IAChC,KAAK,MAAM,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAQ;IAC1C,YAAY;IACZ,cAAc;GACf,EAAC;EACH,EAAC;CACH;;;;;;;;;CAWD,IAAW,eAAuC;AAChD,SAAO,KAAK,OAAO;CACpB;;;;;;CAOD,UAAUC,QAAiE;EACzE,MAAM,EAAE,QAAQ,SAAS,SAAS,GAAG;EAErC,IAAI,eAAe;AACnB,MAAI,UAAU,CAAC,SACb,eAAe,qBAAqB,QAAQ,QAAQ;AAGtD,MAAI,cACF,KAAK,OAAO,UAAU,EAAE,SAAS,aAAc,EAAC;AAGlD,MAAI,SACF,KAAK,OAAO,UAAU,EACpB,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,KAAK,OAAO,MAAM;GACnC,GAAG;EACJ,EACF,EAAC;CAEL;;;;;;CAOD,SAASC,OAA+C;EACtD,KAAK,OAAO,QAAQ;EACpB,KAAK,OAAO,UAAU,EACpB,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,MAAM;GACvB,GAAG,KAAK,OAAO;EAChB,EACF,EAAC;CACH;AACF;AAGD,SAAS,qBACPF,QACQ;CACR,MAAM,EAAE,OAAO,SAAS,MAAM,SAAS,UAAU,CAAE,GAAE,eAAe,OAAO,GAAG;CAE9E,MAAM,eAAe,WAAW,qBAAqB,QAAQ,QAAQ;AAErE,QAAO,aAAa;EAClB,SAAS;EACT,SAAS;GACP,gBAAgB;GAChB,GAAG,cAAc,MAAM;GACvB,GAAG;EACJ;EACD,cAAc,gBAAgB;CAC/B,EAAC;AACH;AAED,SAAS,cAAcE,OAAiE;AACtF,QAAO,iBAAiB,QAAQ,EAC9B,iBAAiB,MAAM,YACxB,IAAG,EACF,iBAAiB,MAAM,WACxB;AACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Sdk } from "./generated/stories/sdk.gen.mjs";
|
|
2
|
+
import { Sdk as Sdk$1 } from "./generated/spaces/sdk.gen.mjs";
|
|
3
|
+
import { Sdk as Sdk$2 } from "./generated/presets/sdk.gen.mjs";
|
|
4
|
+
import { Sdk as Sdk$3 } from "./generated/internal_tags/sdk.gen.mjs";
|
|
5
|
+
import { Sdk as Sdk$4 } from "./generated/datasources/sdk.gen.mjs";
|
|
6
|
+
import { Sdk as Sdk$5 } from "./generated/datasource_entries/sdk.gen.mjs";
|
|
7
|
+
import { Sdk as Sdk$6 } from "./generated/components/sdk.gen.mjs";
|
|
8
|
+
import { Sdk as Sdk$7 } from "./generated/component_folders/sdk.gen.mjs";
|
|
9
|
+
import { Sdk as Sdk$8 } from "./generated/assets/sdk.gen.mjs";
|
|
10
|
+
|
|
11
|
+
//#region src/sdk-registry.generated.d.ts
|
|
12
|
+
|
|
13
|
+
declare const sdkRegistry: {
|
|
14
|
+
readonly stories: typeof Sdk;
|
|
15
|
+
readonly spaces: typeof Sdk$1;
|
|
16
|
+
readonly presets: typeof Sdk$2;
|
|
17
|
+
readonly internalTags: typeof Sdk$3;
|
|
18
|
+
readonly datasources: typeof Sdk$4;
|
|
19
|
+
readonly datasourceEntries: typeof Sdk$5;
|
|
20
|
+
readonly components: typeof Sdk$6;
|
|
21
|
+
readonly componentFolders: typeof Sdk$7;
|
|
22
|
+
readonly assets: typeof Sdk$8;
|
|
23
|
+
};
|
|
24
|
+
type SdkRegistryInstance = { [K in keyof SdkRegistry]: InstanceType<SdkRegistry[K]> };
|
|
25
|
+
type SdkRegistry = typeof sdkRegistry;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SdkRegistryInstance };
|
|
28
|
+
//# sourceMappingURL=sdk-registry.generated.d.mts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Sdk } from "./generated/stories/sdk.gen.js";
|
|
2
|
+
import { Sdk as Sdk$1 } from "./generated/spaces/sdk.gen.js";
|
|
3
|
+
import { Sdk as Sdk$2 } from "./generated/presets/sdk.gen.js";
|
|
4
|
+
import { Sdk as Sdk$3 } from "./generated/internal_tags/sdk.gen.js";
|
|
5
|
+
import { Sdk as Sdk$4 } from "./generated/datasources/sdk.gen.js";
|
|
6
|
+
import { Sdk as Sdk$5 } from "./generated/datasource_entries/sdk.gen.js";
|
|
7
|
+
import { Sdk as Sdk$6 } from "./generated/components/sdk.gen.js";
|
|
8
|
+
import { Sdk as Sdk$7 } from "./generated/component_folders/sdk.gen.js";
|
|
9
|
+
import { Sdk as Sdk$8 } from "./generated/assets/sdk.gen.js";
|
|
10
|
+
|
|
11
|
+
//#region src/sdk-registry.generated.d.ts
|
|
12
|
+
|
|
13
|
+
declare const sdkRegistry: {
|
|
14
|
+
readonly stories: typeof Sdk;
|
|
15
|
+
readonly spaces: typeof Sdk$1;
|
|
16
|
+
readonly presets: typeof Sdk$2;
|
|
17
|
+
readonly internalTags: typeof Sdk$3;
|
|
18
|
+
readonly datasources: typeof Sdk$4;
|
|
19
|
+
readonly datasourceEntries: typeof Sdk$5;
|
|
20
|
+
readonly components: typeof Sdk$6;
|
|
21
|
+
readonly componentFolders: typeof Sdk$7;
|
|
22
|
+
readonly assets: typeof Sdk$8;
|
|
23
|
+
};
|
|
24
|
+
type SdkRegistryInstance = { [K in keyof SdkRegistry]: InstanceType<SdkRegistry[K]> };
|
|
25
|
+
type SdkRegistry = typeof sdkRegistry;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SdkRegistryInstance };
|
|
28
|
+
//# sourceMappingURL=sdk-registry.generated.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const require_sdk_gen = require('./generated/stories/sdk.gen.js');
|
|
2
|
+
const require_sdk_gen$1 = require('./generated/spaces/sdk.gen.js');
|
|
3
|
+
const require_sdk_gen$2 = require('./generated/presets/sdk.gen.js');
|
|
4
|
+
const require_sdk_gen$3 = require('./generated/internal_tags/sdk.gen.js');
|
|
5
|
+
const require_sdk_gen$4 = require('./generated/datasources/sdk.gen.js');
|
|
6
|
+
const require_sdk_gen$5 = require('./generated/datasource_entries/sdk.gen.js');
|
|
7
|
+
const require_sdk_gen$6 = require('./generated/components/sdk.gen.js');
|
|
8
|
+
const require_sdk_gen$7 = require('./generated/component_folders/sdk.gen.js');
|
|
9
|
+
const require_sdk_gen$8 = require('./generated/assets/sdk.gen.js');
|
|
10
|
+
|
|
11
|
+
//#region src/sdk-registry.generated.ts
|
|
12
|
+
const sdkRegistry = {
|
|
13
|
+
"stories": require_sdk_gen.Sdk,
|
|
14
|
+
"spaces": require_sdk_gen$1.Sdk,
|
|
15
|
+
"presets": require_sdk_gen$2.Sdk,
|
|
16
|
+
"internalTags": require_sdk_gen$3.Sdk,
|
|
17
|
+
"datasources": require_sdk_gen$4.Sdk,
|
|
18
|
+
"datasourceEntries": require_sdk_gen$5.Sdk,
|
|
19
|
+
"components": require_sdk_gen$6.Sdk,
|
|
20
|
+
"componentFolders": require_sdk_gen$7.Sdk,
|
|
21
|
+
"assets": require_sdk_gen$8.Sdk
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.sdkRegistry = sdkRegistry;
|
|
26
|
+
//# sourceMappingURL=sdk-registry.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-registry.generated.js","names":["StoriesSdk","SpacesSdk","PresetsSdk","InternalTagsSdk","DatasourcesSdk","DatasourceEntriesSdk","ComponentsSdk","ComponentFoldersSdk","AssetsSdk"],"sources":["../src/sdk-registry.generated.ts"],"sourcesContent":["// Auto-generated SDK registry\n// This file is generated by build.ts - do not edit manually\n\n// Import all generated SDKs\nimport { Sdk as StoriesSdk } from './generated/stories/sdk.gen';\nimport { Sdk as SpacesSdk } from './generated/spaces/sdk.gen';\nimport { Sdk as PresetsSdk } from './generated/presets/sdk.gen';\nimport { Sdk as InternalTagsSdk } from './generated/internal_tags/sdk.gen';\nimport { Sdk as DatasourcesSdk } from './generated/datasources/sdk.gen';\nimport { Sdk as DatasourceEntriesSdk } from './generated/datasource_entries/sdk.gen';\nimport { Sdk as ComponentsSdk } from './generated/components/sdk.gen';\nimport { Sdk as ComponentFoldersSdk } from './generated/component_folders/sdk.gen';\nimport { Sdk as AssetsSdk } from './generated/assets/sdk.gen';\n\n// Export all SDKs for grouped imports\nexport { StoriesSdk };\nexport { SpacesSdk };\nexport { PresetsSdk };\nexport { InternalTagsSdk };\nexport { DatasourcesSdk };\nexport { DatasourceEntriesSdk };\nexport { ComponentsSdk };\nexport { ComponentFoldersSdk };\nexport { AssetsSdk };\n\n// Registry object for dynamic access\nexport const sdkRegistry = {\n 'stories': StoriesSdk,\n 'spaces': SpacesSdk,\n 'presets': PresetsSdk,\n 'internalTags': InternalTagsSdk,\n 'datasources': DatasourcesSdk,\n 'datasourceEntries': DatasourceEntriesSdk,\n 'components': ComponentsSdk,\n 'componentFolders': ComponentFoldersSdk,\n 'assets': AssetsSdk,\n} as const;\n\nexport type SdkRegistryInstance = {\n [K in keyof SdkRegistry]: InstanceType<SdkRegistry[K]>;\n}\n\n// Type for the registry\nexport type SdkRegistry = typeof sdkRegistry;\n\n// Helper to get available SDK names\nexport const getAvailableSdks = () => Object.keys(sdkRegistry);\n"],"mappings":";;;;;;;;;;;AA0BA,MAAa,cAAc;CACzB,WAAWA;CACX,UAAUC;CACV,WAAWC;CACX,gBAAgBC;CAChB,eAAeC;CACf,qBAAqBC;CACrB,cAAcC;CACd,oBAAoBC;CACpB,UAAUC;AACX"}
|