openyida 2026.3.23-4 → 2026.3.24

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 (317) hide show
  1. package/bin/yida.js +2 -2
  2. package/lib/app/compile.d.ts +17 -0
  3. package/lib/app/compile.d.ts.map +1 -0
  4. package/lib/app/compile.js +61 -26
  5. package/lib/app/compile.js.map +1 -0
  6. package/lib/app/create-app.d.ts +7 -0
  7. package/lib/app/create-app.d.ts.map +1 -0
  8. package/lib/app/create-app.js +191 -176
  9. package/lib/app/create-app.js.map +1 -0
  10. package/lib/app/create-form.d.ts +59 -0
  11. package/lib/app/create-form.d.ts.map +1 -0
  12. package/lib/app/create-form.js +2047 -2192
  13. package/lib/app/create-form.js.map +1 -0
  14. package/lib/app/create-page.d.ts +11 -0
  15. package/lib/app/create-page.d.ts.map +1 -0
  16. package/lib/app/create-page.js +135 -130
  17. package/lib/app/create-page.js.map +1 -0
  18. package/lib/app/datasource-utils.d.ts +50 -0
  19. package/lib/app/datasource-utils.d.ts.map +1 -0
  20. package/lib/app/datasource-utils.js +252 -265
  21. package/lib/app/datasource-utils.js.map +1 -0
  22. package/lib/app/export-app.d.ts +9 -0
  23. package/lib/app/export-app.d.ts.map +1 -0
  24. package/lib/app/export-app.js +171 -181
  25. package/lib/app/export-app.js.map +1 -0
  26. package/lib/app/get-schema.d.ts +7 -0
  27. package/lib/app/get-schema.d.ts.map +1 -0
  28. package/lib/app/get-schema.js +51 -70
  29. package/lib/app/get-schema.js.map +1 -0
  30. package/lib/app/import-app.d.ts +9 -0
  31. package/lib/app/import-app.d.ts.map +1 -0
  32. package/lib/app/import-app.js +287 -324
  33. package/lib/app/import-app.js.map +1 -0
  34. package/lib/app/publish.d.ts +26 -0
  35. package/lib/app/publish.d.ts.map +1 -0
  36. package/lib/app/publish.js +564 -580
  37. package/lib/app/publish.js.map +1 -0
  38. package/lib/app/update-form-config.d.ts +2 -0
  39. package/lib/app/update-form-config.d.ts.map +1 -0
  40. package/lib/app/update-form-config.js +221 -219
  41. package/lib/app/update-form-config.js.map +1 -0
  42. package/lib/auth/auth.d.ts +57 -0
  43. package/lib/auth/auth.d.ts.map +1 -0
  44. package/lib/auth/auth.js +151 -204
  45. package/lib/auth/auth.js.map +1 -0
  46. package/lib/auth/login.d.ts +30 -0
  47. package/lib/auth/login.d.ts.map +1 -0
  48. package/lib/auth/login.js +215 -251
  49. package/lib/auth/login.js.map +1 -0
  50. package/lib/auth/org.d.ts +46 -0
  51. package/lib/auth/org.d.ts.map +1 -0
  52. package/lib/auth/org.js +229 -320
  53. package/lib/auth/org.js.map +1 -0
  54. package/lib/auth/qr-login.d.ts +22 -0
  55. package/lib/auth/qr-login.d.ts.map +1 -0
  56. package/lib/auth/qr-login.js +424 -547
  57. package/lib/auth/qr-login.js.map +1 -0
  58. package/lib/cdn/cdn-config-cmd.d.ts +36 -0
  59. package/lib/cdn/cdn-config-cmd.d.ts.map +1 -0
  60. package/lib/cdn/cdn-config-cmd.js +177 -197
  61. package/lib/cdn/cdn-config-cmd.js.map +1 -0
  62. package/lib/cdn/cdn-config.d.ts +81 -0
  63. package/lib/cdn/cdn-config.d.ts.map +1 -0
  64. package/lib/cdn/cdn-config.js +104 -122
  65. package/lib/cdn/cdn-config.js.map +1 -0
  66. package/lib/cdn/cdn-refresh.d.ts +69 -0
  67. package/lib/cdn/cdn-refresh.d.ts.map +1 -0
  68. package/lib/cdn/cdn-refresh.js +195 -224
  69. package/lib/cdn/cdn-refresh.js.map +1 -0
  70. package/lib/cdn/cdn-upload.d.ts +56 -0
  71. package/lib/cdn/cdn-upload.d.ts.map +1 -0
  72. package/lib/cdn/cdn-upload.js +222 -251
  73. package/lib/cdn/cdn-upload.js.map +1 -0
  74. package/lib/connector/action-generator.d.ts +39 -0
  75. package/lib/connector/action-generator.d.ts.map +1 -0
  76. package/lib/connector/action-generator.js +207 -235
  77. package/lib/connector/action-generator.js.map +1 -0
  78. package/lib/connector/api.d.ts +124 -0
  79. package/lib/connector/api.d.ts.map +1 -0
  80. package/lib/connector/api.js +186 -298
  81. package/lib/connector/api.js.map +1 -0
  82. package/lib/connector/connector-add-action.d.ts +14 -0
  83. package/lib/connector/connector-add-action.d.ts.map +1 -0
  84. package/lib/connector/connector-add-action.js +160 -179
  85. package/lib/connector/connector-add-action.js.map +1 -0
  86. package/lib/connector/connector-create-connection.d.ts +16 -0
  87. package/lib/connector/connector-create-connection.d.ts.map +1 -0
  88. package/lib/connector/connector-create-connection.js +101 -129
  89. package/lib/connector/connector-create-connection.js.map +1 -0
  90. package/lib/connector/connector-create.d.ts +24 -0
  91. package/lib/connector/connector-create.d.ts.map +1 -0
  92. package/lib/connector/connector-create.js +246 -260
  93. package/lib/connector/connector-create.js.map +1 -0
  94. package/lib/connector/connector-delete-action.d.ts +11 -0
  95. package/lib/connector/connector-delete-action.d.ts.map +1 -0
  96. package/lib/connector/connector-delete-action.js +67 -87
  97. package/lib/connector/connector-delete-action.js.map +1 -0
  98. package/lib/connector/connector-delete.d.ts +8 -0
  99. package/lib/connector/connector-delete.d.ts.map +1 -0
  100. package/lib/connector/connector-delete.js +33 -42
  101. package/lib/connector/connector-delete.js.map +1 -0
  102. package/lib/connector/connector-detail.d.ts +8 -0
  103. package/lib/connector/connector-detail.d.ts.map +1 -0
  104. package/lib/connector/connector-detail.js +62 -73
  105. package/lib/connector/connector-detail.js.map +1 -0
  106. package/lib/connector/connector-gen-template.d.ts +8 -0
  107. package/lib/connector/connector-gen-template.d.ts.map +1 -0
  108. package/lib/connector/connector-gen-template.js +27 -29
  109. package/lib/connector/connector-gen-template.js.map +1 -0
  110. package/lib/connector/connector-list-actions.d.ts +8 -0
  111. package/lib/connector/connector-list-actions.d.ts.map +1 -0
  112. package/lib/connector/connector-list-actions.js +48 -59
  113. package/lib/connector/connector-list-actions.js.map +1 -0
  114. package/lib/connector/connector-list-connections.d.ts +8 -0
  115. package/lib/connector/connector-list-connections.d.ts.map +1 -0
  116. package/lib/connector/connector-list-connections.js +39 -52
  117. package/lib/connector/connector-list-connections.js.map +1 -0
  118. package/lib/connector/connector-list.d.ts +13 -0
  119. package/lib/connector/connector-list.d.ts.map +1 -0
  120. package/lib/connector/connector-list.js +73 -79
  121. package/lib/connector/connector-list.js.map +1 -0
  122. package/lib/connector/connector-parse-api.d.ts +14 -0
  123. package/lib/connector/connector-parse-api.d.ts.map +1 -0
  124. package/lib/connector/connector-parse-api.js +170 -180
  125. package/lib/connector/connector-parse-api.js.map +1 -0
  126. package/lib/connector/connector-smart-create.d.ts +13 -0
  127. package/lib/connector/connector-smart-create.d.ts.map +1 -0
  128. package/lib/connector/connector-smart-create.js +148 -169
  129. package/lib/connector/connector-smart-create.js.map +1 -0
  130. package/lib/connector/connector-test.d.ts +8 -0
  131. package/lib/connector/connector-test.d.ts.map +1 -0
  132. package/lib/connector/connector-test.js +157 -189
  133. package/lib/connector/connector-test.js.map +1 -0
  134. package/lib/connector/curl-parser.d.ts +35 -0
  135. package/lib/connector/curl-parser.d.ts.map +1 -0
  136. package/lib/connector/curl-parser.js +76 -95
  137. package/lib/connector/curl-parser.js.map +1 -0
  138. package/lib/connector/desc-generator.d.ts +23 -0
  139. package/lib/connector/desc-generator.d.ts.map +1 -0
  140. package/lib/connector/desc-generator.js +24 -29
  141. package/lib/connector/desc-generator.js.map +1 -0
  142. package/lib/connector/doc-parser.d.ts +101 -0
  143. package/lib/connector/doc-parser.d.ts.map +1 -0
  144. package/lib/connector/doc-parser.js +419 -470
  145. package/lib/connector/doc-parser.js.map +1 -0
  146. package/lib/connector/response-parser.d.ts +40 -0
  147. package/lib/connector/response-parser.d.ts.map +1 -0
  148. package/lib/connector/response-parser.js +87 -112
  149. package/lib/connector/response-parser.js.map +1 -0
  150. package/lib/core/babel-transform/index.js +240 -213
  151. package/lib/core/babel-transform/jsx-utils.js +101 -77
  152. package/lib/core/check-update.d.ts +20 -0
  153. package/lib/core/check-update.d.ts.map +1 -0
  154. package/lib/core/check-update.js +77 -45
  155. package/lib/core/check-update.js.map +1 -0
  156. package/lib/core/copy.d.ts +32 -0
  157. package/lib/core/copy.d.ts.map +1 -0
  158. package/lib/core/copy.js +307 -307
  159. package/lib/core/copy.js.map +1 -0
  160. package/lib/core/doctor.d.ts +289 -0
  161. package/lib/core/doctor.d.ts.map +1 -0
  162. package/lib/core/doctor.js +1123 -1351
  163. package/lib/core/doctor.js.map +1 -0
  164. package/lib/core/env.d.ts +20 -0
  165. package/lib/core/env.d.ts.map +1 -0
  166. package/lib/core/env.js +156 -140
  167. package/lib/core/env.js.map +1 -0
  168. package/lib/core/i18n.d.ts +41 -0
  169. package/lib/core/i18n.d.ts.map +1 -0
  170. package/lib/core/i18n.js +98 -116
  171. package/lib/core/i18n.js.map +1 -0
  172. package/lib/core/locales/ar.d.ts +625 -0
  173. package/lib/core/locales/ar.d.ts.map +1 -0
  174. package/lib/core/locales/ar.js +644 -750
  175. package/lib/core/locales/ar.js.map +1 -0
  176. package/lib/core/locales/de.d.ts +625 -0
  177. package/lib/core/locales/de.d.ts.map +1 -0
  178. package/lib/core/locales/de.js +644 -750
  179. package/lib/core/locales/de.js.map +1 -0
  180. package/lib/core/locales/en.d.ts +626 -0
  181. package/lib/core/locales/en.d.ts.map +1 -0
  182. package/lib/core/locales/en.js +645 -751
  183. package/lib/core/locales/en.js.map +1 -0
  184. package/lib/core/locales/es.d.ts +625 -0
  185. package/lib/core/locales/es.d.ts.map +1 -0
  186. package/lib/core/locales/es.js +644 -750
  187. package/lib/core/locales/es.js.map +1 -0
  188. package/lib/core/locales/fr.d.ts +625 -0
  189. package/lib/core/locales/fr.d.ts.map +1 -0
  190. package/lib/core/locales/fr.js +644 -750
  191. package/lib/core/locales/fr.js.map +1 -0
  192. package/lib/core/locales/hi.d.ts +625 -0
  193. package/lib/core/locales/hi.d.ts.map +1 -0
  194. package/lib/core/locales/hi.js +644 -750
  195. package/lib/core/locales/hi.js.map +1 -0
  196. package/lib/core/locales/ja.d.ts +625 -0
  197. package/lib/core/locales/ja.d.ts.map +1 -0
  198. package/lib/core/locales/ja.js +644 -750
  199. package/lib/core/locales/ja.js.map +1 -0
  200. package/lib/core/locales/ko.d.ts +625 -0
  201. package/lib/core/locales/ko.d.ts.map +1 -0
  202. package/lib/core/locales/ko.js +644 -750
  203. package/lib/core/locales/ko.js.map +1 -0
  204. package/lib/core/locales/pt.d.ts +625 -0
  205. package/lib/core/locales/pt.d.ts.map +1 -0
  206. package/lib/core/locales/pt.js +644 -750
  207. package/lib/core/locales/pt.js.map +1 -0
  208. package/lib/core/locales/vi.d.ts +625 -0
  209. package/lib/core/locales/vi.d.ts.map +1 -0
  210. package/lib/core/locales/vi.js +644 -750
  211. package/lib/core/locales/vi.js.map +1 -0
  212. package/lib/core/locales/zh-TW.d.ts +625 -0
  213. package/lib/core/locales/zh-TW.d.ts.map +1 -0
  214. package/lib/core/locales/zh-TW.js +644 -750
  215. package/lib/core/locales/zh-TW.js.map +1 -0
  216. package/lib/core/locales/zh.d.ts +645 -0
  217. package/lib/core/locales/zh.d.ts.map +1 -0
  218. package/lib/core/locales/zh.js +668 -753
  219. package/lib/core/locales/zh.js.map +1 -0
  220. package/lib/core/query-data.d.ts +13 -0
  221. package/lib/core/query-data.d.ts.map +1 -0
  222. package/lib/core/query-data.js +412 -303
  223. package/lib/core/query-data.js.map +1 -0
  224. package/lib/core/utils.d.ts +66 -0
  225. package/lib/core/utils.d.ts.map +1 -0
  226. package/lib/core/utils.js +282 -372
  227. package/lib/core/utils.js.map +1 -0
  228. package/lib/integration/integration-api.d.ts +67 -0
  229. package/lib/integration/integration-api.d.ts.map +1 -0
  230. package/lib/integration/integration-api.js +118 -198
  231. package/lib/integration/integration-api.js.map +1 -0
  232. package/lib/integration/integration-create.d.ts +3 -0
  233. package/lib/integration/integration-create.d.ts.map +1 -0
  234. package/lib/integration/integration-create.js +310 -365
  235. package/lib/integration/integration-create.js.map +1 -0
  236. package/lib/integration/integration-node-ids.d.ts +31 -0
  237. package/lib/integration/integration-node-ids.d.ts.map +1 -0
  238. package/lib/integration/integration-node-ids.js +34 -46
  239. package/lib/integration/integration-node-ids.js.map +1 -0
  240. package/lib/integration/integration-process-builder.d.ts +61 -0
  241. package/lib/integration/integration-process-builder.d.ts.map +1 -0
  242. package/lib/integration/integration-process-builder.js +205 -260
  243. package/lib/integration/integration-process-builder.js.map +1 -0
  244. package/lib/integration/integration-view-builder.d.ts +45 -0
  245. package/lib/integration/integration-view-builder.d.ts.map +1 -0
  246. package/lib/integration/integration-view-builder.js +240 -288
  247. package/lib/integration/integration-view-builder.js.map +1 -0
  248. package/lib/page-config/get-page-config.d.ts +7 -0
  249. package/lib/page-config/get-page-config.d.ts.map +1 -0
  250. package/lib/page-config/get-page-config.js +77 -90
  251. package/lib/page-config/get-page-config.js.map +1 -0
  252. package/lib/page-config/save-share-config.d.ts +7 -0
  253. package/lib/page-config/save-share-config.d.ts.map +1 -0
  254. package/lib/page-config/save-share-config.js +203 -237
  255. package/lib/page-config/save-share-config.js.map +1 -0
  256. package/lib/page-config/verify-short-url.d.ts +20 -0
  257. package/lib/page-config/verify-short-url.d.ts.map +1 -0
  258. package/lib/page-config/verify-short-url.js +198 -240
  259. package/lib/page-config/verify-short-url.js.map +1 -0
  260. package/lib/permission/get-permission.d.ts +7 -0
  261. package/lib/permission/get-permission.d.ts.map +1 -0
  262. package/lib/permission/get-permission.js +173 -184
  263. package/lib/permission/get-permission.js.map +1 -0
  264. package/lib/permission/save-permission.d.ts +7 -0
  265. package/lib/permission/save-permission.d.ts.map +1 -0
  266. package/lib/permission/save-permission.js +446 -532
  267. package/lib/permission/save-permission.js.map +1 -0
  268. package/lib/process/configure-process.d.ts +16 -0
  269. package/lib/process/configure-process.d.ts.map +1 -0
  270. package/lib/process/configure-process.js +881 -954
  271. package/lib/process/configure-process.js.map +1 -0
  272. package/lib/process/create-process.d.ts +14 -0
  273. package/lib/process/create-process.d.ts.map +1 -0
  274. package/lib/process/create-process.js +275 -264
  275. package/lib/process/create-process.js.map +1 -0
  276. package/lib/report/append.d.ts +3 -0
  277. package/lib/report/append.d.ts.map +1 -0
  278. package/lib/report/append.js +223 -297
  279. package/lib/report/append.js.map +1 -0
  280. package/lib/report/chart-builder.d.ts +92 -0
  281. package/lib/report/chart-builder.d.ts.map +1 -0
  282. package/lib/report/chart-builder.js +1450 -1575
  283. package/lib/report/chart-builder.js.map +1 -0
  284. package/lib/report/constants.d.ts +40 -0
  285. package/lib/report/constants.d.ts.map +1 -0
  286. package/lib/report/constants.js +74 -90
  287. package/lib/report/constants.js.map +1 -0
  288. package/lib/report/create-report.d.ts +15 -0
  289. package/lib/report/create-report.d.ts.map +1 -0
  290. package/lib/report/create-report.js +10 -9
  291. package/lib/report/create-report.js.map +1 -0
  292. package/lib/report/http.d.ts +10 -0
  293. package/lib/report/http.d.ts.map +1 -0
  294. package/lib/report/http.js +24 -25
  295. package/lib/report/http.js.map +1 -0
  296. package/lib/report/index.d.ts +3 -0
  297. package/lib/report/index.d.ts.map +1 -0
  298. package/lib/report/index.js +194 -243
  299. package/lib/report/index.js.map +1 -0
  300. package/lib/types/index.d.ts +91 -0
  301. package/lib/types/index.d.ts.map +1 -0
  302. package/lib/types/index.js +8 -0
  303. package/lib/types/index.js.map +1 -0
  304. package/package.json +26 -8
  305. package/project/pages/src/demo-salary-calculator.js +15 -44
  306. package/scripts/validate-structure.js +17 -4
  307. package/yida-skills/SKILL.md +15 -0
  308. package/yida-skills/skills/yida-create-app/templates/ipd-app-template.js +128 -0
  309. package/yida-skills/skills/yida-create-form-page/SKILL.md +39 -7
  310. package/yida-skills/skills/yida-custom-page/SKILL.md +167 -3
  311. package/yida-skills/skills/yida-custom-page/templates/custom-page-template.js +252 -0
  312. package/yida-skills/skills/yida-data-management/SKILL.md +18 -10
  313. package/yida-skills/skills/yida-data-management/reference/verified-endpoints.md +3 -3
  314. package/yida-skills/skills/yida-data-management/templates/form-field-template.js +104 -0
  315. package/yida-skills/skills/yida-report/SKILL.md +13 -4
  316. package/scripts/write_dashboard.py +0 -498
  317. package/yida-skills/skills/yida-custom-page/examples/yida-custom-page.js +0 -88
