create-halo-plugin-template 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/.editorconfig +520 -0
  2. package/.github/workflows/cd.yaml +20 -0
  3. package/.github/workflows/ci.yaml +32 -0
  4. package/.github/workflows/publish-npm.yaml +46 -0
  5. package/.gitignore +83 -0
  6. package/LICENSE +674 -0
  7. package/README.md +191 -0
  8. package/bin/create-halo-plugin-template.js +3 -0
  9. package/build.gradle +103 -0
  10. package/docs/first-npm-release-checklist.md +58 -0
  11. package/docs/publish-template.md +148 -0
  12. package/docs/rsbuild-switch.md +90 -0
  13. package/docs/template-pruning.md +43 -0
  14. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  15. package/gradle/wrapper/gradle-wrapper.properties +7 -0
  16. package/gradle.properties +1 -0
  17. package/gradlew +248 -0
  18. package/gradlew.bat +93 -0
  19. package/package.json +67 -7
  20. package/scripts/create-project.mjs +399 -0
  21. package/scripts/init-template.mjs +281 -0
  22. package/scripts/publish-check.mjs +97 -0
  23. package/scripts/release.mjs +278 -0
  24. package/scripts/verify-template.mjs +407 -0
  25. package/settings.gradle +7 -0
  26. package/src/main/java/run/halo/plugintemplate/PluginTemplatePlugin.java +43 -0
  27. package/src/main/java/run/halo/plugintemplate/config/PluginTemplateConfig.java +14 -0
  28. package/src/main/java/run/halo/plugintemplate/dto/PluginTemplateChecklistItem.java +30 -0
  29. package/src/main/java/run/halo/plugintemplate/dto/PluginTemplateFeatureItem.java +30 -0
  30. package/src/main/java/run/halo/plugintemplate/dto/PluginTemplateOverview.java +73 -0
  31. package/src/main/java/run/halo/plugintemplate/dto/PluginTemplateStatItem.java +30 -0
  32. package/src/main/java/run/halo/plugintemplate/endpoint/PluginTemplateConsoleEndpoint.java +33 -0
  33. package/src/main/java/run/halo/plugintemplate/endpoint/PluginTemplatePublicEndpoint.java +26 -0
  34. package/src/main/java/run/halo/plugintemplate/endpoint/PluginTemplateUcEndpoint.java +33 -0
  35. package/src/main/java/run/halo/plugintemplate/endpoint/routes/PluginTemplateOverviewRoutes.java +60 -0
  36. package/src/main/java/run/halo/plugintemplate/model/PluginTemplateAudience.java +23 -0
  37. package/src/main/java/run/halo/plugintemplate/query/PluginTemplateOverviewQuery.java +26 -0
  38. package/src/main/java/run/halo/plugintemplate/reconcile/PluginTemplateSettingsReconciler.java +17 -0
  39. package/src/main/java/run/halo/plugintemplate/scheme/PluginTemplateRecord.java +43 -0
  40. package/src/main/java/run/halo/plugintemplate/service/PluginTemplateOverviewService.java +10 -0
  41. package/src/main/java/run/halo/plugintemplate/service/impl/PluginTemplateOverviewServiceImpl.java +74 -0
  42. package/src/main/java/run/halo/plugintemplate/setting/PluginTemplateGeneralSetting.java +25 -0
  43. package/src/main/java/run/halo/plugintemplate/setting/PluginTemplateSettingKeys.java +24 -0
  44. package/src/main/java/run/halo/plugintemplate/setting/PluginTemplateUiSetting.java +13 -0
  45. package/src/main/java/run/halo/plugintemplate/utils/PluginTemplateSeeds.java +197 -0
  46. package/src/main/resources/extensions/roleTemplate-console.yaml +39 -0
  47. package/src/main/resources/extensions/roleTemplate-uc.yaml +19 -0
  48. package/src/main/resources/extensions/settings.yaml +47 -0
  49. package/src/main/resources/logo.png +0 -0
  50. package/src/main/resources/plugin.yaml +24 -0
  51. package/src/test/java/run/halo/plugintemplate/PluginTemplatePluginTest.java +34 -0
  52. package/src/test/java/run/halo/plugintemplate/service/impl/PluginTemplateOverviewServiceImplTest.java +97 -0
  53. package/ui/build.gradle +41 -0
  54. package/ui/env.d.ts +2 -0
  55. package/ui/eslint.config.ts +30 -0
  56. package/ui/package.json +57 -0
  57. package/ui/pnpm-lock.yaml +5250 -0
  58. package/ui/src/api/__tests__/normalizers.spec.ts +65 -0
  59. package/ui/src/api/generated/.openapi-generator/FILES +23 -0
  60. package/ui/src/api/generated/.openapi-generator/VERSION +1 -0
  61. package/ui/src/api/generated/.openapi-generator-ignore +23 -0
  62. package/ui/src/api/generated/api/plugin-template-console-api.ts +128 -0
  63. package/ui/src/api/generated/api/plugin-template-uc-api.ts +128 -0
  64. package/ui/src/api/generated/api.ts +19 -0
  65. package/ui/src/api/generated/base.ts +86 -0
  66. package/ui/src/api/generated/common.ts +150 -0
  67. package/ui/src/api/generated/configuration.ts +110 -0
  68. package/ui/src/api/generated/git_push.sh +57 -0
  69. package/ui/src/api/generated/index.ts +18 -0
  70. package/ui/src/api/generated/models/add-operation.ts +49 -0
  71. package/ui/src/api/generated/models/copy-operation.ts +49 -0
  72. package/ui/src/api/generated/models/index.ts +11 -0
  73. package/ui/src/api/generated/models/json-patch-inner.ts +41 -0
  74. package/ui/src/api/generated/models/move-operation.ts +49 -0
  75. package/ui/src/api/generated/models/plugin-template-checklist-item.ts +54 -0
  76. package/ui/src/api/generated/models/plugin-template-feature-item.ts +54 -0
  77. package/ui/src/api/generated/models/plugin-template-overview.ts +147 -0
  78. package/ui/src/api/generated/models/plugin-template-stat-item.ts +54 -0
  79. package/ui/src/api/generated/models/remove-operation.ts +43 -0
  80. package/ui/src/api/generated/models/replace-operation.ts +49 -0
  81. package/ui/src/api/generated/models/test-operation.ts +49 -0
  82. package/ui/src/api/index.ts +42 -0
  83. package/ui/src/api/normalizers.ts +65 -0
  84. package/ui/src/assets/element.scss +24 -0
  85. package/ui/src/assets/index.css +361 -0
  86. package/ui/src/assets/logo.svg +1 -0
  87. package/ui/src/components/PluginTemplateAttachmentTab.vue +69 -0
  88. package/ui/src/components/PluginTemplateCommonTable.vue +69 -0
  89. package/ui/src/components/PluginTemplateDashboardWidget.vue +62 -0
  90. package/ui/src/components/PluginTemplateOverviewPage.vue +254 -0
  91. package/ui/src/components/ui/PluginUiProvider.vue +40 -0
  92. package/ui/src/components/ui/UiMetricCard.vue +21 -0
  93. package/ui/src/components/ui/UiSectionCard.vue +25 -0
  94. package/ui/src/components/ui/UiStatusPill.vue +18 -0
  95. package/ui/src/composables/useTemplateOverview.ts +38 -0
  96. package/ui/src/index.ts +88 -0
  97. package/ui/src/lib/__tests__/plugin-ui.spec.ts +19 -0
  98. package/ui/src/lib/plugin-ui.ts +19 -0
  99. package/ui/src/lib/template.spec.ts +24 -0
  100. package/ui/src/lib/template.ts +52 -0
  101. package/ui/src/lib/theme.ts +31 -0
  102. package/ui/src/types/index.ts +59 -0
  103. package/ui/src/views/console/ConsoleDashboardView.vue +7 -0
  104. package/ui/src/views/uc/UcDashboardView.vue +7 -0
  105. package/ui/tsconfig.app.json +12 -0
  106. package/ui/tsconfig.json +14 -0
  107. package/ui/tsconfig.node.json +15 -0
  108. package/ui/tsconfig.vitest.json +11 -0
  109. package/ui/vite.config.ts +25 -0
