@storyblok/management-api-client 0.3.0 → 1.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/client.cjs +190 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +632 -0
- package/dist/client.d.mts +632 -0
- package/dist/client.mjs +189 -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 +541 -0
- package/dist/generated/mapi/_internal.gen.d.mts +541 -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 +1428 -0
- package/dist/generated/mapi/types-aliased.gen.d.mts +1428 -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 +30 -0
- package/dist/generated/types/block.d.mts +30 -0
- package/dist/generated/types/field.d.cts +75 -0
- package/dist/generated/types/field.d.mts +75 -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 -173
- package/dist/index.d.cts +13 -433
- package/dist/index.d.mts +13 -433
- package/dist/index.mjs +2 -171
- 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 -48
- 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 -48
- 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 +299 -0
- package/dist/resources/experiments.cjs.map +1 -0
- package/dist/resources/experiments.mjs +299 -0
- package/dist/resources/experiments.mjs.map +1 -0
- 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.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 +16 -14
- 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 +520 -0
- package/playground/integration-tests/test/types/components.test-d.ts +113 -0
- package/playground/integration-tests/test/types/resources.test-d.ts +364 -0
- package/playground/integration-tests/test/types/stories.test-d.ts +306 -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/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,25 @@
|
|
|
1
|
+
/// <reference types="vitest" />
|
|
2
|
+
import { defineConfig } from 'vitest/config';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Vitest config for end-to-end tests that hit the real Storyblok Management API.
|
|
6
|
+
*
|
|
7
|
+
* These tests are NOT run in CI. Trigger them manually:
|
|
8
|
+
* pnpm --filter @storyblok/mapi-integration-tests test:e2e
|
|
9
|
+
*
|
|
10
|
+
* Prerequisites:
|
|
11
|
+
* - A .env.qa-engineer-manual file at the repo root with STORYBLOK_TOKEN and STORYBLOK_SPACE_ID.
|
|
12
|
+
* - The @storyblok/management-api-client package must be built.
|
|
13
|
+
*/
|
|
14
|
+
export default defineConfig({
|
|
15
|
+
test: {
|
|
16
|
+
include: ['./test/specs/**/*.spec.e2e.ts'],
|
|
17
|
+
setupFiles: ['./test/setup.e2e.ts'],
|
|
18
|
+
globals: true,
|
|
19
|
+
testTimeout: 60_000,
|
|
20
|
+
hookTimeout: 120_000,
|
|
21
|
+
sequence: {
|
|
22
|
+
concurrent: false,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="vitest" />
|
|
2
|
+
import { defineConfig } from 'vitest/config';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
test: {
|
|
6
|
+
environment: 'node',
|
|
7
|
+
include: [],
|
|
8
|
+
typecheck: {
|
|
9
|
+
enabled: true,
|
|
10
|
+
include: ['./test/types/**/*.test-d.ts'],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
package/test/GUIDE.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Manually Test the @storyblok/management-api-client Package
|
|
2
|
+
|
|
3
|
+
`@storyblok/management-api-client` is the Management API (MAPI) client. The key things to validate manually are that the schema-aware `.withTypes()` integration correctly narrows story content, that every define helper produces a valid creation payload, and that Zod schemas accept real API responses.
|
|
4
|
+
|
|
5
|
+
## Automated e2e tests
|
|
6
|
+
|
|
7
|
+
The `@storyblok/mapi-integration-tests` package (`packages/mapi-client/playground/integration-tests`) covers the full round-trip against a real Storyblok space in `test/specs/mapi-round-trip.spec.e2e.ts`:
|
|
8
|
+
|
|
9
|
+
- Seeds components, datasources, internal tags, presets, and stories via the MAPI.
|
|
10
|
+
- Validates runtime values, type narrowing, nested bloks (two- and three-level), unwhitelisted bloks, and update round-trips.
|
|
11
|
+
- Validates MAPI Zod schemas (`componentSchema`, `storySchema`, `datasourceSchema`, `datasourceEntrySchema`) against real API responses.
|
|
12
|
+
|
|
13
|
+
Run manually:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm --filter @storyblok/mapi-integration-tests test:e2e
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Prerequisites
|
|
20
|
+
|
|
21
|
+
- A `.env.qa-engineer-manual` file at the repo root with `STORYBLOK_TOKEN` and `STORYBLOK_SPACE_ID`.
|
|
22
|
+
- `@storyblok/management-api-client` must be built first.
|
|
23
|
+
|
|
24
|
+
## Fetch via MAPI client and check content types
|
|
25
|
+
|
|
26
|
+
`stories.get(storyId)` takes a numeric/string ID as its first positional argument — there is no `getBySlug`. Fetch the ID from `stories.list` first:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { createManagementApiClient } from '@storyblok/management-api-client';
|
|
30
|
+
|
|
31
|
+
const client = createManagementApiClient({ personalAccessToken: process.env.STORYBLOK_TOKEN, spaceId });
|
|
32
|
+
const list = await client.stories.list({ query: { per_page: 100 } });
|
|
33
|
+
const story = list.data?.stories?.find(s => s.slug === 'home');
|
|
34
|
+
const result = await client.stories.get(story.id);
|
|
35
|
+
console.info(result.data?.story?.content);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Push component JSONs via the CLI
|
|
39
|
+
|
|
40
|
+
To push `defineComponent` components, serialize the component objects to JSON and stage them under `.storyblok/components/<space_id>/`:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
node packages/cli/dist/index.mjs components push \
|
|
44
|
+
--from qa-test \
|
|
45
|
+
--space $STORYBLOK_SPACE_ID \
|
|
46
|
+
--separate-files
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Always push components before stories.** The CLI validates that each story's `content.component` (and any nested block components) exist in the space. Pushing stories first fails if the referenced components are not yet present.
|
|
50
|
+
|
|
51
|
+
You can do the same with stories and `defineStory`. **Story filename convention:** the CLI requires files named `{slug}_{uuid}.json` where the part after the last `_` exactly matches `story.uuid` in the JSON. Use hyphens (not underscores) in UUIDs. A mismatch causes Pass 2 of the push (reference mapping + content update) to silently skip all stories.
|
|
52
|
+
|
|
53
|
+
## Known quirks
|
|
54
|
+
|
|
55
|
+
- **Stories require a content type component (`is_root: true`).** The MAPI rejects story creation with `"please select a content type component as your root component"` if the component used as the story root does not have `is_root: true`.
|
|
56
|
+
- **MAPI `stories.get` takes a positional ID, not an options object:** `client.stories.get(id)` — there is no `getBySlug`. The `list` response does not include `content`; call `get(id)` for full content.
|
|
57
|
+
- **MAPI client constructor uses `personalAccessToken`:** `createManagementApiClient({ personalAccessToken: '...', spaceId: ... })`.
|
|
58
|
+
- **Delete methods are `delete`:** Use `client.RESOURCE.delete(id)`.
|
|
59
|
+
- **Each story JSON must have a unique `id`.** `defineStory` defaults `id` to `1`. If multiple story files share the same `id`, the CLI's manifest maps all of them to the same `old_id` entry, causing "slug already taken" errors.
|
package/vitest.config.ts
CHANGED
|
@@ -4,5 +4,10 @@ import { defineConfig } from 'vitest/config';
|
|
|
4
4
|
export default defineConfig({
|
|
5
5
|
test: {
|
|
6
6
|
environment: 'node',
|
|
7
|
+
exclude: ['**/node_modules/**', '**/dist/**', './playground/**'],
|
|
8
|
+
typecheck: {
|
|
9
|
+
enabled: true,
|
|
10
|
+
exclude: ['**/node_modules/**', '**/dist/**', './playground/**'],
|
|
11
|
+
},
|
|
7
12
|
},
|
|
8
13
|
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const require_utils_gen = require('../shared/client/utils.gen.cjs');
|
|
2
|
-
const require_client_gen = require('../shared/client/client.gen.cjs');
|
|
3
|
-
require('../shared/client/index.cjs');
|
|
4
|
-
|
|
5
|
-
//#region src/generated/asset_folders/client.gen.ts
|
|
6
|
-
const client = require_client_gen.createClient(require_utils_gen.createConfig({ baseUrl: "https://mapi.storyblok.com" }));
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
exports.client = client;
|
|
10
|
-
//# sourceMappingURL=client.gen.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.cjs","names":["createClient","createConfig"],"sources":["../../../src/generated/asset_folders/client.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from '../shared/client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://mapi.storyblok.com' }));\n"],"mappings":";;;;;AAeA,MAAa,SAASA,gCAAaC,+BAA6B,EAAE,SAAS,8BAA8B,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createConfig } from "../shared/client/utils.gen.mjs";
|
|
2
|
-
import { createClient } from "../shared/client/client.gen.mjs";
|
|
3
|
-
import "../shared/client/index.mjs";
|
|
4
|
-
|
|
5
|
-
//#region src/generated/asset_folders/client.gen.ts
|
|
6
|
-
const client = createClient(createConfig({ baseUrl: "https://mapi.storyblok.com" }));
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { client };
|
|
10
|
-
//# sourceMappingURL=client.gen.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.mjs","names":[],"sources":["../../../src/generated/asset_folders/client.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from '../shared/client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://mapi.storyblok.com' }));\n"],"mappings":";;;;;AAeA,MAAa,SAAS,aAAa,aAA6B,EAAE,SAAS,8BAA8B,CAAC,CAAC"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
const require_client_gen = require('./client.gen.cjs');
|
|
2
|
-
|
|
3
|
-
//#region src/generated/asset_folders/sdk.gen.ts
|
|
4
|
-
/**
|
|
5
|
-
* Retrieve Multiple Asset Folders
|
|
6
|
-
*
|
|
7
|
-
* An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
|
|
8
|
-
*/
|
|
9
|
-
const list = (options) => (options.client ?? require_client_gen.client).get({
|
|
10
|
-
security: [{
|
|
11
|
-
name: "Authorization",
|
|
12
|
-
type: "apiKey"
|
|
13
|
-
}, {
|
|
14
|
-
scheme: "bearer",
|
|
15
|
-
type: "http"
|
|
16
|
-
}],
|
|
17
|
-
url: "/v1/spaces/{space_id}/asset_folders",
|
|
18
|
-
...options
|
|
19
|
-
});
|
|
20
|
-
/**
|
|
21
|
-
* Create an Asset Folder
|
|
22
|
-
*
|
|
23
|
-
* An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
|
|
24
|
-
*/
|
|
25
|
-
const create = (options) => (options.client ?? require_client_gen.client).post({
|
|
26
|
-
security: [{
|
|
27
|
-
name: "Authorization",
|
|
28
|
-
type: "apiKey"
|
|
29
|
-
}, {
|
|
30
|
-
scheme: "bearer",
|
|
31
|
-
type: "http"
|
|
32
|
-
}],
|
|
33
|
-
url: "/v1/spaces/{space_id}/asset_folders",
|
|
34
|
-
...options,
|
|
35
|
-
headers: {
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
...options.headers
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
/**
|
|
41
|
-
* Delete an Asset Folder
|
|
42
|
-
*
|
|
43
|
-
* Operations for a specific asset folder
|
|
44
|
-
*/
|
|
45
|
-
const delete_ = (options) => (options.client ?? require_client_gen.client).delete({
|
|
46
|
-
security: [{
|
|
47
|
-
name: "Authorization",
|
|
48
|
-
type: "apiKey"
|
|
49
|
-
}, {
|
|
50
|
-
scheme: "bearer",
|
|
51
|
-
type: "http"
|
|
52
|
-
}],
|
|
53
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
54
|
-
...options
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Retrieve a Single Asset Folder
|
|
58
|
-
*
|
|
59
|
-
* Operations for a specific asset folder
|
|
60
|
-
*/
|
|
61
|
-
const get = (options) => (options.client ?? require_client_gen.client).get({
|
|
62
|
-
security: [{
|
|
63
|
-
name: "Authorization",
|
|
64
|
-
type: "apiKey"
|
|
65
|
-
}, {
|
|
66
|
-
scheme: "bearer",
|
|
67
|
-
type: "http"
|
|
68
|
-
}],
|
|
69
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
70
|
-
...options
|
|
71
|
-
});
|
|
72
|
-
/**
|
|
73
|
-
* Update an Asset Folder
|
|
74
|
-
*
|
|
75
|
-
* Operations for a specific asset folder
|
|
76
|
-
*/
|
|
77
|
-
const update = (options) => (options.client ?? require_client_gen.client).put({
|
|
78
|
-
security: [{
|
|
79
|
-
name: "Authorization",
|
|
80
|
-
type: "apiKey"
|
|
81
|
-
}, {
|
|
82
|
-
scheme: "bearer",
|
|
83
|
-
type: "http"
|
|
84
|
-
}],
|
|
85
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
86
|
-
...options,
|
|
87
|
-
headers: {
|
|
88
|
-
"Content-Type": "application/json",
|
|
89
|
-
...options.headers
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
//#endregion
|
|
94
|
-
exports.create = create;
|
|
95
|
-
exports.delete_ = delete_;
|
|
96
|
-
exports.get = get;
|
|
97
|
-
exports.list = list;
|
|
98
|
-
exports.update = update;
|
|
99
|
-
//# sourceMappingURL=sdk.gen.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.gen.cjs","names":["client"],"sources":["../../../src/generated/asset_folders/sdk.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from '../shared/client';\nimport { client } from './client.gen';\nimport type { CreateData, CreateErrors, CreateResponses, DeleteData, DeleteErrors, DeleteResponses, GetData, GetErrors, GetResponses, ListData, ListErrors, ListResponses, UpdateData, UpdateErrors, UpdateResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Retrieve Multiple Asset Folders\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const list = <ThrowOnError extends boolean = false>(options: Options<ListData, ThrowOnError>) => (options.client ?? client).get<ListResponses, ListErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options\n});\n\n/**\n * Create an Asset Folder\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const create = <ThrowOnError extends boolean = false>(options: Options<CreateData, ThrowOnError>) => (options.client ?? client).post<CreateResponses, CreateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const delete_ = <ThrowOnError extends boolean = false>(options: Options<DeleteData, ThrowOnError>) => (options.client ?? client).delete<DeleteResponses, DeleteErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Retrieve a Single Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const get = <ThrowOnError extends boolean = false>(options: Options<GetData, ThrowOnError>) => (options.client ?? client).get<GetResponses, GetErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Update an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const update = <ThrowOnError extends boolean = false>(options: Options<UpdateData, ThrowOnError>) => (options.client ?? client).put<UpdateResponses, UpdateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n"],"mappings":";;;;;;;;AAyBA,MAAa,QAA8C,aAA8C,QAAQ,UAAUA,2BAAQ,IAA6C;CAC5K,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAUA,2BAAQ,KAAkD;CACrL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC;;;;;;AAOF,MAAa,WAAiD,aAAgD,QAAQ,UAAUA,2BAAQ,OAAoD;CACxL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,OAA6C,aAA6C,QAAQ,UAAUA,2BAAQ,IAA2C;CACxK,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAUA,2BAAQ,IAAiD;CACpL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { client } from "./client.gen.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/generated/asset_folders/sdk.gen.ts
|
|
4
|
-
/**
|
|
5
|
-
* Retrieve Multiple Asset Folders
|
|
6
|
-
*
|
|
7
|
-
* An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
|
|
8
|
-
*/
|
|
9
|
-
const list = (options) => (options.client ?? client).get({
|
|
10
|
-
security: [{
|
|
11
|
-
name: "Authorization",
|
|
12
|
-
type: "apiKey"
|
|
13
|
-
}, {
|
|
14
|
-
scheme: "bearer",
|
|
15
|
-
type: "http"
|
|
16
|
-
}],
|
|
17
|
-
url: "/v1/spaces/{space_id}/asset_folders",
|
|
18
|
-
...options
|
|
19
|
-
});
|
|
20
|
-
/**
|
|
21
|
-
* Create an Asset Folder
|
|
22
|
-
*
|
|
23
|
-
* An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
|
|
24
|
-
*/
|
|
25
|
-
const create = (options) => (options.client ?? client).post({
|
|
26
|
-
security: [{
|
|
27
|
-
name: "Authorization",
|
|
28
|
-
type: "apiKey"
|
|
29
|
-
}, {
|
|
30
|
-
scheme: "bearer",
|
|
31
|
-
type: "http"
|
|
32
|
-
}],
|
|
33
|
-
url: "/v1/spaces/{space_id}/asset_folders",
|
|
34
|
-
...options,
|
|
35
|
-
headers: {
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
...options.headers
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
/**
|
|
41
|
-
* Delete an Asset Folder
|
|
42
|
-
*
|
|
43
|
-
* Operations for a specific asset folder
|
|
44
|
-
*/
|
|
45
|
-
const delete_ = (options) => (options.client ?? client).delete({
|
|
46
|
-
security: [{
|
|
47
|
-
name: "Authorization",
|
|
48
|
-
type: "apiKey"
|
|
49
|
-
}, {
|
|
50
|
-
scheme: "bearer",
|
|
51
|
-
type: "http"
|
|
52
|
-
}],
|
|
53
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
54
|
-
...options
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Retrieve a Single Asset Folder
|
|
58
|
-
*
|
|
59
|
-
* Operations for a specific asset folder
|
|
60
|
-
*/
|
|
61
|
-
const get = (options) => (options.client ?? client).get({
|
|
62
|
-
security: [{
|
|
63
|
-
name: "Authorization",
|
|
64
|
-
type: "apiKey"
|
|
65
|
-
}, {
|
|
66
|
-
scheme: "bearer",
|
|
67
|
-
type: "http"
|
|
68
|
-
}],
|
|
69
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
70
|
-
...options
|
|
71
|
-
});
|
|
72
|
-
/**
|
|
73
|
-
* Update an Asset Folder
|
|
74
|
-
*
|
|
75
|
-
* Operations for a specific asset folder
|
|
76
|
-
*/
|
|
77
|
-
const update = (options) => (options.client ?? client).put({
|
|
78
|
-
security: [{
|
|
79
|
-
name: "Authorization",
|
|
80
|
-
type: "apiKey"
|
|
81
|
-
}, {
|
|
82
|
-
scheme: "bearer",
|
|
83
|
-
type: "http"
|
|
84
|
-
}],
|
|
85
|
-
url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
|
|
86
|
-
...options,
|
|
87
|
-
headers: {
|
|
88
|
-
"Content-Type": "application/json",
|
|
89
|
-
...options.headers
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
//#endregion
|
|
94
|
-
export { create, delete_, get, list, update };
|
|
95
|
-
//# sourceMappingURL=sdk.gen.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.gen.mjs","names":[],"sources":["../../../src/generated/asset_folders/sdk.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from '../shared/client';\nimport { client } from './client.gen';\nimport type { CreateData, CreateErrors, CreateResponses, DeleteData, DeleteErrors, DeleteResponses, GetData, GetErrors, GetResponses, ListData, ListErrors, ListResponses, UpdateData, UpdateErrors, UpdateResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Retrieve Multiple Asset Folders\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const list = <ThrowOnError extends boolean = false>(options: Options<ListData, ThrowOnError>) => (options.client ?? client).get<ListResponses, ListErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options\n});\n\n/**\n * Create an Asset Folder\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const create = <ThrowOnError extends boolean = false>(options: Options<CreateData, ThrowOnError>) => (options.client ?? client).post<CreateResponses, CreateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const delete_ = <ThrowOnError extends boolean = false>(options: Options<DeleteData, ThrowOnError>) => (options.client ?? client).delete<DeleteResponses, DeleteErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Retrieve a Single Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const get = <ThrowOnError extends boolean = false>(options: Options<GetData, ThrowOnError>) => (options.client ?? client).get<GetResponses, GetErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Update an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const update = <ThrowOnError extends boolean = false>(options: Options<UpdateData, ThrowOnError>) => (options.client ?? client).put<UpdateResponses, UpdateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n"],"mappings":";;;;;;;;AAyBA,MAAa,QAA8C,aAA8C,QAAQ,UAAU,QAAQ,IAA6C;CAC5K,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAU,QAAQ,KAAkD;CACrL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC;;;;;;AAOF,MAAa,WAAiD,aAAgD,QAAQ,UAAU,QAAQ,OAAoD;CACxL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,OAA6C,aAA6C,QAAQ,UAAU,QAAQ,IAA2C;CACxK,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAU,QAAQ,IAAiD;CACpL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC"}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
//#region src/generated/asset_folders/types.gen.d.ts
|
|
2
|
-
type AssetFolder = {
|
|
3
|
-
/**
|
|
4
|
-
* The numeric ID of the asset folder
|
|
5
|
-
*/
|
|
6
|
-
readonly id: number;
|
|
7
|
-
/**
|
|
8
|
-
* The name of the asset folder
|
|
9
|
-
*/
|
|
10
|
-
name: string;
|
|
11
|
-
/**
|
|
12
|
-
* ID of the parent folder for hierarchical structure
|
|
13
|
-
*/
|
|
14
|
-
parent_id?: number | null;
|
|
15
|
-
/**
|
|
16
|
-
* The UUID of the asset folder
|
|
17
|
-
*/
|
|
18
|
-
readonly uuid: string;
|
|
19
|
-
/**
|
|
20
|
-
* The UUID of the parent folder
|
|
21
|
-
*/
|
|
22
|
-
readonly parent_uuid?: string | null;
|
|
23
|
-
};
|
|
24
|
-
type AssetFolderCreate = AssetFolderCreate2;
|
|
25
|
-
type AssetFolderUpdate = AssetFolderUpdate2;
|
|
26
|
-
/**
|
|
27
|
-
* Input for creating an asset folder.
|
|
28
|
-
*/
|
|
29
|
-
type AssetFolderCreate2 = {
|
|
30
|
-
/**
|
|
31
|
-
* The name of the asset folder
|
|
32
|
-
*/
|
|
33
|
-
name: string;
|
|
34
|
-
/**
|
|
35
|
-
* ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
|
|
36
|
-
*/
|
|
37
|
-
parent_id?: number | null;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Input for updating an asset folder.
|
|
41
|
-
*/
|
|
42
|
-
type AssetFolderUpdate2 = {
|
|
43
|
-
/**
|
|
44
|
-
* The name of the asset folder
|
|
45
|
-
*/
|
|
46
|
-
name?: string;
|
|
47
|
-
/**
|
|
48
|
-
* ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
|
|
49
|
-
*/
|
|
50
|
-
parent_id?: number | null;
|
|
51
|
-
};
|
|
52
|
-
type ListData = {
|
|
53
|
-
body?: never;
|
|
54
|
-
path: {
|
|
55
|
-
/**
|
|
56
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
57
|
-
*/
|
|
58
|
-
space_id: number | string;
|
|
59
|
-
};
|
|
60
|
-
query?: {
|
|
61
|
-
/**
|
|
62
|
-
* Search by folder's name
|
|
63
|
-
*/
|
|
64
|
-
search?: string;
|
|
65
|
-
/**
|
|
66
|
-
* Filter by parent id. Use 0 or "0" for root level folders.
|
|
67
|
-
*/
|
|
68
|
-
with_parent?: number | string;
|
|
69
|
-
/**
|
|
70
|
-
* Comma-separated list of UUIDs to filter by
|
|
71
|
-
*/
|
|
72
|
-
by_uuids?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Comma-separated list of IDs to filter by
|
|
75
|
-
*/
|
|
76
|
-
by_ids?: string;
|
|
77
|
-
};
|
|
78
|
-
url: '/v1/spaces/{space_id}/asset_folders';
|
|
79
|
-
};
|
|
80
|
-
type ListResponses = {
|
|
81
|
-
/**
|
|
82
|
-
* List of asset folders
|
|
83
|
-
*/
|
|
84
|
-
200: {
|
|
85
|
-
asset_folders?: Array<AssetFolder>;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
type CreateData = {
|
|
89
|
-
body: {
|
|
90
|
-
asset_folder?: AssetFolderCreate2;
|
|
91
|
-
};
|
|
92
|
-
path: {
|
|
93
|
-
/**
|
|
94
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
95
|
-
*/
|
|
96
|
-
space_id: number | string;
|
|
97
|
-
};
|
|
98
|
-
query?: never;
|
|
99
|
-
url: '/v1/spaces/{space_id}/asset_folders';
|
|
100
|
-
};
|
|
101
|
-
type CreateResponses = {
|
|
102
|
-
/**
|
|
103
|
-
* Asset folder created successfully
|
|
104
|
-
*/
|
|
105
|
-
201: {
|
|
106
|
-
asset_folder?: AssetFolder;
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
type DeleteData = {
|
|
110
|
-
body?: never;
|
|
111
|
-
path: {
|
|
112
|
-
/**
|
|
113
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
114
|
-
*/
|
|
115
|
-
space_id: number | string;
|
|
116
|
-
/**
|
|
117
|
-
* The ID of the asset folder (can be integer or string)
|
|
118
|
-
*/
|
|
119
|
-
asset_folder_id: number | string;
|
|
120
|
-
};
|
|
121
|
-
query?: {
|
|
122
|
-
/**
|
|
123
|
-
* If true, recursively delete all child folders and orphan their assets. If false (default), assets are orphaned and child folders are moved to the parent level.
|
|
124
|
-
*/
|
|
125
|
-
recursive?: boolean;
|
|
126
|
-
};
|
|
127
|
-
url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
|
|
128
|
-
};
|
|
129
|
-
type GetResponses = {
|
|
130
|
-
/**
|
|
131
|
-
* Asset folder details
|
|
132
|
-
*/
|
|
133
|
-
200: {
|
|
134
|
-
asset_folder?: AssetFolder;
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
type UpdateData = {
|
|
138
|
-
body: {
|
|
139
|
-
asset_folder?: AssetFolderUpdate2;
|
|
140
|
-
};
|
|
141
|
-
path: {
|
|
142
|
-
/**
|
|
143
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
144
|
-
*/
|
|
145
|
-
space_id: number | string;
|
|
146
|
-
/**
|
|
147
|
-
* The ID of the asset folder (can be integer or string)
|
|
148
|
-
*/
|
|
149
|
-
asset_folder_id: number | string;
|
|
150
|
-
};
|
|
151
|
-
query?: never;
|
|
152
|
-
url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
|
|
153
|
-
};
|
|
154
|
-
//#endregion
|
|
155
|
-
export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
|
|
156
|
-
//# sourceMappingURL=types.gen.d.cts.map
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
//#region src/generated/asset_folders/types.gen.d.ts
|
|
2
|
-
type AssetFolder = {
|
|
3
|
-
/**
|
|
4
|
-
* The numeric ID of the asset folder
|
|
5
|
-
*/
|
|
6
|
-
readonly id: number;
|
|
7
|
-
/**
|
|
8
|
-
* The name of the asset folder
|
|
9
|
-
*/
|
|
10
|
-
name: string;
|
|
11
|
-
/**
|
|
12
|
-
* ID of the parent folder for hierarchical structure
|
|
13
|
-
*/
|
|
14
|
-
parent_id?: number | null;
|
|
15
|
-
/**
|
|
16
|
-
* The UUID of the asset folder
|
|
17
|
-
*/
|
|
18
|
-
readonly uuid: string;
|
|
19
|
-
/**
|
|
20
|
-
* The UUID of the parent folder
|
|
21
|
-
*/
|
|
22
|
-
readonly parent_uuid?: string | null;
|
|
23
|
-
};
|
|
24
|
-
type AssetFolderCreate = AssetFolderCreate2;
|
|
25
|
-
type AssetFolderUpdate = AssetFolderUpdate2;
|
|
26
|
-
/**
|
|
27
|
-
* Input for creating an asset folder.
|
|
28
|
-
*/
|
|
29
|
-
type AssetFolderCreate2 = {
|
|
30
|
-
/**
|
|
31
|
-
* The name of the asset folder
|
|
32
|
-
*/
|
|
33
|
-
name: string;
|
|
34
|
-
/**
|
|
35
|
-
* ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
|
|
36
|
-
*/
|
|
37
|
-
parent_id?: number | null;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Input for updating an asset folder.
|
|
41
|
-
*/
|
|
42
|
-
type AssetFolderUpdate2 = {
|
|
43
|
-
/**
|
|
44
|
-
* The name of the asset folder
|
|
45
|
-
*/
|
|
46
|
-
name?: string;
|
|
47
|
-
/**
|
|
48
|
-
* ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
|
|
49
|
-
*/
|
|
50
|
-
parent_id?: number | null;
|
|
51
|
-
};
|
|
52
|
-
type ListData = {
|
|
53
|
-
body?: never;
|
|
54
|
-
path: {
|
|
55
|
-
/**
|
|
56
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
57
|
-
*/
|
|
58
|
-
space_id: number | string;
|
|
59
|
-
};
|
|
60
|
-
query?: {
|
|
61
|
-
/**
|
|
62
|
-
* Search by folder's name
|
|
63
|
-
*/
|
|
64
|
-
search?: string;
|
|
65
|
-
/**
|
|
66
|
-
* Filter by parent id. Use 0 or "0" for root level folders.
|
|
67
|
-
*/
|
|
68
|
-
with_parent?: number | string;
|
|
69
|
-
/**
|
|
70
|
-
* Comma-separated list of UUIDs to filter by
|
|
71
|
-
*/
|
|
72
|
-
by_uuids?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Comma-separated list of IDs to filter by
|
|
75
|
-
*/
|
|
76
|
-
by_ids?: string;
|
|
77
|
-
};
|
|
78
|
-
url: '/v1/spaces/{space_id}/asset_folders';
|
|
79
|
-
};
|
|
80
|
-
type ListResponses = {
|
|
81
|
-
/**
|
|
82
|
-
* List of asset folders
|
|
83
|
-
*/
|
|
84
|
-
200: {
|
|
85
|
-
asset_folders?: Array<AssetFolder>;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
type CreateData = {
|
|
89
|
-
body: {
|
|
90
|
-
asset_folder?: AssetFolderCreate2;
|
|
91
|
-
};
|
|
92
|
-
path: {
|
|
93
|
-
/**
|
|
94
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
95
|
-
*/
|
|
96
|
-
space_id: number | string;
|
|
97
|
-
};
|
|
98
|
-
query?: never;
|
|
99
|
-
url: '/v1/spaces/{space_id}/asset_folders';
|
|
100
|
-
};
|
|
101
|
-
type CreateResponses = {
|
|
102
|
-
/**
|
|
103
|
-
* Asset folder created successfully
|
|
104
|
-
*/
|
|
105
|
-
201: {
|
|
106
|
-
asset_folder?: AssetFolder;
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
type DeleteData = {
|
|
110
|
-
body?: never;
|
|
111
|
-
path: {
|
|
112
|
-
/**
|
|
113
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
114
|
-
*/
|
|
115
|
-
space_id: number | string;
|
|
116
|
-
/**
|
|
117
|
-
* The ID of the asset folder (can be integer or string)
|
|
118
|
-
*/
|
|
119
|
-
asset_folder_id: number | string;
|
|
120
|
-
};
|
|
121
|
-
query?: {
|
|
122
|
-
/**
|
|
123
|
-
* If true, recursively delete all child folders and orphan their assets. If false (default), assets are orphaned and child folders are moved to the parent level.
|
|
124
|
-
*/
|
|
125
|
-
recursive?: boolean;
|
|
126
|
-
};
|
|
127
|
-
url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
|
|
128
|
-
};
|
|
129
|
-
type GetResponses = {
|
|
130
|
-
/**
|
|
131
|
-
* Asset folder details
|
|
132
|
-
*/
|
|
133
|
-
200: {
|
|
134
|
-
asset_folder?: AssetFolder;
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
type UpdateData = {
|
|
138
|
-
body: {
|
|
139
|
-
asset_folder?: AssetFolderUpdate2;
|
|
140
|
-
};
|
|
141
|
-
path: {
|
|
142
|
-
/**
|
|
143
|
-
* The ID of the Storyblok space (can be integer or string)
|
|
144
|
-
*/
|
|
145
|
-
space_id: number | string;
|
|
146
|
-
/**
|
|
147
|
-
* The ID of the asset folder (can be integer or string)
|
|
148
|
-
*/
|
|
149
|
-
asset_folder_id: number | string;
|
|
150
|
-
};
|
|
151
|
-
query?: never;
|
|
152
|
-
url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
|
|
153
|
-
};
|
|
154
|
-
//#endregion
|
|
155
|
-
export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
|
|
156
|
-
//# sourceMappingURL=types.gen.d.mts.map
|