@cmssy/types 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Block Field Property Registry - Single Source of Truth
3
+ *
4
+ * Every property a block schema field can have is defined here once.
5
+ * Server Zod schemas, Pothos GraphQL types, and frontend GraphQL fragments
6
+ * are all generated from this registry.
7
+ */
8
+ export interface FieldPropertyDef {
9
+ /** The data type of this property */
10
+ type: "string" | "number" | "boolean" | "json" | "object";
11
+ /** Whether this property is required (default false) */
12
+ required?: boolean;
13
+ /** Whether this number must be an integer */
14
+ integer?: boolean;
15
+ /** Nested properties (only for type: "object") */
16
+ properties?: Record<string, FieldPropertyDef>;
17
+ }
18
+ export declare const BLOCK_FIELD_PROPERTIES: {
19
+ readonly key: {
20
+ readonly type: "string";
21
+ readonly required: true;
22
+ };
23
+ readonly type: {
24
+ readonly type: "string";
25
+ readonly required: true;
26
+ };
27
+ readonly label: {
28
+ readonly type: "string";
29
+ readonly required: true;
30
+ };
31
+ readonly defaultValue: {
32
+ readonly type: "json";
33
+ };
34
+ readonly placeholder: {
35
+ readonly type: "string";
36
+ };
37
+ readonly required: {
38
+ readonly type: "boolean";
39
+ };
40
+ readonly helperText: {
41
+ readonly type: "string";
42
+ };
43
+ readonly options: {
44
+ readonly type: "json";
45
+ };
46
+ readonly minValue: {
47
+ readonly type: "number";
48
+ };
49
+ readonly maxValue: {
50
+ readonly type: "number";
51
+ };
52
+ readonly minItems: {
53
+ readonly type: "number";
54
+ readonly integer: true;
55
+ };
56
+ readonly maxItems: {
57
+ readonly type: "number";
58
+ readonly integer: true;
59
+ };
60
+ readonly multiple: {
61
+ readonly type: "boolean";
62
+ };
63
+ readonly itemSchema: {
64
+ readonly type: "json";
65
+ };
66
+ readonly group: {
67
+ readonly type: "string";
68
+ };
69
+ readonly showWhen: {
70
+ readonly type: "object";
71
+ readonly properties: {
72
+ readonly field: {
73
+ readonly type: "string";
74
+ readonly required: true;
75
+ };
76
+ readonly equals: {
77
+ readonly type: "json";
78
+ };
79
+ readonly notEquals: {
80
+ readonly type: "json";
81
+ };
82
+ readonly notEmpty: {
83
+ readonly type: "boolean";
84
+ };
85
+ readonly isEmpty: {
86
+ readonly type: "boolean";
87
+ };
88
+ };
89
+ };
90
+ readonly validation: {
91
+ readonly type: "object";
92
+ readonly properties: {
93
+ readonly minLength: {
94
+ readonly type: "number";
95
+ readonly integer: true;
96
+ };
97
+ readonly maxLength: {
98
+ readonly type: "number";
99
+ readonly integer: true;
100
+ };
101
+ readonly min: {
102
+ readonly type: "number";
103
+ };
104
+ readonly max: {
105
+ readonly type: "number";
106
+ };
107
+ readonly pattern: {
108
+ readonly type: "string";
109
+ };
110
+ readonly message: {
111
+ readonly type: "string";
112
+ };
113
+ };
114
+ };
115
+ };
116
+ /** All property names a block field can have */
117
+ export type BlockFieldPropertyName = keyof typeof BLOCK_FIELD_PROPERTIES;
118
+ /** Array of all property names (runtime iterable) */
119
+ export declare const blockFieldPropertyNames: BlockFieldPropertyName[];
120
+ /**
121
+ * Returns all block field properties as a GraphQL selection string.
122
+ * Object properties (showWhen, validation) expand into sub-selections.
123
+ *
124
+ * Example output: `key type label ... showWhen { field equals notEquals notEmpty isEmpty } ...`
125
+ */
126
+ export declare function blockFieldGraphQLSelection(): string;
127
+ /**
128
+ * Canonical block field definition interface - matches server/GraphQL flat shape.
129
+ * Must stay in sync with BLOCK_FIELD_PROPERTIES registry (compile-time check below).
130
+ * Use this in any consumer (MCP server, CLI, etc.) instead of defining local copies.
131
+ */
132
+ export interface BlockFieldSchema {
133
+ key: string;
134
+ type: string;
135
+ label: string;
136
+ defaultValue?: unknown;
137
+ placeholder?: string | null;
138
+ required?: boolean;
139
+ helperText?: string | null;
140
+ options?: Array<{
141
+ value: string;
142
+ label: string;
143
+ }> | null;
144
+ minValue?: number | null;
145
+ maxValue?: number | null;
146
+ minItems?: number | null;
147
+ maxItems?: number | null;
148
+ multiple?: boolean | null;
149
+ itemSchema?: BlockFieldSchema[] | null;
150
+ group?: string | null;
151
+ showWhen?: {
152
+ field: string;
153
+ equals?: unknown;
154
+ notEquals?: unknown;
155
+ notEmpty?: boolean | null;
156
+ isEmpty?: boolean | null;
157
+ } | null;
158
+ validation?: {
159
+ minLength?: number | null;
160
+ maxLength?: number | null;
161
+ min?: number | null;
162
+ max?: number | null;
163
+ pattern?: string | null;
164
+ message?: string | null;
165
+ } | null;
166
+ }
167
+ //# sourceMappingURL=block-field-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-field-registry.d.ts","sourceRoot":"","sources":["../src/block-field-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1D,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC/C;AAMD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCkB,CAAC;AAMtD,gDAAgD;AAChD,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAEzE,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,EAE/B,sBAAsB,EAAE,CAAC;AAM9B;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAQnD;AAMD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KAC1B,GAAG,IAAI,CAAC;IACT,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,IAAI,CAAC;CACV"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Block Field Property Registry - Single Source of Truth
3
+ *
4
+ * Every property a block schema field can have is defined here once.
5
+ * Server Zod schemas, Pothos GraphQL types, and frontend GraphQL fragments
6
+ * are all generated from this registry.
7
+ */
8
+ // =============================================================================
9
+ // REGISTRY
10
+ // =============================================================================
11
+ export const BLOCK_FIELD_PROPERTIES = {
12
+ key: { type: "string", required: true },
13
+ type: { type: "string", required: true },
14
+ label: { type: "string", required: true },
15
+ defaultValue: { type: "json" },
16
+ placeholder: { type: "string" },
17
+ required: { type: "boolean" },
18
+ helperText: { type: "string" },
19
+ options: { type: "json" },
20
+ minValue: { type: "number" },
21
+ maxValue: { type: "number" },
22
+ minItems: { type: "number", integer: true },
23
+ maxItems: { type: "number", integer: true },
24
+ multiple: { type: "boolean" },
25
+ itemSchema: { type: "json" },
26
+ group: { type: "string" },
27
+ showWhen: {
28
+ type: "object",
29
+ properties: {
30
+ field: { type: "string", required: true },
31
+ equals: { type: "json" },
32
+ notEquals: { type: "json" },
33
+ notEmpty: { type: "boolean" },
34
+ isEmpty: { type: "boolean" },
35
+ },
36
+ },
37
+ validation: {
38
+ type: "object",
39
+ properties: {
40
+ minLength: { type: "number", integer: true },
41
+ maxLength: { type: "number", integer: true },
42
+ min: { type: "number" },
43
+ max: { type: "number" },
44
+ pattern: { type: "string" },
45
+ message: { type: "string" },
46
+ },
47
+ },
48
+ };
49
+ /** Array of all property names (runtime iterable) */
50
+ export const blockFieldPropertyNames = Object.keys(BLOCK_FIELD_PROPERTIES);
51
+ // =============================================================================
52
+ // GRAPHQL HELPERS
53
+ // =============================================================================
54
+ /**
55
+ * Returns all block field properties as a GraphQL selection string.
56
+ * Object properties (showWhen, validation) expand into sub-selections.
57
+ *
58
+ * Example output: `key type label ... showWhen { field equals notEquals notEmpty isEmpty } ...`
59
+ */
60
+ export function blockFieldGraphQLSelection() {
61
+ return Object.entries(BLOCK_FIELD_PROPERTIES)
62
+ .map(([key, def]) => def.type === "object" && def.properties
63
+ ? `${key} { ${Object.keys(def.properties).join(" ")} }`
64
+ : key)
65
+ .join(" ");
66
+ }
67
+ const _assertNoMissing = true;
68
+ const _assertNoExtra = true;
69
+ void _assertNoMissing;
70
+ void _assertNoExtra;
71
+ //# sourceMappingURL=block-field-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-field-registry.js","sourceRoot":"","sources":["../src/block-field-registry.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,9 @@ export interface BaseFieldConfig {
73
73
  required?: boolean;