package/bin/yida.js CHANGED
@@ -288,8 +288,8 @@ async function main() {
288
288
  }
289
289
  const [sourceFile, appType, formUuid] = args;
290
290
  process.argv = [process.argv[0], process.argv[1], appType, formUuid, sourceFile];
291
- const { main: publishMain } = require('../lib/app/publish');
292
- await publishMain();
291
+ const { run: publishRun } = require('../lib/app/publish');
292
+ await publishRun();
293
293
  break;
294
294
  }
295
295
 
@@ -0,0 +1,17 @@
1
+ /**
2
+ * compile.ts - 宜搭自定义页面仅编译工具(不发布)
3
+ *
4
+ * 用法:
5
+ * openyida compile <源文件路径>
6
+ *
7
+ * 示例:
8
+ * openyida compile pages/src/demo.js
9
+ *
10
+ * 编译逻辑复用 publish.js 中的 compileSource,产物输出到 project/pages/dist/<name>.js。
11
+ */
12
+ /**
13
+ * 主流程:编译源文件,产物已由 compileSource 写入 dist 目录
14
+ * @param args - CLI 参数,args[0] 为源文件路径
15
+ */
16
+ export declare function run(args: string[]): Promise<void>;
17
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/app/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD"}
@@ -1,7 +1,6 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  /**
4
- * compile.js - 宜搭自定义页面仅编译工具(不发布)
3
+ * compile.ts - 宜搭自定义页面仅编译工具(不发布)
5
4
  *
6
5
  * 用法:
7
6
  * openyida compile <源文件路径>
@@ -11,31 +10,67 @@
11
10
  *
12
11
  * 编译逻辑复用 publish.js 中的 compileSource,产物输出到 project/pages/dist/<name>.js。
13
12
  */
