polen 0.10.0-next.15 → 0.10.0-next.16

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 (203) hide show
  1. package/README.md +7 -6
  2. package/build/api/vite/plugins/core.d.ts.map +1 -1
  3. package/build/api/vite/plugins/core.js +9 -8
  4. package/build/api/vite/plugins/core.js.map +1 -1
  5. package/build/lib/graphql-change/change-groups.d.ts +52 -0
  6. package/build/lib/graphql-change/change-groups.d.ts.map +1 -0
  7. package/build/lib/graphql-change/change-groups.js +33 -0
  8. package/build/lib/graphql-change/change-groups.js.map +1 -0
  9. package/build/lib/graphql-change/change-types.d.ts +170 -0
  10. package/build/lib/graphql-change/change-types.d.ts.map +1 -0
  11. package/build/lib/graphql-change/change-types.js +11 -0
  12. package/build/lib/graphql-change/change-types.js.map +1 -0
  13. package/build/lib/graphql-change/criticality.d.ts +26 -0
  14. package/build/lib/graphql-change/criticality.d.ts.map +1 -0
  15. package/build/lib/graphql-change/criticality.js +30 -0
  16. package/build/lib/graphql-change/criticality.js.map +1 -0
  17. package/build/lib/graphql-change/graphql-change.d.ts +5 -6
  18. package/build/lib/graphql-change/graphql-change.d.ts.map +1 -1
  19. package/build/lib/graphql-change/graphql-change.js +4 -0
  20. package/build/lib/graphql-change/graphql-change.js.map +1 -1
  21. package/build/template/components/Changelog/ChangeBase.d.ts +9 -0
  22. package/build/template/components/Changelog/ChangeBase.d.ts.map +1 -0
  23. package/build/template/components/Changelog/ChangeBase.js +5 -0
  24. package/build/template/components/Changelog/ChangeBase.js.map +1 -0
  25. package/build/template/components/Changelog/CriticalitySection.d.ts +11 -0
  26. package/build/template/components/Changelog/CriticalitySection.d.ts.map +1 -0
  27. package/build/template/components/Changelog/CriticalitySection.js +11 -0
  28. package/build/template/components/Changelog/CriticalitySection.js.map +1 -0
  29. package/build/template/components/Changelog/changes/index.d.ts +2 -0
  30. package/build/template/components/Changelog/changes/index.d.ts.map +1 -0
  31. package/build/template/components/Changelog/changes/index.js +2 -0
  32. package/build/template/components/Changelog/changes/index.js.map +1 -0
  33. package/build/template/components/Changelog/groups/DirectiveArgument.d.ts +6 -0
  34. package/build/template/components/Changelog/groups/DirectiveArgument.d.ts.map +1 -0
  35. package/build/template/components/Changelog/groups/DirectiveArgument.js +12 -0
  36. package/build/template/components/Changelog/groups/DirectiveArgument.js.map +1 -0
  37. package/build/template/components/Changelog/groups/DirectiveArgumentDescription.d.ts +6 -0
  38. package/build/template/components/Changelog/groups/DirectiveArgumentDescription.d.ts.map +1 -0
  39. package/build/template/components/Changelog/groups/DirectiveArgumentDescription.js +7 -0
  40. package/build/template/components/Changelog/groups/DirectiveArgumentDescription.js.map +1 -0
  41. package/build/template/components/Changelog/groups/DirectiveArgumentOperation.d.ts +6 -0
  42. package/build/template/components/Changelog/groups/DirectiveArgumentOperation.d.ts.map +1 -0
  43. package/build/template/components/Changelog/groups/DirectiveArgumentOperation.js +12 -0
  44. package/build/template/components/Changelog/groups/DirectiveArgumentOperation.js.map +1 -0
  45. package/build/template/components/Changelog/groups/DirectiveDescription.d.ts +6 -0
  46. package/build/template/components/Changelog/groups/DirectiveDescription.d.ts.map +1 -0
  47. package/build/template/components/Changelog/groups/DirectiveDescription.js +7 -0
  48. package/build/template/components/Changelog/groups/DirectiveDescription.js.map +1 -0
  49. package/build/template/components/Changelog/groups/DirectiveLocationOperation.d.ts +6 -0
  50. package/build/template/components/Changelog/groups/DirectiveLocationOperation.d.ts.map +1 -0
  51. package/build/template/components/Changelog/groups/DirectiveLocationOperation.js +12 -0
  52. package/build/template/components/Changelog/groups/DirectiveLocationOperation.js.map +1 -0
  53. package/build/template/components/Changelog/groups/DirectiveOperation.d.ts +6 -0
  54. package/build/template/components/Changelog/groups/DirectiveOperation.d.ts.map +1 -0
  55. package/build/template/components/Changelog/groups/DirectiveOperation.js +12 -0
  56. package/build/template/components/Changelog/groups/DirectiveOperation.js.map +1 -0
  57. package/build/template/components/Changelog/groups/DirectiveUsage.d.ts +6 -0
  58. package/build/template/components/Changelog/groups/DirectiveUsage.d.ts.map +1 -0
  59. package/build/template/components/Changelog/groups/DirectiveUsage.js +59 -0
  60. package/build/template/components/Changelog/groups/DirectiveUsage.js.map +1 -0
  61. package/build/template/components/Changelog/groups/EnumValueDeprecationReason.d.ts +6 -0
  62. package/build/template/components/Changelog/groups/EnumValueDeprecationReason.d.ts.map +1 -0
  63. package/build/template/components/Changelog/groups/EnumValueDeprecationReason.js +14 -0
  64. package/build/template/components/Changelog/groups/EnumValueDeprecationReason.js.map +1 -0
  65. package/build/template/components/Changelog/groups/EnumValueDescription.d.ts +6 -0
  66. package/build/template/components/Changelog/groups/EnumValueDescription.d.ts.map +1 -0
  67. package/build/template/components/Changelog/groups/EnumValueDescription.js +7 -0
  68. package/build/template/components/Changelog/groups/EnumValueDescription.js.map +1 -0
  69. package/build/template/components/Changelog/groups/EnumValueOperation.d.ts +6 -0
  70. package/build/template/components/Changelog/groups/EnumValueOperation.d.ts.map +1 -0
  71. package/build/template/components/Changelog/groups/EnumValueOperation.js +12 -0
  72. package/build/template/components/Changelog/groups/EnumValueOperation.js.map +1 -0
  73. package/build/template/components/Changelog/groups/FieldArgument.d.ts +6 -0
  74. package/build/template/components/Changelog/groups/FieldArgument.d.ts.map +1 -0
  75. package/build/template/components/Changelog/groups/FieldArgument.js +12 -0
  76. package/build/template/components/Changelog/groups/FieldArgument.js.map +1 -0
  77. package/build/template/components/Changelog/groups/FieldArgumentDescription.d.ts +6 -0
  78. package/build/template/components/Changelog/groups/FieldArgumentDescription.d.ts.map +1 -0
  79. package/build/template/components/Changelog/groups/FieldArgumentDescription.js +7 -0
  80. package/build/template/components/Changelog/groups/FieldArgumentDescription.js.map +1 -0
  81. package/build/template/components/Changelog/groups/FieldArgumentOperation.d.ts +6 -0
  82. package/build/template/components/Changelog/groups/FieldArgumentOperation.d.ts.map +1 -0
  83. package/build/template/components/Changelog/groups/FieldArgumentOperation.js +12 -0
  84. package/build/template/components/Changelog/groups/FieldArgumentOperation.js.map +1 -0
  85. package/build/template/components/Changelog/groups/FieldDeprecation.d.ts +6 -0
  86. package/build/template/components/Changelog/groups/FieldDeprecation.d.ts.map +1 -0
  87. package/build/template/components/Changelog/groups/FieldDeprecation.js +12 -0
  88. package/build/template/components/Changelog/groups/FieldDeprecation.js.map +1 -0
  89. package/build/template/components/Changelog/groups/FieldDeprecationReason.d.ts +6 -0
  90. package/build/template/components/Changelog/groups/FieldDeprecationReason.d.ts.map +1 -0
  91. package/build/template/components/Changelog/groups/FieldDeprecationReason.js +14 -0
  92. package/build/template/components/Changelog/groups/FieldDeprecationReason.js.map +1 -0
  93. package/build/template/components/Changelog/groups/FieldDescription.d.ts +6 -0
  94. package/build/template/components/Changelog/groups/FieldDescription.d.ts.map +1 -0
  95. package/build/template/components/Changelog/groups/FieldDescription.js +14 -0
  96. package/build/template/components/Changelog/groups/FieldDescription.js.map +1 -0
  97. package/build/template/components/Changelog/groups/FieldOperation.d.ts +6 -0
  98. package/build/template/components/Changelog/groups/FieldOperation.d.ts.map +1 -0
  99. package/build/template/components/Changelog/groups/FieldOperation.js +14 -0
  100. package/build/template/components/Changelog/groups/FieldOperation.js.map +1 -0
  101. package/build/template/components/Changelog/groups/InputFieldDefaultValue.d.ts +6 -0
  102. package/build/template/components/Changelog/groups/InputFieldDefaultValue.d.ts.map +1 -0
  103. package/build/template/components/Changelog/groups/InputFieldDefaultValue.js +7 -0
  104. package/build/template/components/Changelog/groups/InputFieldDefaultValue.js.map +1 -0
  105. package/build/template/components/Changelog/groups/InputFieldDescription.d.ts +6 -0
  106. package/build/template/components/Changelog/groups/InputFieldDescription.d.ts.map +1 -0
  107. package/build/template/components/Changelog/groups/InputFieldDescription.js +14 -0
  108. package/build/template/components/Changelog/groups/InputFieldDescription.js.map +1 -0
  109. package/build/template/components/Changelog/groups/InputFieldOperation.d.ts +6 -0
  110. package/build/template/components/Changelog/groups/InputFieldOperation.d.ts.map +1 -0
  111. package/build/template/components/Changelog/groups/InputFieldOperation.js +14 -0
  112. package/build/template/components/Changelog/groups/InputFieldOperation.js.map +1 -0
  113. package/build/template/components/Changelog/groups/ObjectTypeInterfaceOperation.d.ts +6 -0
  114. package/build/template/components/Changelog/groups/ObjectTypeInterfaceOperation.d.ts.map +1 -0
  115. package/build/template/components/Changelog/groups/ObjectTypeInterfaceOperation.js +12 -0
  116. package/build/template/components/Changelog/groups/ObjectTypeInterfaceOperation.js.map +1 -0
  117. package/build/template/components/Changelog/groups/SchemaRootType.d.ts +6 -0
  118. package/build/template/components/Changelog/groups/SchemaRootType.d.ts.map +1 -0
  119. package/build/template/components/Changelog/groups/SchemaRootType.js +14 -0
  120. package/build/template/components/Changelog/groups/SchemaRootType.js.map +1 -0
  121. package/build/template/components/Changelog/groups/TypeDescription.d.ts +6 -0
  122. package/build/template/components/Changelog/groups/TypeDescription.d.ts.map +1 -0
  123. package/build/template/components/Changelog/groups/TypeDescription.js +14 -0
  124. package/build/template/components/Changelog/groups/TypeDescription.js.map +1 -0
  125. package/build/template/components/Changelog/groups/TypeOperation.d.ts +6 -0
  126. package/build/template/components/Changelog/groups/TypeOperation.d.ts.map +1 -0
  127. package/build/template/components/Changelog/groups/TypeOperation.js +14 -0
  128. package/build/template/components/Changelog/groups/TypeOperation.js.map +1 -0
  129. package/build/template/components/Changelog/groups/UnionMemberOperation.d.ts +6 -0
  130. package/build/template/components/Changelog/groups/UnionMemberOperation.d.ts.map +1 -0
  131. package/build/template/components/Changelog/groups/UnionMemberOperation.js +12 -0
  132. package/build/template/components/Changelog/groups/UnionMemberOperation.js.map +1 -0
  133. package/build/template/components/Changelog/groups/index.d.ts +26 -0
  134. package/build/template/components/Changelog/groups/index.d.ts.map +1 -0
  135. package/build/template/components/Changelog/groups/index.js +26 -0
  136. package/build/template/components/Changelog/groups/index.js.map +1 -0
  137. package/build/template/components/Changelog.d.ts.map +1 -1
  138. package/build/template/components/Changelog.js +108 -27
  139. package/build/template/components/Changelog.js.map +1 -1
  140. package/build/template/components/ChangelogLayout.d.ts +9 -0
  141. package/build/template/components/ChangelogLayout.d.ts.map +1 -0
  142. package/build/template/components/ChangelogLayout.js +71 -0
  143. package/build/template/components/ChangelogLayout.js.map +1 -0
  144. package/build/template/components/layouts/SidebarLayout.d.ts +9 -0
  145. package/build/template/components/layouts/SidebarLayout.d.ts.map +1 -0
  146. package/build/template/components/layouts/SidebarLayout.js +25 -0
  147. package/build/template/components/layouts/SidebarLayout.js.map +1 -0
  148. package/build/template/components/layouts/index.d.ts +2 -0
  149. package/build/template/components/layouts/index.d.ts.map +1 -0
  150. package/build/template/components/layouts/index.js +2 -0
  151. package/build/template/components/layouts/index.js.map +1 -0
  152. package/build/template/routes/changelog.d.ts.map +1 -1
  153. package/build/template/routes/changelog.js +2 -1
  154. package/build/template/routes/changelog.js.map +1 -1
  155. package/build/template/routes/reference.d.ts +2 -1
  156. package/build/template/routes/reference.d.ts.map +1 -1
  157. package/build/template/routes/reference.js +20 -1
  158. package/build/template/routes/reference.js.map +1 -1
  159. package/build/template/routes/root.d.ts.map +1 -1
  160. package/build/template/routes/root.js +5 -65
  161. package/build/template/routes/root.js.map +1 -1
  162. package/package.json +2 -1
  163. package/src/api/vite/plugins/core.ts +9 -8
  164. package/src/lib/graphql-change/change-groups.ts +250 -0
  165. package/src/lib/graphql-change/change-types.ts +203 -0
  166. package/src/lib/graphql-change/criticality.ts +45 -0
  167. package/src/lib/graphql-change/graphql-change.ts +7 -5
  168. package/src/template/components/Changelog/ChangeBase.tsx +15 -0
  169. package/src/template/components/Changelog/CriticalitySection.tsx +29 -0
  170. package/src/template/components/Changelog/changes/index.ts +1 -0
  171. package/src/template/components/Changelog/groups/DirectiveArgument.tsx +25 -0
  172. package/src/template/components/Changelog/groups/DirectiveArgumentDescription.tsx +15 -0
  173. package/src/template/components/Changelog/groups/DirectiveArgumentOperation.tsx +25 -0
  174. package/src/template/components/Changelog/groups/DirectiveDescription.tsx +12 -0
  175. package/src/template/components/Changelog/groups/DirectiveLocationOperation.tsx +25 -0
  176. package/src/template/components/Changelog/groups/DirectiveOperation.tsx +21 -0
  177. package/src/template/components/Changelog/groups/DirectiveUsage.tsx +137 -0
  178. package/src/template/components/Changelog/groups/EnumValueDeprecationReason.tsx +32 -0
  179. package/src/template/components/Changelog/groups/EnumValueDescription.tsx +12 -0
  180. package/src/template/components/Changelog/groups/EnumValueOperation.tsx +21 -0
  181. package/src/template/components/Changelog/groups/FieldArgument.tsx +26 -0
  182. package/src/template/components/Changelog/groups/FieldArgumentDescription.tsx +15 -0
  183. package/src/template/components/Changelog/groups/FieldArgumentOperation.tsx +26 -0
  184. package/src/template/components/Changelog/groups/FieldDeprecation.tsx +21 -0
  185. package/src/template/components/Changelog/groups/FieldDeprecationReason.tsx +33 -0
  186. package/src/template/components/Changelog/groups/FieldDescription.tsx +27 -0
  187. package/src/template/components/Changelog/groups/FieldOperation.tsx +28 -0
  188. package/src/template/components/Changelog/groups/InputFieldDefaultValue.tsx +16 -0
  189. package/src/template/components/Changelog/groups/InputFieldDescription.tsx +30 -0
  190. package/src/template/components/Changelog/groups/InputFieldOperation.tsx +29 -0
  191. package/src/template/components/Changelog/groups/ObjectTypeInterfaceOperation.tsx +25 -0
  192. package/src/template/components/Changelog/groups/SchemaRootType.tsx +31 -0
  193. package/src/template/components/Changelog/groups/TypeDescription.tsx +27 -0
  194. package/src/template/components/Changelog/groups/TypeOperation.tsx +27 -0
  195. package/src/template/components/Changelog/groups/UnionMemberOperation.tsx +21 -0
  196. package/src/template/components/Changelog/groups/index.ts +25 -0
  197. package/src/template/components/Changelog.tsx +96 -63
  198. package/src/template/components/ChangelogLayout.tsx +157 -0
  199. package/src/template/components/layouts/SidebarLayout.tsx +68 -0
  200. package/src/template/components/layouts/index.ts +1 -0
  201. package/src/template/routes/changelog.tsx +6 -1
  202. package/src/template/routes/reference.tsx +25 -2
  203. package/src/template/routes/root.tsx +5 -103
