@powerhousedao/builder-tools 0.10.2 → 2.5.0-dev.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 (109) hide show
  1. package/README.md +79 -0
  2. package/dist/connect-build/build.d.ts +6 -0
  3. package/dist/connect-build/build.d.ts.map +1 -0
  4. package/dist/connect-build/build.js +51 -0
  5. package/dist/connect-build/build.js.map +1 -0
  6. package/dist/connect-build/constants.d.ts +11 -0
  7. package/dist/connect-build/constants.d.ts.map +1 -0
  8. package/dist/connect-build/constants.js +11 -0
  9. package/dist/connect-build/constants.js.map +1 -0
  10. package/dist/connect-build/helpers.d.ts +24 -0
  11. package/dist/connect-build/helpers.d.ts.map +1 -0
  12. package/dist/connect-build/helpers.js +57 -0
  13. package/dist/connect-build/helpers.js.map +1 -0
  14. package/dist/connect-build/index.d.ts +5 -0
  15. package/dist/connect-build/index.d.ts.map +1 -0
  16. package/dist/connect-build/index.js +4 -0
  17. package/dist/connect-build/index.js.map +1 -0
  18. package/dist/connect-build/preview.d.ts +3 -0
  19. package/dist/connect-build/preview.d.ts.map +1 -0
  20. package/dist/connect-build/preview.js +18 -0
  21. package/dist/connect-build/preview.js.map +1 -0
  22. package/dist/connect-build/types.d.ts +23 -0
  23. package/dist/connect-build/types.d.ts.map +1 -0
  24. package/dist/connect-build/types.js +2 -0
  25. package/dist/connect-build/types.js.map +1 -0
  26. package/dist/connect-studio/index.d.ts +1 -5
  27. package/dist/connect-studio/index.d.ts.map +1 -1
  28. package/dist/connect-studio/index.js +1 -5
  29. package/dist/connect-studio/index.js.map +1 -1
  30. package/dist/connect-studio/server.d.ts.map +1 -1
  31. package/dist/connect-studio/server.js +12 -48
  32. package/dist/connect-studio/server.js.map +1 -1
  33. package/dist/connect-studio/studio.js +1 -1
  34. package/dist/connect-studio/studio.js.map +1 -1
  35. package/dist/connect-studio/types.d.ts +3 -2
  36. package/dist/connect-studio/types.d.ts.map +1 -1
  37. package/dist/connect-utils/constants.d.ts +5 -0
  38. package/dist/connect-utils/constants.d.ts.map +1 -0
  39. package/dist/connect-utils/constants.js +5 -0
  40. package/dist/connect-utils/constants.js.map +1 -0
  41. package/dist/connect-utils/helpers.d.ts +36 -0
  42. package/dist/connect-utils/helpers.d.ts.map +1 -0
  43. package/dist/connect-utils/helpers.js +176 -0
  44. package/dist/connect-utils/helpers.js.map +1 -0
  45. package/dist/connect-utils/index.d.ts +7 -0
  46. package/dist/connect-utils/index.d.ts.map +1 -0
  47. package/dist/connect-utils/index.js +7 -0
  48. package/dist/connect-utils/index.js.map +1 -0
  49. package/dist/connect-utils/vite-plugins/base.d.ts.map +1 -0
  50. package/dist/connect-utils/vite-plugins/base.js.map +1 -0
  51. package/dist/connect-utils/vite-plugins/external-packages.d.ts +3 -0
  52. package/dist/connect-utils/vite-plugins/external-packages.d.ts.map +1 -0
  53. package/dist/{connect-studio → connect-utils}/vite-plugins/external-packages.js +21 -35
  54. package/dist/connect-utils/vite-plugins/external-packages.js.map +1 -0
  55. package/dist/connect-utils/vite-plugins/importmap.d.ts.map +1 -0
  56. package/dist/connect-utils/vite-plugins/importmap.js.map +1 -0
  57. package/dist/connect-utils/vite-plugins/studio.d.ts.map +1 -0
  58. package/dist/connect-utils/vite-plugins/studio.js.map +1 -0
  59. package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts.map +1 -1
  60. package/dist/document-model-editor/components/code-editors/graphql-editor.js +14 -21
  61. package/dist/document-model-editor/components/code-editors/graphql-editor.js.map +1 -1
  62. package/dist/document-model-editor/components/state-schemas.d.ts.map +1 -1
  63. package/dist/document-model-editor/components/state-schemas.js +26 -6
  64. package/dist/document-model-editor/components/state-schemas.js.map +1 -1
  65. package/dist/document-model-editor/constants/documents.js +1 -1
  66. package/dist/document-model-editor/constants/documents.js.map +1 -1
  67. package/dist/document-model-editor/constants/graphql-kinds.d.ts +9 -0
  68. package/dist/document-model-editor/constants/graphql-kinds.d.ts.map +1 -0
  69. package/dist/document-model-editor/constants/graphql-kinds.js +13 -0
  70. package/dist/document-model-editor/constants/graphql-kinds.js.map +1 -0
  71. package/dist/document-model-editor/document-model-editor.stories.d.ts +4 -44
  72. package/dist/document-model-editor/document-model-editor.stories.d.ts.map +1 -1
  73. package/dist/document-model-editor/document-model-editor.stories.js +4 -2
  74. package/dist/document-model-editor/document-model-editor.stories.js.map +1 -1
  75. package/dist/document-model-editor/editor.js +1 -1
  76. package/dist/document-model-editor/editor.js.map +1 -1
  77. package/dist/document-model-editor/types.d.ts +2 -0
  78. package/dist/document-model-editor/types.d.ts.map +1 -0
  79. package/dist/document-model-editor/types.js +2 -0
  80. package/dist/document-model-editor/types.js.map +1 -0
  81. package/dist/document-model-editor/utils/helpers.d.ts +16 -16
  82. package/dist/document-model-editor/utils/helpers.d.ts.map +1 -1
  83. package/dist/document-model-editor/utils/helpers.js +275 -218
  84. package/dist/document-model-editor/utils/helpers.js.map +1 -1
  85. package/dist/document-model-editor/utils/linting.d.ts.map +1 -1
  86. package/dist/document-model-editor/utils/linting.js +4 -1
  87. package/dist/document-model-editor/utils/linting.js.map +1 -1
  88. package/dist/style.css +6 -3
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +51 -42
  91. package/dist/connect-studio/helpers.d.ts +0 -6
  92. package/dist/connect-studio/helpers.d.ts.map +0 -1
  93. package/dist/connect-studio/helpers.js +0 -57
  94. package/dist/connect-studio/helpers.js.map +0 -1
  95. package/dist/connect-studio/vite-plugins/base.d.ts.map +0 -1
  96. package/dist/connect-studio/vite-plugins/base.js.map +0 -1
  97. package/dist/connect-studio/vite-plugins/external-packages.d.ts +0 -6
  98. package/dist/connect-studio/vite-plugins/external-packages.d.ts.map +0 -1
  99. package/dist/connect-studio/vite-plugins/external-packages.js.map +0 -1
  100. package/dist/connect-studio/vite-plugins/importmap.d.ts.map +0 -1
  101. package/dist/connect-studio/vite-plugins/importmap.js.map +0 -1
  102. package/dist/connect-studio/vite-plugins/studio.d.ts.map +0 -1
  103. package/dist/connect-studio/vite-plugins/studio.js.map +0 -1
  104. /package/dist/{connect-studio → connect-utils}/vite-plugins/base.d.ts +0 -0
  105. /package/dist/{connect-studio → connect-utils}/vite-plugins/base.js +0 -0
  106. /package/dist/{connect-studio → connect-utils}/vite-plugins/importmap.d.ts +0 -0
  107. /package/dist/{connect-studio → connect-utils}/vite-plugins/importmap.js +0 -0
  108. /package/dist/{connect-studio → connect-utils}/vite-plugins/studio.d.ts +0 -0
  109. /package/dist/{connect-studio → connect-utils}/vite-plugins/studio.js +0 -0