74
74
  placeholder?: string;
75
75
  defaultValue?: unknown;
76
+ /** Helper text shown below field (canonical name matching server/GraphQL) */
77
+ helperText?: string;
78
+ /** @deprecated Use `helperText` instead */
76
79
  helpText?: string;
77
80
  group?: string;
78
81
  showWhen?: ShowWhenCondition;
@@ -1 +1 @@
1
- {"version":3,"file":"block-fields.d.ts","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;CA2BZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,eAAe,8MAiBlB,CAAC;AAMX;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IACrC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,eAAe,EACf,cAAc,CACf;IACC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,uBAAuB,CAAC"}
1
+ {"version":3,"file":"block-fields.d.ts","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,10 +4,12 @@
4
4
  * Shared type definitions for Cmssy platform.
5
5
  * Single source of truth for types used by server, frontend, and CLI.
6
6
  */
7
+ export { BLOCK_FIELD_PROPERTIES, blockFieldPropertyNames, blockFieldGraphQLSelection, type FieldPropertyDef, type BlockFieldPropertyName, type BlockFieldSchema, } from "./block-field-registry.js";
7
8
  export { FieldType, fieldTypeValues, type FieldValidation, type ValidationPattern, type ShowWhenCondition, type BaseFieldConfig, type SelectFieldConfig, type MultiselectFieldConfig, type RepeaterFieldConfig, type MediaFieldConfig, type PageRef, type PageSelectorFieldConfig, type FieldConfig, } from "./block-fields.js";
8
9
  export { LayoutPosition, layoutPositionValues, LayoutOverrideAction, type LayoutOverride, } from "./layout.js";
9
10
  export { WorkspaceModule, workspaceModuleValues, FeatureFlag, featureFlagValues, type BlockRequires, } from "./modules.js";
10
11
  export { type BlockConfig, BlockSource, PackageType } from "./block.js";
11
12
  export type { BlockMemberProfile, BlockMember, BlockAuthContext, BlockI18nContext, PlatformContext, BlockProps, PageItem, } from "./platform-context.js";
13
+ export { ALLOWED_CDN_DOMAINS, type AllowedCdnDomain, TranslationStatus, translationStatusValues, MediaType, mediaTypeValues, } from "./shared-constants.js";
12
14
  export { type TemplateBlockContent, type TemplateBlockInstance, type TemplatePageBlueprint, type TemplateLayoutPosition, type TemplateTheme, type TemplateConfig, type ResourceConfig, isTemplateConfig, } from "./template.js";
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,8 @@
4
4
  * Shared type definitions for Cmssy platform.
5
5
  * Single source of truth for types used by server, frontend, and CLI.
6
6
  */
7
+ // Block field registry (single source of truth)
8
+ export { BLOCK_FIELD_PROPERTIES, blockFieldPropertyNames, blockFieldGraphQLSelection, } from "./block-field-registry.js";
7
9
  // Block fields
8
10
  export { FieldType, fieldTypeValues, } from "./block-fields.js";
9
11
  // Layout
@@ -12,6 +14,8 @@ export { LayoutPosition, layoutPositionValues, LayoutOverrideAction, } from "./l
12
14
  export { WorkspaceModule, workspaceModuleValues, FeatureFlag, featureFlagValues, } from "./modules.js";
13
15
  // Block config
14
16
  export { BlockSource, PackageType } from "./block.js";
17
+ // Shared constants (CDN domains, translation status, media type)
18
+ export { ALLOWED_CDN_DOMAINS, TranslationStatus, translationStatusValues, MediaType, mediaTypeValues, } from "./shared-constants.js";
15
19
  // Template config
16
20
  export { isTemplateConfig, } from "./template.js";
17
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,GAYhB,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,aAAa,CAAC;AAErB,qBAAqB;AACrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,GAElB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAaxE,kBAAkB;AAClB,OAAO,EAQL,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,GAYhB,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,aAAa,CAAC;AAErB,qBAAqB;AACrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,GAElB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAaxE,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EAEnB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAQL,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Shared constants and enums used across server, frontend, CLI, and MCP.
3
+ * Single source of truth - import from @cmssy/types instead of defining locally.
4
+ */
5
+ /** Allowed CDN domains for loading custom block scripts. Security-critical. */
6
+ export declare const ALLOWED_CDN_DOMAINS: readonly ["esm.sh", "unpkg.com", "esm.run", "library.cmssy.io", "vercel.app", "public.blob.vercel-storage.com"];
7
+ export type AllowedCdnDomain = (typeof ALLOWED_CDN_DOMAINS)[number];
8
+ export declare const TranslationStatus: {
9
+ readonly NOT_TRANSLATED: "not_translated";
10
+ readonly IN_PROGRESS: "in_progress";
11
+ readonly COMPLETED: "completed";
12
+ readonly NEEDS_REVIEW: "needs_review";
13
+ };
14
+ export type TranslationStatus = (typeof TranslationStatus)[keyof typeof TranslationStatus];
15
+ export declare const translationStatusValues: ["not_translated", "in_progress", "completed", "needs_review"];
16
+ export declare const MediaType: {
17
+ readonly IMAGE: "image";
18
+ readonly VIDEO: "video";
19
+ readonly DOCUMENT: "document";
20
+ readonly AUDIO: "audio";
21
+ };
22
+ export type MediaType = (typeof MediaType)[keyof typeof MediaType];
23
+ export declare const mediaTypeValues: ["image", "video", "document", "audio"];
24
+ //# sourceMappingURL=shared-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-constants.d.ts","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,iHAOtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMpE,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,eAAO,MAAM,uBAAuB,EAAuC,CACzE,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,CACf,CAAC;AAMF,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,eAAO,MAAM,eAAe,EAA+B,CACzD,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,CACR,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared constants and enums used across server, frontend, CLI, and MCP.
3
+ * Single source of truth - import from @cmssy/types instead of defining locally.
4
+ */
5
+ // =============================================================================
6
+ // CDN SECURITY
7
+ // =============================================================================
8
+ /** Allowed CDN domains for loading custom block scripts. Security-critical. */
9
+ export const ALLOWED_CDN_DOMAINS = [
10
+ "esm.sh",
11
+ "unpkg.com",
12
+ "esm.run",
13
+ "library.cmssy.io",
14
+ "vercel.app",
15
+ "public.blob.vercel-storage.com",
16
+ ];
17
+ // =============================================================================
18
+ // TRANSLATION STATUS
19
+ // =============================================================================
20
+ export const TranslationStatus = {
21
+ NOT_TRANSLATED: "not_translated",
22
+ IN_PROGRESS: "in_progress",
23
+ COMPLETED: "completed",
24
+ NEEDS_REVIEW: "needs_review",
25
+ };
26
+ export const translationStatusValues = Object.values(TranslationStatus);
27
+ // =============================================================================
28
+ // MEDIA TYPE
29
+ // =============================================================================
30
+ export const MediaType = {
31
+ IMAGE: "image",
32
+ VIDEO: "video",
33
+ DOCUMENT: "document",
34
+ AUDIO: "audio",
35
+ };
36
+ export const mediaTypeValues = Object.values(MediaType);
37
+ //# sourceMappingURL=shared-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-constants.js","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,WAAW;IACX,SAAS;IACT,kBAAkB;IAClB,YAAY;IACZ,gCAAgC;CACxB,CAAC;AAIX,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;CACpB,CAAC;AAKX,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAKrE,CAAC;AAEF,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;CACN,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAKrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmssy/types",
3
- "version": "0.5.6",
3
+ "version": "0.6.0",
4
4
  "description": "Shared type definitions for Cmssy platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",