@storyblok/schema 1.0.0-alpha.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.
Files changed (104) hide show
  1. package/README.md +72 -0
  2. package/dist/generated/mapi-types.d.cts +732 -0
  3. package/dist/generated/mapi-types.d.mts +732 -0
  4. package/dist/generated/types.d.cts +155 -0
  5. package/dist/generated/types.d.mts +155 -0
  6. package/dist/helpers/create-story-helpers.cjs +42 -0
  7. package/dist/helpers/create-story-helpers.cjs.map +1 -0
  8. package/dist/helpers/create-story-helpers.d.cts +48 -0
  9. package/dist/helpers/create-story-helpers.d.mts +48 -0
  10. package/dist/helpers/create-story-helpers.mjs +42 -0
  11. package/dist/helpers/create-story-helpers.mjs.map +1 -0
  12. package/dist/helpers/define-asset-folder.cjs +40 -0
  13. package/dist/helpers/define-asset-folder.cjs.map +1 -0
  14. package/dist/helpers/define-asset-folder.d.cts +33 -0
  15. package/dist/helpers/define-asset-folder.d.mts +33 -0
  16. package/dist/helpers/define-asset-folder.mjs +37 -0
  17. package/dist/helpers/define-asset-folder.mjs.map +1 -0
  18. package/dist/helpers/define-asset.cjs +43 -0
  19. package/dist/helpers/define-asset.cjs.map +1 -0
  20. package/dist/helpers/define-asset.d.cts +32 -0
  21. package/dist/helpers/define-asset.d.mts +32 -0
  22. package/dist/helpers/define-asset.mjs +40 -0
  23. package/dist/helpers/define-asset.mjs.map +1 -0
  24. package/dist/helpers/define-block-folder.cjs +40 -0
  25. package/dist/helpers/define-block-folder.cjs.map +1 -0
  26. package/dist/helpers/define-block-folder.d.cts +34 -0
  27. package/dist/helpers/define-block-folder.d.mts +34 -0
  28. package/dist/helpers/define-block-folder.mjs +37 -0
  29. package/dist/helpers/define-block-folder.mjs.map +1 -0
  30. package/dist/helpers/define-block.cjs +51 -0
  31. package/dist/helpers/define-block.cjs.map +1 -0
  32. package/dist/helpers/define-block.d.cts +90 -0
  33. package/dist/helpers/define-block.d.mts +90 -0
  34. package/dist/helpers/define-block.mjs +48 -0
  35. package/dist/helpers/define-block.mjs.map +1 -0
  36. package/dist/helpers/define-datasource-entry.cjs +41 -0
  37. package/dist/helpers/define-datasource-entry.cjs.map +1 -0
  38. package/dist/helpers/define-datasource-entry.d.cts +48 -0
  39. package/dist/helpers/define-datasource-entry.d.mts +48 -0
  40. package/dist/helpers/define-datasource-entry.mjs +37 -0
  41. package/dist/helpers/define-datasource-entry.mjs.map +1 -0
  42. package/dist/helpers/define-datasource.cjs +33 -0
  43. package/dist/helpers/define-datasource.cjs.map +1 -0
  44. package/dist/helpers/define-datasource.d.cts +41 -0
  45. package/dist/helpers/define-datasource.d.mts +41 -0
  46. package/dist/helpers/define-datasource.mjs +30 -0
  47. package/dist/helpers/define-datasource.mjs.map +1 -0
  48. package/dist/helpers/define-field.cjs +17 -0
  49. package/dist/helpers/define-field.cjs.map +1 -0
  50. package/dist/helpers/define-field.d.cts +100 -0
  51. package/dist/helpers/define-field.d.mts +100 -0
  52. package/dist/helpers/define-field.mjs +16 -0
  53. package/dist/helpers/define-field.mjs.map +1 -0
  54. package/dist/helpers/define-internal-tag.cjs +37 -0
  55. package/dist/helpers/define-internal-tag.cjs.map +1 -0
  56. package/dist/helpers/define-internal-tag.d.cts +34 -0
  57. package/dist/helpers/define-internal-tag.d.mts +34 -0
  58. package/dist/helpers/define-internal-tag.mjs +34 -0
  59. package/dist/helpers/define-internal-tag.mjs.map +1 -0
  60. package/dist/helpers/define-link.cjs +22 -0
  61. package/dist/helpers/define-link.cjs.map +1 -0
  62. package/dist/helpers/define-link.d.cts +31 -0
  63. package/dist/helpers/define-link.d.mts +31 -0
  64. package/dist/helpers/define-link.mjs +21 -0
  65. package/dist/helpers/define-link.mjs.map +1 -0
  66. package/dist/helpers/define-preset.cjs +37 -0
  67. package/dist/helpers/define-preset.cjs.map +1 -0
  68. package/dist/helpers/define-preset.d.cts +35 -0
  69. package/dist/helpers/define-preset.d.mts +35 -0
  70. package/dist/helpers/define-preset.mjs +34 -0
  71. package/dist/helpers/define-preset.mjs.map +1 -0
  72. package/dist/helpers/define-space.cjs +34 -0
  73. package/dist/helpers/define-space.cjs.map +1 -0
  74. package/dist/helpers/define-space.d.cts +31 -0
  75. package/dist/helpers/define-space.d.mts +31 -0
  76. package/dist/helpers/define-space.mjs +31 -0
  77. package/dist/helpers/define-space.mjs.map +1 -0
  78. package/dist/helpers/define-story.cjs +94 -0
  79. package/dist/helpers/define-story.cjs.map +1 -0
  80. package/dist/helpers/define-story.d.cts +127 -0
  81. package/dist/helpers/define-story.d.mts +127 -0
  82. package/dist/helpers/define-story.mjs +90 -0
  83. package/dist/helpers/define-story.mjs.map +1 -0
  84. package/dist/helpers/define-tag.cjs +13 -0
  85. package/dist/helpers/define-tag.cjs.map +1 -0
  86. package/dist/helpers/define-tag.d.cts +23 -0
  87. package/dist/helpers/define-tag.d.mts +23 -0
  88. package/dist/helpers/define-tag.mjs +12 -0
  89. package/dist/helpers/define-tag.mjs.map +1 -0
  90. package/dist/helpers/define-user.cjs +32 -0
  91. package/dist/helpers/define-user.cjs.map +1 -0
  92. package/dist/helpers/define-user.d.cts +26 -0
  93. package/dist/helpers/define-user.d.mts +26 -0
  94. package/dist/helpers/define-user.mjs +30 -0
  95. package/dist/helpers/define-user.mjs.map +1 -0
  96. package/dist/helpers/schema-type.d.cts +40 -0
  97. package/dist/helpers/schema-type.d.mts +40 -0
  98. package/dist/index.cjs +55 -0
  99. package/dist/index.d.cts +19 -0
  100. package/dist/index.d.mts +19 -0
  101. package/dist/index.mjs +17 -0
  102. package/dist/utils/prettify.d.cts +9 -0
  103. package/dist/utils/prettify.d.mts +9 -0
  104. package/package.json +85 -0