@@ -1,244 +1,301 @@
1
+ import { BOOLEAN_GQL_PRIMITIVE_NAME, FLOAT_GQL_PRIMITIVE_NAME, gqlPrimitiveNodeNamesList, ID_GQL_PRIMITIVE_NAME, INT_GQL_PRIMITIVE_NAME, STRING_GQL_PRIMITIVE_NAME, } from "#document-model-editor/constants/graphql-kinds";
1
2
  import { safeParseSdl } from "#document-model-editor/context/schema-context";
2
- import * as customScalars from "@powerhousedao/scalars";
3
+ import { getPHCustomScalarByTypeName, } from "@powerhousedao/document-engineering/graphql";
3
4
  import { pascalCase } from "change-case";
4
- import { buildASTSchema, extendSchema, getNullableType, GraphQLScalarType, isEnumType, isListType, isObjectType, isScalarType, Kind, print, visit, } from "graphql";
5
- export function makeStateObject(modelName, scope) {
6
- const name = makeStateObjectName(modelName, scope);
7
- const inputNode = {
8
- kind: Kind.OBJECT_TYPE_DEFINITION,
9
- name: {
10
- kind: Kind.NAME,
11
- value: name,
12
- },
13
- fields: [
14
- {
15
- description: {
16
- kind: Kind.STRING,
17
- value: `Add your ${scope} state fields here`,
18
- block: false,
19
- },
20
- kind: Kind.FIELD_DEFINITION,
21
- name: { kind: Kind.NAME, value: "_placeholder" },
22
- type: {
23
- kind: Kind.NAMED_TYPE,
24
- name: { kind: Kind.NAME, value: "String" },
25
- },
26
- },
27
- ],
28
- };
29
- return print(inputNode);
5
+ import { Kind, print, visit, } from "graphql";
6
+ import { z } from "zod";
7
+ export function makeStateSchemaNameForScope(modelName, scope) {
8
+ const modelNamePascalCase = pascalCase(modelName);
9
+ const scopePascalCase = pascalCase(scope);
10
+ const scopeStateTypeNamePrefix = scopePascalCase === "Global" ? "" : scopePascalCase;
11
+ const name = `${scopeStateTypeNamePrefix}${modelNamePascalCase}State`;
12
+ return name;
30
13
  }
31
- export function makeEmptyInputObject(name) {
32
- const inputNode = {
33
- kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,
34
- name: {
35
- kind: Kind.NAME,
36
- value: name,
37
- },
38
- fields: [
39
- {
40
- description: {
41
- kind: Kind.STRING,
42
- value: "Add your inputs here",
43
- block: false,
44
- },
45
- kind: Kind.INPUT_VALUE_DEFINITION,
46
- name: { kind: Kind.NAME, value: "_placeholder" },
47
- type: {
48
- kind: Kind.NAMED_TYPE,
49
- name: { kind: Kind.NAME, value: "String" },
50
- },
51
- },
52
- ],
53
- };
54
- return print(inputNode);
14
+ export function makeInitialSchemaDoc(modelName, scope) {
15
+ const name = makeStateSchemaNameForScope(modelName, scope);
16
+ const stateSchemaSdl = `type ${name} {
17
+ "Add your ${scope} state fields here"
18
+ _placeholder: String
19
+ }`;
20
+ return stateSchemaSdl;
55
21
  }
56
- export function makeOperationInputName(operationName) {
57
- return `${pascalCase(operationName)}Input`;
22
+ export function makeOperationInitialDoc(name) {
23
+ const inputSdl = `input ${pascalCase(name)}Input {
24
+ "Add your inputs here"
25
+ _placeholder: String
26
+ }`;
27
+ return inputSdl;
58
28
  }
59
- export function makeStateObjectName(modelName, scope) {
60
- return `${pascalCase(modelName)}${scope === "local" ? "Local" : ""}State`;
29
+ export function safeParseJsonRecord(json) {
30
+ try {
31
+ return JSON.parse(json);
32
+ }
33
+ catch (error) {
34
+ return null;
35
+ }
61
36
  }
62
- export function makeOperationInitialDoc(name) {
63
- const inputName = makeOperationInputName(name);
64
- const inputObject = makeEmptyInputObject(inputName);
65
- return inputObject;
37
+ export function makeMinimalObjectForStateType(args) {
38
+ const { sharedSchemaDocumentNode, stateTypeDefinitionNode, existingValue } = args;
39
+ const existingValueObject = safeParseJsonRecord(existingValue);
40
+ if (!existingValueObject) {
41
+ return existingValue;
42
+ }
43
+ const stateTypeDefinitionFields = stateTypeDefinitionNode.fields;
44
+ if (!stateTypeDefinitionFields?.length) {
45
+ return existingValue;
46
+ }
47
+ const minimalObject = makeMinimalValuesForObjectFields({
48
+ schemaDocumentNode: sharedSchemaDocumentNode,
49
+ fieldDefinitionNodes: stateTypeDefinitionFields,
50
+ existingValueObject,
51
+ });
52
+ return JSON.stringify(minimalObject, null, 2);
66
53
  }
67
- export function makeInitialSchemaDoc(modelName, scope) {
68
- const stateObject = makeStateObject(modelName, scope);
69
- return stateObject;
54
+ export function makeMinimalValuesForObjectFields(args) {
55
+ const { schemaDocumentNode, existingValueObject, fieldDefinitionNodes } = args;
56
+ const newJson = {};
57
+ for (const astNode of fieldDefinitionNodes) {
58
+ const fieldName = getASTNodeName(astNode);
59
+ if (!fieldName) {
60
+ continue;
61
+ }
62
+ const minimalValue = makeMinimalValueForASTNode({
63
+ fieldName,
64
+ astNode,
65
+ schemaDocumentNode,
66
+ existingValueObject,
67
+ });
68
+ newJson[astNode.name.value] = minimalValue;
69
+ }
70
+ return newJson;
71
+ }
72
+ function makeMinimalValueForASTNode(args) {
73
+ const { fieldName, astNode, schemaDocumentNode, existingValueObject } = args;
74
+ const existingFieldValue = existingValueObject?.[fieldName];
75
+ let node = astNode;
76
+ if (isFieldDefinitionNode(astNode)) {
77
+ node = getASTNodeTypeNode(node);
78
+ }
79
+ const isNonNull = isNonNullNode(node);
80
+ if (isNonNull) {
81
+ node = getASTNodeTypeNode(node);
82
+ }
83
+ if (isListTypeNode(node)) {
84
+ return makeMinimalValueForGqlListNode(node, existingFieldValue, isNonNull);
85
+ }
86
+ if (isGqlPrimitiveNode(node)) {
87
+ return makeMinimalValueForGQLPrimitiveNode(node, existingFieldValue, isNonNull);
88
+ }
89
+ const namedTypeDefinitionNode = getNamedTypeDefinitionNode(node, schemaDocumentNode);
90
+ if (isEnumTypeDefinitionNode(namedTypeDefinitionNode)) {
91
+ return makeMinimalValueForGqlEnum(namedTypeDefinitionNode, existingFieldValue, isNonNull);
92
+ }
93
+ if (isScalarTypeDefinitionNode(namedTypeDefinitionNode)) {
94
+ return makeMinimalValueForGqlScalar(namedTypeDefinitionNode, existingFieldValue, isNonNull);
95
+ }
96
+ if (isUnionTypeDefinitionNode(namedTypeDefinitionNode)) {
97
+ return makeMinimalValueForGqlUnion(namedTypeDefinitionNode, existingFieldValue, schemaDocumentNode, existingValueObject, isNonNull);
98
+ }
99
+ if (isObjectTypeDefinitionNode(namedTypeDefinitionNode)) {
100
+ return makeMinimalValueForGqlObject(namedTypeDefinitionNode, schemaDocumentNode, existingValueObject, existingFieldValue, isNonNull);
101
+ }
102
+ return existingFieldValue;
70
103
  }
71
- export function makeSchemaStringFromDocs(docs) {
72
- return Object.values(docs).join("\n");
104
+ function isFieldDefinitionNode(astNodeTypeNode) {
105
+ if (!astNodeTypeNode)
106
+ return false;
107
+ return astNodeTypeNode.kind === Kind.FIELD_DEFINITION;
73
108
  }
74
- export function getDocumentMetadata(document) {
75
- const globalState = document.state.global;
76
- const author = {
77
- name: globalState.author.name,
78
- website: globalState.author.website,
79
- };
80
- return {
81
- name: globalState.name,
82
- documentType: globalState.id,
83
- description: globalState.description,
84
- extension: globalState.extension,
85
- author,
86
- };
109
+ function isNonNullNode(astNode) {
110
+ if (!astNode)
111
+ return false;
112
+ return astNode.kind === Kind.NON_NULL_TYPE;
87
113
  }
88
- export function getDifferences(obj1, obj2) {
89
- if (!obj1 || !obj2)
90
- return {};
91
- const differences = {};
92
- function isObject(value) {
93
- return !!value && typeof value === "object" && !Array.isArray(value);
94
- }
95
- const compare = (value1, value2) => {
96
- if (isObject(value1) && isObject(value2)) {
97
- // Convert both objects to JSON strings to compare them as a whole.
98
- const keys1 = Object.keys(value1).sort();
99
- const keys2 = Object.keys(value2).sort();
100
- if (JSON.stringify(keys1) !== JSON.stringify(keys2) ||
101
- keys1.some((key) => compare(value1[key], value2[key]))) {
102
- return true; // Any difference in object structure or value means they're different.
114
+ export function isGqlPrimitiveNode(astNodeTypeNode) {
115
+ if (!astNodeTypeNode)
116
+ return false;
117
+ const name = getASTNodeName(astNodeTypeNode);
118
+ return gqlPrimitiveNodeNamesList.includes(name);
119
+ }
120
+ function isListTypeNode(astNodeTypeNode) {
121
+ if (!astNodeTypeNode)
122
+ return false;
123
+ return astNodeTypeNode.kind === Kind.LIST_TYPE;
124
+ }
125
+ function isEnumTypeDefinitionNode(definitionNode) {
126
+ if (!definitionNode)
127
+ return false;
128
+ return definitionNode.kind === Kind.ENUM_TYPE_DEFINITION;
129
+ }
130
+ function isScalarTypeDefinitionNode(definitionNode) {
131
+ if (!definitionNode)
132
+ return false;
133
+ return definitionNode.kind === Kind.SCALAR_TYPE_DEFINITION;
134
+ }
135
+ function isUnionTypeDefinitionNode(definitionNode) {
136
+ if (!definitionNode)
137
+ return false;
138
+ return definitionNode.kind === Kind.UNION_TYPE_DEFINITION;
139
+ }
140
+ function isObjectTypeDefinitionNode(definitionNode) {
141
+ if (!definitionNode)
142
+ return false;
143
+ return definitionNode.kind === Kind.OBJECT_TYPE_DEFINITION;
144
+ }
145
+ function getASTNodeName(astNode) {
146
+ if (!astNode) {
147
+ return null;
148
+ }
149
+ if (!("name" in astNode)) {
150
+ return null;
151
+ }
152
+ if (!astNode.name) {
153
+ return null;
154
+ }
155
+ if (!("value" in astNode.name)) {
156
+ return null;
157
+ }
158
+ return astNode.name.value;
159
+ }
160
+ function getASTNodeTypeNode(astNode) {
161
+ if (!astNode) {
162
+ return null;
163
+ }
164
+ if (!("type" in astNode)) {
165
+ return null;
166
+ }
167
+ return astNode.type;
168
+ }
169
+ function makeMinimalValueForGQLPrimitiveNode(primitiveTypeNode, existingFieldValue, isNonNull) {
170
+ const name = getASTNodeName(primitiveTypeNode);
171
+ if (!name) {
172
+ return null;
173
+ }
174
+ switch (name) {
175
+ case ID_GQL_PRIMITIVE_NAME: {
176
+ if (z.string().safeParse(existingFieldValue).success) {
177
+ return existingFieldValue;
103
178
  }
104
- return false;
179
+ return isNonNull ? "placeholder-id" : null;
105
180
  }
106
- else if (Array.isArray(value1) && Array.isArray(value2)) {
107
- // For arrays, compare their serialized forms.
108
- return JSON.stringify(value1) !== JSON.stringify(value2);
181
+ case BOOLEAN_GQL_PRIMITIVE_NAME: {
182
+ if (z.boolean().safeParse(existingFieldValue).success) {
183
+ return existingFieldValue;
184
+ }
185
+ return isNonNull ? false : null;
109
186
  }
110
- else {
111
- // For primitives, compare directly.
112
- return value1 !== value2;
187
+ case INT_GQL_PRIMITIVE_NAME: {
188
+ if (z.number().safeParse(existingFieldValue).success) {
189
+ return existingFieldValue;
190
+ }
191
+ return isNonNull ? 0 : null;
113
192
  }
114
- };
115
- for (const key of new Set([...Object.keys(obj1), ...Object.keys(obj2)])) {
116
- if (compare(obj1[key], obj2[key])) {
117
- differences[key] =
118
- obj2[key];
193
+ case FLOAT_GQL_PRIMITIVE_NAME: {
194
+ if (z.number().safeParse(existingFieldValue).success) {
195
+ return existingFieldValue;
196
+ }
197
+ return isNonNull ? 0.0 : null;
119
198
  }
120
- }
121
- return Object.entries(differences).reduce((acc, [key, value]) => {
122
- if (value !== undefined) {
123
- // @ts-expect-error generic cannot be inferred
124
- acc[key] = value;
199
+ case STRING_GQL_PRIMITIVE_NAME: {
200
+ if (z.string().safeParse(existingFieldValue).success) {
201
+ return existingFieldValue;
202
+ }
203
+ return isNonNull ? "" : null;
125
204
  }
126
- return acc;
127
- }, {});
205
+ }
206
+ return isNonNull ? existingFieldValue : null;
128
207
  }
129
- function isValidScalarValue(typeName, value) {
130
- if (typeName in customScalars) {
131
- const scalar = customScalars[typeName];
132
- if (scalar instanceof GraphQLScalarType) {
133
- return scalar.parseValue(value) !== undefined;
134
- }
208
+ function makeMinimalValueForGqlEnum(namedTypeDefinitionNode, existingFieldValue, isNonNull) {
209
+ const enumValues = namedTypeDefinitionNode.values?.map((value) => value.name.value) ?? [];
210
+ if (typeof existingFieldValue === "string" &&
211
+ enumValues.includes(existingFieldValue)) {
212
+ return existingFieldValue;
135
213
  }
136
- switch (typeName) {
137
- case "Int":
138
- return Number.isInteger(value);
139
- case "Float":
140
- return typeof value === "number";
141
- case "Boolean":
142
- return typeof value === "boolean";
143
- case "DateTime":
144
- return typeof value === "string" && !isNaN(Date.parse(value));
145
- case "ID":
146
- case "String":
147
- default:
148
- return typeof value === "string";
214
+ if (isNonNull) {
215
+ return enumValues[0];
149
216
  }
217
+ return null;
150
218
  }
151
- function getMinimalValue(type, schema, existingValue) {
152
- const nullableType = getNullableType(type);
153
- if (isScalarType(nullableType)) {
154
- const typeName = nullableType.name;
155
- if (existingValue !== undefined &&
156
- isValidScalarValue(typeName, existingValue)) {
157
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
158
- return existingValue;
159
- }
160
- switch (typeName) {
161
- case "Int":
162
- case "Float":
163
- return 0;
164
- case "Boolean":
165
- return false;
166
- case "DateTime":
167
- return new Date().toISOString();
168
- case "ID":
169
- case "String":
170
- default:
171
- return ""; // Return empty string for custom scalars and String/ID types
172
- }
219
+ function makeMinimalValueForGqlScalar(scalarTypeDefinitionNode, existingFieldValue, isNonNull) {
220
+ if (!isNonNull && !existingFieldValue) {
221
+ return null;
173
222
  }
174
- if (isEnumType(nullableType)) {
175
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
176
- const enumValues = nullableType.getValues().map((v) => v.value);
177
- if (existingValue !== undefined && enumValues.includes(existingValue)) {
178
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
179
- return existingValue;
180
- }
181
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
182
- return enumValues[0] || null;
183
- }
184
- if (isListType(nullableType)) {
185
- if (existingValue !== undefined && Array.isArray(existingValue)) {
186
- // Optionally, validate each element in the array
187
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
188
- return existingValue;
189
- }
190
- return [];
223
+ const name = getASTNodeName(scalarTypeDefinitionNode);
224
+ if (!name) {
225
+ console.error("No name for scalar type definition node", scalarTypeDefinitionNode);
226
+ return null;
191
227
  }
192
- if (isObjectType(nullableType)) {
193
- const result = {};
194
- const fields = nullableType.getFields();
195
- const _existingValue = existingValue;
196
- for (const fieldName in fields) {
197
- const field = fields[fieldName];
198
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
199
- const existingFieldValue = _existingValue
200
- ? _existingValue[fieldName]
201
- : undefined;
202
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
203
- result[fieldName] = getMinimalValue(field.type, schema, existingFieldValue);
204
- }
205
- return result;
228
+ const scalar = getPHCustomScalarByTypeName(name);
229
+ if (!scalar) {
230
+ return null;
206
231
  }
207
- // Handle other types like InterfaceType, UnionType as needed
208
- return null;
232
+ const existingValueIsValid = scalar.schema.safeParse(existingFieldValue);
233
+ if (existingValueIsValid.success) {
234
+ return existingFieldValue;
235
+ }
236
+ if (!isNonNull) {
237
+ return null;
238
+ }
239
+ const minimalValue = scalar.getDefaultValue?.();
240
+ if (minimalValue) {
241
+ return minimalValue;
242
+ }
243
+ return existingFieldValue;
209
244
  }
210
- export function makeMinimalObjectFromSDL(schemaSdl, sdl, existingValue) {
211
- const parsedSchema = safeParseSdl(schemaSdl);
212
- const typeAST = safeParseSdl(sdl);
213
- if (!parsedSchema || !typeAST)
214
- return "";
215
- const schema = buildASTSchema(parsedSchema);
216
- // Extract the type names from the SDL
217
- const typeNames = [];
218
- typeAST.definitions.forEach((def) => {
219
- if (def.kind === Kind.OBJECT_TYPE_DEFINITION ||
220
- def.kind === Kind.OBJECT_TYPE_EXTENSION) {
221
- typeNames.push(def.name.value);
222
- }
245
+ function makeMinimalValueForGqlUnion(namedTypeDefinitionNode, existingFieldValue, schemaDocumentNode, existingValueObject, isNonNull) {
246
+ if (!isNonNull && !existingFieldValue) {
247
+ return null;
248
+ }
249
+ const types = namedTypeDefinitionNode.types;
250
+ if (!types?.length) {
251
+ return null;
252
+ }
253
+ const firstNamedTypeDefinitionNode = namedTypeDefinitionNode.types?.at(0);
254
+ if (!firstNamedTypeDefinitionNode) {
255
+ return null;
256
+ }
257
+ const firstNamedTypeObjectDefinitionNode = getNamedTypeDefinitionNode(firstNamedTypeDefinitionNode, schemaDocumentNode);
258
+ if (!isObjectTypeDefinitionNode(firstNamedTypeObjectDefinitionNode)) {
259
+ return null;
260
+ }
261
+ return makeMinimalValueForGqlObject(firstNamedTypeObjectDefinitionNode, schemaDocumentNode, existingValueObject, existingFieldValue, isNonNull);
262
+ }
263
+ function makeMinimalValueForGqlListNode(listTypeNode, existingFieldValue, isNonNull) {
264
+ if (!isNonNull && !Array.isArray(existingFieldValue)) {
265
+ return null;
266
+ }
267
+ if (isNonNull && !Array.isArray(existingFieldValue)) {
268
+ return [];
269
+ }
270
+ return existingFieldValue;
271
+ }
272
+ function makeMinimalValueForGqlObject(objectTypeDefinitionNode, schemaDocumentNode, existingValueObject, existingFieldValue, isNonNull) {
273
+ if (!isNonNull && !existingFieldValue) {
274
+ return null;
275
+ }
276
+ const fields = objectTypeDefinitionNode.fields;
277
+ if (!fields?.length) {
278
+ return {};
279
+ }
280
+ return makeMinimalValuesForObjectFields({
281
+ schemaDocumentNode,
282
+ existingValueObject,
283
+ fieldDefinitionNodes: fields,
223
284
  });
224
- if (typeNames.length === 0) {
225
- throw new Error("No object type definition found in SDL.");
226
- }
227
- // Assuming there's only one type definition in the SDL
228
- const typeName = typeNames[0];
229
- let type = schema.getType(typeName);
230
- let effectiveSchema = schema;
231
- if (!type || !isObjectType(type)) {
232
- // Type doesn't exist in the schema, extend the schema
233
- effectiveSchema = extendSchema(schema, typeAST);
234
- type = effectiveSchema.getType(typeName);
235
- }
236
- if (!type || !isObjectType(type)) {
237
- throw new Error(`Type "${typeName}" is not a valid ObjectType.`);
238
- }
239
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
240
- const minimalObject = getMinimalValue(type, effectiveSchema, existingValue);
241
- return JSON.stringify(minimalObject, null, 2);
285
+ }
286
+ function getNamedTypeDefinitionNode(astNodeTypeNode, schemaDocumentNode) {
287
+ if (!astNodeTypeNode) {
288
+ return null;
289
+ }
290
+ const name = getASTNodeName(astNodeTypeNode);
291
+ if (!name) {
292
+ return null;
293
+ }
294
+ const definitionNode = schemaDocumentNode.definitions.find((def) => "kind" in def && "name" in def && def.name?.value === name);
295
+ if (!definitionNode) {
296
+ return null;
297
+ }
298
+ return definitionNode;
242
299
  }
243
300
  function removeWhitespace(str) {
244
301
  return str.replace(/\s+|\\n|\\t/g, "").toLowerCase();
@@ -257,7 +314,7 @@ export function renameSchemaType(sdl, oldName, newName, scope) {
257
314
  const newTypeName = `${pascalCase(newName)}${typeSuffix}`;
258
315
  const ast = safeParseSdl(sdl);
259
316
  if (!ast)
260
- return "";
317
+ return sdl;
261
318
  const updatedAst = visit(ast, {
262
319
  ObjectTypeDefinition: (node) => {
263
320
  if (node.name.value === oldTypeName) {
@@ -288,7 +345,7 @@ export function updateModelSchemaNames(params) {
288
345
  }
289
346
  }
290
347
  export function handleModelNameChange(params) {
291
- const { oldName, newName, globalStateSchema, setStateSchema } = params;
348
+ const { newName, globalStateSchema, setStateSchema } = params;
292
349
  const hasExistingSchema = !!globalStateSchema;
293
350
  if (!hasExistingSchema) {
294
351
  initializeModelSchema({ modelName: newName, setStateSchema });
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../document-model-editor/utils/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../document-model-editor/utils/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"linting.d.ts","sourceRoot":"","sources":["../../../document-model-editor/utils/linting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,wBAAgB,yCAAyC,CACvD,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,IAAI,GAC1B,OAAO,CAUT;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,UAAU,GAAG,SAAS,CAcxB;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,gBAoBd;AAED,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,gBAqBtB"}
1
+ {"version":3,"file":"linting.d.ts","sourceRoot":"","sources":["../../../document-model-editor/utils/linting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,wBAAgB,yCAAyC,CACvD,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,IAAI,GAC1B,OAAO,CAUT;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,UAAU,GAAG,SAAS,CAcxB;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,gBAwBd;AAED,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,gBAqBtB"}
@@ -26,7 +26,10 @@ export function createNodeTypeAndNameDiagnostic(doc, errorMessage) {
26
26
  export function ensureValidStateSchemaName(doc, modelName, scope) {
27
27
  if (!safeParseSdl(doc))
28
28
  return [];
29
- const requiredTypeName = `${pascalCase(modelName)}${scope === "local" ? "Local" : ""}State`;
29
+ const scopePascalCase = pascalCase(scope);
30
+ const modelNamePascalCase = pascalCase(modelName);
31
+ const scopeStateTypeNamePrefix = scopePascalCase === "Global" ? "" : scopePascalCase;
32
+ const requiredTypeName = `${scopeStateTypeNamePrefix}${modelNamePascalCase}State`;
30
33
  if (!ensureDocumentContainsNodeWithNameAndType(doc, requiredTypeName, "OBJECT_TYPE_DEFINITION")) {
31
34
  return [
32
35
  createNodeTypeAndNameDiagnostic(doc, `${sentenceCase(scope)} state schema must be named ${requiredTypeName}`),
@@ -1 +1 @@
1
- {"version":3,"file":"linting.js","sourceRoot":"","sources":["../../../document-model-editor/utils/linting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,UAAU,yCAAyC,CACvD,GAAW,EACX,QAAgB,EAChB,QAA2B;IAE3B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,eAAe,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAAW,EACX,YAAoB;IAEpB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,OAAO;QACL,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;QACvD,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACjD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAW,EACX,SAAiB,EACjB,KAAa;IAEb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,gBAAgB,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAC5F,IACE,CAAC,yCAAyC,CACxC,GAAG,EACH,gBAAgB,EAChB,wBAAwB,CACzB,EACD,CAAC;QACD,OAAO;YACL,+BAA+B,CAC7B,GAAG,EACH,GAAG,YAAY,CAAC,KAAK,CAAC,+BAA+B,gBAAgB,EAAE,CACxE;SACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,GAAuB,EACvB,aAAqB;IAErB,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,gBAAgB,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7D,IACE,CAAC,yCAAyC,CACxC,GAAG,EACH,gBAAgB,EAChB,8BAA8B,CAC/B,EACD,CAAC;QACD,OAAO;YACL,+BAA+B,CAC7B,GAAG,EACH,qDAAqD,gBAAgB,EAAE,CACxE;SACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"linting.js","sourceRoot":"","sources":["../../../document-model-editor/utils/linting.ts"],"names":[],"mappings":"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"}
package/dist/style.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.5 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */
2
2
  @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
3
3
  @layer properties;
4
4
  :root {
@@ -928,8 +928,8 @@
928
928
  .ml-4 {
929
929
  margin-left: calc(var(--spacing) * 4);
930
930
  }
931
- .block {
932
- display: block;
931
+ .contents {
932
+ display: contents;
933
933
  }
934
934
  .flex {
935
935
  display: flex;
@@ -1372,6 +1372,9 @@ input[type="number"] {
1372
1372
  h1, h2, h3, h4, h5, h6, p {
1373
1373
  color: var(--color-gray-900);
1374
1374
  }
1375
+ button {
1376
+ cursor: pointer;
1377
+ }
1375
1378
  }
1376
1379
  @layer theme, base, components, utilities;
1377
1380
  @layer theme;