package/.editorconfig ADDED
@@ -0,0 +1,520 @@
1
+ [*]
2
+ charset = utf-8
3
+ end_of_line = lf
4
+ indent_size = 4
5
+ indent_style = space
6
+ insert_final_newline = false
7
+ max_line_length = 120
8
+ tab_width = 4
9
+ ij_continuation_indent_size = 8
10
+ ij_formatter_off_tag = @formatter:off
11
+ ij_formatter_on_tag = @formatter:on
12
+ ij_formatter_tags_enabled = false
13
+ ij_smart_tabs = false
14
+ ij_wrap_on_typing = false
15
+
16
+ [*.java]
17
+ max_line_length = 100
18
+ ij_continuation_indent_size = 4
19
+ ij_java_align_consecutive_assignments = false
20
+ ij_java_align_consecutive_variable_declarations = false
21
+ ij_java_align_group_field_declarations = false
22
+ ij_java_align_multiline_annotation_parameters = false
23
+ ij_java_align_multiline_array_initializer_expression = false
24
+ ij_java_align_multiline_assignment = false
25
+ ij_java_align_multiline_binary_operation = false
26
+ ij_java_align_multiline_chained_methods = false
27
+ ij_java_align_multiline_extends_list = false
28
+ ij_java_align_multiline_for = true
29
+ ij_java_align_multiline_method_parentheses = false
30
+ ij_java_align_multiline_parameters = false
31
+ ij_java_align_multiline_parameters_in_calls = false
32
+ ij_java_align_multiline_parenthesized_expression = false
33
+ ij_java_align_multiline_records = true
34
+ ij_java_align_multiline_resources = true
35
+ ij_java_align_multiline_ternary_operation = false
36
+ ij_java_align_multiline_text_blocks = false
37
+ ij_java_align_multiline_throws_list = false
38
+ ij_java_align_subsequent_simple_methods = false
39
+ ij_java_align_throws_keyword = false
40
+ ij_java_annotation_parameter_wrap = off
41
+ ij_java_array_initializer_new_line_after_left_brace = false
42
+ ij_java_array_initializer_right_brace_on_new_line = false
43
+ ij_java_array_initializer_wrap = normal
44
+ ij_java_assert_statement_colon_on_next_line = false
45
+ ij_java_assert_statement_wrap = normal
46
+ ij_java_assignment_wrap = normal
47
+ ij_java_binary_operation_sign_on_next_line = true
48
+ ij_java_binary_operation_wrap = normal
49
+ ij_java_blank_lines_after_anonymous_class_header = 0
50
+ ij_java_blank_lines_after_class_header = 0
51
+ ij_java_blank_lines_after_imports = 1
52
+ ij_java_blank_lines_after_package = 1
53
+ ij_java_blank_lines_around_class = 1
54
+ ij_java_blank_lines_around_field = 0
55
+ ij_java_blank_lines_around_field_in_interface = 0
56
+ ij_java_blank_lines_around_initializer = 1
57
+ ij_java_blank_lines_around_method = 1
58
+ ij_java_blank_lines_around_method_in_interface = 1
59
+ ij_java_blank_lines_before_class_end = 0
60
+ ij_java_blank_lines_before_imports = 0
61
+ ij_java_blank_lines_before_method_body = 0
62
+ ij_java_blank_lines_before_package = 1
63
+ ij_java_block_brace_style = end_of_line
64
+ ij_java_block_comment_at_first_column = false
65
+ ij_java_call_parameters_new_line_after_left_paren = false
66
+ ij_java_call_parameters_right_paren_on_new_line = false
67
+ ij_java_call_parameters_wrap = normal
68
+ ij_java_case_statement_on_separate_line = true
69
+ ij_java_catch_on_new_line = false
70
+ ij_java_class_annotation_wrap = split_into_lines
71
+ ij_java_class_brace_style = end_of_line
72
+ ij_java_class_count_to_use_import_on_demand = 999
73
+ ij_java_class_names_in_javadoc = 1
74
+ ij_java_do_not_indent_top_level_class_members = false
75
+ ij_java_do_not_wrap_after_single_annotation = false
76
+ ij_java_do_while_brace_force = always
77
+ ij_java_doc_add_blank_line_after_description = true
78
+ ij_java_doc_add_blank_line_after_param_comments = false
79
+ ij_java_doc_add_blank_line_after_return = false
80
+ ij_java_doc_add_p_tag_on_empty_lines = true
81
+ ij_java_doc_align_exception_comments = true
82
+ ij_java_doc_align_param_comments = false
83
+ ij_java_doc_do_not_wrap_if_one_line = false
84
+ ij_java_doc_enable_formatting = true
85
+ ij_java_doc_enable_leading_asterisks = true
86
+ ij_java_doc_indent_on_continuation = false
87
+ ij_java_doc_keep_empty_lines = true
88
+ ij_java_doc_keep_empty_parameter_tag = true
89
+ ij_java_doc_keep_empty_return_tag = true
90
+ ij_java_doc_keep_empty_throws_tag = true
91
+ ij_java_doc_keep_invalid_tags = true
92
+ ij_java_doc_param_description_on_new_line = false
93
+ ij_java_doc_preserve_line_breaks = false
94
+ ij_java_doc_use_throws_not_exception_tag = true
95
+ ij_java_else_on_new_line = false
96
+ ij_java_enum_constants_wrap = normal
97
+ ij_java_extends_keyword_wrap = normal
98
+ ij_java_extends_list_wrap = normal
99
+ ij_java_field_annotation_wrap = split_into_lines
100
+ ij_java_finally_on_new_line = false
101
+ ij_java_for_brace_force = always
102
+ ij_java_for_statement_new_line_after_left_paren = false
103
+ ij_java_for_statement_right_paren_on_new_line = false
104
+ ij_java_for_statement_wrap = normal
105
+ ij_java_generate_final_locals = false
106
+ ij_java_generate_final_parameters = false
107
+ ij_java_if_brace_force = always
108
+ ij_java_imports_layout = $*, |, *, |, *
109
+ ij_java_indent_case_from_switch = true
110
+ ij_java_insert_inner_class_imports = false
111
+ ij_java_insert_override_annotation = true
112
+ ij_java_keep_blank_lines_before_right_brace = 2
113
+ ij_java_keep_blank_lines_between_package_declaration_and_header = 2
114
+ ij_java_keep_blank_lines_in_code = 2
115
+ ij_java_keep_blank_lines_in_declarations = 2
116
+ ij_java_keep_control_statement_in_one_line = true
117
+ ij_java_keep_first_column_comment = true
118
+ ij_java_keep_indents_on_empty_lines = false
119
+ ij_java_keep_line_breaks = true
120
+ ij_java_keep_multiple_expressions_in_one_line = false
121
+ ij_java_keep_simple_blocks_in_one_line = false
122
+ ij_java_keep_simple_classes_in_one_line = false
123
+ ij_java_keep_simple_lambdas_in_one_line = false
124
+ ij_java_keep_simple_methods_in_one_line = false
125
+ ij_java_label_indent_absolute = false
126
+ ij_java_label_indent_size = 0
127
+ ij_java_lambda_brace_style = end_of_line
128
+ ij_java_layout_static_imports_separately = true
129
+ ij_java_line_comment_add_space = true
130
+ ij_java_line_comment_at_first_column = false
131
+ ij_java_method_annotation_wrap = split_into_lines
132
+ ij_java_method_brace_style = end_of_line
133
+ ij_java_method_call_chain_wrap = normal
134
+ ij_java_method_parameters_new_line_after_left_paren = false
135
+ ij_java_method_parameters_right_paren_on_new_line = false
136
+ ij_java_method_parameters_wrap = normal
137
+ ij_java_modifier_list_wrap = false
138
+ ij_java_names_count_to_use_import_on_demand = 999
139
+ ij_java_new_line_after_lparen_in_record_header = false
140
+ ij_java_parameter_annotation_wrap = normal
141
+ ij_java_parentheses_expression_new_line_after_left_paren = false
142
+ ij_java_parentheses_expression_right_paren_on_new_line = false
143
+ ij_java_place_assignment_sign_on_next_line = false
144
+ ij_java_prefer_longer_names = true
145
+ ij_java_prefer_parameters_wrap = false
146
+ ij_java_record_components_wrap = normal
147
+ ij_java_repeat_synchronized = true
148
+ ij_java_replace_instanceof_and_cast = false
149
+ ij_java_replace_null_check = true
150
+ ij_java_replace_sum_lambda_with_method_ref = true
151
+ ij_java_resource_list_new_line_after_left_paren = false
152
+ ij_java_resource_list_right_paren_on_new_line = false
153
+ ij_java_resource_list_wrap = normal
154
+ ij_java_rparen_on_new_line_in_record_header = false
155
+ ij_java_space_after_closing_angle_bracket_in_type_argument = false
156
+ ij_java_space_after_colon = true
157
+ ij_java_space_after_comma = true
158
+ ij_java_space_after_comma_in_type_arguments = true
159
+ ij_java_space_after_for_semicolon = true
160
+ ij_java_space_after_quest = true
161
+ ij_java_space_after_type_cast = true
162
+ ij_java_space_before_annotation_array_initializer_left_brace = false
163
+ ij_java_space_before_annotation_parameter_list = false
164
+ ij_java_space_before_array_initializer_left_brace = true
165
+ ij_java_space_before_catch_keyword = true
166
+ ij_java_space_before_catch_left_brace = true
167
+ ij_java_space_before_catch_parentheses = true
168
+ ij_java_space_before_class_left_brace = true
169
+ ij_java_space_before_colon = true
170
+ ij_java_space_before_colon_in_foreach = true
171
+ ij_java_space_before_comma = false
172
+ ij_java_space_before_do_left_brace = true
173
+ ij_java_space_before_else_keyword = true
174
+ ij_java_space_before_else_left_brace = true
175
+ ij_java_space_before_finally_keyword = true
176
+ ij_java_space_before_finally_left_brace = true
177
+ ij_java_space_before_for_left_brace = true
178
+ ij_java_space_before_for_parentheses = true
179
+ ij_java_space_before_for_semicolon = false
180
+ ij_java_space_before_if_left_brace = true
181
+ ij_java_space_before_if_parentheses = true
182
+ ij_java_space_before_method_call_parentheses = false
183
+ ij_java_space_before_method_left_brace = true
184
+ ij_java_space_before_method_parentheses = false
185
+ ij_java_space_before_opening_angle_bracket_in_type_parameter = false
186
+ ij_java_space_before_quest = true
187
+ ij_java_space_before_switch_left_brace = true
188
+ ij_java_space_before_switch_parentheses = true
189
+ ij_java_space_before_synchronized_left_brace = true
190
+ ij_java_space_before_synchronized_parentheses = true
191
+ ij_java_space_before_try_left_brace = true
192
+ ij_java_space_before_try_parentheses = true
193
+ ij_java_space_before_type_parameter_list = false
194
+ ij_java_space_before_while_keyword = true
195
+ ij_java_space_before_while_left_brace = true
196
+ ij_java_space_before_while_parentheses = true
197
+ ij_java_space_inside_one_line_enum_braces = false
198
+ ij_java_space_within_empty_array_initializer_braces = false
199
+ ij_java_space_within_empty_method_call_parentheses = false
200
+ ij_java_space_within_empty_method_parentheses = false
201
+ ij_java_spaces_around_additive_operators = true
202
+ ij_java_spaces_around_assignment_operators = true
203
+ ij_java_spaces_around_bitwise_operators = true
204
+ ij_java_spaces_around_equality_operators = true
205
+ ij_java_spaces_around_lambda_arrow = true
206
+ ij_java_spaces_around_logical_operators = true
207
+ ij_java_spaces_around_method_ref_dbl_colon = false
208
+ ij_java_spaces_around_multiplicative_operators = true
209
+ ij_java_spaces_around_relational_operators = true
210
+ ij_java_spaces_around_shift_operators = true
211
+ ij_java_spaces_around_type_bounds_in_type_parameters = true
212
+ ij_java_spaces_around_unary_operator = false
213
+ ij_java_spaces_within_angle_brackets = false
214
+ ij_java_spaces_within_annotation_parentheses = false
215
+ ij_java_spaces_within_array_initializer_braces = false
216
+ ij_java_spaces_within_braces = false
217
+ ij_java_spaces_within_brackets = false
218
+ ij_java_spaces_within_cast_parentheses = false
219
+ ij_java_spaces_within_catch_parentheses = false
220
+ ij_java_spaces_within_for_parentheses = false
221
+ ij_java_spaces_within_if_parentheses = false
222
+ ij_java_spaces_within_method_call_parentheses = false
223
+ ij_java_spaces_within_method_parentheses = false
224
+ ij_java_spaces_within_parentheses = false
225
+ ij_java_spaces_within_switch_parentheses = false
226
+ ij_java_spaces_within_synchronized_parentheses = false
227
+ ij_java_spaces_within_try_parentheses = false
228
+ ij_java_spaces_within_while_parentheses = false
229
+ ij_java_special_else_if_treatment = true
230
+ ij_java_subclass_name_suffix = Impl
231
+ ij_java_ternary_operation_signs_on_next_line = true
232
+ ij_java_ternary_operation_wrap = normal
233
+ ij_java_test_name_suffix = Test
234
+ ij_java_throws_keyword_wrap = normal
235
+ ij_java_throws_list_wrap = normal
236
+ ij_java_use_external_annotations = false
237
+ ij_java_use_fq_class_names = false
238
+ ij_java_use_relative_indents = false
239
+ ij_java_use_single_class_imports = true
240
+ ij_java_variable_annotation_wrap = normal
241
+ ij_java_visibility = public
242
+ ij_java_while_brace_force = always
243
+ ij_java_while_on_new_line = false
244
+ ij_java_wrap_comments = false
245
+ ij_java_wrap_first_method_in_call_chain = false
246
+ ij_java_wrap_long_lines = true
247
+
248
+ [*.properties]
249
+ ij_properties_align_group_field_declarations = false
250
+ ij_properties_keep_blank_lines = false
251
+ ij_properties_key_value_delimiter = equals
252
+ ij_properties_spaces_around_key_value_delimiter = false
253
+
254
+ [.editorconfig]
255
+ ij_editorconfig_align_group_field_declarations = false
256
+ ij_editorconfig_space_after_colon = false
257
+ ij_editorconfig_space_after_comma = true
258
+ ij_editorconfig_space_before_colon = false
259
+ ij_editorconfig_space_before_comma = false
260
+ ij_editorconfig_spaces_around_assignment_operators = true
261
+
262
+ [{*.ant, *.fxml, *.jhm, *.jnlp, *.jrxml, *.jspx, *.pom, *.rng, *.tagx, *.tld, *.wsdl, *.xml, *.xsd, *.xsl, *.xslt, *.xul}]
263
+ ij_xml_align_attributes = true
264
+ ij_xml_align_text = false
265
+ ij_xml_attribute_wrap = normal
266
+ ij_xml_block_comment_at_first_column = true
267
+ ij_xml_keep_blank_lines = 2
268
+ ij_xml_keep_indents_on_empty_lines = false
269
+ ij_xml_keep_line_breaks = true
270
+ ij_xml_keep_line_breaks_in_text = true
271
+ ij_xml_keep_whitespaces = false
272
+ ij_xml_keep_whitespaces_around_cdata = preserve
273
+ ij_xml_keep_whitespaces_inside_cdata = false
274
+ ij_xml_line_comment_at_first_column = true
275
+ ij_xml_space_after_tag_name = false
276
+ ij_xml_space_around_equals_in_attribute = false
277
+ ij_xml_space_inside_empty_tag = false
278
+ ij_xml_text_wrap = normal
279
+
280
+ [{*.bash, *.sh, *.zsh}]
281
+ indent_size = 2
282
+ tab_width = 2
283
+ ij_shell_binary_ops_start_line = false
284
+ ij_shell_keep_column_alignment_padding = false
285
+ ij_shell_minify_program = false
286
+ ij_shell_redirect_followed_by_space = false
287
+ ij_shell_switch_cases_indented = false
288
+
289
+ [{*.gant, *.gradle, *.groovy, *.gy}]
290
+ ij_groovy_align_group_field_declarations = false
291
+ ij_groovy_align_multiline_array_initializer_expression = false
292
+ ij_groovy_align_multiline_assignment = false
293
+ ij_groovy_align_multiline_binary_operation = false
294
+ ij_groovy_align_multiline_chained_methods = false
295
+ ij_groovy_align_multiline_extends_list = false
296
+ ij_groovy_align_multiline_for = true
297
+ ij_groovy_align_multiline_list_or_map = true
298
+ ij_groovy_align_multiline_method_parentheses = false
299
+ ij_groovy_align_multiline_parameters = true
300
+ ij_groovy_align_multiline_parameters_in_calls = false
301
+ ij_groovy_align_multiline_resources = true
302
+ ij_groovy_align_multiline_ternary_operation = false
303
+ ij_groovy_align_multiline_throws_list = false
304
+ ij_groovy_align_named_args_in_map = true
305
+ ij_groovy_align_throws_keyword = false
306
+ ij_groovy_array_initializer_new_line_after_left_brace = false
307
+ ij_groovy_array_initializer_right_brace_on_new_line = false
308
+ ij_groovy_array_initializer_wrap = off
309
+ ij_groovy_assert_statement_wrap = off
310
+ ij_groovy_assignment_wrap = off
311
+ ij_groovy_binary_operation_wrap = off
312
+ ij_groovy_blank_lines_after_class_header = 0
313
+ ij_groovy_blank_lines_after_imports = 1
314
+ ij_groovy_blank_lines_after_package = 1
315
+ ij_groovy_blank_lines_around_class = 1
316
+ ij_groovy_blank_lines_around_field = 0
317
+ ij_groovy_blank_lines_around_field_in_interface = 0
318
+ ij_groovy_blank_lines_around_method = 1
319
+ ij_groovy_blank_lines_around_method_in_interface = 1
320
+ ij_groovy_blank_lines_before_imports = 1
321
+ ij_groovy_blank_lines_before_method_body = 0
322
+ ij_groovy_blank_lines_before_package = 0
323
+ ij_groovy_block_brace_style = end_of_line
324
+ ij_groovy_block_comment_at_first_column = true
325
+ ij_groovy_call_parameters_new_line_after_left_paren = false
326
+ ij_groovy_call_parameters_right_paren_on_new_line = false
327
+ ij_groovy_call_parameters_wrap = off
328
+ ij_groovy_catch_on_new_line = false
329
+ ij_groovy_class_annotation_wrap = split_into_lines
330
+ ij_groovy_class_brace_style = end_of_line
331
+ ij_groovy_class_count_to_use_import_on_demand = 5
332
+ ij_groovy_do_while_brace_force = never
333
+ ij_groovy_else_on_new_line = false
334
+ ij_groovy_enum_constants_wrap = off
335
+ ij_groovy_extends_keyword_wrap = off
336
+ ij_groovy_extends_list_wrap = off
337
+ ij_groovy_field_annotation_wrap = split_into_lines
338
+ ij_groovy_finally_on_new_line = false
339
+ ij_groovy_for_brace_force = never
340
+ ij_groovy_for_statement_new_line_after_left_paren = false
341
+ ij_groovy_for_statement_right_paren_on_new_line = false
342
+ ij_groovy_for_statement_wrap = off
343
+ ij_groovy_if_brace_force = never
344
+ ij_groovy_import_annotation_wrap = 2
345
+ ij_groovy_indent_case_from_switch = true
346
+ ij_groovy_indent_label_blocks = true
347
+ ij_groovy_insert_inner_class_imports = false
348
+ ij_groovy_keep_blank_lines_before_right_brace = 2
349
+ ij_groovy_keep_blank_lines_in_code = 2
350
+ ij_groovy_keep_blank_lines_in_declarations = 2
351
+ ij_groovy_keep_control_statement_in_one_line = true
352
+ ij_groovy_keep_first_column_comment = true
353
+ ij_groovy_keep_indents_on_empty_lines = false
354
+ ij_groovy_keep_line_breaks = true
355
+ ij_groovy_keep_multiple_expressions_in_one_line = false
356
+ ij_groovy_keep_simple_blocks_in_one_line = false
357
+ ij_groovy_keep_simple_classes_in_one_line = true
358
+ ij_groovy_keep_simple_lambdas_in_one_line = true
359
+ ij_groovy_keep_simple_methods_in_one_line = true
360
+ ij_groovy_label_indent_absolute = false
361
+ ij_groovy_label_indent_size = 0
362
+ ij_groovy_lambda_brace_style = end_of_line
363
+ ij_groovy_layout_static_imports_separately = true
364
+ ij_groovy_line_comment_add_space = false
365
+ ij_groovy_line_comment_at_first_column = true
366
+ ij_groovy_method_annotation_wrap = split_into_lines
367
+ ij_groovy_method_brace_style = end_of_line
368
+ ij_groovy_method_call_chain_wrap = off
369
+ ij_groovy_method_parameters_new_line_after_left_paren = false
370
+ ij_groovy_method_parameters_right_paren_on_new_line = false
371
+ ij_groovy_method_parameters_wrap = off
372
+ ij_groovy_modifier_list_wrap = false
373
+ ij_groovy_names_count_to_use_import_on_demand = 3
374
+ ij_groovy_parameter_annotation_wrap = off
375
+ ij_groovy_parentheses_expression_new_line_after_left_paren = false
376
+ ij_groovy_parentheses_expression_right_paren_on_new_line = false
377
+ ij_groovy_prefer_parameters_wrap = false
378
+ ij_groovy_resource_list_new_line_after_left_paren = false
379
+ ij_groovy_resource_list_right_paren_on_new_line = false
380
+ ij_groovy_resource_list_wrap = off
381
+ ij_groovy_space_after_assert_separator = true
382
+ ij_groovy_space_after_colon = true
383
+ ij_groovy_space_after_comma = true
384
+ ij_groovy_space_after_comma_in_type_arguments = true
385
+ ij_groovy_space_after_for_semicolon = true
386
+ ij_groovy_space_after_quest = true
387
+ ij_groovy_space_after_type_cast = true
388
+ ij_groovy_space_before_annotation_parameter_list = false
389
+ ij_groovy_space_before_array_initializer_left_brace = false
390
+ ij_groovy_space_before_assert_separator = false
391
+ ij_groovy_space_before_catch_keyword = true
392
+ ij_groovy_space_before_catch_left_brace = true
393
+ ij_groovy_space_before_catch_parentheses = true
394
+ ij_groovy_space_before_class_left_brace = true
395
+ ij_groovy_space_before_closure_left_brace = true
396
+ ij_groovy_space_before_colon = true
397
+ ij_groovy_space_before_comma = false
398
+ ij_groovy_space_before_do_left_brace = true
399
+ ij_groovy_space_before_else_keyword = true
400
+ ij_groovy_space_before_else_left_brace = true
401
+ ij_groovy_space_before_finally_keyword = true
402
+ ij_groovy_space_before_finally_left_brace = true
403
+ ij_groovy_space_before_for_left_brace = true
404
+ ij_groovy_space_before_for_parentheses = true
405
+ ij_groovy_space_before_for_semicolon = false
406
+ ij_groovy_space_before_if_left_brace = true
407
+ ij_groovy_space_before_if_parentheses = true
408
+ ij_groovy_space_before_method_call_parentheses = false
409
+ ij_groovy_space_before_method_left_brace = true
410
+ ij_groovy_space_before_method_parentheses = false
411
+ ij_groovy_space_before_quest = true
412
+ ij_groovy_space_before_switch_left_brace = true
413
+ ij_groovy_space_before_switch_parentheses = true
414
+ ij_groovy_space_before_synchronized_left_brace = true
415
+ ij_groovy_space_before_synchronized_parentheses = true
416
+ ij_groovy_space_before_try_left_brace = true
417
+ ij_groovy_space_before_try_parentheses = true
418
+ ij_groovy_space_before_while_keyword = true
419
+ ij_groovy_space_before_while_left_brace = true
420
+ ij_groovy_space_before_while_parentheses = true
421
+ ij_groovy_space_in_named_argument = true
422
+ ij_groovy_space_in_named_argument_before_colon = false
423
+ ij_groovy_space_within_empty_array_initializer_braces = false
424
+ ij_groovy_space_within_empty_method_call_parentheses = false
425
+ ij_groovy_spaces_around_additive_operators = true
426
+ ij_groovy_spaces_around_assignment_operators = true
427
+ ij_groovy_spaces_around_bitwise_operators = true
428
+ ij_groovy_spaces_around_equality_operators = true
429
+ ij_groovy_spaces_around_lambda_arrow = true
430
+ ij_groovy_spaces_around_logical_operators = true
431
+ ij_groovy_spaces_around_multiplicative_operators = true
432
+ ij_groovy_spaces_around_regex_operators = true
433
+ ij_groovy_spaces_around_relational_operators = true
434
+ ij_groovy_spaces_around_shift_operators = true
435
+ ij_groovy_spaces_within_annotation_parentheses = false
436
+ ij_groovy_spaces_within_array_initializer_braces = false
437
+ ij_groovy_spaces_within_braces = true
438
+ ij_groovy_spaces_within_brackets = false
439
+ ij_groovy_spaces_within_cast_parentheses = false
440
+ ij_groovy_spaces_within_catch_parentheses = false
441
+ ij_groovy_spaces_within_for_parentheses = false
442
+ ij_groovy_spaces_within_gstring_injection_braces = false
443
+ ij_groovy_spaces_within_if_parentheses = false
444
+ ij_groovy_spaces_within_list_or_map = false
445
+ ij_groovy_spaces_within_method_call_parentheses = false
446
+ ij_groovy_spaces_within_method_parentheses = false
447
+ ij_groovy_spaces_within_parentheses = false
448
+ ij_groovy_spaces_within_switch_parentheses = false
449
+ ij_groovy_spaces_within_synchronized_parentheses = false
450
+ ij_groovy_spaces_within_try_parentheses = false
451
+ ij_groovy_spaces_within_tuple_expression = false
452
+ ij_groovy_spaces_within_while_parentheses = false
453
+ ij_groovy_special_else_if_treatment = true
454
+ ij_groovy_ternary_operation_wrap = off
455
+ ij_groovy_throws_keyword_wrap = off
456
+ ij_groovy_throws_list_wrap = off
457
+ ij_groovy_use_flying_geese_braces = false
458
+ ij_groovy_use_fq_class_names = false
459
+ ij_groovy_use_fq_class_names_in_javadoc = true
460
+ ij_groovy_use_relative_indents = false
461
+ ij_groovy_use_single_class_imports = true
462
+ ij_groovy_variable_annotation_wrap = off
463
+ ij_groovy_while_brace_force = never
464
+ ij_groovy_while_on_new_line = false
465
+ ij_groovy_wrap_long_lines = false
466
+
467
+ [{*.har, *.json}]
468
+ indent_size = 2
469
+ ij_json_keep_blank_lines_in_code = 0
470
+ ij_json_keep_indents_on_empty_lines = false
471
+ ij_json_keep_line_breaks = true
472
+ ij_json_space_after_colon = true
473
+ ij_json_space_after_comma = true
474
+ ij_json_space_before_colon = true
475
+ ij_json_space_before_comma = false
476
+ ij_json_spaces_within_braces = false
477
+ ij_json_spaces_within_brackets = false
478
+ ij_json_wrap_long_lines = false
479
+
480
+ [{*.htm, *.html, *.sht, *.shtm, *.shtml}]
481
+ ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3
482
+ ij_html_align_attributes = true
483
+ ij_html_align_text = false
484
+ ij_html_attribute_wrap = normal
485
+ ij_html_block_comment_at_first_column = true
486
+ ij_html_do_not_align_children_of_min_lines = 0
487
+ ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p
488
+ ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot
489
+ ij_html_enforce_quotes = false
490
+ ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
491
+ ij_html_keep_blank_lines = 2
492
+ ij_html_keep_indents_on_empty_lines = false
493
+ ij_html_keep_line_breaks = true
494
+ ij_html_keep_line_breaks_in_text = true
495
+ ij_html_keep_whitespaces = false
496
+ ij_html_keep_whitespaces_inside = span, pre, textarea
497
+ ij_html_line_comment_at_first_column = true
498
+ ij_html_new_line_after_last_attribute = never
499
+ ij_html_new_line_before_first_attribute = never
500
+ ij_html_quote_style = double
501
+ ij_html_remove_new_line_before_tags = br
502
+ ij_html_space_after_tag_name = false
503
+ ij_html_space_around_equality_in_attribute = false
504
+ ij_html_space_inside_empty_tag = false
505
+ ij_html_text_wrap = normal
506
+
507
+ [{*.yaml, *.yml}]
508
+ indent_size = 2
509
+ ij_yaml_keep_indents_on_empty_lines = false
510
+ ij_yaml_keep_line_breaks = true
511
+
512
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
513
+ charset = utf-8
514
+ indent_size = 2
515
+ indent_style = space
516
+ insert_final_newline = true
517
+ trim_trailing_whitespace = true
518
+
519
+ end_of_line = lf
520
+ max_line_length = 100
@@ -0,0 +1,20 @@
1
+ name: CD
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+
8
+ jobs:
9
+ cd:
10
+ uses: halo-sigs/reusable-workflows/.github/workflows/plugin-cd.yaml@v3
11
+ permissions:
12
+ contents: write
13
+ with:
14
+ ui-path: "ui"
15
+ pnpm-version: 10
16
+ node-version: 22
17
+ java-version: 21
18
+ # Remove skip-appstore-release and set app-id if you want to release to the App Store
19
+ skip-appstore-release: true
20
+ # app-id: app-xyz
@@ -0,0 +1,32 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ starter-guard:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+ - name: Setup Node.js
18
+ uses: actions/setup-node@v4
19
+ with:
20
+ node-version: 22
21
+ - name: Verify starter consistency
22
+ run: node scripts/verify-template.mjs
23
+
24
+ ci:
25
+ needs:
26
+ - starter-guard
27
+ uses: halo-sigs/reusable-workflows/.github/workflows/plugin-ci.yaml@v3
28
+ with:
29
+ ui-path: "ui"
30
+ pnpm-version: 10
31
+ node-version: 22
32
+ java-version: 21
@@ -0,0 +1,46 @@
1
+ name: Publish npm CLI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ tags:
7
+ - 'v*'
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ publish:
15
+ runs-on: ubuntu-latest
16
+ environment: npm
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Setup Java
22
+ uses: actions/setup-java@v4
23
+ with:
24
+ distribution: temurin
25
+ java-version: 21
26
+
27
+ - name: Setup Node.js
28
+ uses: actions/setup-node@v4
29
+ with:
30
+ node-version: 22.14.0
31
+ registry-url: https://registry.npmjs.org
32
+
33
+ - name: Upgrade npm for trusted publishing
34
+ run: npm install -g npm@11.5.1
35
+
36
+ - name: Enable Corepack
37
+ run: corepack enable
38
+
39
+ - name: Prepare pnpm
40
+ run: corepack prepare pnpm@10.12.4 --activate
41
+
42
+ - name: Validate package before publish
43
+ run: npm run publish:check
44
+
45
+ - name: Publish to npm
46
+ run: npm publish --access public
package/.gitignore ADDED
@@ -0,0 +1,83 @@
1
+ ### Maven
2
+ target/
3
+ logs/
4
+ !.mvn/wrapper/maven-wrapper.jar
5
+
6
+ ### Gradle
7
+ .gradle
8
+ /build/
9
+ /out/
10
+ !gradle/wrapper/gradle-wrapper.jar
11
+
12
+ ### Node
13
+ node_modules/
14
+ .npm-cache/
15
+
16
+ ### STS
17
+ .apt_generated
18
+ .classpath
19
+ .factorypath
20
+ .project
21
+ .settings
22
+ .springBeans
23
+ .sts4-cache
24
+
25
+ ### IntelliJ IDEA
26
+ .idea
27
+ *.iws
28
+ *.iml
29
+ *.ipr
30
+ log/
31
+
32
+ ### NetBeans
33
+ nbproject/private/
34
+ build/
35
+ nbbuild/
36
+ dist/
37
+ nbdist/
38
+ .nb-gradle/
39
+
40
+ ### Mac
41
+ .DS_Store
42
+ */.DS_Store
43
+
44
+ ### VSCode
45
+ *.project
46
+ *.factorypath
47
+ .vscode
48
+ !.vscode/extensions.json
49
+
50
+ ### Compiled class file
51
+ *.class
52
+
53
+ ### Log file
54
+ logs
55
+ *.log
56
+ npm-debug.log*
57
+ yarn-debug.log*
58
+ yarn-error.log*
59
+ pnpm-debug.log*
60
+ lerna-debug.log*
61
+
62
+ ### BlueJ files
63
+ *.ctxt
64
+
65
+ ### Package Files
66
+ *.war
67
+ *.nar
68
+ *.ear
69
+ *.zip
70
+ *.tar.gz
71
+ *.rar
72
+
73
+ ### Local file
74
+ application-local.yml
75
+ application-local.yaml
76
+ application-local.properties
77
+
78
+ /ui/build/
79
+ /workplace/
80
+ /src/main/resources/console/
81
+ /api-docs/openapi/v3_0/*.json
82
+ /plugin-halo-plugin-rsbuild/
83
+ /plugin-halo-plugin-vite/