14
-
15
- const fs = require('fs');
16
- const path = require('path');
17
- const { compileSource } = require('./publish');
18
- const { t } = require('../core/i18n');
19
-
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.run = run;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const publish_1 = require("./publish");
51
+ const i18n_1 = require("../core/i18n");
20
52
  /**
21
53
  * 主流程:编译源文件,产物已由 compileSource 写入 dist 目录
22
- * @param {string[]} args - CLI 参数,args[0] 为源文件路径
54
+ * @param args - CLI 参数,args[0] 为源文件路径
23
55
  */
24
56
  async function run(args) {
25
- const sourceFile = args[0];
26
- if (!sourceFile) {
27
- console.error(t('compile.usage'));
28
- console.error(t('compile.example'));
29
- process.exit(1);
30
- }
31
-
32
- const sourcePath = path.resolve(sourceFile);
33
- if (!fs.existsSync(sourcePath)) {
34
- console.error(t('compile.source_not_found', sourcePath));
35
- process.exit(1);
36
- }
37
-
38
- compileSource(sourcePath);
57
+ const sourceFile = args[0];
58
+ if (!sourceFile) {
59
+ console.error((0, i18n_1.t)('compile.usage'));
60
+ console.error((0, i18n_1.t)('compile.example'));
61
+ process.exit(1);
62
+ }
63
+ const sourcePath = path.resolve(sourceFile);
64
+ if (!fs.existsSync(sourcePath)) {
65
+ console.error((0, i18n_1.t)('compile.source_not_found', sourcePath));
66
+ process.exit(1);
67
+ }
68
+ try {
69
+ (0, publish_1.compileSource)(sourcePath);
70
+ }
71
+ catch (error) {
72
+ console.error((0, i18n_1.t)('compile.exception', error.message));
73
+ process.exit(1);
74
+ }
39
75
  }
