@storyblok/management-api-client 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/client.cjs +196 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +761 -0
- package/dist/client.d.mts +761 -0
- package/dist/client.mjs +195 -0
- package/dist/client.mjs.map +1 -0
- package/dist/error.cjs.map +1 -1
- package/dist/error.d.cts +12 -2
- package/dist/error.d.mts +12 -2
- package/dist/error.mjs.map +1 -1
- package/dist/generated/mapi/_internal.gen.d.cts +371 -0
- package/dist/generated/mapi/_internal.gen.d.mts +371 -0
- package/dist/generated/{shared → mapi}/client/client.gen.cjs +1 -1
- package/dist/generated/mapi/client/client.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/client/client.gen.mjs +1 -1
- package/dist/generated/mapi/client/client.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/client/types.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/client/types.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/client/utils.gen.cjs +1 -1
- package/dist/generated/mapi/client/utils.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/client/utils.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/client/utils.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/client/utils.gen.mjs +1 -1
- package/dist/generated/mapi/client/utils.gen.mjs.map +1 -0
- package/dist/generated/mapi/client.gen.cjs +10 -0
- package/dist/generated/mapi/client.gen.cjs.map +1 -0
- package/dist/generated/mapi/client.gen.mjs +10 -0
- package/dist/generated/mapi/client.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/auth.gen.cjs +1 -1
- package/dist/generated/mapi/core/auth.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/auth.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/core/auth.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/core/auth.gen.mjs +1 -1
- package/dist/generated/mapi/core/auth.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/bodySerializer.gen.cjs +1 -1
- package/dist/generated/mapi/core/bodySerializer.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/bodySerializer.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/core/bodySerializer.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/core/bodySerializer.gen.mjs +1 -1
- package/dist/generated/mapi/core/bodySerializer.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/params.gen.cjs +1 -1
- package/dist/generated/mapi/core/params.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/params.gen.mjs +1 -1
- package/dist/generated/mapi/core/params.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/pathSerializer.gen.cjs +1 -1
- package/dist/generated/mapi/core/pathSerializer.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/pathSerializer.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/core/pathSerializer.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/core/pathSerializer.gen.mjs +1 -1
- package/dist/generated/mapi/core/pathSerializer.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.cjs +1 -1
- package/dist/generated/mapi/core/serverSentEvents.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.mjs +1 -1
- package/dist/generated/mapi/core/serverSentEvents.gen.mjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/types.gen.d.cts +1 -1
- package/dist/generated/{shared → mapi}/core/types.gen.d.mts +1 -1
- package/dist/generated/{shared → mapi}/core/utils.gen.cjs +1 -1
- package/dist/generated/mapi/core/utils.gen.cjs.map +1 -0
- package/dist/generated/{shared → mapi}/core/utils.gen.mjs +1 -1
- package/dist/generated/mapi/core/utils.gen.mjs.map +1 -0
- package/dist/generated/mapi/sdk.gen.cjs +1477 -0
- package/dist/generated/mapi/sdk.gen.cjs.map +1 -0
- package/dist/generated/mapi/sdk.gen.mjs +1399 -0
- package/dist/generated/mapi/sdk.gen.mjs.map +1 -0
- package/dist/generated/mapi/types-aliased.gen.d.cts +1598 -0
- package/dist/generated/mapi/types-aliased.gen.d.mts +1598 -0
- package/dist/generated/mapi/types.gen.d.cts +5075 -0
- package/dist/generated/mapi/types.gen.d.mts +5075 -0
- package/dist/generated/overlay/_internal.gen.d.cts +850 -0
- package/dist/generated/overlay/_internal.gen.d.mts +850 -0
- package/dist/generated/types/_utils.d.cts +7 -0
- package/dist/generated/types/_utils.d.mts +7 -0
- package/dist/generated/types/block.d.cts +55 -0
- package/dist/generated/types/block.d.mts +55 -0
- package/dist/generated/types/field.d.cts +122 -0
- package/dist/generated/types/field.d.mts +122 -0
- package/dist/generated/types/mapi-story.d.cts +29 -0
- package/dist/generated/types/mapi-story.d.mts +29 -0
- package/dist/index.cjs +3 -181
- package/dist/index.d.cts +12 -650
- package/dist/index.d.mts +12 -649
- package/dist/index.mjs +2 -179
- package/dist/resources/asset-folders.cjs +9 -9
- package/dist/resources/asset-folders.cjs.map +1 -1
- package/dist/resources/asset-folders.mjs +9 -9
- package/dist/resources/asset-folders.mjs.map +1 -1
- package/dist/resources/assets.cjs +57 -50
- package/dist/resources/assets.cjs.map +1 -1
- package/dist/resources/assets.d.cts +23 -27
- package/dist/resources/assets.d.mts +23 -27
- package/dist/resources/assets.mjs +57 -50
- package/dist/resources/assets.mjs.map +1 -1
- package/dist/resources/component-folders.cjs +9 -9
- package/dist/resources/component-folders.cjs.map +1 -1
- package/dist/resources/component-folders.mjs +9 -9
- package/dist/resources/component-folders.mjs.map +1 -1
- package/dist/resources/components.cjs +28 -20
- package/dist/resources/components.cjs.map +1 -1
- package/dist/resources/components.d.cts +76 -0
- package/dist/resources/components.d.mts +76 -0
- package/dist/resources/components.mjs +28 -20
- package/dist/resources/components.mjs.map +1 -1
- package/dist/resources/datasource-entries.cjs +28 -34
- package/dist/resources/datasource-entries.cjs.map +1 -1
- package/dist/resources/datasource-entries.mjs +29 -35
- package/dist/resources/datasource-entries.mjs.map +1 -1
- package/dist/resources/datasources.cjs +27 -9
- package/dist/resources/datasources.cjs.map +1 -1
- package/dist/resources/datasources.mjs +27 -9
- package/dist/resources/datasources.mjs.map +1 -1
- package/dist/resources/experiments.cjs +31 -31
- package/dist/resources/experiments.cjs.map +1 -1
- package/dist/resources/experiments.mjs +31 -31
- package/dist/resources/experiments.mjs.map +1 -1
- package/dist/resources/internal-tags.cjs +7 -7
- package/dist/resources/internal-tags.cjs.map +1 -1
- package/dist/resources/internal-tags.mjs +7 -7
- package/dist/resources/internal-tags.mjs.map +1 -1
- package/dist/resources/presets.cjs +9 -9
- package/dist/resources/presets.cjs.map +1 -1
- package/dist/resources/presets.mjs +9 -9
- package/dist/resources/presets.mjs.map +1 -1
- package/dist/resources/shared-asset-folders.cjs.map +1 -1
- package/dist/resources/shared-asset-folders.d.cts +1 -1
- package/dist/resources/shared-asset-folders.d.mts +1 -1
- package/dist/resources/shared-asset-folders.mjs.map +1 -1
- package/dist/resources/shared-assets.cjs.map +1 -1
- package/dist/resources/shared-assets.d.cts +2 -2
- package/dist/resources/shared-assets.d.mts +2 -2
- package/dist/resources/shared-assets.mjs.map +1 -1
- package/dist/resources/shared-internal-tags.cjs.map +1 -1
- package/dist/resources/shared-internal-tags.mjs.map +1 -1
- package/dist/resources/shared.cjs +15 -0
- package/dist/resources/shared.cjs.map +1 -1
- package/dist/resources/shared.mjs +15 -1
- package/dist/resources/shared.mjs.map +1 -1
- package/dist/resources/spaces.cjs +8 -7
- package/dist/resources/spaces.cjs.map +1 -1
- package/dist/resources/spaces.d.cts +8 -0
- package/dist/resources/spaces.d.mts +7 -0
- package/dist/resources/spaces.mjs +8 -7
- package/dist/resources/spaces.mjs.map +1 -1
- package/dist/resources/stories.cjs +20 -16
- package/dist/resources/stories.cjs.map +1 -1
- package/dist/resources/stories.d.cts +93 -0
- package/dist/resources/stories.d.mts +93 -0
- package/dist/resources/stories.mjs +20 -16
- package/dist/resources/stories.mjs.map +1 -1
- package/dist/resources/users.cjs +3 -3
- package/dist/resources/users.cjs.map +1 -1
- package/dist/resources/users.mjs +3 -3
- package/dist/resources/users.mjs.map +1 -1
- package/dist/utils/query-serializer.cjs +54 -0
- package/dist/utils/query-serializer.cjs.map +1 -0
- package/dist/utils/query-serializer.mjs +54 -0
- package/dist/utils/query-serializer.mjs.map +1 -0
- package/package.json +17 -15
- package/playground/integration-tests/README.md +24 -0
- package/playground/integration-tests/eslint.config.js +5 -0
- package/playground/integration-tests/node_modules/.bin/eslint +16 -0
- package/playground/integration-tests/node_modules/.bin/tsc +16 -0
- package/playground/integration-tests/node_modules/.bin/tsserver +16 -0
- package/playground/integration-tests/node_modules/.bin/vitest +16 -0
- package/playground/integration-tests/package.json +24 -0
- package/playground/integration-tests/test/setup.e2e.ts +11 -0
- package/playground/integration-tests/test/specs/mapi-round-trip.spec.e2e.ts +510 -0
- package/playground/integration-tests/test/types/components.test-d.ts +74 -0
- package/playground/integration-tests/test/types/resources.test-d.ts +212 -0
- package/playground/integration-tests/test/types/stories.test-d.ts +310 -0
- package/playground/integration-tests/vitest.config.e2e.ts +25 -0
- package/playground/integration-tests/vitest.config.ts +13 -0
- package/test/GUIDE.md +59 -0
- package/vitest.config.ts +5 -0
- package/dist/generated/asset_folders/client.gen.cjs +0 -10
- package/dist/generated/asset_folders/client.gen.cjs.map +0 -1
- package/dist/generated/asset_folders/client.gen.mjs +0 -10
- package/dist/generated/asset_folders/client.gen.mjs.map +0 -1
- package/dist/generated/asset_folders/sdk.gen.cjs +0 -99
- package/dist/generated/asset_folders/sdk.gen.cjs.map +0 -1
- package/dist/generated/asset_folders/sdk.gen.mjs +0 -95
- package/dist/generated/asset_folders/sdk.gen.mjs.map +0 -1
- package/dist/generated/asset_folders/types.gen.d.cts +0 -156
- package/dist/generated/asset_folders/types.gen.d.mts +0 -156
- package/dist/generated/assets/client.gen.cjs +0 -10
- package/dist/generated/assets/client.gen.cjs.map +0 -1
- package/dist/generated/assets/client.gen.mjs +0 -10
- package/dist/generated/assets/client.gen.mjs.map +0 -1
- package/dist/generated/assets/sdk.gen.cjs +0 -179
- package/dist/generated/assets/sdk.gen.cjs.map +0 -1
- package/dist/generated/assets/sdk.gen.mjs +0 -171
- package/dist/generated/assets/sdk.gen.mjs.map +0 -1
- package/dist/generated/assets/types.gen.d.cts +0 -415
- package/dist/generated/assets/types.gen.d.mts +0 -415
- package/dist/generated/component_folders/client.gen.cjs +0 -10
- package/dist/generated/component_folders/client.gen.cjs.map +0 -1
- package/dist/generated/component_folders/client.gen.mjs +0 -10
- package/dist/generated/component_folders/client.gen.mjs.map +0 -1
- package/dist/generated/component_folders/sdk.gen.cjs +0 -99
- package/dist/generated/component_folders/sdk.gen.cjs.map +0 -1
- package/dist/generated/component_folders/sdk.gen.mjs +0 -95
- package/dist/generated/component_folders/sdk.gen.mjs.map +0 -1
- package/dist/generated/component_folders/types.gen.d.cts +0 -118
- package/dist/generated/component_folders/types.gen.d.mts +0 -118
- package/dist/generated/components/client.gen.cjs +0 -10
- package/dist/generated/components/client.gen.cjs.map +0 -1
- package/dist/generated/components/client.gen.mjs +0 -10
- package/dist/generated/components/client.gen.mjs.map +0 -1
- package/dist/generated/components/sdk.gen.cjs +0 -171
- package/dist/generated/components/sdk.gen.cjs.map +0 -1
- package/dist/generated/components/sdk.gen.mjs +0 -163
- package/dist/generated/components/sdk.gen.mjs.map +0 -1
- package/dist/generated/components/types.gen.d.cts +0 -855
- package/dist/generated/components/types.gen.d.mts +0 -855
- package/dist/generated/datasource_entries/client.gen.cjs +0 -10
- package/dist/generated/datasource_entries/client.gen.cjs.map +0 -1
- package/dist/generated/datasource_entries/client.gen.mjs +0 -10
- package/dist/generated/datasource_entries/client.gen.mjs.map +0 -1
- package/dist/generated/datasource_entries/sdk.gen.cjs +0 -89
- package/dist/generated/datasource_entries/sdk.gen.cjs.map +0 -1
- package/dist/generated/datasource_entries/sdk.gen.mjs +0 -85
- package/dist/generated/datasource_entries/sdk.gen.mjs.map +0 -1
- package/dist/generated/datasource_entries/types.gen.d.cts +0 -156
- package/dist/generated/datasource_entries/types.gen.d.mts +0 -156
- package/dist/generated/datasources/client.gen.cjs +0 -10
- package/dist/generated/datasources/client.gen.cjs.map +0 -1
- package/dist/generated/datasources/client.gen.mjs +0 -10
- package/dist/generated/datasources/client.gen.mjs.map +0 -1
- package/dist/generated/datasources/sdk.gen.cjs +0 -89
- package/dist/generated/datasources/sdk.gen.cjs.map +0 -1
- package/dist/generated/datasources/sdk.gen.mjs +0 -85
- package/dist/generated/datasources/sdk.gen.mjs.map +0 -1
- package/dist/generated/datasources/types.gen.d.cts +0 -186
- package/dist/generated/datasources/types.gen.d.mts +0 -186
- package/dist/generated/experiments/client.gen.cjs +0 -10
- package/dist/generated/experiments/client.gen.cjs.map +0 -1
- package/dist/generated/experiments/client.gen.mjs +0 -10
- package/dist/generated/experiments/client.gen.mjs.map +0 -1
- package/dist/generated/experiments/sdk.gen.cjs +0 -298
- package/dist/generated/experiments/sdk.gen.cjs.map +0 -1
- package/dist/generated/experiments/sdk.gen.mjs +0 -283
- package/dist/generated/experiments/sdk.gen.mjs.map +0 -1
- package/dist/generated/experiments/types.gen.d.cts +0 -522
- package/dist/generated/experiments/types.gen.d.mts +0 -522
- package/dist/generated/internal_tags/client.gen.cjs +0 -10
- package/dist/generated/internal_tags/client.gen.cjs.map +0 -1
- package/dist/generated/internal_tags/client.gen.mjs +0 -10
- package/dist/generated/internal_tags/client.gen.mjs.map +0 -1
- package/dist/generated/internal_tags/sdk.gen.cjs +0 -74
- package/dist/generated/internal_tags/sdk.gen.cjs.map +0 -1
- package/dist/generated/internal_tags/sdk.gen.mjs +0 -71
- package/dist/generated/internal_tags/sdk.gen.mjs.map +0 -1
- package/dist/generated/internal_tags/types.gen.d.cts +0 -106
- package/dist/generated/internal_tags/types.gen.d.mts +0 -106
- package/dist/generated/presets/client.gen.cjs +0 -10
- package/dist/generated/presets/client.gen.cjs.map +0 -1
- package/dist/generated/presets/client.gen.mjs +0 -10
- package/dist/generated/presets/client.gen.mjs.map +0 -1
- package/dist/generated/presets/sdk.gen.cjs +0 -99
- package/dist/generated/presets/sdk.gen.cjs.map +0 -1
- package/dist/generated/presets/sdk.gen.mjs +0 -95
- package/dist/generated/presets/sdk.gen.mjs.map +0 -1
- package/dist/generated/presets/types.gen.d.cts +0 -176
- package/dist/generated/presets/types.gen.d.mts +0 -176
- package/dist/generated/shared/client/client.gen.cjs.map +0 -1
- package/dist/generated/shared/client/client.gen.mjs.map +0 -1
- package/dist/generated/shared/client/utils.gen.cjs.map +0 -1
- package/dist/generated/shared/client/utils.gen.mjs.map +0 -1
- package/dist/generated/shared/core/auth.gen.cjs.map +0 -1
- package/dist/generated/shared/core/auth.gen.mjs.map +0 -1
- package/dist/generated/shared/core/bodySerializer.gen.cjs.map +0 -1
- package/dist/generated/shared/core/bodySerializer.gen.mjs.map +0 -1
- package/dist/generated/shared/core/params.gen.cjs.map +0 -1
- package/dist/generated/shared/core/params.gen.mjs.map +0 -1
- package/dist/generated/shared/core/pathSerializer.gen.cjs.map +0 -1
- package/dist/generated/shared/core/pathSerializer.gen.mjs.map +0 -1
- package/dist/generated/shared/core/serverSentEvents.gen.cjs.map +0 -1
- package/dist/generated/shared/core/serverSentEvents.gen.mjs.map +0 -1
- package/dist/generated/shared/core/utils.gen.cjs.map +0 -1
- package/dist/generated/shared/core/utils.gen.mjs.map +0 -1
- package/dist/generated/spaces/client.gen.cjs +0 -10
- package/dist/generated/spaces/client.gen.cjs.map +0 -1
- package/dist/generated/spaces/client.gen.mjs +0 -10
- package/dist/generated/spaces/client.gen.mjs.map +0 -1
- package/dist/generated/spaces/sdk.gen.cjs +0 -99
- package/dist/generated/spaces/sdk.gen.cjs.map +0 -1
- package/dist/generated/spaces/sdk.gen.mjs +0 -95
- package/dist/generated/spaces/sdk.gen.mjs.map +0 -1
- package/dist/generated/spaces/types.gen.d.cts +0 -544
- package/dist/generated/spaces/types.gen.d.mts +0 -544
- package/dist/generated/stories/client.gen.cjs +0 -10
- package/dist/generated/stories/client.gen.cjs.map +0 -1
- package/dist/generated/stories/client.gen.mjs +0 -10
- package/dist/generated/stories/client.gen.mjs.map +0 -1
- package/dist/generated/stories/sdk.gen.cjs +0 -138
- package/dist/generated/stories/sdk.gen.cjs.map +0 -1
- package/dist/generated/stories/sdk.gen.mjs +0 -131
- package/dist/generated/stories/sdk.gen.mjs.map +0 -1
- package/dist/generated/stories/types.gen.d.cts +0 -1306
- package/dist/generated/stories/types.gen.d.mts +0 -1306
- package/dist/generated/users/client.gen.cjs +0 -10
- package/dist/generated/users/client.gen.cjs.map +0 -1
- package/dist/generated/users/client.gen.mjs +0 -10
- package/dist/generated/users/client.gen.mjs.map +0 -1
- package/dist/generated/users/sdk.gen.cjs +0 -44
- package/dist/generated/users/sdk.gen.cjs.map +0 -1
- package/dist/generated/users/sdk.gen.mjs +0 -43
- package/dist/generated/users/sdk.gen.mjs.map +0 -1
- package/dist/generated/users/types.gen.d.cts +0 -348
- package/dist/generated/users/types.gen.d.mts +0 -348
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/types.d.cts +0 -130
- package/dist/types.d.mts +0 -130
- /package/dist/generated/{shared → mapi}/client/client.gen.d.mts +0 -0
- /package/dist/generated/{shared → mapi}/client/index.cjs +0 -0
- /package/dist/generated/{shared → mapi}/client/index.d.mts +0 -0
- /package/dist/generated/{shared → mapi}/client/index.mjs +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/generated/types/_utils.d.ts
|
|
2
|
+
type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
3
|
+
/** Replaces the keys of `T` that also appear in `U` with the definitions from `U`. */
|
|
4
|
+
type Override<T, U> = Prettify<Omit<T, keyof U> & U>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Override, Prettify };
|
|
7
|
+
//# sourceMappingURL=_utils.d.cts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/generated/types/_utils.d.ts
|
|
2
|
+
type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
3
|
+
/** Replaces the keys of `T` that also appear in `U` with the definitions from `U`. */
|
|
4
|
+
type Override<T, U> = Prettify<Omit<T, keyof U> & U>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Override, Prettify };
|
|
7
|
+
//# sourceMappingURL=_utils.d.mts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component } from "../mapi/types-aliased.gen.cjs";
|
|
2
|
+
import { Field } from "../overlay/_internal.gen.cjs";
|
|
3
|
+
import { Override } from "./_utils.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/generated/types/block.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Ordered array of named fields — the content-shape DSL form `defineBlock`
|
|
8
|
+
* accepts and returns. A field's position in the array sets the order it appears
|
|
9
|
+
* in the editor (mapped to the wire `pos` on push).
|
|
10
|
+
*/
|
|
11
|
+
type BlockFields = ReadonlyArray<Field & {
|
|
12
|
+
name: string;
|
|
13
|
+
pos?: number;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* A Storyblok block: a named, ordered set of content fields. Uses the
|
|
18
|
+
* content-shape DSL `fields` array rather than the MAPI wire `schema` record.
|
|
19
|
+
*/
|
|
20
|
+
type Block<TName extends string = string, TFields extends BlockFields = BlockFields, TIsRoot extends boolean = boolean, TIsNestable extends boolean = boolean> = Override<Omit<Component, 'schema' | 'component_group_uuid'>, {
|
|
21
|
+
name: TName;
|
|
22
|
+
fields: TFields;
|
|
23
|
+
is_root?: TIsRoot;
|
|
24
|
+
is_nestable?: TIsNestable;
|
|
25
|
+
/**
|
|
26
|
+
* Escape hatch for pinning this block to a Storyblok UI-managed component
|
|
27
|
+
* group by UUID. Component groups are normally maintained in code via the
|
|
28
|
+
* schema directory layout; set this only if you intentionally manage groups
|
|
29
|
+
* in the Storyblok UI, and fill in the group UUID yourself. When set,
|
|
30
|
+
* `schema push` diffs it and sends it to the Management API; when omitted,
|
|
31
|
+
* the block's remote group is left untouched.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Prefer maintaining component groups in code through the
|
|
34
|
+
* directory layout.
|
|
35
|
+
*/
|
|
36
|
+
component_group_uuid?: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Folder membership as a display name path (e.g. `'Layout/Heros'`); `null` =
|
|
39
|
+
* explicitly ungrouped (push clears the group). Absent = unmanaged (push
|
|
40
|
+
* leaves the remote group untouched).
|
|
41
|
+
*/
|
|
42
|
+
folder?: string | null;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* A root {@link Block} (`is_root: true`). Given a union of blocks, narrows to
|
|
46
|
+
* its root members; with no argument it is the generic root-block type.
|
|
47
|
+
*/
|
|
48
|
+
type RootBlock<T extends Block = Block & {
|
|
49
|
+
is_root: true;
|
|
50
|
+
}> = Extract<T, {
|
|
51
|
+
is_root: true;
|
|
52
|
+
}>;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { Block, BlockFields, RootBlock };
|
|
55
|
+
//# sourceMappingURL=block.d.cts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component } from "../mapi/types-aliased.gen.mjs";
|
|
2
|
+
import { Field } from "../overlay/_internal.gen.mjs";
|
|
3
|
+
import { Override } from "./_utils.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/generated/types/block.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Ordered array of named fields — the content-shape DSL form `defineBlock`
|
|
8
|
+
* accepts and returns. A field's position in the array sets the order it appears
|
|
9
|
+
* in the editor (mapped to the wire `pos` on push).
|
|
10
|
+
*/
|
|
11
|
+
type BlockFields = ReadonlyArray<Field & {
|
|
12
|
+
name: string;
|
|
13
|
+
pos?: number;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* A Storyblok block: a named, ordered set of content fields. Uses the
|
|
18
|
+
* content-shape DSL `fields` array rather than the MAPI wire `schema` record.
|
|
19
|
+
*/
|
|
20
|
+
type Block<TName extends string = string, TFields extends BlockFields = BlockFields, TIsRoot extends boolean = boolean, TIsNestable extends boolean = boolean> = Override<Omit<Component, 'schema' | 'component_group_uuid'>, {
|
|
21
|
+
name: TName;
|
|
22
|
+
fields: TFields;
|
|
23
|
+
is_root?: TIsRoot;
|
|
24
|
+
is_nestable?: TIsNestable;
|
|
25
|
+
/**
|
|
26
|
+
* Escape hatch for pinning this block to a Storyblok UI-managed component
|
|
27
|
+
* group by UUID. Component groups are normally maintained in code via the
|
|
28
|
+
* schema directory layout; set this only if you intentionally manage groups
|
|
29
|
+
* in the Storyblok UI, and fill in the group UUID yourself. When set,
|
|
30
|
+
* `schema push` diffs it and sends it to the Management API; when omitted,
|
|
31
|
+
* the block's remote group is left untouched.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Prefer maintaining component groups in code through the
|
|
34
|
+
* directory layout.
|
|
35
|
+
*/
|
|
36
|
+
component_group_uuid?: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Folder membership as a display name path (e.g. `'Layout/Heros'`); `null` =
|
|
39
|
+
* explicitly ungrouped (push clears the group). Absent = unmanaged (push
|
|
40
|
+
* leaves the remote group untouched).
|
|
41
|
+
*/
|
|
42
|
+
folder?: string | null;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* A root {@link Block} (`is_root: true`). Given a union of blocks, narrows to
|
|
46
|
+
* its root members; with no argument it is the generic root-block type.
|
|
47
|
+
*/
|
|
48
|
+
type RootBlock<T extends Block = Block & {
|
|
49
|
+
is_root: true;
|
|
50
|
+
}> = Extract<T, {
|
|
51
|
+
is_root: true;
|
|
52
|
+
}>;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { Block, BlockFields, RootBlock };
|
|
55
|
+
//# sourceMappingURL=block.d.mts.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AssetFieldValue, BlockContentBase, BlockContentInputBase, Field, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, TableFieldValue } from "../overlay/_internal.gen.cjs";
|
|
2
|
+
import { Prettify } from "./_utils.cjs";
|
|
3
|
+
import { Block, BlockFields } from "./block.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/generated/types/field.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Registry of all blocks in the space, used to resolve nested `bloks` fields.
|
|
8
|
+
* A `Block` union resolves nested content against the registry; `NoBlocks`
|
|
9
|
+
* (the default) leaves it loose (`BlockContentBase`).
|
|
10
|
+
*/
|
|
11
|
+
type NoBlocks = false;
|
|
12
|
+
/** True when `T` is the un-narrowed base `Block` (i.e. no specific block was supplied). */
|
|
13
|
+
type IsBaseBlock<T> = [Block] extends [T] ? true : false;
|
|
14
|
+
/**
|
|
15
|
+
* Maps a block's ordered `fields` array to its read content object, splitting
|
|
16
|
+
* required (`required: true`) from optional fields. Each `F` is a member of the
|
|
17
|
+
* field union, so it provably satisfies `FieldValue`'s `Field` constraint.
|
|
18
|
+
*/
|
|
19
|
+
type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
20
|
+
required: true;
|
|
21
|
+
} ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
22
|
+
required: true;
|
|
23
|
+
} ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
|
|
24
|
+
/** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
|
|
25
|
+
type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
26
|
+
required: true;
|
|
27
|
+
} ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
28
|
+
required: true;
|
|
29
|
+
} ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
|
|
30
|
+
/**
|
|
31
|
+
* Content object for a single block instance as returned by the Storyblok
|
|
32
|
+
* Content Delivery API. Without a `TBlock` argument, this is the loose
|
|
33
|
+
* runtime shape (any block, `_editable` optional). With a schema-typed
|
|
34
|
+
* `TBlock`, fields are narrowed per the block's `fields`.
|
|
35
|
+
*/
|
|
36
|
+
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
|
|
37
|
+
_uid: string;
|
|
38
|
+
component: TBlock['name'];
|
|
39
|
+
_editable?: string;
|
|
40
|
+
} & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
41
|
+
/** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
|
|
42
|
+
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
|
|
43
|
+
_uid?: string;
|
|
44
|
+
component: TBlock['name'];
|
|
45
|
+
_editable?: string;
|
|
46
|
+
} & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
47
|
+
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
|
|
48
|
+
interface FieldTypeValueMap {
|
|
49
|
+
text: string;
|
|
50
|
+
textarea: string;
|
|
51
|
+
richtext: RichtextFieldValue;
|
|
52
|
+
markdown: string;
|
|
53
|
+
number: number;
|
|
54
|
+
datetime: string;
|
|
55
|
+
boolean: boolean;
|
|
56
|
+
option: string;
|
|
57
|
+
options: string[];
|
|
58
|
+
asset: AssetFieldValue;
|
|
59
|
+
multiasset: AssetFieldValue[];
|
|
60
|
+
multilink: MultilinkFieldValue;
|
|
61
|
+
bloks: BlockContentBase[];
|
|
62
|
+
table: TableFieldValue;
|
|
63
|
+
section: never;
|
|
64
|
+
tab: never;
|
|
65
|
+
custom: PluginFieldValue;
|
|
66
|
+
}
|
|
67
|
+
type IsNestable<T> = T extends {
|
|
68
|
+
is_nestable: false;
|
|
69
|
+
} ? false : T extends {
|
|
70
|
+
is_nestable: true;
|
|
71
|
+
} ? true : true;
|
|
72
|
+
type AllowEntry = string | {
|
|
73
|
+
folder: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Keeps `TBlock` when its `folder` is `TFolder` or any nested subfolder (mirrors
|
|
77
|
+
* the editor's `isAnywhereInFolder`). This is a best-effort compile-time check,
|
|
78
|
+
* compared case-insensitively via `Lowercase` so `folder: 'blog'` and a `Blog`
|
|
79
|
+
* folder ref narrow the same. TypeScript cannot replicate the CLI's full slug at
|
|
80
|
+
* the type level, so separator/symbol drift (`'My Layout'` vs `'my-layout'`) is
|
|
81
|
+
* only reconciled at push/validate time — full folder identity is enforced
|
|
82
|
+
* there, not here. To rely on narrowing, prefer a `defineFolder` ref over a
|
|
83
|
+
* string path on both the block's `folder` and the field's `allow`: a shared ref
|
|
84
|
+
* carries the exact path on both sides, so no drift is possible.
|
|
85
|
+
*/
|
|
86
|
+
type MatchesFolder<TBlock, TFolder extends string> = TBlock extends {
|
|
87
|
+
folder: infer BF extends string;
|
|
88
|
+
} ? Lowercase<BF> extends Lowercase<TFolder> | `${Lowercase<TFolder>}/${string}` ? TBlock : never : never;
|
|
89
|
+
type ApplyAllow<TField, TBlocks> = TField extends {
|
|
90
|
+
allow: ReadonlyArray<infer TAllowed extends AllowEntry>;
|
|
91
|
+
} ? TAllowed extends string ? Extract<TBlocks, {
|
|
92
|
+
name: TAllowed;
|
|
93
|
+
}> : TAllowed extends {
|
|
94
|
+
folder: infer F extends string;
|
|
95
|
+
} ? TBlocks extends any ? MatchesFolder<TBlocks, F> : never : never : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
|
|
96
|
+
/**
|
|
97
|
+
* Resolves a `custom` field to its registered plugin value. When the field's
|
|
98
|
+
* `field_type` is a key of `TFieldPlugins`, the validator output is merged with
|
|
99
|
+
* the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
|
|
100
|
+
* the untyped {@link PluginFieldValue}. Same shape for read and write.
|
|
101
|
+
*/
|
|
102
|
+
type ResolveCustom<TField, TFieldPlugins> = TField extends {
|
|
103
|
+
field_type: infer F extends string;
|
|
104
|
+
} ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
|
|
105
|
+
plugin: string;
|
|
106
|
+
_uid?: string;
|
|
107
|
+
}> : PluginFieldValue : PluginFieldValue;
|
|
108
|
+
/** Resolves a field definition to its runtime content value type (read). */
|
|
109
|
+
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
110
|
+
type: 'bloks';
|
|
111
|
+
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
|
|
112
|
+
type: 'custom';
|
|
113
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
114
|
+
/** Resolves a field definition to its input value type (write). */
|
|
115
|
+
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
116
|
+
type: 'bloks';
|
|
117
|
+
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
|
|
118
|
+
type: 'custom';
|
|
119
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
120
|
+
//#endregion
|
|
121
|
+
export { BlockContent, BlockContentInput, BlocksFieldValue };
|
|
122
|
+
//# sourceMappingURL=field.d.cts.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AssetFieldValue, BlockContentBase, BlockContentInputBase, Field, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, TableFieldValue } from "../overlay/_internal.gen.mjs";
|
|
2
|
+
import { Prettify } from "./_utils.mjs";
|
|
3
|
+
import { Block, BlockFields } from "./block.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/generated/types/field.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Registry of all blocks in the space, used to resolve nested `bloks` fields.
|
|
8
|
+
* A `Block` union resolves nested content against the registry; `NoBlocks`
|
|
9
|
+
* (the default) leaves it loose (`BlockContentBase`).
|
|
10
|
+
*/
|
|
11
|
+
type NoBlocks = false;
|
|
12
|
+
/** True when `T` is the un-narrowed base `Block` (i.e. no specific block was supplied). */
|
|
13
|
+
type IsBaseBlock<T> = [Block] extends [T] ? true : false;
|
|
14
|
+
/**
|
|
15
|
+
* Maps a block's ordered `fields` array to its read content object, splitting
|
|
16
|
+
* required (`required: true`) from optional fields. Each `F` is a member of the
|
|
17
|
+
* field union, so it provably satisfies `FieldValue`'s `Field` constraint.
|
|
18
|
+
*/
|
|
19
|
+
type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
20
|
+
required: true;
|
|
21
|
+
} ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
22
|
+
required: true;
|
|
23
|
+
} ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
|
|
24
|
+
/** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
|
|
25
|
+
type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
26
|
+
required: true;
|
|
27
|
+
} ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
28
|
+
required: true;
|
|
29
|
+
} ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
|
|
30
|
+
/**
|
|
31
|
+
* Content object for a single block instance as returned by the Storyblok
|
|
32
|
+
* Content Delivery API. Without a `TBlock` argument, this is the loose
|
|
33
|
+
* runtime shape (any block, `_editable` optional). With a schema-typed
|
|
34
|
+
* `TBlock`, fields are narrowed per the block's `fields`.
|
|
35
|
+
*/
|
|
36
|
+
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
|
|
37
|
+
_uid: string;
|
|
38
|
+
component: TBlock['name'];
|
|
39
|
+
_editable?: string;
|
|
40
|
+
} & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
41
|
+
/** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
|
|
42
|
+
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
|
|
43
|
+
_uid?: string;
|
|
44
|
+
component: TBlock['name'];
|
|
45
|
+
_editable?: string;
|
|
46
|
+
} & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
47
|
+
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
|
|
48
|
+
interface FieldTypeValueMap {
|
|
49
|
+
text: string;
|
|
50
|
+
textarea: string;
|
|
51
|
+
richtext: RichtextFieldValue;
|
|
52
|
+
markdown: string;
|
|
53
|
+
number: number;
|
|
54
|
+
datetime: string;
|
|
55
|
+
boolean: boolean;
|
|
56
|
+
option: string;
|
|
57
|
+
options: string[];
|
|
58
|
+
asset: AssetFieldValue;
|
|
59
|
+
multiasset: AssetFieldValue[];
|
|
60
|
+
multilink: MultilinkFieldValue;
|
|
61
|
+
bloks: BlockContentBase[];
|
|
62
|
+
table: TableFieldValue;
|
|
63
|
+
section: never;
|
|
64
|
+
tab: never;
|
|
65
|
+
custom: PluginFieldValue;
|
|
66
|
+
}
|
|
67
|
+
type IsNestable<T> = T extends {
|
|
68
|
+
is_nestable: false;
|
|
69
|
+
} ? false : T extends {
|
|
70
|
+
is_nestable: true;
|
|
71
|
+
} ? true : true;
|
|
72
|
+
type AllowEntry = string | {
|
|
73
|
+
folder: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Keeps `TBlock` when its `folder` is `TFolder` or any nested subfolder (mirrors
|
|
77
|
+
* the editor's `isAnywhereInFolder`). This is a best-effort compile-time check,
|
|
78
|
+
* compared case-insensitively via `Lowercase` so `folder: 'blog'` and a `Blog`
|
|
79
|
+
* folder ref narrow the same. TypeScript cannot replicate the CLI's full slug at
|
|
80
|
+
* the type level, so separator/symbol drift (`'My Layout'` vs `'my-layout'`) is
|
|
81
|
+
* only reconciled at push/validate time — full folder identity is enforced
|
|
82
|
+
* there, not here. To rely on narrowing, prefer a `defineFolder` ref over a
|
|
83
|
+
* string path on both the block's `folder` and the field's `allow`: a shared ref
|
|
84
|
+
* carries the exact path on both sides, so no drift is possible.
|
|
85
|
+
*/
|
|
86
|
+
type MatchesFolder<TBlock, TFolder extends string> = TBlock extends {
|
|
87
|
+
folder: infer BF extends string;
|
|
88
|
+
} ? Lowercase<BF> extends Lowercase<TFolder> | `${Lowercase<TFolder>}/${string}` ? TBlock : never : never;
|
|
89
|
+
type ApplyAllow<TField, TBlocks> = TField extends {
|
|
90
|
+
allow: ReadonlyArray<infer TAllowed extends AllowEntry>;
|
|
91
|
+
} ? TAllowed extends string ? Extract<TBlocks, {
|
|
92
|
+
name: TAllowed;
|
|
93
|
+
}> : TAllowed extends {
|
|
94
|
+
folder: infer F extends string;
|
|
95
|
+
} ? TBlocks extends any ? MatchesFolder<TBlocks, F> : never : never : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
|
|
96
|
+
/**
|
|
97
|
+
* Resolves a `custom` field to its registered plugin value. When the field's
|
|
98
|
+
* `field_type` is a key of `TFieldPlugins`, the validator output is merged with
|
|
99
|
+
* the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
|
|
100
|
+
* the untyped {@link PluginFieldValue}. Same shape for read and write.
|
|
101
|
+
*/
|
|
102
|
+
type ResolveCustom<TField, TFieldPlugins> = TField extends {
|
|
103
|
+
field_type: infer F extends string;
|
|
104
|
+
} ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
|
|
105
|
+
plugin: string;
|
|
106
|
+
_uid?: string;
|
|
107
|
+
}> : PluginFieldValue : PluginFieldValue;
|
|
108
|
+
/** Resolves a field definition to its runtime content value type (read). */
|
|
109
|
+
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
110
|
+
type: 'bloks';
|
|
111
|
+
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
|
|
112
|
+
type: 'custom';
|
|
113
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
114
|
+
/** Resolves a field definition to its input value type (write). */
|
|
115
|
+
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
116
|
+
type: 'bloks';
|
|
117
|
+
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
|
|
118
|
+
type: 'custom';
|
|
119
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
120
|
+
//#endregion
|
|
121
|
+
export { BlockContent, BlockContentInput, BlocksFieldValue };
|
|
122
|
+
//# sourceMappingURL=field.d.mts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MapiStory as MapiStory$1, StoryCreate as StoryCreate$1, StoryUpdate as StoryUpdate$1 } from "../mapi/_internal.gen.cjs";
|
|
2
|
+
import { Override, Prettify } from "./_utils.cjs";
|
|
3
|
+
import { Block, RootBlock } from "./block.cjs";
|
|
4
|
+
import { BlockContent, BlockContentInput } from "./field.cjs";
|
|
5
|
+
|
|
6
|
+
//#region src/generated/types/mapi-story.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Registry of all blocks, threaded through to resolve nested `bloks` fields.
|
|
9
|
+
* `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
|
|
10
|
+
*/
|
|
11
|
+
type NoBlocks = false;
|
|
12
|
+
/**
|
|
13
|
+
* Overrides a generated story's `content` with schema-typed block content.
|
|
14
|
+
* Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
|
|
15
|
+
* story passes through unchanged.
|
|
16
|
+
*/
|
|
17
|
+
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
|
|
18
|
+
content: TStory extends StoryCreate$1 | StoryUpdate$1 ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
19
|
+
}>;
|
|
20
|
+
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
21
|
+
/** A Storyblok MAPI story. */
|
|
22
|
+
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
23
|
+
/** Payload for creating a story via the MAPI. */
|
|
24
|
+
type StoryCreate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryCreate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
25
|
+
/** Payload for updating a story via the MAPI. */
|
|
26
|
+
type StoryUpdate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryUpdate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { MapiStory, StoryCreate, StoryUpdate };
|
|
29
|
+
//# sourceMappingURL=mapi-story.d.cts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MapiStory as MapiStory$1, StoryCreate as StoryCreate$1, StoryUpdate as StoryUpdate$1 } from "../mapi/_internal.gen.mjs";
|
|
2
|
+
import { Override, Prettify } from "./_utils.mjs";
|
|
3
|
+
import { Block, RootBlock } from "./block.mjs";
|
|
4
|
+
import { BlockContent, BlockContentInput } from "./field.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/generated/types/mapi-story.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Registry of all blocks, threaded through to resolve nested `bloks` fields.
|
|
9
|
+
* `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
|
|
10
|
+
*/
|
|
11
|
+
type NoBlocks = false;
|
|
12
|
+
/**
|
|
13
|
+
* Overrides a generated story's `content` with schema-typed block content.
|
|
14
|
+
* Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
|
|
15
|
+
* story passes through unchanged.
|
|
16
|
+
*/
|
|
17
|
+
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
|
|
18
|
+
content: TStory extends StoryCreate$1 | StoryUpdate$1 ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
19
|
+
}>;
|
|
20
|
+
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
21
|
+
/** A Storyblok MAPI story. */
|
|
22
|
+
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
23
|
+
/** Payload for creating a story via the MAPI. */
|
|
24
|
+
type StoryCreate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryCreate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
25
|
+
/** Payload for updating a story via the MAPI. */
|
|
26
|
+
type StoryUpdate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryUpdate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { MapiStory, StoryCreate, StoryUpdate };
|
|
29
|
+
//# sourceMappingURL=mapi-story.d.mts.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,186 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
const require_utils_gen = require('./generated/shared/client/utils.gen.cjs');
|
|
4
|
-
const require_client_gen = require('./generated/shared/client/client.gen.cjs');
|
|
5
|
-
require('./generated/shared/client/index.cjs');
|
|
6
2
|
const require_error = require('./error.cjs');
|
|
7
|
-
const
|
|
8
|
-
const require_asset_folders = require('./resources/asset-folders.cjs');
|
|
9
|
-
const require_assets = require('./resources/assets.cjs');
|
|
10
|
-
const require_component_folders = require('./resources/component-folders.cjs');
|
|
11
|
-
const require_components = require('./resources/components.cjs');
|
|
12
|
-
const require_datasource_entries = require('./resources/datasource-entries.cjs');
|
|
13
|
-
const require_datasources = require('./resources/datasources.cjs');
|
|
14
|
-
const require_experiments = require('./resources/experiments.cjs');
|
|
15
|
-
const require_internal_tags = require('./resources/internal-tags.cjs');
|
|
16
|
-
const require_presets = require('./resources/presets.cjs');
|
|
17
|
-
const require_shared_asset_folders = require('./resources/shared-asset-folders.cjs');
|
|
18
|
-
const require_shared_assets = require('./resources/shared-assets.cjs');
|
|
19
|
-
const require_shared_internal_tags = require('./resources/shared-internal-tags.cjs');
|
|
20
|
-
const require_spaces = require('./resources/spaces.cjs');
|
|
21
|
-
const require_stories = require('./resources/stories.cjs');
|
|
22
|
-
const require_users = require('./resources/users.cjs');
|
|
3
|
+
const require_client = require('./client.cjs');
|
|
23
4
|
const require_normalize_asset_url = require('./utils/normalize-asset-url.cjs');
|
|
24
|
-
let _storyblok_region_helper = require("@storyblok/region-helper");
|
|
25
5
|
|
|
26
|
-
//#region src/index.ts
|
|
27
|
-
function getAuthorizationHeader(config) {
|
|
28
|
-
if (config.personalAccessToken) return config.personalAccessToken;
|
|
29
|
-
if (config.oauthToken) return `Bearer ${config.oauthToken.replace(/^Bearer\s+/i, "")}`;
|
|
30
|
-
}
|
|
31
|
-
const createManagementApiClient = (config) => {
|
|
32
|
-
const { spaceId, region = "eu", baseUrl, headers = {}, throwOnError = false, retry = {
|
|
33
|
-
limit: 12,
|
|
34
|
-
backoffLimit: 2e4,
|
|
35
|
-
methods: [
|
|
36
|
-
"get",
|
|
37
|
-
"post",
|
|
38
|
-
"put",
|
|
39
|
-
"delete",
|
|
40
|
-
"patch",
|
|
41
|
-
"head",
|
|
42
|
-
"options",
|
|
43
|
-
"trace"
|
|
44
|
-
],
|
|
45
|
-
statusCodes: [429]
|
|
46
|
-
}, timeout = 3e4, rateLimit } = config;
|
|
47
|
-
const throttleManager = require_rate_limit.createThrottleManager(rateLimit ?? {});
|
|
48
|
-
const authHeader = getAuthorizationHeader(config);
|
|
49
|
-
const client = require_client_gen.createClient(require_utils_gen.createConfig({
|
|
50
|
-
baseUrl: baseUrl || (0, _storyblok_region_helper.getManagementBaseUrl)(region),
|
|
51
|
-
headers: {
|
|
52
|
-
...authHeader ? { Authorization: authHeader } : {},
|
|
53
|
-
...headers
|
|
54
|
-
},
|
|
55
|
-
throwOnError,
|
|
56
|
-
kyOptions: {
|
|
57
|
-
throwHttpErrors: true,
|
|
58
|
-
timeout,
|
|
59
|
-
retry
|
|
60
|
-
}
|
|
61
|
-
}));
|
|
62
|
-
client.interceptors.error.use((error, response) => new require_error.ClientError(response?.statusText || "API request failed", {
|
|
63
|
-
status: response?.status ?? 0,
|
|
64
|
-
statusText: response?.statusText ?? "",
|
|
65
|
-
data: error
|
|
66
|
-
}));
|
|
67
|
-
/**
|
|
68
|
-
* Wraps an SDK call with throttling.
|
|
69
|
-
* When throwOnError is true, errors throw and data is guaranteed non-null.
|
|
70
|
-
*/
|
|
71
|
-
function wrapRequest(fn, _throwOnError) {
|
|
72
|
-
return throttleManager.execute(() => fn());
|
|
73
|
-
}
|
|
74
|
-
const deps = {
|
|
75
|
-
client,
|
|
76
|
-
spaceId,
|
|
77
|
-
wrapRequest
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Escape hatch: send a GET request to any MAPI endpoint not yet wrapped
|
|
81
|
-
* in a dedicated resource method.
|
|
82
|
-
*/
|
|
83
|
-
const httpGet = (path, options = {}) => {
|
|
84
|
-
const { fetchOptions, ...rest } = options;
|
|
85
|
-
return wrapRequest(() => client.get({
|
|
86
|
-
url: path,
|
|
87
|
-
...rest,
|
|
88
|
-
...fetchOptions ? { kyOptions: {
|
|
89
|
-
...client.getConfig().kyOptions,
|
|
90
|
-
...fetchOptions
|
|
91
|
-
} } : {}
|
|
92
|
-
}));
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Escape hatch: send a POST request to any MAPI endpoint not yet wrapped
|
|
96
|
-
* in a dedicated resource method.
|
|
97
|
-
*/
|
|
98
|
-
const httpPost = (path, options = {}) => {
|
|
99
|
-
const { fetchOptions, ...rest } = options;
|
|
100
|
-
return wrapRequest(() => client.post({
|
|
101
|
-
url: path,
|
|
102
|
-
...rest,
|
|
103
|
-
...fetchOptions ? { kyOptions: {
|
|
104
|
-
...client.getConfig().kyOptions,
|
|
105
|
-
...fetchOptions
|
|
106
|
-
} } : {}
|
|
107
|
-
}));
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Escape hatch: send a PUT request to any MAPI endpoint not yet wrapped
|
|
111
|
-
* in a dedicated resource method.
|
|
112
|
-
*/
|
|
113
|
-
const httpPut = (path, options = {}) => {
|
|
114
|
-
const { fetchOptions, ...rest } = options;
|
|
115
|
-
return wrapRequest(() => client.put({
|
|
116
|
-
url: path,
|
|
117
|
-
...rest,
|
|
118
|
-
...fetchOptions ? { kyOptions: {
|
|
119
|
-
...client.getConfig().kyOptions,
|
|
120
|
-
...fetchOptions
|
|
121
|
-
} } : {}
|
|
122
|
-
}));
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* Escape hatch: send a PATCH request to any MAPI endpoint not yet wrapped
|
|
126
|
-
* in a dedicated resource method.
|
|
127
|
-
*/
|
|
128
|
-
const httpPatch = (path, options = {}) => {
|
|
129
|
-
const { fetchOptions, ...rest } = options;
|
|
130
|
-
return wrapRequest(() => client.patch({
|
|
131
|
-
url: path,
|
|
132
|
-
...rest,
|
|
133
|
-
...fetchOptions ? { kyOptions: {
|
|
134
|
-
...client.getConfig().kyOptions,
|
|
135
|
-
...fetchOptions
|
|
136
|
-
} } : {}
|
|
137
|
-
}));
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Escape hatch: send a DELETE request to any MAPI endpoint not yet wrapped
|
|
141
|
-
* in a dedicated resource method.
|
|
142
|
-
*/
|
|
143
|
-
const httpDelete = (path, options = {}) => {
|
|
144
|
-
const { fetchOptions, ...rest } = options;
|
|
145
|
-
return wrapRequest(() => client.delete({
|
|
146
|
-
url: path,
|
|
147
|
-
...rest,
|
|
148
|
-
...fetchOptions ? { kyOptions: {
|
|
149
|
-
...client.getConfig().kyOptions,
|
|
150
|
-
...fetchOptions
|
|
151
|
-
} } : {}
|
|
152
|
-
}));
|
|
153
|
-
};
|
|
154
|
-
return {
|
|
155
|
-
assetFolders: require_asset_folders.createAssetFoldersResource(deps),
|
|
156
|
-
assets: require_assets.createAssetsResource(deps),
|
|
157
|
-
componentFolders: require_component_folders.createComponentFoldersResource(deps),
|
|
158
|
-
components: require_components.createComponentsResource(deps),
|
|
159
|
-
datasourceEntries: require_datasource_entries.createDatasourceEntriesResource(deps),
|
|
160
|
-
datasources: require_datasources.createDatasourcesResource(deps),
|
|
161
|
-
experiments: require_experiments.createExperimentsResource(deps),
|
|
162
|
-
delete: httpDelete,
|
|
163
|
-
get: httpGet,
|
|
164
|
-
patch: httpPatch,
|
|
165
|
-
interceptors: client.interceptors,
|
|
166
|
-
internalTags: require_internal_tags.createInternalTagsResource(deps),
|
|
167
|
-
post: httpPost,
|
|
168
|
-
presets: require_presets.createPresetsResource(deps),
|
|
169
|
-
put: httpPut,
|
|
170
|
-
sharedAssetFolders: require_shared_asset_folders.createSharedAssetFoldersResource(deps),
|
|
171
|
-
sharedAssets: require_shared_assets.createSharedAssetsResource(deps),
|
|
172
|
-
sharedInternalTags: require_shared_internal_tags.createSharedInternalTagsResource(deps),
|
|
173
|
-
spaces: require_spaces.createSpacesResource(deps),
|
|
174
|
-
stories: require_stories.createStoriesResource(deps),
|
|
175
|
-
users: require_users.createUsersResource({
|
|
176
|
-
client,
|
|
177
|
-
wrapRequest
|
|
178
|
-
})
|
|
179
|
-
};
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
//#endregion
|
|
183
6
|
exports.ClientError = require_error.ClientError;
|
|
184
|
-
exports.createManagementApiClient = createManagementApiClient;
|
|
185
|
-
exports.normalizeAssetUrl = require_normalize_asset_url.normalizeAssetUrl;
|
|
186
|
-
//# sourceMappingURL=index.cjs.map
|
|
7
|
+
exports.createManagementApiClient = require_client.createManagementApiClient;
|
|
8
|
+
exports.normalizeAssetUrl = require_normalize_asset_url.normalizeAssetUrl;
|