@@ -0,0 +1,26 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldArgument: React.FC<{ change: GraphqlChange.Group.FieldArgument }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `FIELD_ARGUMENT_DEFAULT_CHANGED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Changed default value for argument <Code>{change.meta.argumentName}</Code> on field{' '}
12
+ <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code> from{' '}
13
+ <Code>{change.meta.oldDefaultValue}</Code> to <Code>{change.meta.newDefaultValue}</Code>
14
+ </ChangeBase>
15
+ )
16
+ case `FIELD_ARGUMENT_TYPE_CHANGED`:
17
+ return (
18
+ <ChangeBase change={change}>
19
+ Changed argument <Code>{change.meta.argumentName}</Code> type from <Code>{change.meta.oldArgumentType}</Code>
20
+ {' '}
21
+ to <Code>{change.meta.newArgumentType}</Code> on field <Code>{change.meta.fieldName}</Code> on{' '}
22
+ <Code>{change.meta.typeName}</Code>
23
+ </ChangeBase>
24
+ )
25
+ }
26
+ }
@@ -0,0 +1,15 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldArgumentDescription: React.FC<{ change: GraphqlChange.Group.FieldArgumentDescription }> = (
7
+ { change },
8
+ ) => {
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Changed description for argument <Code>{change.meta.argumentName}</Code> on field{' '}
12
+ <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
13
+ </ChangeBase>
14
+ )
15
+ }
@@ -0,0 +1,26 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldArgumentOperation: React.FC<{ change: GraphqlChange.Group.FieldArgumentOperation }> = (
7
+ { change },
8
+ ) => {
9
+ switch (change.type) {
10
+ case `FIELD_ARGUMENT_ADDED`:
11
+ return (
12
+ <ChangeBase change={change}>
13
+ Added argument <Code>{change.meta.addedArgumentName}</Code> to field <Code>{change.meta.fieldName}</Code> on
14
+ {' '}
15
+ <Code>{change.meta.typeName}</Code>
16
+ </ChangeBase>
17
+ )
18
+ case `FIELD_ARGUMENT_REMOVED`:
19
+ return (
20
+ <ChangeBase change={change}>
21
+ Removed argument <Code>{change.meta.removedFieldArgumentName}</Code> from field{' '}
22
+ <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
23
+ </ChangeBase>
24
+ )
25
+ }
26
+ }
@@ -0,0 +1,21 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldDeprecation: React.FC<{ change: GraphqlChange.Group.FieldDeprecation }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `FIELD_DEPRECATION_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Deprecated field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `FIELD_DEPRECATION_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed deprecation from field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ }
21
+ }
@@ -0,0 +1,33 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldDeprecationReason: React.FC<{ change: GraphqlChange.Group.FieldDeprecationReason }> = (
7
+ { change },
8
+ ) => {
9
+ switch (change.type) {
10
+ case `FIELD_DEPRECATION_REASON_ADDED`:
11
+ return (
12
+ <ChangeBase change={change}>
13
+ Added deprecation reason to field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
14
+ {change.meta.addedDeprecationReason && <>: "{change.meta.addedDeprecationReason}"</>}
15
+ </ChangeBase>
16
+ )
17
+ case `FIELD_DEPRECATION_REASON_REMOVED`:
18
+ return (
19
+ <ChangeBase change={change}>
20
+ Removed deprecation reason from field <Code>{change.meta.fieldName}</Code> on{' '}
21
+ <Code>{change.meta.typeName}</Code>
22
+ </ChangeBase>
23
+ )
24
+ case `FIELD_DEPRECATION_REASON_CHANGED`:
25
+ return (
26
+ <ChangeBase change={change}>
27
+ Changed deprecation reason for field <Code>{change.meta.fieldName}</Code> on{' '}
28
+ <Code>{change.meta.typeName}</Code> from <Code>{change.meta.oldDeprecationReason}</Code> to{' '}
29
+ <Code>{change.meta.newDeprecationReason}</Code>
30
+ </ChangeBase>
31
+ )
32
+ }
33
+ }
@@ -0,0 +1,27 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldDescription: React.FC<{ change: GraphqlChange.Group.FieldDescription }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `FIELD_DESCRIPTION_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added description to field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `FIELD_DESCRIPTION_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed description from field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ case `FIELD_DESCRIPTION_CHANGED`:
21
+ return (
22
+ <ChangeBase change={change}>
23
+ Changed description for field <Code>{change.meta.fieldName}</Code> on <Code>{change.meta.typeName}</Code>
24
+ </ChangeBase>
25
+ )
26
+ }
27
+ }
@@ -0,0 +1,28 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const FieldOperation: React.FC<{ change: GraphqlChange.Group.FieldOperation }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `FIELD_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added field <Code>{change.meta.addedFieldName}</Code> to <Code>{change.meta.typeName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `FIELD_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed field <Code>{change.meta.removedFieldName}</Code> from <Code>{change.meta.typeName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ case `FIELD_TYPE_CHANGED`:
21
+ return (
22
+ <ChangeBase change={change}>
23
+ Changed field <Code>{change.meta.fieldName}</Code> type from <Code>{change.meta.oldFieldType}</Code> to{' '}
24
+ <Code>{change.meta.newFieldType}</Code> on <Code>{change.meta.typeName}</Code>
25
+ </ChangeBase>
26
+ )
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const InputFieldDefaultValue: React.FC<{ change: GraphqlChange.Group.InputFieldDefaultValue }> = (
7
+ { change },
8
+ ) => {
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Changed default value for input field <Code>{change.meta.inputFieldName}</Code> on{' '}
12
+ <Code>{change.meta.inputName}</Code> from <Code>{change.meta.oldDefaultValue}</Code> to{' '}
13
+ <Code>{change.meta.newDefaultValue}</Code>
14
+ </ChangeBase>
15
+ )
16
+ }
@@ -0,0 +1,30 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const InputFieldDescription: React.FC<{ change: GraphqlChange.Group.InputFieldDescription }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `INPUT_FIELD_DESCRIPTION_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added description to input field <Code>{change.meta.inputFieldName}</Code> on{' '}
12
+ <Code>{change.meta.inputName}</Code>
13
+ </ChangeBase>
14
+ )
15
+ case `INPUT_FIELD_DESCRIPTION_REMOVED`:
16
+ return (
17
+ <ChangeBase change={change}>
18
+ Removed description from input field <Code>{change.meta.inputFieldName}</Code> on{' '}
19
+ <Code>{change.meta.inputName}</Code>
20
+ </ChangeBase>
21
+ )
22
+ case `INPUT_FIELD_DESCRIPTION_CHANGED`:
23
+ return (
24
+ <ChangeBase change={change}>
25
+ Changed description for input field <Code>{change.meta.inputFieldName}</Code> on{' '}
26
+ <Code>{change.meta.inputName}</Code>
27
+ </ChangeBase>
28
+ )
29
+ }
30
+ }
@@ -0,0 +1,29 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const InputFieldOperation: React.FC<{ change: GraphqlChange.Group.InputFieldOperation }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `INPUT_FIELD_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added input field <Code>{change.meta.addedInputFieldName}</Code> to <Code>{change.meta.inputName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `INPUT_FIELD_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed input field <Code>{change.meta.removedFieldName}</Code> from <Code>{change.meta.inputName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ case `INPUT_FIELD_TYPE_CHANGED`:
21
+ return (
22
+ <ChangeBase change={change}>
23
+ Changed field <Code>{change.meta.inputFieldName}</Code> type from <Code>{change.meta.oldInputFieldType}</Code>
24
+ {' '}
25
+ to <Code>{change.meta.newInputFieldType}</Code> on input <Code>{change.meta.inputName}</Code>
26
+ </ChangeBase>
27
+ )
28
+ }
29
+ }
@@ -0,0 +1,25 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const ObjectTypeInterfaceOperation: React.FC<{ change: GraphqlChange.Group.ObjectTypeInterfaceOperation }> = (
7
+ { change },
8
+ ) => {
9
+ switch (change.type) {
10
+ case `OBJECT_TYPE_INTERFACE_ADDED`:
11
+ return (
12
+ <ChangeBase change={change}>
13
+ <Code>{change.meta.objectTypeName}</Code> object implements <Code>{change.meta.addedInterfaceName}</Code>{' '}
14
+ interface
15
+ </ChangeBase>
16
+ )
17
+ case `OBJECT_TYPE_INTERFACE_REMOVED`:
18
+ return (
19
+ <ChangeBase change={change}>
20
+ <Code>{change.meta.objectTypeName}</Code> object no longer implements{' '}
21
+ <Code>{change.meta.removedInterfaceName}</Code> interface
22
+ </ChangeBase>
23
+ )
24
+ }
25
+ }
@@ -0,0 +1,31 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const SchemaRootType: React.FC<{ change: GraphqlChange.Group.SchemaRootType }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `SCHEMA_QUERY_TYPE_CHANGED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Schema query root type changed from <Code>{change.meta.oldQueryTypeName}</Code> to{' '}
12
+ <Code>{change.meta.newQueryTypeName}</Code>
13
+ </ChangeBase>
14
+ )
15
+ case `SCHEMA_MUTATION_TYPE_CHANGED`:
16
+ return (
17
+ <ChangeBase change={change}>
18
+ Schema mutation root type changed from <Code>{change.meta.oldMutationTypeName || `null`}</Code> to{' '}
19
+ <Code>{change.meta.newMutationTypeName || `null`}</Code>
20
+ </ChangeBase>
21
+ )
22
+ case `SCHEMA_SUBSCRIPTION_TYPE_CHANGED`:
23
+ return (
24
+ <ChangeBase change={change}>
25
+ Schema subscription root type changed from <Code>{change.meta.oldSubscriptionTypeName || `null`}</Code> to
26
+ {' '}
27
+ <Code>{change.meta.newSubscriptionTypeName || `null`}</Code>
28
+ </ChangeBase>
29
+ )
30
+ }
31
+ }
@@ -0,0 +1,27 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const TypeDescription: React.FC<{ change: GraphqlChange.Group.TypeDescription }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `TYPE_DESCRIPTION_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added description to type <Code>{change.meta.typeName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `TYPE_DESCRIPTION_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed description from type <Code>{change.meta.typeName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ case `TYPE_DESCRIPTION_CHANGED`:
21
+ return (
22
+ <ChangeBase change={change}>
23
+ Changed description for type <Code>{change.meta.typeName}</Code>
24
+ </ChangeBase>
25
+ )
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const TypeOperation: React.FC<{ change: GraphqlChange.Group.TypeOperation }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `TYPE_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added type <Code>{change.meta.addedTypeName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `TYPE_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed type <Code>{change.meta.removedTypeName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ case `TYPE_KIND_CHANGED`:
21
+ return (
22
+ <ChangeBase change={change}>
23
+ Changed type <Code>{change.meta.typeName}</Code> from {change.meta.oldTypeKind} to {change.meta.newTypeKind}
24
+ </ChangeBase>
25
+ )
26
+ }
27
+ }
@@ -0,0 +1,21 @@
1
+ import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { Code } from '@radix-ui/themes'
3
+ import type React from 'react'
4
+ import { ChangeBase } from '../ChangeBase.js'
5
+
6
+ export const UnionMemberOperation: React.FC<{ change: GraphqlChange.Group.UnionMemberOperation }> = ({ change }) => {
7
+ switch (change.type) {
8
+ case `UNION_MEMBER_ADDED`:
9
+ return (
10
+ <ChangeBase change={change}>
11
+ Added <Code>{change.meta.addedUnionMemberTypeName}</Code> to union <Code>{change.meta.unionName}</Code>
12
+ </ChangeBase>
13
+ )
14
+ case `UNION_MEMBER_REMOVED`:
15
+ return (
16
+ <ChangeBase change={change}>
17
+ Removed <Code>{change.meta.removedUnionMemberTypeName}</Code> from union <Code>{change.meta.unionName}</Code>
18
+ </ChangeBase>
19
+ )
20
+ }
21
+ }
@@ -0,0 +1,25 @@
1
+ export { DirectiveArgument } from './DirectiveArgument.js'
2
+ export { DirectiveArgumentDescription } from './DirectiveArgumentDescription.js'
3
+ export { DirectiveArgumentOperation } from './DirectiveArgumentOperation.js'
4
+ export { DirectiveDescription } from './DirectiveDescription.js'
5
+ export { DirectiveLocationOperation } from './DirectiveLocationOperation.js'
6
+ export { DirectiveOperation } from './DirectiveOperation.js'
7
+ export { DirectiveUsage } from './DirectiveUsage.js'
8
+ export { EnumValueDeprecationReason } from './EnumValueDeprecationReason.js'
9
+ export { EnumValueDescription } from './EnumValueDescription.js'
10
+ export { EnumValueOperation } from './EnumValueOperation.js'
11
+ export { FieldArgument } from './FieldArgument.js'
12
+ export { FieldArgumentDescription } from './FieldArgumentDescription.js'
13
+ export { FieldArgumentOperation } from './FieldArgumentOperation.js'
14
+ export { FieldDeprecation } from './FieldDeprecation.js'
15
+ export { FieldDeprecationReason } from './FieldDeprecationReason.js'
16
+ export { FieldDescription } from './FieldDescription.js'
17
+ export { FieldOperation } from './FieldOperation.js'
18
+ export { InputFieldDefaultValue } from './InputFieldDefaultValue.js'
19
+ export { InputFieldDescription } from './InputFieldDescription.js'
20
+ export { InputFieldOperation } from './InputFieldOperation.js'
21
+ export { ObjectTypeInterfaceOperation } from './ObjectTypeInterfaceOperation.js'
22
+ export { SchemaRootType } from './SchemaRootType.js'
23
+ export { TypeDescription } from './TypeDescription.js'
24
+ export { TypeOperation } from './TypeOperation.js'
25
+ export { UnionMemberOperation } from './UnionMemberOperation.js'
@@ -1,11 +1,15 @@
1
1
  import type { GrafaidOld } from '#lib/grafaid-old/index'
2
- import { Grafaid } from '#lib/grafaid/index'
3
- import type { GraphqlChange } from '#lib/graphql-change/index'
2
+ import { CRITICALITY_LEVELS } from '#lib/graphql-change/criticality'
3
+ import { GraphqlChange } from '#lib/graphql-change/index'
4
4
  import type { GraphqlChangeset } from '#lib/graphql-changeset/index'
5
- import { Box, Code } from '@radix-ui/themes'
5
+ import type { CriticalityLevel } from '@graphql-inspector/core'
6
+ import { Box } from '@radix-ui/themes'
7
+ import { neverCase } from '@wollybeard/kit/language'
6
8
  import type React from 'react'
9
+ import { useMemo } from 'react'
7
10
  import type { Schema as ChangelogData } from '../../api/schema/index.js'
8
- import { Graphql } from './graphql/index.js'
11
+ import { CriticalitySection } from './Changelog/CriticalitySection.js'
12
+ import * as Group from './Changelog/groups/index.js'
9
13
 
10
14
  export const renderDate = (date: Date) => {
11
15
  return date.toLocaleString(`default`, {
@@ -19,20 +23,50 @@ export const renderDate = (date: Date) => {
19
23
  export const Changelog: React.FC<{ schema: ChangelogData.Schema }> = ({ schema }) => {
20
24
  return (
21
25
  <Box>
22
- {schema.versions.map(changeset => <Changeset key={changeset.date.getDate()} changeset={changeset} />)}
26
+ {schema.versions.map(changeset => <Changeset key={changeset.date.toISOString()} changeset={changeset} />)}
23
27
  </Box>
24
28
  )
25
29
  }
26
30
 
27
31
  const Changeset: React.FC<{ changeset: GraphqlChangeset.ChangeSet }> = ({ changeset }) => {
32
+ // Group changes by criticality level
33
+ const groupedChanges = useMemo(() => {
34
+ const groups = {} as Record<CriticalityLevel, GraphqlChange.Change[]>
35
+
36
+ // Initialize empty arrays for each level
37
+ CRITICALITY_LEVELS.forEach(level => {
38
+ groups[level] = []
39
+ })
40
+
41
+ // Group changes
42
+ changeset.changes.forEach(change => {
43
+ const level = change.criticality.level
44
+ if (groups[level]) {
45
+ groups[level].push(change)
46
+ }
47
+ })
48
+
49
+ // Return only non-empty groups in order
50
+ return CRITICALITY_LEVELS
51
+ .filter(level => groups[level].length > 0)
52
+ .map(level => ({
53
+ level,
54
+ changes: groups[level],
55
+ }))
56
+ }, [changeset.changes])
57
+
28
58
  return (
29
- <Box>
30
- <h1 title={changeset.date.toISOString()}>
59
+ <Box mb='6'>
60
+ <h1 title={changeset.date.toISOString()} id={changeset.date.toISOString()}>
31
61
  {renderDate(changeset.date)}
32
62
  </h1>
33
- <ul>
34
- {changeset.changes.map(change => <Change key={change.message} change={change} schema={changeset.after} />)}
35
- </ul>
63
+ {groupedChanges.map(group => (
64
+ <CriticalitySection key={group.level} level={group.level} changes={group.changes}>
65
+ {group.changes.map(change => (
66
+ <Change key={`${change.type}-${change.path || change.message}`} change={change} schema={changeset.after} />
67
+ ))}
68
+ </CriticalitySection>
69
+ ))}
36
70
  </Box>
37
71
  )
38
72
  }
@@ -40,58 +74,57 @@ const Changeset: React.FC<{ changeset: GraphqlChangeset.ChangeSet }> = ({ change
40
74
  const Change: React.FC<{ change: GraphqlChange.Change; schema: GrafaidOld.Schema.Schema }> = (
41
75
  { change, schema },
42
76
  ) => {
43
- const getTypeOrThrow = (name: string) => {
44
- const type = schema.getType(name)
45
- if (!type) throw new Error(`Type ${name} not found`)
46
- return type
47
- }
48
-
49
- switch (change.type) {
50
- case `TYPE_ADDED`: {
51
- const type = getTypeOrThrow(change.meta.addedTypeName)
52
- return (
53
- <li>
54
- Added type <Graphql.TypeLink type={type} />
55
- </li>
56
- )
57
- }
58
- case `FIELD_ADDED`: {
59
- const rootTypeMap = Grafaid.Schema.getRootTypeMap(schema)
60
- const rootDetails = rootTypeMap.list.find(_ => _.name.canonical === change.meta.typeName)
61
- const type = getTypeOrThrow(change.meta.typeName)
62
- if (rootDetails) {
63
- return (
64
- <li>
65
- Added {rootDetails.operationType}
66
- {` `}
67
- <Code
68
- color='jade'
69
- variant='ghost'
70
- style={{ borderBottom: `1px dotted var(--jade-6)`, borderRadius: `0` }}
71
- >
72
- {change.meta.addedFieldName}
73
- </Code>
74
- </li>
75
- )
76
- }
77
-
78
- return (
79
- <li>
80
- Added field{` `}
81
- <Code
82
- color='gray'
83
- variant='ghost'
84
- style={{ borderBottom: `1px dotted var(--gray-6)`, borderRadius: `0` }}
85
- >
86
- {change.meta.addedFieldName}
87
- </Code>
88
- {` `}
89
- to type{` `}
90
- <Graphql.TypeLink type={type} />.
91
- </li>
92
- )
93
- }
94
- default:
95
- return <li>TODO: {change.type}</li>
77
+ if (GraphqlChange.Group.isTypeOperation(change)) {
78
+ return <Group.TypeOperation change={change} />
79
+ } else if (GraphqlChange.Group.isTypeDescription(change)) {
80
+ return <Group.TypeDescription change={change} />
81
+ } else if (GraphqlChange.Group.isFieldOperation(change)) {
82
+ return <Group.FieldOperation change={change} />
83
+ } else if (GraphqlChange.Group.isFieldDescription(change)) {
84
+ return <Group.FieldDescription change={change} />
85
+ } else if (GraphqlChange.Group.isFieldDeprecation(change)) {
86
+ return <Group.FieldDeprecation change={change} />
87
+ } else if (GraphqlChange.Group.isFieldDeprecationReason(change)) {
88
+ return <Group.FieldDeprecationReason change={change} />
89
+ } else if (GraphqlChange.Group.isFieldArgumentOperation(change)) {
90
+ return <Group.FieldArgumentOperation change={change} />
91
+ } else if (GraphqlChange.Group.isFieldArgument(change)) {
92
+ return <Group.FieldArgument change={change} />
93
+ } else if (GraphqlChange.Group.isFieldArgumentDescription(change)) {
94
+ return <Group.FieldArgumentDescription change={change} />
95
+ } else if (GraphqlChange.Group.isEnumValueOperation(change)) {
96
+ return <Group.EnumValueOperation change={change} />
97
+ } else if (GraphqlChange.Group.isEnumValueDescription(change)) {
98
+ return <Group.EnumValueDescription change={change} />
99
+ } else if (GraphqlChange.Group.isEnumValueDeprecationReason(change)) {
100
+ return <Group.EnumValueDeprecationReason change={change} />
101
+ } else if (GraphqlChange.Group.isInputFieldOperation(change)) {
102
+ return <Group.InputFieldOperation change={change} />
103
+ } else if (GraphqlChange.Group.isInputFieldDescription(change)) {
104
+ return <Group.InputFieldDescription change={change} />
105
+ } else if (GraphqlChange.Group.isInputFieldDefaultValue(change)) {
106
+ return <Group.InputFieldDefaultValue change={change} />
107
+ } else if (GraphqlChange.Group.isUnionMemberOperation(change)) {
108
+ return <Group.UnionMemberOperation change={change} />
109
+ } else if (GraphqlChange.Group.isObjectTypeInterfaceOperation(change)) {
110
+ return <Group.ObjectTypeInterfaceOperation change={change} />
111
+ } else if (GraphqlChange.Group.isDirectiveOperation(change)) {
112
+ return <Group.DirectiveOperation change={change} />
113
+ } else if (GraphqlChange.Group.isDirectiveDescription(change)) {
114
+ return <Group.DirectiveDescription change={change} />
115
+ } else if (GraphqlChange.Group.isDirectiveLocationOperation(change)) {
116
+ return <Group.DirectiveLocationOperation change={change} />
117
+ } else if (GraphqlChange.Group.isDirectiveArgumentOperation(change)) {
118
+ return <Group.DirectiveArgumentOperation change={change} />
119
+ } else if (GraphqlChange.Group.isDirectiveArgument(change)) {
120
+ return <Group.DirectiveArgument change={change} />
121
+ } else if (GraphqlChange.Group.isDirectiveArgumentDescription(change)) {
122
+ return <Group.DirectiveArgumentDescription change={change} />
123
+ } else if (GraphqlChange.Group.isSchemaRootType(change)) {
124
+ return <Group.SchemaRootType change={change} />
125
+ } else if (GraphqlChange.Group.isDirectiveUsage(change)) {
126
+ return <Group.DirectiveUsage change={change} />
127
+ } else {
128
+ neverCase(change)
96
129
  }
97
130
  }