40
-
41
- module.exports = { run };
76
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/app/compile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,kBAoBC;AA7BD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAA0C;AAC1C,uCAAiC;AAEjC;;;GAGG;AACI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,eAAe,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * create-app.ts - 宜搭应用创建命令
3
+ *
4
+ * 用法:yidacli create-app "<appName>" [description] [icon] [iconColor]
5
+ */
6
+ export declare function run(args: string[]): Promise<void>;
7
+ //# sourceMappingURL=create-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../src/app/create-app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0EH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GvD"}
@@ -1,191 +1,206 @@
1
+ "use strict";
1
2
  /**
2
- * create-app.js - 宜搭应用创建命令
3
+ * create-app.ts - 宜搭应用创建命令
3
4
  *
4
5
  * 用法:yidacli create-app "<appName>" [description] [icon] [iconColor]
5
6
  */
6
-
7
- 'use strict';
8
-
9
- const fs = require('fs');
10
- const path = require('path');
11
- const querystring = require('querystring');
12
- const {
13
- loadCookieData,
14
- triggerLogin,
15
- resolveBaseUrl,
16
- httpPost,
17
- requestWithAutoLogin,
18
- } = require('../core/utils');
19
- const { t } = require('../core/i18n');
20
-
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.run = run;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const querystring = __importStar(require("querystring"));
45
+ const utils_1 = require("../core/utils");
46
+ const i18n_1 = require("../core/i18n");
21
47
  // ── prd 文档更新 ──────────────────────────────────────