@@ -0,0 +1,155 @@
1
+ //#region src/generated/types.d.ts
2
+ type StoryBase = {
3
+ id: number;
4
+ name: string;
5
+ parent_id: number;
6
+ group_id: string;
7
+ alternates: Array<StoryAlternate>;
8
+ created_at: string;
9
+ sort_by_date: string | null;
10
+ tag_list: Array<string>;
11
+ updated_at: string;
12
+ published_at: string | null;
13
+ uuid: string;
14
+ content: BlokContent;
15
+ slug: string;
16
+ path: string | null;
17
+ full_slug: string;
18
+ is_startpage: boolean;
19
+ meta_data: {} | null;
20
+ first_published_at: string | null;
21
+ translated_slugs: Array<StoryTranslatedSlug> | null;
22
+ localized_paths?: Array<StoryLocalizedPath> | undefined;
23
+ position: number;
24
+ };
25
+ type StoryAlternate = {
26
+ id: number;
27
+ name: string;
28
+ slug: string;
29
+ published: boolean;
30
+ full_slug: string;
31
+ is_folder: boolean;
32
+ parent_id: number;
33
+ };
34
+ type AssetFieldValue = {
35
+ fieldtype: "asset";
36
+ id: number | null;
37
+ alt: string | null;
38
+ name?: string | undefined;
39
+ focus?: (string | null) | undefined;
40
+ title?: (string | null) | undefined;
41
+ source?: (string | null) | undefined;
42
+ filename: string;
43
+ copyright?: (string | null) | undefined;
44
+ meta_data?: {} | undefined;
45
+ is_external_url?: boolean | undefined;
46
+ };
47
+ type MultilinkFieldValue = {
48
+ fieldtype: "multilink";
49
+ id: string;
50
+ url: string;
51
+ linktype: "story" | "url" | "email" | "asset";
52
+ cached_url: string;
53
+ anchor?: (string | null) | undefined;
54
+ target?: (("_self" | "_blank") | null) | undefined;
55
+ };
56
+ type TableFieldValue = {
57
+ thead: Array<{
58
+ _uid: string;
59
+ component: "_table_head";
60
+ value?: string | undefined;
61
+ }>;
62
+ tbody: Array<{
63
+ _uid: string;
64
+ component: "_table_row";
65
+ body?: Array<{
66
+ _uid: string;
67
+ component: "_table_col";
68
+ value?: string | undefined;
69
+ }> | undefined;
70
+ }>;
71
+ };
72
+ type RichtextFieldValue = {
73
+ type: "doc";
74
+ content?: Array<{}> | undefined;
75
+ };
76
+ type PluginFieldValue = {
77
+ plugin: string;
78
+ _uid?: string | undefined;
79
+ } & {
80
+ [key: string]: any | undefined;
81
+ };
82
+ type StoryLocalizedPath = {
83
+ path: string;
84
+ name?: (string | null) | undefined;
85
+ lang: string;
86
+ published?: (boolean | null) | undefined;
87
+ };
88
+ type StoryTranslatedSlug = {
89
+ path: string | null;
90
+ lang: string;
91
+ name?: (string | null) | undefined;
92
+ published?: (boolean | null) | undefined;
93
+ };
94
+ type BlokContent = {
95
+ _uid: string;
96
+ component: string;
97
+ _editable?: string | undefined;
98
+ } & {
99
+ [key: string]: string | number | boolean | Array<string | AssetFieldValue | BlokContent> | AssetFieldValue | MultilinkFieldValue | TableFieldValue | RichtextFieldValue | PluginFieldValue | undefined;
100
+ };
101
+ type Story = StoryBase & {
102
+ default_full_slug: string | null;
103
+ release_id: number | null;
104
+ lang: string;
105
+ };
106
+ type DatasourceEntry = {
107
+ id: number;
108
+ name: string;
109
+ value: string;
110
+ dimension_value?: (string | null) | undefined;
111
+ };
112
+ type Link = {
113
+ id: number;
114
+ uuid: string;
115
+ slug: string;
116
+ path: string | null;
117
+ parent_id?: (number | null) | undefined;
118
+ name: string;
119
+ is_folder: boolean;
120
+ published: boolean;
121
+ is_startpage: boolean;
122
+ position: number;
123
+ real_path: string;
124
+ published_at?: (string | null) | undefined;
125
+ created_at?: string | undefined;
126
+ updated_at?: string | undefined;
127
+ alternates?: Array<Partial<{
128
+ name: string;
129
+ slug: string;
130
+ path: string | null;
131
+ published: boolean;
132
+ }>> | undefined;
133
+ };
134
+ type Tag = {
135
+ name: string;
136
+ taggings_count: number;
137
+ };
138
+ type Datasource = {
139
+ id: number;
140
+ name: string;
141
+ slug: string;
142
+ dimensions?: Array<{
143
+ id?: number | undefined;
144
+ name?: string | undefined;
145
+ entry_value?: string | undefined;
146
+ datasource_id?: number | undefined;
147
+ created_at?: string | undefined;
148
+ updated_at?: string | undefined;
149
+ }> | undefined;
150
+ created_at: string;
151
+ updated_at: string;
152
+ };
153
+ //#endregion
154
+ export { AssetFieldValue, BlokContent, Datasource, DatasourceEntry, Link, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, Story, StoryAlternate, StoryBase, StoryLocalizedPath, StoryTranslatedSlug, TableFieldValue, Tag };
155
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1,155 @@
1
+ //#region src/generated/types.d.ts
2
+ type StoryBase = {
3
+ id: number;
4
+ name: string;
5
+ parent_id: number;
6
+ group_id: string;
7
+ alternates: Array<StoryAlternate>;
8
+ created_at: string;
9
+ sort_by_date: string | null;
10
+ tag_list: Array<string>;
11
+ updated_at: string;
12
+ published_at: string | null;
13
+ uuid: string;
14
+ content: BlokContent;
15
+ slug: string;
16
+ path: string | null;
17
+ full_slug: string;
18
+ is_startpage: boolean;
19
+ meta_data: {} | null;
20
+ first_published_at: string | null;
21
+ translated_slugs: Array<StoryTranslatedSlug> | null;
22
+ localized_paths?: Array<StoryLocalizedPath> | undefined;
23
+ position: number;
24
+ };
25
+ type StoryAlternate = {
26
+ id: number;
27
+ name: string;
28
+ slug: string;
29
+ published: boolean;
30
+ full_slug: string;
31
+ is_folder: boolean;
32
+ parent_id: number;
33
+ };
34
+ type AssetFieldValue = {
35
+ fieldtype: "asset";
36
+ id: number | null;
37
+ alt: string | null;
38
+ name?: string | undefined;
39
+ focus?: (string | null) | undefined;
40
+ title?: (string | null) | undefined;
41
+ source?: (string | null) | undefined;
42
+ filename: string;
43
+ copyright?: (string | null) | undefined;
44
+ meta_data?: {} | undefined;
45
+ is_external_url?: boolean | undefined;
46
+ };
47
+ type MultilinkFieldValue = {
48
+ fieldtype: "multilink";
49
+ id: string;
50
+ url: string;
51
+ linktype: "story" | "url" | "email" | "asset";
52
+ cached_url: string;
53
+ anchor?: (string | null) | undefined;
54
+ target?: (("_self" | "_blank") | null) | undefined;
55
+ };
56
+ type TableFieldValue = {
57
+ thead: Array<{
58
+ _uid: string;
59
+ component: "_table_head";
60
+ value?: string | undefined;
61
+ }>;
62
+ tbody: Array<{
63
+ _uid: string;
64
+ component: "_table_row";
65
+ body?: Array<{
66
+ _uid: string;
67
+ component: "_table_col";
68
+ value?: string | undefined;
69
+ }> | undefined;
70
+ }>;
71
+ };
72
+ type RichtextFieldValue = {
73
+ type: "doc";
74
+ content?: Array<{}> | undefined;
75
+ };
76
+ type PluginFieldValue = {
77
+ plugin: string;
78
+ _uid?: string | undefined;
79
+ } & {
80
+ [key: string]: any | undefined;
81
+ };
82
+ type StoryLocalizedPath = {
83
+ path: string;
84
+ name?: (string | null) | undefined;
85
+ lang: string;
86
+ published?: (boolean | null) | undefined;
87
+ };
88
+ type StoryTranslatedSlug = {
89
+ path: string | null;
90
+ lang: string;
91
+ name?: (string | null) | undefined;
92
+ published?: (boolean | null) | undefined;
93
+ };
94
+ type BlokContent = {
95
+ _uid: string;
96
+ component: string;
97
+ _editable?: string | undefined;
98
+ } & {
99
+ [key: string]: string | number | boolean | Array<string | AssetFieldValue | BlokContent> | AssetFieldValue | MultilinkFieldValue | TableFieldValue | RichtextFieldValue | PluginFieldValue | undefined;
100
+ };
101
+ type Story = StoryBase & {
102
+ default_full_slug: string | null;
103
+ release_id: number | null;
104
+ lang: string;
105
+ };
106
+ type DatasourceEntry = {
107
+ id: number;
108
+ name: string;
109
+ value: string;
110
+ dimension_value?: (string | null) | undefined;
111
+ };
112
+ type Link = {
113
+ id: number;
114
+ uuid: string;
115
+ slug: string;
116
+ path: string | null;
117
+ parent_id?: (number | null) | undefined;
118
+ name: string;
119
+ is_folder: boolean;
120
+ published: boolean;
121
+ is_startpage: boolean;
122
+ position: number;
123
+ real_path: string;
124
+ published_at?: (string | null) | undefined;
125
+ created_at?: string | undefined;
126
+ updated_at?: string | undefined;
127
+ alternates?: Array<Partial<{
128
+ name: string;
129
+ slug: string;
130
+ path: string | null;
131
+ published: boolean;
132
+ }>> | undefined;
133
+ };
134
+ type Tag = {
135
+ name: string;
136
+ taggings_count: number;
137
+ };
138
+ type Datasource = {
139
+ id: number;
140
+ name: string;
141
+ slug: string;
142
+ dimensions?: Array<{
143
+ id?: number | undefined;
144
+ name?: string | undefined;
145
+ entry_value?: string | undefined;
146
+ datasource_id?: number | undefined;
147
+ created_at?: string | undefined;
148
+ updated_at?: string | undefined;
149
+ }> | undefined;
150
+ created_at: string;
151
+ updated_at: string;
152
+ };
153
+ //#endregion
154
+ export { AssetFieldValue, BlokContent, Datasource, DatasourceEntry, Link, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, Story, StoryAlternate, StoryBase, StoryLocalizedPath, StoryTranslatedSlug, TableFieldValue, Tag };
155
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1,42 @@
1
+ const require_define_story = require('./define-story.cjs');
2
+
3
+ //#region src/helpers/create-story-helpers.ts
4
+ /**
5
+ * Creates story helper functions pre-bound to your component type union.
6
+ *
7
+ * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the
8
+ * latter matches the `Schema` type produced by `InferSchema`, so a project's
9
+ * `Schema` can be passed directly without an extra wrapper.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import type { Schema } from './schema';
14
+ *
15
+ * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =
16
+ * createStoryHelpers().withTypes<Schema>();
17
+ * ```
18
+ */
19
+ function createStoryHelpers() {
20
+ return {
21
+ defineStory: require_define_story.defineStory,
22
+ defineMapiStory: require_define_story.defineMapiStory,
23
+ defineStoryCreate: require_define_story.defineStoryCreate,
24
+ defineStoryUpdate: require_define_story.defineStoryUpdate,
25
+ withTypes() {
26
+ const defineStory$1 = (component, story) => require_define_story.defineStory(component, story);
27
+ const defineMapiStory$1 = (component, story) => require_define_story.defineMapiStory(component, story);
28
+ const defineStoryCreate$1 = (component, story) => require_define_story.defineStoryCreate(component, story);
29
+ const defineStoryUpdate$1 = (component, story) => require_define_story.defineStoryUpdate(component, story);
30
+ return {
31
+ defineStory: defineStory$1,
32
+ defineMapiStory: defineMapiStory$1,
33
+ defineStoryCreate: defineStoryCreate$1,
34
+ defineStoryUpdate: defineStoryUpdate$1
35
+ };
36
+ }
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ exports.createStoryHelpers = createStoryHelpers;
42
+ //# sourceMappingURL=create-story-helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-story-helpers.cjs","names":["defineStoryImpl","defineMapiStoryImpl","defineStoryCreateImpl","defineStoryUpdateImpl","defineStory","defineMapiStory","defineStoryCreate","defineStoryUpdate"],"sources":["../../src/helpers/create-story-helpers.ts"],"sourcesContent":["import type { Block } from './define-block';\nimport {\n defineMapiStory as defineMapiStoryImpl,\n defineStoryCreate as defineStoryCreateImpl,\n defineStory as defineStoryImpl,\n defineStoryUpdate as defineStoryUpdateImpl,\n} from './define-story';\nimport type { MapiStory, Story, StoryComponent, StoryCreate, StoryUpdate } from './define-story';\n\ntype StoryblokTypesConfig = { components: Block } | { blocks: Block };\n\ntype ResolveComponents<T extends StoryblokTypesConfig> =\n T extends { components: infer C extends Block } ? C\n : T extends { blocks: infer B extends Block } ? B\n : never;\n\ntype DefineStoryTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryImpl<TBlock, TBlocks>>[1],\n ) => Story<TBlock, TBlocks>;\n\ntype DefineMapiStoryTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineMapiStoryImpl<TBlock, TBlocks>>[1],\n ) => MapiStory<TBlock, TBlocks>;\n\ntype DefineStoryCreateTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryCreateImpl<TBlock, TBlocks>>[1],\n ) => StoryCreate<TBlock, TBlocks>;\n\ntype DefineStoryUpdateTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryUpdateImpl<TBlock, TBlocks>>[1],\n ) => StoryUpdate<TBlock, TBlocks>;\n\n/**\n * Creates story helper functions pre-bound to your component type union.\n *\n * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the\n * latter matches the `Schema` type produced by `InferSchema`, so a project's\n * `Schema` can be passed directly without an extra wrapper.\n *\n * @example\n * ```ts\n * import type { Schema } from './schema';\n *\n * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =\n * createStoryHelpers().withTypes<Schema>();\n * ```\n */\nexport function createStoryHelpers() {\n return {\n defineStory: defineStoryImpl,\n defineMapiStory: defineMapiStoryImpl,\n defineStoryCreate: defineStoryCreateImpl,\n defineStoryUpdate: defineStoryUpdateImpl,\n withTypes<T extends StoryblokTypesConfig>() {\n const defineStory: DefineStoryTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryImpl(component, story as any);\n\n const defineMapiStory: DefineMapiStoryTyped<ResolveComponents<T>> = (component, story) =>\n defineMapiStoryImpl(component, story as any);\n\n const defineStoryCreate: DefineStoryCreateTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryCreateImpl(component, story as any);\n\n const defineStoryUpdate: DefineStoryUpdateTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryUpdateImpl(component, story as any);\n\n return { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,qBAAqB;AACnC,QAAO;EACL,aAAaA;EACb,iBAAiBC;EACjB,mBAAmBC;EACnB,mBAAmBC;EACnB,YAA4C;GAC1C,MAAMC,iBAAuD,WAAW,UACtEJ,iCAAgB,WAAW,MAAa;GAE1C,MAAMK,qBAA+D,WAAW,UAC9EJ,qCAAoB,WAAW,MAAa;GAE9C,MAAMK,uBAAmE,WAAW,UAClFJ,uCAAsB,WAAW,MAAa;GAEhD,MAAMK,uBAAmE,WAAW,UAClFJ,uCAAsB,WAAW,MAAa;AAEhD,UAAO;IAAE;IAAa;IAAiB;IAAmB;IAAmB;;EAEhF"}
@@ -0,0 +1,48 @@
1
+ import { Block } from "./define-block.cjs";
2
+ import { MapiStory, Story, StoryComponent, StoryCreate, StoryUpdate, defineMapiStory, defineStory, defineStoryCreate, defineStoryUpdate } from "./define-story.cjs";
3
+
4
+ //#region src/helpers/create-story-helpers.d.ts
5
+ type StoryblokTypesConfig = {
6
+ components: Block;
7
+ } | {
8
+ blocks: Block;
9
+ };
10
+ type ResolveComponents<T extends StoryblokTypesConfig> = T extends {
11
+ components: infer C extends Block;
12
+ } ? C : T extends {
13
+ blocks: infer B extends Block;
14
+ } ? B : never;
15
+ type DefineStoryTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStory<TBlock, TBlocks>>[1]) => Story<TBlock, TBlocks>;
16
+ type DefineMapiStoryTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineMapiStory<TBlock, TBlocks>>[1]) => MapiStory<TBlock, TBlocks>;
17
+ type DefineStoryCreateTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStoryCreate<TBlock, TBlocks>>[1]) => StoryCreate<TBlock, TBlocks>;
18
+ type DefineStoryUpdateTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStoryUpdate<TBlock, TBlocks>>[1]) => StoryUpdate<TBlock, TBlocks>;
19
+ /**
20
+ * Creates story helper functions pre-bound to your component type union.
21
+ *
22
+ * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the
23
+ * latter matches the `Schema` type produced by `InferSchema`, so a project's
24
+ * `Schema` can be passed directly without an extra wrapper.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import type { Schema } from './schema';
29
+ *
30
+ * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =
31
+ * createStoryHelpers().withTypes<Schema>();
32
+ * ```
33
+ */
34
+ declare function createStoryHelpers(): {
35
+ defineStory: typeof defineStory;
36
+ defineMapiStory: typeof defineMapiStory;
37
+ defineStoryCreate: typeof defineStoryCreate;
38
+ defineStoryUpdate: typeof defineStoryUpdate;
39
+ withTypes<T extends StoryblokTypesConfig>(): {
40
+ defineStory: DefineStoryTyped<ResolveComponents<T>>;
41
+ defineMapiStory: DefineMapiStoryTyped<ResolveComponents<T>>;
42
+ defineStoryCreate: DefineStoryCreateTyped<ResolveComponents<T>>;
43
+ defineStoryUpdate: DefineStoryUpdateTyped<ResolveComponents<T>>;
44
+ };
45
+ };
46
+ //#endregion
47
+ export { createStoryHelpers };
48
+ //# sourceMappingURL=create-story-helpers.d.cts.map
@@ -0,0 +1,48 @@
1
+ import { Block } from "./define-block.mjs";
2
+ import { MapiStory, Story, StoryComponent, StoryCreate, StoryUpdate, defineMapiStory, defineStory, defineStoryCreate, defineStoryUpdate } from "./define-story.mjs";
3
+
4
+ //#region src/helpers/create-story-helpers.d.ts
5
+ type StoryblokTypesConfig = {
6
+ components: Block;
7
+ } | {
8
+ blocks: Block;
9
+ };
10
+ type ResolveComponents<T extends StoryblokTypesConfig> = T extends {
11
+ components: infer C extends Block;
12
+ } ? C : T extends {
13
+ blocks: infer B extends Block;
14
+ } ? B : never;
15
+ type DefineStoryTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStory<TBlock, TBlocks>>[1]) => Story<TBlock, TBlocks>;
16
+ type DefineMapiStoryTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineMapiStory<TBlock, TBlocks>>[1]) => MapiStory<TBlock, TBlocks>;
17
+ type DefineStoryCreateTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStoryCreate<TBlock, TBlocks>>[1]) => StoryCreate<TBlock, TBlocks>;
18
+ type DefineStoryUpdateTyped<TBlocks extends Block> = <const TBlock extends StoryComponent>(component: TBlock, story: Parameters<typeof defineStoryUpdate<TBlock, TBlocks>>[1]) => StoryUpdate<TBlock, TBlocks>;
19
+ /**
20
+ * Creates story helper functions pre-bound to your component type union.
21
+ *
22
+ * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the
23
+ * latter matches the `Schema` type produced by `InferSchema`, so a project's
24
+ * `Schema` can be passed directly without an extra wrapper.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import type { Schema } from './schema';
29
+ *
30
+ * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =
31
+ * createStoryHelpers().withTypes<Schema>();
32
+ * ```
33
+ */
34
+ declare function createStoryHelpers(): {
35
+ defineStory: typeof defineStory;
36
+ defineMapiStory: typeof defineMapiStory;
37
+ defineStoryCreate: typeof defineStoryCreate;
38
+ defineStoryUpdate: typeof defineStoryUpdate;
39
+ withTypes<T extends StoryblokTypesConfig>(): {
40
+ defineStory: DefineStoryTyped<ResolveComponents<T>>;
41
+ defineMapiStory: DefineMapiStoryTyped<ResolveComponents<T>>;
42
+ defineStoryCreate: DefineStoryCreateTyped<ResolveComponents<T>>;
43
+ defineStoryUpdate: DefineStoryUpdateTyped<ResolveComponents<T>>;
44
+ };
45
+ };
46
+ //#endregion
47
+ export { createStoryHelpers };
48
+ //# sourceMappingURL=create-story-helpers.d.mts.map
@@ -0,0 +1,42 @@
1
+ import { defineMapiStory, defineStory, defineStoryCreate, defineStoryUpdate } from "./define-story.mjs";
2
+
3
+ //#region src/helpers/create-story-helpers.ts
4
+ /**
5
+ * Creates story helper functions pre-bound to your component type union.
6
+ *
7
+ * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the
8
+ * latter matches the `Schema` type produced by `InferSchema`, so a project's
9
+ * `Schema` can be passed directly without an extra wrapper.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import type { Schema } from './schema';
14
+ *
15
+ * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =
16
+ * createStoryHelpers().withTypes<Schema>();
17
+ * ```
18
+ */
19
+ function createStoryHelpers() {
20
+ return {
21
+ defineStory,
22
+ defineMapiStory,
23
+ defineStoryCreate,
24
+ defineStoryUpdate,
25
+ withTypes() {
26
+ const defineStory$1 = (component, story) => defineStory(component, story);
27
+ const defineMapiStory$1 = (component, story) => defineMapiStory(component, story);
28
+ const defineStoryCreate$1 = (component, story) => defineStoryCreate(component, story);
29
+ const defineStoryUpdate$1 = (component, story) => defineStoryUpdate(component, story);
30
+ return {
31
+ defineStory: defineStory$1,
32
+ defineMapiStory: defineMapiStory$1,
33
+ defineStoryCreate: defineStoryCreate$1,
34
+ defineStoryUpdate: defineStoryUpdate$1
35
+ };
36
+ }
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ export { createStoryHelpers };
42
+ //# sourceMappingURL=create-story-helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-story-helpers.mjs","names":["defineStoryImpl","defineMapiStoryImpl","defineStoryCreateImpl","defineStoryUpdateImpl","defineStory","defineMapiStory","defineStoryCreate","defineStoryUpdate"],"sources":["../../src/helpers/create-story-helpers.ts"],"sourcesContent":["import type { Block } from './define-block';\nimport {\n defineMapiStory as defineMapiStoryImpl,\n defineStoryCreate as defineStoryCreateImpl,\n defineStory as defineStoryImpl,\n defineStoryUpdate as defineStoryUpdateImpl,\n} from './define-story';\nimport type { MapiStory, Story, StoryComponent, StoryCreate, StoryUpdate } from './define-story';\n\ntype StoryblokTypesConfig = { components: Block } | { blocks: Block };\n\ntype ResolveComponents<T extends StoryblokTypesConfig> =\n T extends { components: infer C extends Block } ? C\n : T extends { blocks: infer B extends Block } ? B\n : never;\n\ntype DefineStoryTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryImpl<TBlock, TBlocks>>[1],\n ) => Story<TBlock, TBlocks>;\n\ntype DefineMapiStoryTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineMapiStoryImpl<TBlock, TBlocks>>[1],\n ) => MapiStory<TBlock, TBlocks>;\n\ntype DefineStoryCreateTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryCreateImpl<TBlock, TBlocks>>[1],\n ) => StoryCreate<TBlock, TBlocks>;\n\ntype DefineStoryUpdateTyped<TBlocks extends Block> =\n <const TBlock extends StoryComponent>(\n component: TBlock,\n story: Parameters<typeof defineStoryUpdateImpl<TBlock, TBlocks>>[1],\n ) => StoryUpdate<TBlock, TBlocks>;\n\n/**\n * Creates story helper functions pre-bound to your component type union.\n *\n * `withTypes<T>()` accepts either `{ components: ... }` or `{ blocks: ... }` — the\n * latter matches the `Schema` type produced by `InferSchema`, so a project's\n * `Schema` can be passed directly without an extra wrapper.\n *\n * @example\n * ```ts\n * import type { Schema } from './schema';\n *\n * const { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate } =\n * createStoryHelpers().withTypes<Schema>();\n * ```\n */\nexport function createStoryHelpers() {\n return {\n defineStory: defineStoryImpl,\n defineMapiStory: defineMapiStoryImpl,\n defineStoryCreate: defineStoryCreateImpl,\n defineStoryUpdate: defineStoryUpdateImpl,\n withTypes<T extends StoryblokTypesConfig>() {\n const defineStory: DefineStoryTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryImpl(component, story as any);\n\n const defineMapiStory: DefineMapiStoryTyped<ResolveComponents<T>> = (component, story) =>\n defineMapiStoryImpl(component, story as any);\n\n const defineStoryCreate: DefineStoryCreateTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryCreateImpl(component, story as any);\n\n const defineStoryUpdate: DefineStoryUpdateTyped<ResolveComponents<T>> = (component, story) =>\n defineStoryUpdateImpl(component, story as any);\n\n return { defineStory, defineMapiStory, defineStoryCreate, defineStoryUpdate };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,qBAAqB;AACnC,QAAO;EACQA;EACIC;EACEC;EACAC;EACnB,YAA4C;GAC1C,MAAMC,iBAAuD,WAAW,UACtEJ,YAAgB,WAAW,MAAa;GAE1C,MAAMK,qBAA+D,WAAW,UAC9EJ,gBAAoB,WAAW,MAAa;GAE9C,MAAMK,uBAAmE,WAAW,UAClFJ,kBAAsB,WAAW,MAAa;GAEhD,MAAMK,uBAAmE,WAAW,UAClFJ,kBAAsB,WAAW,MAAa;AAEhD,UAAO;IAAE;IAAa;IAAiB;IAAmB;IAAmB;;EAEhF"}
@@ -0,0 +1,40 @@
1
+
2
+ //#region src/helpers/define-asset-folder.ts
3
+ const ASSET_FOLDER_DEFAULTS = { id: 1 };
4
+ /**
5
+ * Defines an asset folder.
6
+ * When `uuid` is not provided, it defaults to the folder name
7
+ * (prefixed by `parent_uuid/` for nested folders).
8
+ *
9
+ * @example
10
+ * const folder = defineAssetFolder({ name: 'Images' });
11
+ * // folder.uuid === 'Images'
12
+ */
13
+ const defineAssetFolder = (assetFolder) => {
14
+ const uuid = assetFolder.uuid || (assetFolder.parent_uuid ? `${assetFolder.parent_uuid}/${assetFolder.name}` : assetFolder.name);
15
+ return {
16
+ ...ASSET_FOLDER_DEFAULTS,
17
+ ...assetFolder,
18
+ uuid
19
+ };
20
+ };
21
+ /**
22
+ * Defines an asset folder creation payload.
23
+ *
24
+ * @example
25
+ * const payload = defineAssetFolderCreate({ name: 'Images' });
26
+ */
27
+ const defineAssetFolderCreate = (assetFolder) => assetFolder;
28
+ /**
29
+ * Defines an asset folder update payload.
30
+ *
31
+ * @example
32
+ * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });
33
+ */
34
+ const defineAssetFolderUpdate = (assetFolder) => assetFolder;
35
+
36
+ //#endregion
37
+ exports.defineAssetFolder = defineAssetFolder;
38
+ exports.defineAssetFolderCreate = defineAssetFolderCreate;
39
+ exports.defineAssetFolderUpdate = defineAssetFolderUpdate;
40
+ //# sourceMappingURL=define-asset-folder.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-asset-folder.cjs","names":[],"sources":["../../src/helpers/define-asset-folder.ts"],"sourcesContent":["import type { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from '../generated/mapi-types';\n\nconst ASSET_FOLDER_DEFAULTS = {\n id: 1,\n};\n\nexport type { AssetFolder, AssetFolderCreate, AssetFolderUpdate };\n\ntype AssetFolderInput = { name: string } & Partial<Omit<AssetFolder, 'name'>>;\n\n/**\n * Defines an asset folder.\n * When `uuid` is not provided, it defaults to the folder name\n * (prefixed by `parent_uuid/` for nested folders).\n *\n * @example\n * const folder = defineAssetFolder({ name: 'Images' });\n * // folder.uuid === 'Images'\n */\nexport const defineAssetFolder = (assetFolder: AssetFolderInput): AssetFolder => {\n const uuid = assetFolder.uuid\n || (assetFolder.parent_uuid ? `${assetFolder.parent_uuid}/${assetFolder.name}` : assetFolder.name);\n\n return {\n ...ASSET_FOLDER_DEFAULTS,\n ...assetFolder,\n uuid,\n };\n};\n\n/**\n * Defines an asset folder creation payload.\n *\n * @example\n * const payload = defineAssetFolderCreate({ name: 'Images' });\n */\nexport const defineAssetFolderCreate = (assetFolder: AssetFolderCreate): AssetFolderCreate => assetFolder;\n\n/**\n * Defines an asset folder update payload.\n *\n * @example\n * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });\n */\nexport const defineAssetFolderUpdate = (assetFolder: AssetFolderUpdate): AssetFolderUpdate => assetFolder;\n"],"mappings":";;AAEA,MAAM,wBAAwB,EAC5B,IAAI,GACL;;;;;;;;;;AAeD,MAAa,qBAAqB,gBAA+C;CAC/E,MAAM,OAAO,YAAY,SACnB,YAAY,cAAc,GAAG,YAAY,YAAY,GAAG,YAAY,SAAS,YAAY;AAE/F,QAAO;EACL,GAAG;EACH,GAAG;EACH;EACD;;;;;;;;AASH,MAAa,2BAA2B,gBAAsD;;;;;;;AAQ9F,MAAa,2BAA2B,gBAAsD"}
@@ -0,0 +1,33 @@
1
+ import { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from "../generated/mapi-types.cjs";
2
+
3
+ //#region src/helpers/define-asset-folder.d.ts
4
+ type AssetFolderInput = {
5
+ name: string;
6
+ } & Partial<Omit<AssetFolder, 'name'>>;
7
+ /**
8
+ * Defines an asset folder.
9
+ * When `uuid` is not provided, it defaults to the folder name
10
+ * (prefixed by `parent_uuid/` for nested folders).
11
+ *
12
+ * @example
13
+ * const folder = defineAssetFolder({ name: 'Images' });
14
+ * // folder.uuid === 'Images'
15
+ */
16
+ declare const defineAssetFolder: (assetFolder: AssetFolderInput) => AssetFolder;
17
+ /**
18
+ * Defines an asset folder creation payload.
19
+ *
20
+ * @example
21
+ * const payload = defineAssetFolderCreate({ name: 'Images' });
22
+ */
23
+ declare const defineAssetFolderCreate: (assetFolder: AssetFolderCreate) => AssetFolderCreate;
24
+ /**
25
+ * Defines an asset folder update payload.
26
+ *
27
+ * @example
28
+ * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });
29
+ */
30
+ declare const defineAssetFolderUpdate: (assetFolder: AssetFolderUpdate) => AssetFolderUpdate;
31
+ //#endregion
32
+ export { defineAssetFolder, defineAssetFolderCreate, defineAssetFolderUpdate };
33
+ //# sourceMappingURL=define-asset-folder.d.cts.map
@@ -0,0 +1,33 @@
1
+ import { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from "../generated/mapi-types.mjs";
2
+
3
+ //#region src/helpers/define-asset-folder.d.ts
4
+ type AssetFolderInput = {
5
+ name: string;
6
+ } & Partial<Omit<AssetFolder, 'name'>>;
7
+ /**
8
+ * Defines an asset folder.
9
+ * When `uuid` is not provided, it defaults to the folder name
10
+ * (prefixed by `parent_uuid/` for nested folders).
11
+ *
12
+ * @example
13
+ * const folder = defineAssetFolder({ name: 'Images' });
14
+ * // folder.uuid === 'Images'
15
+ */
16
+ declare const defineAssetFolder: (assetFolder: AssetFolderInput) => AssetFolder;
17
+ /**
18
+ * Defines an asset folder creation payload.
19
+ *
20
+ * @example
21
+ * const payload = defineAssetFolderCreate({ name: 'Images' });
22
+ */
23
+ declare const defineAssetFolderCreate: (assetFolder: AssetFolderCreate) => AssetFolderCreate;
24
+ /**
25
+ * Defines an asset folder update payload.
26
+ *
27
+ * @example
28
+ * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });
29
+ */
30
+ declare const defineAssetFolderUpdate: (assetFolder: AssetFolderUpdate) => AssetFolderUpdate;
31
+ //#endregion
32
+ export { defineAssetFolder, defineAssetFolderCreate, defineAssetFolderUpdate };
33
+ //# sourceMappingURL=define-asset-folder.d.mts.map
@@ -0,0 +1,37 @@
1
+ //#region src/helpers/define-asset-folder.ts
2
+ const ASSET_FOLDER_DEFAULTS = { id: 1 };
3
+ /**
4
+ * Defines an asset folder.
5
+ * When `uuid` is not provided, it defaults to the folder name
6
+ * (prefixed by `parent_uuid/` for nested folders).
7
+ *
8
+ * @example
9
+ * const folder = defineAssetFolder({ name: 'Images' });
10
+ * // folder.uuid === 'Images'
11
+ */
12
+ const defineAssetFolder = (assetFolder) => {
13
+ const uuid = assetFolder.uuid || (assetFolder.parent_uuid ? `${assetFolder.parent_uuid}/${assetFolder.name}` : assetFolder.name);
14
+ return {
15
+ ...ASSET_FOLDER_DEFAULTS,
16
+ ...assetFolder,
17
+ uuid
18
+ };
19
+ };
20
+ /**
21
+ * Defines an asset folder creation payload.
22
+ *
23
+ * @example
24
+ * const payload = defineAssetFolderCreate({ name: 'Images' });
25
+ */
26
+ const defineAssetFolderCreate = (assetFolder) => assetFolder;
27
+ /**
28
+ * Defines an asset folder update payload.
29
+ *
30
+ * @example
31
+ * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });
32
+ */
33
+ const defineAssetFolderUpdate = (assetFolder) => assetFolder;
34
+
35
+ //#endregion
36
+ export { defineAssetFolder, defineAssetFolderCreate, defineAssetFolderUpdate };
37
+ //# sourceMappingURL=define-asset-folder.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-asset-folder.mjs","names":[],"sources":["../../src/helpers/define-asset-folder.ts"],"sourcesContent":["import type { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from '../generated/mapi-types';\n\nconst ASSET_FOLDER_DEFAULTS = {\n id: 1,\n};\n\nexport type { AssetFolder, AssetFolderCreate, AssetFolderUpdate };\n\ntype AssetFolderInput = { name: string } & Partial<Omit<AssetFolder, 'name'>>;\n\n/**\n * Defines an asset folder.\n * When `uuid` is not provided, it defaults to the folder name\n * (prefixed by `parent_uuid/` for nested folders).\n *\n * @example\n * const folder = defineAssetFolder({ name: 'Images' });\n * // folder.uuid === 'Images'\n */\nexport const defineAssetFolder = (assetFolder: AssetFolderInput): AssetFolder => {\n const uuid = assetFolder.uuid\n || (assetFolder.parent_uuid ? `${assetFolder.parent_uuid}/${assetFolder.name}` : assetFolder.name);\n\n return {\n ...ASSET_FOLDER_DEFAULTS,\n ...assetFolder,\n uuid,\n };\n};\n\n/**\n * Defines an asset folder creation payload.\n *\n * @example\n * const payload = defineAssetFolderCreate({ name: 'Images' });\n */\nexport const defineAssetFolderCreate = (assetFolder: AssetFolderCreate): AssetFolderCreate => assetFolder;\n\n/**\n * Defines an asset folder update payload.\n *\n * @example\n * const payload = defineAssetFolderUpdate({ name: 'Updated Images' });\n */\nexport const defineAssetFolderUpdate = (assetFolder: AssetFolderUpdate): AssetFolderUpdate => assetFolder;\n"],"mappings":";AAEA,MAAM,wBAAwB,EAC5B,IAAI,GACL;;;;;;;;;;AAeD,MAAa,qBAAqB,gBAA+C;CAC/E,MAAM,OAAO,YAAY,SACnB,YAAY,cAAc,GAAG,YAAY,YAAY,GAAG,YAAY,SAAS,YAAY;AAE/F,QAAO;EACL,GAAG;EACH,GAAG;EACH;EACD;;;;;;;;AASH,MAAa,2BAA2B,gBAAsD;;;;;;;AAQ9F,MAAa,2BAA2B,gBAAsD"}