22
-
23
48
  function findPrdFile() {
24
- let currentDir = process.cwd();
25
- for (let i = 0; i < 5; i++) {
26
- const prdDir = path.join(currentDir, 'prd');
27
- if (fs.existsSync(prdDir)) {
28
- const files = fs.readdirSync(prdDir);
29
- const mdFile = files.find((f) => f.endsWith('.md'));
30
- if (mdFile) {return path.join(prdDir, mdFile);}
49
+ let currentDir = process.cwd();
50
+ for (let i = 0; i < 5; i++) {
51
+ const prdDir = path.join(currentDir, 'prd');
52
+ if (fs.existsSync(prdDir)) {
53
+ const files = fs.readdirSync(prdDir);
54
+ const mdFile = files.find((f) => f.endsWith('.md'));
55
+ if (mdFile) {
56
+ return path.join(prdDir, mdFile);
57
+ }
58
+ }
59
+ const parentDir = path.dirname(currentDir);
60
+ if (parentDir === currentDir) {
61
+ break;
62
+ }
63
+ currentDir = parentDir;
31
64
  }
32
- const parentDir = path.dirname(currentDir);
33
- if (parentDir === currentDir) {break;}
34
- currentDir = parentDir;
35
- }
36
- return null;
65
+ return null;
37
66
  }
38
-
39
67
  function updatePrdCorpId(prdFilePath, corpId, appType, baseUrl) {
40
- if (!prdFilePath || !fs.existsSync(prdFilePath)) {
41
- console.error(t('create_app.prd_not_found'));
42
- return false;
43
- }
44
-
45
- try {
46
- let content = fs.readFileSync(prdFilePath, 'utf-8');
47
- const hasAppConfig = content.includes('## 应用配置') || content.includes('## App Config') || content.includes('## アプリ設定') || content.includes('| appType |');
48
-
49
- if (hasAppConfig) {
50
- const corpIdRegex = /\| corpId \| [^|]*\|/;
51
- if (corpIdRegex.test(content)) {
52
- content = content.replace(corpIdRegex, `| corpId | ${corpId} |`);
53
- } else {
54
- content = content.replace(
55
- /(\| appType \| [^|]*\|)(\r?\n)/,
56
- `$1$2| corpId | ${corpId} |$2`
57
- );
58
- }
59
- content = content.replace(/\| appType \| [^|]*\|/, `| appType | ${appType} |`);
60
- content = content.replace(/\| baseUrl \| [^|]*\|/, `| baseUrl | ${baseUrl} |`);
61
- } else {
62
- const appConfigSection = `${t('create_app.prd_config_title')}\n\n| ${t('create_app.prd_config_key')} | ${t('create_app.prd_config_value')} |\n| --- | --- |\n| appType | ${appType} |\n| corpId | ${corpId} |\n| baseUrl | ${baseUrl} |\n\n`;
63
- if (content.startsWith('#')) {
64
- content = content.replace(/^(# .*\r?\n)/, `$1\n${appConfigSection}`);
65
- } else {
66
- content = appConfigSection + content;
67
- }
68
+ if (!prdFilePath || !fs.existsSync(prdFilePath)) {
69
+ console.error((0, i18n_1.t)('create_app.prd_not_found'));
70
+ return false;
71
+ }
72
+ try {
73
+ let content = fs.readFileSync(prdFilePath, 'utf-8');
74
+ const hasAppConfig = content.includes('## 应用配置') || content.includes('## App Config') || content.includes('## アプリ設定') || content.includes('| appType |');
75
+ if (hasAppConfig) {
76
+ const corpIdRegex = /\| corpId \| [^|]*\|/;
77
+ if (corpIdRegex.test(content)) {
78
+ content = content.replace(corpIdRegex, `| corpId | ${corpId} |`);
79
+ }
80
+ else {
81
+ content = content.replace(/(\| appType \| [^|]*\|)(\r?\n)/, `$1$2| corpId | ${corpId} |$2`);
82
+ }
83
+ content = content.replace(/\| appType \| [^|]*\|/, `| appType | ${appType} |`);
84
+ content = content.replace(/\| baseUrl \| [^|]*\|/, `| baseUrl | ${baseUrl} |`);
85
+ }
86
+ else {
87
+ const appConfigSection = `${(0, i18n_1.t)('create_app.prd_config_title')}\n\n| ${(0, i18n_1.t)('create_app.prd_config_key')} | ${(0, i18n_1.t)('create_app.prd_config_value')} |\n| --- | --- |\n| appType | ${appType} |\n| corpId | ${corpId} |\n| baseUrl | ${baseUrl} |\n\n`;
88
+ if (content.startsWith('#')) {
89
+ content = content.replace(/^(# .*\r?\n)/, `$1\n${appConfigSection}`);
90
+ }
91
+ else {
92
+ content = appConfigSection + content;
93
+ }
94
+ }
95
+ fs.writeFileSync(prdFilePath, content, 'utf-8');
96
+ console.error((0, i18n_1.t)('create_app.prd_updated', path.basename(prdFilePath)));
97
+ return true;
98
+ }
99
+ catch (err) {
100
+ console.error((0, i18n_1.t)('create_app.prd_update_failed', err.message));
101
+ return false;
68
102
  }
69
-
70
- fs.writeFileSync(prdFilePath, content, 'utf-8');
71
- console.error(t('create_app.prd_updated', path.basename(prdFilePath)));
72
- return true;
73
- } catch (err) {
74
- console.error(t('create_app.prd_update_failed', err.message));
75
- return false;
76
- }
77
103
  }
78
-
79
104
  // ── 主逻辑 ────────────────────────────────────────────
80
-
81
105
  async function run(args) {
82
- if (args.length < 1) {
83
- console.error(t('create_app.usage'));
84
- console.error(t('create_app.example'));
85
- console.error(t('create_app.available_icons'));
86
- console.error(t('create_app.icons_list'));
87
- console.error(t('create_app.available_colors'));
88
- console.error(t('create_app.colors_list'));
89
- process.exit(1);
90
- }
91
-
92
- const appName = args[0];
93
- const description = args[1] || appName;
94
- const icon = args[2] || 'xian-yingyong';
95
- const iconColor = args[3] || '#0089FF';
96
- const themeColor = args[4] || 'blue';
97
-
98
- const SEP = '='.repeat(50);
99
- console.error(SEP);
100
- console.error(t('create_app.title'));
101
- console.error(SEP);
102
- console.error(t('create_app.app_name', appName));
103
- console.error(t('create_app.app_desc', description));
104
- console.error(t('create_app.app_icon', icon, iconColor));
105
- console.error(t('create_app.app_theme', themeColor));
106
-
107
- // Step 1: 读取登录态
108
- console.error(t('common.step_login', 1));
109
- let cookieData = loadCookieData();
110
- if (!cookieData) {
111
- console.error(t('common.login_no_cache'));
112
- cookieData = triggerLogin();
113
- }
114
-
115
- const authRef = {
116
- csrfToken: cookieData.csrf_token,
117
- cookies: cookieData.cookies,
118
- baseUrl: resolveBaseUrl(cookieData),
119
- cookieData,
120
- };
121
- console.error(t('common.login_ready', authRef.baseUrl));
122
-
123
- // Step 2: 创建应用
124
- console.error(t('create_app.step_create'));
125
-
126
- // 查询企业专属域名配置,动态决定 openExclusive / openPhysicColumn 参数
127
- // 避免在开启了专属数据库策略的企业中硬编码 "n" 导致创建失败
128
- let openExclusive = 'n';
129
- let openPhysicColumn = 'n';
130
- try {
131
- const corpConfig = await httpPost(
132
- authRef.baseUrl,
133
- `/query/exclusive/queryCorpAppConfig.json?_api=Global.queryCorpAppConfig&_mock=false&_csrf_token=${authRef.csrfToken}&_locale_time_zone_offset=28800000&_stamp=${Date.now()}`,
134
- '',
135
- authRef.cookies
136
- );
137
- if (corpConfig && corpConfig.content) {
138
- if (corpConfig.content.forceExclusiveDb === 'y') {openExclusive = 'y';}
139
- if (corpConfig.content.forcePhysicalColumn === 'y') {openPhysicColumn = 'y';}
106
+ if (args.length < 1) {
107
+ console.error((0, i18n_1.t)('create_app.usage'));
108
+ console.error((0, i18n_1.t)('create_app.example'));
109
+ console.error((0, i18n_1.t)('create_app.available_icons'));
110
+ console.error((0, i18n_1.t)('create_app.icons_list'));
111
+ console.error((0, i18n_1.t)('create_app.available_colors'));
112
+ console.error((0, i18n_1.t)('create_app.colors_list'));
113
+ process.exit(1);
114
+ }
115
+ const appName = args[0];
116
+ const description = args[1] || appName;
117
+ const icon = args[2] || 'xian-yingyong';
118
+ const iconColor = args[3] || '#0089FF';
119
+ const themeColor = args[4] || 'blue';
120
+ const SEP = '='.repeat(50);
121
+ console.error(SEP);
122
+ console.error((0, i18n_1.t)('create_app.title'));
123
+ console.error(SEP);
124
+ console.error((0, i18n_1.t)('create_app.app_name', appName));
125
+ console.error((0, i18n_1.t)('create_app.app_desc', description));
126
+ console.error((0, i18n_1.t)('create_app.app_icon', icon, iconColor));
127
+ console.error((0, i18n_1.t)('create_app.app_theme', themeColor));
128
+ // Step 1: 读取登录态
129
+ console.error((0, i18n_1.t)('common.step_login', '1'));
130
+ let cookieData = (0, utils_1.loadCookieData)();
131
+ if (!cookieData) {
132
+ console.error((0, i18n_1.t)('common.login_no_cache'));
133
+ cookieData = (0, utils_1.triggerLogin)();
134
+ }
135
+ const authRef = {
136
+ csrfToken: cookieData.csrf_token,
137
+ cookies: cookieData.cookies,
138
+ baseUrl: (0, utils_1.resolveBaseUrl)(cookieData),
139
+ cookieData,
140
+ };
141
+ console.error((0, i18n_1.t)('common.login_ready', authRef.baseUrl));
142
+ // Step 2: 创建应用
143
+ console.error((0, i18n_1.t)('create_app.step_create'));
144
+ // 查询企业专属域名配置,动态决定 openExclusive / openPhysicColumn 参数
145
+ // 避免在开启了专属数据库策略的企业中硬编码 "n" 导致创建失败
146
+ let openExclusive = 'n';
147
+ let openPhysicColumn = 'n';
148
+ try {
149
+ const corpConfig = await (0, utils_1.httpPost)(authRef.baseUrl, `/query/exclusive/queryCorpAppConfig.json?_api=Global.queryCorpAppConfig&_mock=false&_csrf_token=${authRef.csrfToken}&_locale_time_zone_offset=28800000&_stamp=${Date.now()}`, '', authRef.cookies);
150
+ if (corpConfig && corpConfig.content) {
151
+ if (corpConfig.content.forceExclusiveDb === 'y') {
152
+ openExclusive = 'y';
153
+ }
154
+ if (corpConfig.content.forcePhysicalColumn === 'y') {
155
+ openPhysicColumn = 'y';
156
+ }
157
+ }
158
+ }
159
+ catch {
160
+ // 查询失败时使用默认值,不影响主流程
161
+ }
162
+ const iconValue = `${icon}%%${iconColor}`;
163
+ const response = await (0, utils_1.requestWithAutoLogin)((auth) => {
164
+ const postData = querystring.stringify({
165
+ _csrf_token: auth.csrfToken,
166
+ appName: JSON.stringify({ zh_CN: appName, en_US: appName, type: 'i18n' }),
167
+ description: JSON.stringify({ zh_CN: description, en_US: description, type: 'i18n' }),
168
+ icon: iconValue,
169
+ iconUrl: iconValue,
170
+ colour: themeColor,
171
+ defaultLanguage: 'zh_CN',
172
+ openExclusive: openExclusive,
173
+ openPhysicColumn: openPhysicColumn,
174
+ openIsolationDatabase: 'n',
175
+ openExclusiveUnit: 'n',
176
+ group: 'ALL',
177
+ });
178
+ return (0, utils_1.httpPost)(auth.baseUrl, '/query/app/registerApp.json', postData, auth.cookies);
179
+ }, authRef);
180
+ // 输出结果
181
+ const SEP2 = '='.repeat(50);
182
+ console.error('\n' + SEP2);
183
+ if (response && response.success && response.content) {
184
+ const appType = response.content;
185
+ const appUrl = `${authRef.baseUrl}/${appType}/admin`;
186
+ const corpId = authRef.cookieData.corp_id || '';
187
+ console.error((0, i18n_1.t)('create_app.success'));
188
+ console.error((0, i18n_1.t)('create_app.app_type_label', appType));
189
+ console.error((0, i18n_1.t)('create_app.corp_id_label', corpId || (0, i18n_1.t)('common.unknown_error')));
190
+ console.error((0, i18n_1.t)('create_app.url_label', appUrl));
191
+ console.error(SEP2);
192
+ const prdFile = findPrdFile();
193
+ if (prdFile) {
194
+ updatePrdCorpId(prdFile, corpId, appType, authRef.baseUrl);
195
+ }
196
+ console.log(JSON.stringify({ success: true, appType, appName, corpId, url: appUrl }));
197
+ }
198
+ else {
199
+ const errorMsg = response ? response.errorMsg || (0, i18n_1.t)('common.unknown_error') : (0, i18n_1.t)('common.request_failed');
200
+ console.error((0, i18n_1.t)('create_app.failed', errorMsg));
201
+ console.error(SEP2);
202
+ console.log(JSON.stringify({ success: false, error: errorMsg }));
203
+ process.exit(1);
140
204
  }
141
- } catch {
142
- // 查询失败时使用默认值,不影响主流程
143
- }
144
-
145
- const iconValue = `${icon}%%${iconColor}`;
146
- const response = await requestWithAutoLogin((auth) => {
147
- const postData = querystring.stringify({
148
- _csrf_token: auth.csrfToken,
149
- appName: JSON.stringify({ zh_CN: appName, en_US: appName, type: 'i18n' }),
150
- description: JSON.stringify({ zh_CN: description, en_US: description, type: 'i18n' }),
151
- icon: iconValue,
152
- iconUrl: iconValue,
153
- colour: themeColor,
154
- defaultLanguage: 'zh_CN',
155
- openExclusive: openExclusive,
156
- openPhysicColumn: openPhysicColumn,
157
- openIsolationDatabase: 'n',
158
- openExclusiveUnit: 'n',
159
- group: 'ALL',
160
- });
161
- return httpPost(auth.baseUrl, '/query/app/registerApp.json', postData, auth.cookies);
162
- }, authRef);
163
-
164
- // 输出结果
165
- const SEP2 = '='.repeat(50);
166
- console.error('\n' + SEP2);
167
- if (response && response.success && response.content) {
168
- const appType = response.content;
169
- const appUrl = `${authRef.baseUrl}/${appType}/admin`;
170
- const corpId = authRef.cookieData.corp_id || '';
171
-
172
- console.error(t('create_app.success'));
173
- console.error(t('create_app.app_type_label', appType));
174
- console.error(t('create_app.corp_id_label', corpId || t('common.unknown_error')));
175
- console.error(t('create_app.url_label', appUrl));
176
- console.error(SEP2);
177
-
178
- const prdFile = findPrdFile();
179
- if (prdFile) {updatePrdCorpId(prdFile, corpId, appType, authRef.baseUrl);}
180
-
181
- console.log(JSON.stringify({ success: true, appType, appName, corpId, url: appUrl }));
182
- } else {
183
- const errorMsg = response ? response.errorMsg || t('common.unknown_error') : t('common.request_failed');
184
- console.error(t('create_app.failed', errorMsg));
185
- console.error(SEP2);
186
- console.log(JSON.stringify({ success: false, error: errorMsg }));
187
- process.exit(1);
188
- }
189
205
  }
190
-
191
- module.exports = { run };
206
+ //# sourceMappingURL=create-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/app/create-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * create-form-page.ts - 宜搭表单页面创建 & 更新工具
4
+ *
5
+ * 支持两种模式:
6
+ *
7
+ * 1. create 模式 - 创建新表单页面:
8
+ * node create-form-page.js create <appType> <formTitle> <fieldsJsonFile>
9
+ *
10
+ * 2. update 模式 - 更新已有表单页面:
11
+ * node create-form-page.js update <appType> <formUuid> <changesJsonOrFile>
12
+ *
13
+ * create 模式参数:
14
+ * appType - 应用 ID(必填),如 APP_XXX
15
+ * formTitle - 表单名称(必填)
16
+ * fieldsJsonFile - 字段定义 JSON 文件路径(必填)
17
+ *
18
+ * update 模式参数:
19
+ * appType - 应用 ID(必填)
20
+ * formUuid - 表单 UUID(必填),如 FORM-XXX
21
+ * changesJsonOrFile - 修改定义,支持 JSON 字符串(以 [ 开头)或 JSON 文件路径
22
+ *
23
+ * 字段定义 JSON 格式(create 模式):
24
+ * [
25
+ * { "type": "TextField", "label": "姓名", "required": true },
26
+ * { "type": "SelectField", "label": "部门", "options": ["技术部", "产品部"] },
27
+ * { "type": "DateField", "label": "入职日期" },
28
+ * { "type": "TableField", "label": "费用明细", "children": [
29
+ * { "type": "TextField", "label": "项目" },
30
+ * { "type": "NumberField", "label": "金额" }
31
+ * ]}
32
+ * ]
33
+ *
34
+ * 修改定义 JSON 格式(update 模式):
35
+ * [
36
+ * { "action": "add", "field": { "type": "TextField", "label": "备注" } },
37
+ * { "action": "add", "field": { "type": "SelectField", "label": "部门", "options": ["技术部", "产品部"] }, "after": "姓名" },
38
+ * { "action": "delete", "label": "备注" },
39
+ * { "action": "update", "label": "年龄", "changes": { "required": true, "placeholder": "请输入年龄" } }
40
+ * ]
41
+ *
42
+ * 支持的字段类型:
43
+ * TextField, TextareaField, RadioField, SelectField, CheckboxField,
44
+ * MultiSelectField, NumberField, RateField, DateField, CascadeDateField,
45
+ * EmployeeField, DepartmentSelectField, CountrySelectField, AddressField,
46
+ * AttachmentField, ImageField, TableField, AssociationFormField, SerialNumberField
47
+ *
48
+ * 前置条件:
49
+ * 项目根目录下需存在 .cache/cookies.json(由 yida-login 生成)。
50
+ * 若接口返回 302(登录失效),脚本会自动调用 login.py 重新登录后重试。
51
+ *
52
+ * 示例:
53
+ * # 创建表单
54
+ * node .claude/skills/yida-create-form-page/scripts/create-form-page.js create "APP_xxx" "员工信息登记" fields.json
55
+ * # 更新表单
56
+ * node .claude/skills/yida-create-form-page/scripts/create-form-page.js update "APP_XXX" "FORM-YYY" '[{"action":"add","field":{"type":"TextField","label":"备注"}}]'
57
+ */
58
+ export {};
59
+ //# sourceMappingURL=create-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/app/create-form.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG"}