@constructive-sdk/cli 0.12.7 → 0.12.8

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 (333) hide show
  1. package/admin/cli/commands/app-achievement.js +38 -15
  2. package/admin/cli/commands/app-admin-grant.js +38 -15
  3. package/admin/cli/commands/app-grant.js +40 -16
  4. package/admin/cli/commands/app-level-requirement.js +42 -17
  5. package/admin/cli/commands/app-level.js +40 -16
  6. package/admin/cli/commands/app-limit-default.js +32 -12
  7. package/admin/cli/commands/app-limit.js +36 -14
  8. package/admin/cli/commands/app-membership-default.js +40 -16
  9. package/admin/cli/commands/app-membership.js +58 -25
  10. package/admin/cli/commands/app-owner-grant.js +38 -15
  11. package/admin/cli/commands/app-permission-default.js +30 -11
  12. package/admin/cli/commands/app-permission.js +36 -14
  13. package/admin/cli/commands/app-step.js +38 -15
  14. package/admin/cli/commands/claimed-invite.js +38 -15
  15. package/admin/cli/commands/invite.js +50 -21
  16. package/admin/cli/commands/membership-type.js +34 -13
  17. package/admin/cli/commands/org-admin-grant.js +40 -16
  18. package/admin/cli/commands/org-chart-edge-grant.js +44 -18
  19. package/admin/cli/commands/org-chart-edge.js +42 -17
  20. package/admin/cli/commands/org-claimed-invite.js +40 -16
  21. package/admin/cli/commands/org-get-managers-record.js +30 -11
  22. package/admin/cli/commands/org-get-subordinates-record.js +30 -11
  23. package/admin/cli/commands/org-grant.js +42 -17
  24. package/admin/cli/commands/org-invite.js +54 -23
  25. package/admin/cli/commands/org-limit-default.js +32 -12
  26. package/admin/cli/commands/org-limit.js +38 -15
  27. package/admin/cli/commands/org-member.js +34 -13
  28. package/admin/cli/commands/org-membership-default.js +44 -18
  29. package/admin/cli/commands/org-membership.js +58 -25
  30. package/admin/cli/commands/org-owner-grant.js +40 -16
  31. package/admin/cli/commands/org-permission-default.js +32 -12
  32. package/admin/cli/commands/org-permission.js +36 -14
  33. package/admin/cli/utils.d.ts +38 -0
  34. package/admin/cli/utils.js +96 -0
  35. package/auth/cli/commands/audit-log.js +42 -17
  36. package/auth/cli/commands/connected-account.js +42 -17
  37. package/auth/cli/commands/crypto-address.js +40 -16
  38. package/auth/cli/commands/email.js +40 -16
  39. package/auth/cli/commands/phone-number.js +42 -17
  40. package/auth/cli/commands/role-type.js +30 -11
  41. package/auth/cli/commands/user.js +80 -16
  42. package/auth/cli/utils.d.ts +38 -0
  43. package/auth/cli/utils.js +96 -0
  44. package/esm/admin/cli/commands/app-achievement.js +39 -16
  45. package/esm/admin/cli/commands/app-admin-grant.js +39 -16
  46. package/esm/admin/cli/commands/app-grant.js +41 -17
  47. package/esm/admin/cli/commands/app-level-requirement.js +43 -18
  48. package/esm/admin/cli/commands/app-level.js +41 -17
  49. package/esm/admin/cli/commands/app-limit-default.js +33 -13
  50. package/esm/admin/cli/commands/app-limit.js +37 -15
  51. package/esm/admin/cli/commands/app-membership-default.js +41 -17
  52. package/esm/admin/cli/commands/app-membership.js +59 -26
  53. package/esm/admin/cli/commands/app-owner-grant.js +39 -16
  54. package/esm/admin/cli/commands/app-permission-default.js +31 -12
  55. package/esm/admin/cli/commands/app-permission.js +37 -15
  56. package/esm/admin/cli/commands/app-step.js +39 -16
  57. package/esm/admin/cli/commands/claimed-invite.js +39 -16
  58. package/esm/admin/cli/commands/invite.js +51 -22
  59. package/esm/admin/cli/commands/membership-type.js +35 -14
  60. package/esm/admin/cli/commands/org-admin-grant.js +41 -17
  61. package/esm/admin/cli/commands/org-chart-edge-grant.js +45 -19
  62. package/esm/admin/cli/commands/org-chart-edge.js +43 -18
  63. package/esm/admin/cli/commands/org-claimed-invite.js +41 -17
  64. package/esm/admin/cli/commands/org-get-managers-record.js +31 -12
  65. package/esm/admin/cli/commands/org-get-subordinates-record.js +31 -12
  66. package/esm/admin/cli/commands/org-grant.js +43 -18
  67. package/esm/admin/cli/commands/org-invite.js +55 -24
  68. package/esm/admin/cli/commands/org-limit-default.js +33 -13
  69. package/esm/admin/cli/commands/org-limit.js +39 -16
  70. package/esm/admin/cli/commands/org-member.js +35 -14
  71. package/esm/admin/cli/commands/org-membership-default.js +45 -19
  72. package/esm/admin/cli/commands/org-membership.js +59 -26
  73. package/esm/admin/cli/commands/org-owner-grant.js +41 -17
  74. package/esm/admin/cli/commands/org-permission-default.js +33 -13
  75. package/esm/admin/cli/commands/org-permission.js +37 -15
  76. package/esm/admin/cli/utils.d.ts +38 -0
  77. package/esm/admin/cli/utils.js +90 -0
  78. package/esm/auth/cli/commands/audit-log.js +43 -18
  79. package/esm/auth/cli/commands/connected-account.js +43 -18
  80. package/esm/auth/cli/commands/crypto-address.js +41 -17
  81. package/esm/auth/cli/commands/email.js +41 -17
  82. package/esm/auth/cli/commands/phone-number.js +43 -18
  83. package/esm/auth/cli/commands/role-type.js +31 -12
  84. package/esm/auth/cli/commands/user.js +81 -17
  85. package/esm/auth/cli/utils.d.ts +38 -0
  86. package/esm/auth/cli/utils.js +90 -0
  87. package/esm/objects/cli/commands/commit.js +45 -19
  88. package/esm/objects/cli/commands/get-all-record.js +31 -12
  89. package/esm/objects/cli/commands/object.js +41 -17
  90. package/esm/objects/cli/commands/ref.js +37 -15
  91. package/esm/objects/cli/commands/store.js +37 -15
  92. package/esm/objects/cli/utils.d.ts +38 -0
  93. package/esm/objects/cli/utils.js +90 -0
  94. package/esm/public/cli/commands/api-module.js +37 -15
  95. package/esm/public/cli/commands/api-schema.js +35 -14
  96. package/esm/public/cli/commands/api.js +41 -17
  97. package/esm/public/cli/commands/app-achievement.js +39 -16
  98. package/esm/public/cli/commands/app-admin-grant.js +39 -16
  99. package/esm/public/cli/commands/app-grant.js +41 -17
  100. package/esm/public/cli/commands/app-level-requirement.js +43 -18
  101. package/esm/public/cli/commands/app-level.js +41 -17
  102. package/esm/public/cli/commands/app-limit-default.js +33 -13
  103. package/esm/public/cli/commands/app-limit.js +37 -15
  104. package/esm/public/cli/commands/app-membership-default.js +41 -17
  105. package/esm/public/cli/commands/app-membership.js +59 -26
  106. package/esm/public/cli/commands/app-owner-grant.js +39 -16
  107. package/esm/public/cli/commands/app-permission-default.js +31 -12
  108. package/esm/public/cli/commands/app-permission.js +37 -15
  109. package/esm/public/cli/commands/app-step.js +39 -16
  110. package/esm/public/cli/commands/app.js +45 -19
  111. package/esm/public/cli/commands/ast-migration.js +53 -23
  112. package/esm/public/cli/commands/audit-log.js +43 -18
  113. package/esm/public/cli/commands/blueprint-template.js +67 -30
  114. package/esm/public/cli/commands/blueprint.js +61 -27
  115. package/esm/public/cli/commands/check-constraint.js +55 -24
  116. package/esm/public/cli/commands/claimed-invite.js +39 -16
  117. package/esm/public/cli/commands/commit.js +45 -19
  118. package/esm/public/cli/commands/connected-account.js +43 -18
  119. package/esm/public/cli/commands/connected-accounts-module.js +41 -17
  120. package/esm/public/cli/commands/crypto-address.js +41 -17
  121. package/esm/public/cli/commands/crypto-addresses-module.js +43 -18
  122. package/esm/public/cli/commands/crypto-auth-module.js +55 -24
  123. package/esm/public/cli/commands/database-provision-module.js +55 -24
  124. package/esm/public/cli/commands/database-transfer.js +55 -24
  125. package/esm/public/cli/commands/database.js +43 -18
  126. package/esm/public/cli/commands/default-ids-module.js +31 -12
  127. package/esm/public/cli/commands/default-privilege.js +41 -17
  128. package/esm/public/cli/commands/denormalized-table-field.js +51 -22
  129. package/esm/public/cli/commands/domain.js +39 -16
  130. package/esm/public/cli/commands/email.js +41 -17
  131. package/esm/public/cli/commands/emails-module.js +41 -17
  132. package/esm/public/cli/commands/embedding-chunk.js +63 -28
  133. package/esm/public/cli/commands/encrypted-secrets-module.js +37 -15
  134. package/esm/public/cli/commands/enum.js +51 -22
  135. package/esm/public/cli/commands/field.js +75 -34
  136. package/esm/public/cli/commands/foreign-key-constraint.js +63 -28
  137. package/esm/public/cli/commands/full-text-search.js +45 -19
  138. package/esm/public/cli/commands/get-all-record.js +31 -12
  139. package/esm/public/cli/commands/hierarchy-module.js +67 -30
  140. package/esm/public/cli/commands/index.js +65 -29
  141. package/esm/public/cli/commands/invite.js +51 -22
  142. package/esm/public/cli/commands/invites-module.js +55 -24
  143. package/esm/public/cli/commands/levels-module.js +79 -36
  144. package/esm/public/cli/commands/limits-module.js +63 -28
  145. package/esm/public/cli/commands/membership-type.js +35 -14
  146. package/esm/public/cli/commands/membership-types-module.js +37 -15
  147. package/esm/public/cli/commands/memberships-module.js +89 -41
  148. package/esm/public/cli/commands/migrate-file.js +33 -13
  149. package/esm/public/cli/commands/node-type-registry.js +89 -19
  150. package/esm/public/cli/commands/object.js +41 -17
  151. package/esm/public/cli/commands/org-admin-grant.js +41 -17
  152. package/esm/public/cli/commands/org-chart-edge-grant.js +45 -19
  153. package/esm/public/cli/commands/org-chart-edge.js +43 -18
  154. package/esm/public/cli/commands/org-claimed-invite.js +41 -17
  155. package/esm/public/cli/commands/org-get-managers-record.js +31 -12
  156. package/esm/public/cli/commands/org-get-subordinates-record.js +31 -12
  157. package/esm/public/cli/commands/org-grant.js +43 -18
  158. package/esm/public/cli/commands/org-invite.js +55 -24
  159. package/esm/public/cli/commands/org-limit-default.js +33 -13
  160. package/esm/public/cli/commands/org-limit.js +39 -16
  161. package/esm/public/cli/commands/org-member.js +35 -14
  162. package/esm/public/cli/commands/org-membership-default.js +45 -19
  163. package/esm/public/cli/commands/org-membership.js +59 -26
  164. package/esm/public/cli/commands/org-owner-grant.js +41 -17
  165. package/esm/public/cli/commands/org-permission-default.js +33 -13
  166. package/esm/public/cli/commands/org-permission.js +37 -15
  167. package/esm/public/cli/commands/permissions-module.js +61 -27
  168. package/esm/public/cli/commands/phone-number.js +43 -18
  169. package/esm/public/cli/commands/phone-numbers-module.js +41 -17
  170. package/esm/public/cli/commands/policy.js +61 -27
  171. package/esm/public/cli/commands/primary-key-constraint.js +53 -23
  172. package/esm/public/cli/commands/profiles-module.js +63 -28
  173. package/esm/public/cli/commands/ref.js +37 -15
  174. package/esm/public/cli/commands/relation-provision.js +89 -41
  175. package/esm/public/cli/commands/rls-module.js +49 -21
  176. package/esm/public/cli/commands/role-type.js +31 -12
  177. package/esm/public/cli/commands/schema-grant.js +39 -16
  178. package/esm/public/cli/commands/schema.js +55 -24
  179. package/esm/public/cli/commands/secrets-module.js +37 -15
  180. package/esm/public/cli/commands/secure-table-provision.js +63 -28
  181. package/esm/public/cli/commands/sessions-module.js +49 -21
  182. package/esm/public/cli/commands/site-metadatum.js +39 -16
  183. package/esm/public/cli/commands/site-module.js +37 -15
  184. package/esm/public/cli/commands/site-theme.js +35 -14
  185. package/esm/public/cli/commands/site.js +45 -19
  186. package/esm/public/cli/commands/sql-action.js +53 -23
  187. package/esm/public/cli/commands/store.js +37 -15
  188. package/esm/public/cli/commands/table-grant.js +45 -19
  189. package/esm/public/cli/commands/table-template-module.js +45 -19
  190. package/esm/public/cli/commands/table.js +65 -29
  191. package/esm/public/cli/commands/trigger-function.js +39 -16
  192. package/esm/public/cli/commands/trigger.js +53 -23
  193. package/esm/public/cli/commands/unique-constraint.js +55 -24
  194. package/esm/public/cli/commands/user-auth-module.js +79 -36
  195. package/esm/public/cli/commands/user.js +81 -17
  196. package/esm/public/cli/commands/users-module.js +41 -17
  197. package/esm/public/cli/commands/view-grant.js +41 -17
  198. package/esm/public/cli/commands/view-rule.js +39 -16
  199. package/esm/public/cli/commands/view-table.js +35 -14
  200. package/esm/public/cli/commands/view.js +59 -26
  201. package/esm/public/cli/commands.js +3 -3
  202. package/esm/public/cli/executor.d.ts +1 -1
  203. package/esm/public/cli/utils.d.ts +38 -0
  204. package/esm/public/cli/utils.js +90 -0
  205. package/esm/public/orm/index.d.ts +2 -2
  206. package/esm/public/orm/index.js +2 -2
  207. package/esm/public/orm/input-types.d.ts +161 -147
  208. package/esm/public/orm/models/index.d.ts +1 -1
  209. package/esm/public/orm/models/index.js +1 -1
  210. package/objects/cli/commands/commit.js +44 -18
  211. package/objects/cli/commands/get-all-record.js +30 -11
  212. package/objects/cli/commands/object.js +40 -16
  213. package/objects/cli/commands/ref.js +36 -14
  214. package/objects/cli/commands/store.js +36 -14
  215. package/objects/cli/utils.d.ts +38 -0
  216. package/objects/cli/utils.js +96 -0
  217. package/package.json +3 -3
  218. package/public/cli/commands/api-module.js +36 -14
  219. package/public/cli/commands/api-schema.js +34 -13
  220. package/public/cli/commands/api.js +40 -16
  221. package/public/cli/commands/app-achievement.js +38 -15
  222. package/public/cli/commands/app-admin-grant.js +38 -15
  223. package/public/cli/commands/app-grant.js +40 -16
  224. package/public/cli/commands/app-level-requirement.js +42 -17
  225. package/public/cli/commands/app-level.js +40 -16
  226. package/public/cli/commands/app-limit-default.js +32 -12
  227. package/public/cli/commands/app-limit.js +36 -14
  228. package/public/cli/commands/app-membership-default.js +40 -16
  229. package/public/cli/commands/app-membership.js +58 -25
  230. package/public/cli/commands/app-owner-grant.js +38 -15
  231. package/public/cli/commands/app-permission-default.js +30 -11
  232. package/public/cli/commands/app-permission.js +36 -14
  233. package/public/cli/commands/app-step.js +38 -15
  234. package/public/cli/commands/app.js +44 -18
  235. package/public/cli/commands/ast-migration.js +52 -22
  236. package/public/cli/commands/audit-log.js +42 -17
  237. package/public/cli/commands/blueprint-template.js +66 -29
  238. package/public/cli/commands/blueprint.js +60 -26
  239. package/public/cli/commands/check-constraint.js +54 -23
  240. package/public/cli/commands/claimed-invite.js +38 -15
  241. package/public/cli/commands/commit.js +44 -18
  242. package/public/cli/commands/connected-account.js +42 -17
  243. package/public/cli/commands/connected-accounts-module.js +40 -16
  244. package/public/cli/commands/crypto-address.js +40 -16
  245. package/public/cli/commands/crypto-addresses-module.js +42 -17
  246. package/public/cli/commands/crypto-auth-module.js +54 -23
  247. package/public/cli/commands/database-provision-module.js +54 -23
  248. package/public/cli/commands/database-transfer.js +54 -23
  249. package/public/cli/commands/database.js +42 -17
  250. package/public/cli/commands/default-ids-module.js +30 -11
  251. package/public/cli/commands/default-privilege.js +40 -16
  252. package/public/cli/commands/denormalized-table-field.js +50 -21
  253. package/public/cli/commands/domain.js +38 -15
  254. package/public/cli/commands/email.js +40 -16
  255. package/public/cli/commands/emails-module.js +40 -16
  256. package/public/cli/commands/embedding-chunk.js +62 -27
  257. package/public/cli/commands/encrypted-secrets-module.js +36 -14
  258. package/public/cli/commands/enum.js +50 -21
  259. package/public/cli/commands/field.js +74 -33
  260. package/public/cli/commands/foreign-key-constraint.js +62 -27
  261. package/public/cli/commands/full-text-search.js +44 -18
  262. package/public/cli/commands/get-all-record.js +30 -11
  263. package/public/cli/commands/hierarchy-module.js +66 -29
  264. package/public/cli/commands/index.js +64 -28
  265. package/public/cli/commands/invite.js +50 -21
  266. package/public/cli/commands/invites-module.js +54 -23
  267. package/public/cli/commands/levels-module.js +78 -35
  268. package/public/cli/commands/limits-module.js +62 -27
  269. package/public/cli/commands/membership-type.js +34 -13
  270. package/public/cli/commands/membership-types-module.js +36 -14
  271. package/public/cli/commands/memberships-module.js +88 -40
  272. package/public/cli/commands/migrate-file.js +32 -12
  273. package/public/cli/commands/node-type-registry.js +88 -18
  274. package/public/cli/commands/object.js +40 -16
  275. package/public/cli/commands/org-admin-grant.js +40 -16
  276. package/public/cli/commands/org-chart-edge-grant.js +44 -18
  277. package/public/cli/commands/org-chart-edge.js +42 -17
  278. package/public/cli/commands/org-claimed-invite.js +40 -16
  279. package/public/cli/commands/org-get-managers-record.js +30 -11
  280. package/public/cli/commands/org-get-subordinates-record.js +30 -11
  281. package/public/cli/commands/org-grant.js +42 -17
  282. package/public/cli/commands/org-invite.js +54 -23
  283. package/public/cli/commands/org-limit-default.js +32 -12
  284. package/public/cli/commands/org-limit.js +38 -15
  285. package/public/cli/commands/org-member.js +34 -13
  286. package/public/cli/commands/org-membership-default.js +44 -18
  287. package/public/cli/commands/org-membership.js +58 -25
  288. package/public/cli/commands/org-owner-grant.js +40 -16
  289. package/public/cli/commands/org-permission-default.js +32 -12
  290. package/public/cli/commands/org-permission.js +36 -14
  291. package/public/cli/commands/permissions-module.js +60 -26
  292. package/public/cli/commands/phone-number.js +42 -17
  293. package/public/cli/commands/phone-numbers-module.js +40 -16
  294. package/public/cli/commands/policy.js +60 -26
  295. package/public/cli/commands/primary-key-constraint.js +52 -22
  296. package/public/cli/commands/profiles-module.js +62 -27
  297. package/public/cli/commands/ref.js +36 -14
  298. package/public/cli/commands/relation-provision.js +88 -40
  299. package/public/cli/commands/rls-module.js +48 -20
  300. package/public/cli/commands/role-type.js +30 -11
  301. package/public/cli/commands/schema-grant.js +38 -15
  302. package/public/cli/commands/schema.js +54 -23
  303. package/public/cli/commands/secrets-module.js +36 -14
  304. package/public/cli/commands/secure-table-provision.js +62 -27
  305. package/public/cli/commands/sessions-module.js +48 -20
  306. package/public/cli/commands/site-metadatum.js +38 -15
  307. package/public/cli/commands/site-module.js +36 -14
  308. package/public/cli/commands/site-theme.js +34 -13
  309. package/public/cli/commands/site.js +44 -18
  310. package/public/cli/commands/sql-action.js +52 -22
  311. package/public/cli/commands/store.js +36 -14
  312. package/public/cli/commands/table-grant.js +44 -18
  313. package/public/cli/commands/table-template-module.js +44 -18
  314. package/public/cli/commands/table.js +64 -28
  315. package/public/cli/commands/trigger-function.js +38 -15
  316. package/public/cli/commands/trigger.js +52 -22
  317. package/public/cli/commands/unique-constraint.js +54 -23
  318. package/public/cli/commands/user-auth-module.js +78 -35
  319. package/public/cli/commands/user.js +80 -16
  320. package/public/cli/commands/users-module.js +40 -16
  321. package/public/cli/commands/view-grant.js +40 -16
  322. package/public/cli/commands/view-rule.js +38 -15
  323. package/public/cli/commands/view-table.js +34 -13
  324. package/public/cli/commands/view.js +58 -25
  325. package/public/cli/commands.js +3 -3
  326. package/public/cli/executor.d.ts +1 -1
  327. package/public/cli/utils.d.ts +38 -0
  328. package/public/cli/utils.js +96 -0
  329. package/public/orm/index.d.ts +2 -2
  330. package/public/orm/index.js +2 -2
  331. package/public/orm/input-types.d.ts +161 -147
  332. package/public/orm/models/index.d.ts +1 -1
  333. package/public/orm/models/index.js +4 -4
package/auth/cli/utils.js CHANGED
@@ -7,6 +7,12 @@ exports.coerceAnswers = coerceAnswers;
7
7
  exports.stripUndefined = stripUndefined;
8
8
  exports.parseMutationInput = parseMutationInput;
9
9
  exports.unflattenDotNotation = unflattenDotNotation;
10
+ exports.parseIntFlag = parseIntFlag;
11
+ exports.parseStringFlag = parseStringFlag;
12
+ exports.parseOrderByFlag = parseOrderByFlag;
13
+ exports.parseSelectFlag = parseSelectFlag;
14
+ exports.parseFindManyArgs = parseFindManyArgs;
15
+ exports.parseFindFirstArgs = parseFindFirstArgs;
10
16
  exports.buildSelectFromPaths = buildSelectFromPaths;
11
17
  /**
12
18
  * CLI utility functions for type coercion and input handling
@@ -163,6 +169,96 @@ function unflattenDotNotation(answers) {
163
169
  * @param paths - Comma-separated dot-notation field paths (e.g. 'clientMutationId,result.accessToken')
164
170
  * @returns The nested select object for the ORM
165
171
  */
172
+ /**
173
+ * Parse a CLI flag as an integer.
174
+ * Handles minimist delivering numbers or strings depending on the input.
175
+ * Returns undefined when the flag is missing or not a valid number.
176
+ */
177
+ function parseIntFlag(argv, name) {
178
+ const val = argv[name];
179
+ if (typeof val === 'number')
180
+ return val;
181
+ if (typeof val === 'string') {
182
+ const n = parseInt(val, 10);
183
+ return isNaN(n) ? undefined : n;
184
+ }
185
+ return undefined;
186
+ }
187
+ /**
188
+ * Parse a CLI flag as a string.
189
+ * Returns undefined when the flag is missing or not a string.
190
+ */
191
+ function parseStringFlag(argv, name) {
192
+ const val = argv[name];
193
+ return typeof val === 'string' ? val : undefined;
194
+ }
195
+ /**
196
+ * Parse --orderBy flag as a comma-separated list of enum values.
197
+ * e.g. --orderBy NAME_ASC,CREATED_AT_DESC → ['NAME_ASC', 'CREATED_AT_DESC']
198
+ */
199
+ function parseOrderByFlag(argv) {
200
+ const val = argv.orderBy;
201
+ return typeof val === 'string' ? val.split(',') : undefined;
202
+ }
203
+ /**
204
+ * Parse --select flag into a select object, falling back to a default.
205
+ * e.g. --select id,name → { id: true, name: true }
206
+ */
207
+ function parseSelectFlag(argv, defaultSelect) {
208
+ const raw = argv.select;
209
+ return typeof raw === 'string' ? buildSelectFromPaths(raw) : defaultSelect;
210
+ }
211
+ /**
212
+ * Build the full findManyArgs object from CLI argv.
213
+ * Parses all pagination, filtering, ordering, and field selection flags
214
+ * in one call. Accepts an optional `extraWhere` to merge with dot-notation
215
+ * --where flags (used by the search handler to inject search clauses).
216
+ *
217
+ * @example
218
+ * const findManyArgs = parseFindManyArgs(argv, { id: true, name: true });
219
+ * const result = await client.user.findMany(findManyArgs).execute();
220
+ */
221
+ function parseFindManyArgs(argv, defaultSelect, extraWhere) {
222
+ const limit = parseIntFlag(argv, 'limit');
223
+ const last = parseIntFlag(argv, 'last');
224
+ const offset = parseIntFlag(argv, 'offset');
225
+ const after = parseStringFlag(argv, 'after');
226
+ const before = parseStringFlag(argv, 'before');
227
+ const select = parseSelectFlag(argv, defaultSelect);
228
+ const parsed = unflattenDotNotation(argv);
229
+ const where = (parsed.where ?? extraWhere)
230
+ ? { ...(extraWhere ?? {}), ...(parsed.where ?? {}) }
231
+ : undefined;
232
+ const condition = parsed.condition;
233
+ const orderBy = parseOrderByFlag(argv);
234
+ return {
235
+ select,
236
+ ...(limit !== undefined ? { first: limit } : {}),
237
+ ...(after !== undefined ? { after } : {}),
238
+ ...(last !== undefined ? { last } : {}),
239
+ ...(before !== undefined ? { before } : {}),
240
+ ...(offset !== undefined ? { offset } : {}),
241
+ ...(where !== undefined ? { where } : {}),
242
+ ...(condition !== undefined ? { condition } : {}),
243
+ ...(orderBy !== undefined ? { orderBy } : {}),
244
+ };
245
+ }
246
+ /**
247
+ * Build findFirst args from CLI argv.
248
+ * Like parseFindManyArgs but only includes select, where, and condition
249
+ * (no pagination flags — findFirst returns the first matching record).
250
+ */
251
+ function parseFindFirstArgs(argv, defaultSelect) {
252
+ const select = parseSelectFlag(argv, defaultSelect);
253
+ const parsed = unflattenDotNotation(argv);
254
+ const where = parsed.where;
255
+ const condition = parsed.condition;
256
+ return {
257
+ select,
258
+ ...(where !== undefined ? { where } : {}),
259
+ ...(condition !== undefined ? { condition } : {}),
260
+ };
261
+ }
166
262
  function buildSelectFromPaths(paths) {
167
263
  const result = {};
168
264
  const trimmedPaths = paths
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { extractFirst } from 'inquirerer';
7
7
  import { getClient } from '../executor';
8
- import { coerceAnswers, stripUndefined } from '../utils';
8
+ import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
9
9
  const fieldSchema = {
10
10
  id: 'uuid',
11
11
  actorId: 'uuid',
@@ -14,7 +14,7 @@ const fieldSchema = {
14
14
  createdAt: 'string',
15
15
  updatedAt: 'string',
16
16
  };
17
- const usage = '\napp-achievement <command>\n\nCommands:\n list List all appAchievement records\n get Get a appAchievement by ID\n create Create a new appAchievement\n update Update an existing appAchievement\n delete Delete a appAchievement\n\n --help, -h Show this help message\n';
17
+ const usage = '\napp-achievement <command>\n\nCommands:\n list List appAchievement records\n find-first Find first matching appAchievement record\n get Get a appAchievement by ID\n create Create a new appAchievement\n update Update an existing appAchievement\n delete Delete a appAchievement\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
18
18
  export default async (argv, prompter, _options) => {
19
19
  if (argv.help || argv.h) {
20
20
  console.log(usage);
@@ -27,7 +27,7 @@ export default async (argv, prompter, _options) => {
27
27
  type: 'autocomplete',
28
28
  name: 'subcommand',
29
29
  message: 'What do you want to do?',
30
- options: ['list', 'get', 'create', 'update', 'delete'],
30
+ options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
31
31
  },
32
32
  ]);
33
33
  return handleTableSubcommand(answer.subcommand, newArgv, prompter);
@@ -38,6 +38,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
38
38
  switch (subcommand) {
39
39
  case 'list':
40
40
  return handleList(argv, prompter);
41
+ case 'find-first':
42
+ return handleFindFirst(argv, prompter);
41
43
  case 'get':
42
44
  return handleGet(argv, prompter);
43
45
  case 'create':
@@ -51,21 +53,19 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
51
53
  process.exit(1);
52
54
  }
53
55
  }
54
- async function handleList(_argv, _prompter) {
56
+ async function handleList(argv, _prompter) {
55
57
  try {
58
+ const defaultSelect = {
59
+ id: true,
60
+ actorId: true,
61
+ name: true,
62
+ count: true,
63
+ createdAt: true,
64
+ updatedAt: true,
65
+ };
66
+ const findManyArgs = parseFindManyArgs(argv, defaultSelect);
56
67
  const client = getClient();
57
- const result = await client.appAchievement
58
- .findMany({
59
- select: {
60
- id: true,
61
- actorId: true,
62
- name: true,
63
- count: true,
64
- createdAt: true,
65
- updatedAt: true,
66
- },
67
- })
68
- .execute();
68
+ const result = await client.appAchievement.findMany(findManyArgs).execute();
69
69
  console.log(JSON.stringify(result, null, 2));
70
70
  }
71
71
  catch (error) {
@@ -76,6 +76,29 @@ async function handleList(_argv, _prompter) {
76
76
  process.exit(1);
77
77
  }
78
78
  }
79
+ async function handleFindFirst(argv, _prompter) {
80
+ try {
81
+ const defaultSelect = {
82
+ id: true,
83
+ actorId: true,
84
+ name: true,
85
+ count: true,
86
+ createdAt: true,
87
+ updatedAt: true,
88
+ };
89
+ const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
90
+ const client = getClient();
91
+ const result = await client.appAchievement.findFirst(findFirstArgs).execute();
92
+ console.log(JSON.stringify(result, null, 2));
93
+ }
94
+ catch (error) {
95
+ console.error('Failed to find record.');
96
+ if (error instanceof Error) {
97
+ console.error(error.message);
98
+ }
99
+ process.exit(1);
100
+ }
101
+ }
79
102
  async function handleGet(argv, prompter) {
80
103
  try {
81
104
  const answers = await prompter.prompt(argv, [
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { extractFirst } from 'inquirerer';
7
7
  import { getClient } from '../executor';
8
- import { coerceAnswers, stripUndefined } from '../utils';
8
+ import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
9
9
  const fieldSchema = {
10
10
  id: 'uuid',
11
11
  isGrant: 'boolean',
@@ -14,7 +14,7 @@ const fieldSchema = {
14
14
  createdAt: 'string',
15
15
  updatedAt: 'string',
16
16
  };
17
- const usage = '\napp-admin-grant <command>\n\nCommands:\n list List all appAdminGrant records\n get Get a appAdminGrant by ID\n create Create a new appAdminGrant\n update Update an existing appAdminGrant\n delete Delete a appAdminGrant\n\n --help, -h Show this help message\n';
17
+ const usage = '\napp-admin-grant <command>\n\nCommands:\n list List appAdminGrant records\n find-first Find first matching appAdminGrant record\n get Get a appAdminGrant by ID\n create Create a new appAdminGrant\n update Update an existing appAdminGrant\n delete Delete a appAdminGrant\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
18
18
  export default async (argv, prompter, _options) => {
19
19
  if (argv.help || argv.h) {
20
20
  console.log(usage);
@@ -27,7 +27,7 @@ export default async (argv, prompter, _options) => {
27
27
  type: 'autocomplete',
28
28
  name: 'subcommand',
29
29
  message: 'What do you want to do?',
30
- options: ['list', 'get', 'create', 'update', 'delete'],
30
+ options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
31
31
  },
32
32
  ]);
33
33
  return handleTableSubcommand(answer.subcommand, newArgv, prompter);
@@ -38,6 +38,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
38
38
  switch (subcommand) {
39
39
  case 'list':
40
40
  return handleList(argv, prompter);
41
+ case 'find-first':
42
+ return handleFindFirst(argv, prompter);
41
43
  case 'get':
42
44
  return handleGet(argv, prompter);
43
45
  case 'create':
@@ -51,21 +53,19 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
51
53
  process.exit(1);
52
54
  }
53
55
  }
54
- async function handleList(_argv, _prompter) {
56
+ async function handleList(argv, _prompter) {
55
57
  try {
58
+ const defaultSelect = {
59
+ id: true,
60
+ isGrant: true,
61
+ actorId: true,
62
+ grantorId: true,
63
+ createdAt: true,
64
+ updatedAt: true,
65
+ };
66
+ const findManyArgs = parseFindManyArgs(argv, defaultSelect);
56
67
  const client = getClient();
57
- const result = await client.appAdminGrant
58
- .findMany({
59
- select: {
60
- id: true,
61
- isGrant: true,
62
- actorId: true,
63
- grantorId: true,
64
- createdAt: true,
65
- updatedAt: true,
66
- },
67
- })
68
- .execute();
68
+ const result = await client.appAdminGrant.findMany(findManyArgs).execute();
69
69
  console.log(JSON.stringify(result, null, 2));
70
70
  }
71
71
  catch (error) {
@@ -76,6 +76,29 @@ async function handleList(_argv, _prompter) {
76
76
  process.exit(1);
77
77
  }
78
78
  }
79
+ async function handleFindFirst(argv, _prompter) {
80
+ try {
81
+ const defaultSelect = {
82
+ id: true,
83
+ isGrant: true,
84
+ actorId: true,
85
+ grantorId: true,
86
+ createdAt: true,
87
+ updatedAt: true,
88
+ };
89
+ const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
90
+ const client = getClient();
91
+ const result = await client.appAdminGrant.findFirst(findFirstArgs).execute();
92
+ console.log(JSON.stringify(result, null, 2));
93
+ }
94
+ catch (error) {
95
+ console.error('Failed to find record.');
96
+ if (error instanceof Error) {
97
+ console.error(error.message);
98
+ }
99
+ process.exit(1);
100
+ }
101
+ }
79
102
  async function handleGet(argv, prompter) {
80
103
  try {
81
104
  const answers = await prompter.prompt(argv, [
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { extractFirst } from 'inquirerer';
7
7
  import { getClient } from '../executor';
8
- import { coerceAnswers, stripUndefined } from '../utils';
8
+ import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
9
9
  const fieldSchema = {
10
10
  id: 'uuid',
11
11
  permissions: 'string',
@@ -15,7 +15,7 @@ const fieldSchema = {
15
15
  createdAt: 'string',
16
16
  updatedAt: 'string',
17
17
  };
18
- const usage = '\napp-grant <command>\n\nCommands:\n list List all appGrant records\n get Get a appGrant by ID\n create Create a new appGrant\n update Update an existing appGrant\n delete Delete a appGrant\n\n --help, -h Show this help message\n';
18
+ const usage = '\napp-grant <command>\n\nCommands:\n list List appGrant records\n find-first Find first matching appGrant record\n get Get a appGrant by ID\n create Create a new appGrant\n update Update an existing appGrant\n delete Delete a appGrant\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
19
19
  export default async (argv, prompter, _options) => {
20
20
  if (argv.help || argv.h) {
21
21
  console.log(usage);
@@ -28,7 +28,7 @@ export default async (argv, prompter, _options) => {
28
28
  type: 'autocomplete',
29
29
  name: 'subcommand',
30
30
  message: 'What do you want to do?',
31
- options: ['list', 'get', 'create', 'update', 'delete'],
31
+ options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
32
32
  },
33
33
  ]);
34
34
  return handleTableSubcommand(answer.subcommand, newArgv, prompter);
@@ -39,6 +39,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
39
39
  switch (subcommand) {
40
40
  case 'list':
41
41
  return handleList(argv, prompter);
42
+ case 'find-first':
43
+ return handleFindFirst(argv, prompter);
42
44
  case 'get':
43
45
  return handleGet(argv, prompter);
44
46
  case 'create':
@@ -52,22 +54,20 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
52
54
  process.exit(1);
53
55
  }
54
56
  }
55
- async function handleList(_argv, _prompter) {
57
+ async function handleList(argv, _prompter) {
56
58
  try {
59
+ const defaultSelect = {
60
+ id: true,
61
+ permissions: true,
62
+ isGrant: true,
63
+ actorId: true,
64
+ grantorId: true,
65
+ createdAt: true,
66
+ updatedAt: true,
67
+ };
68
+ const findManyArgs = parseFindManyArgs(argv, defaultSelect);
57
69
  const client = getClient();
58
- const result = await client.appGrant
59
- .findMany({
60
- select: {
61
- id: true,
62
- permissions: true,
63
- isGrant: true,
64
- actorId: true,
65
- grantorId: true,
66
- createdAt: true,
67
- updatedAt: true,
68
- },
69
- })
70
- .execute();
70
+ const result = await client.appGrant.findMany(findManyArgs).execute();
71
71
  console.log(JSON.stringify(result, null, 2));
72
72
  }
73
73
  catch (error) {
@@ -78,6 +78,30 @@ async function handleList(_argv, _prompter) {
78
78
  process.exit(1);
79
79
  }
80
80
  }
81
+ async function handleFindFirst(argv, _prompter) {
82
+ try {
83
+ const defaultSelect = {
84
+ id: true,
85
+ permissions: true,
86
+ isGrant: true,
87
+ actorId: true,
88
+ grantorId: true,
89
+ createdAt: true,
90
+ updatedAt: true,
91
+ };
92
+ const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
93
+ const client = getClient();
94
+ const result = await client.appGrant.findFirst(findFirstArgs).execute();
95
+ console.log(JSON.stringify(result, null, 2));
96
+ }
97
+ catch (error) {
98
+ console.error('Failed to find record.');
99
+ if (error instanceof Error) {
100
+ console.error(error.message);
101
+ }
102
+ process.exit(1);
103
+ }
104
+ }
81
105
  async function handleGet(argv, prompter) {
82
106
  try {
83
107
  const answers = await prompter.prompt(argv, [
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { extractFirst } from 'inquirerer';
7
7
  import { getClient } from '../executor';
8
- import { coerceAnswers, stripUndefined } from '../utils';
8
+ import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
9
9
  const fieldSchema = {
10
10
  id: 'uuid',
11
11
  name: 'string',
@@ -16,7 +16,7 @@ const fieldSchema = {
16
16
  createdAt: 'string',
17
17
  updatedAt: 'string',
18
18
  };
19
- const usage = '\napp-level-requirement <command>\n\nCommands:\n list List all appLevelRequirement records\n get Get a appLevelRequirement by ID\n create Create a new appLevelRequirement\n update Update an existing appLevelRequirement\n delete Delete a appLevelRequirement\n\n --help, -h Show this help message\n';
19
+ const usage = '\napp-level-requirement <command>\n\nCommands:\n list List appLevelRequirement records\n find-first Find first matching appLevelRequirement record\n get Get a appLevelRequirement by ID\n create Create a new appLevelRequirement\n update Update an existing appLevelRequirement\n delete Delete a appLevelRequirement\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
20
20
  export default async (argv, prompter, _options) => {
21
21
  if (argv.help || argv.h) {
22
22
  console.log(usage);
@@ -29,7 +29,7 @@ export default async (argv, prompter, _options) => {
29
29
  type: 'autocomplete',
30
30
  name: 'subcommand',
31
31
  message: 'What do you want to do?',
32
- options: ['list', 'get', 'create', 'update', 'delete'],
32
+ options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
33
33
  },
34
34
  ]);
35
35
  return handleTableSubcommand(answer.subcommand, newArgv, prompter);
@@ -40,6 +40,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
40
40
  switch (subcommand) {
41
41
  case 'list':
42
42
  return handleList(argv, prompter);
43
+ case 'find-first':
44
+ return handleFindFirst(argv, prompter);
43
45
  case 'get':
44
46
  return handleGet(argv, prompter);
45
47
  case 'create':
@@ -53,23 +55,21 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
53
55
  process.exit(1);
54
56
  }
55
57
  }
56
- async function handleList(_argv, _prompter) {
58
+ async function handleList(argv, _prompter) {
57
59
  try {
60
+ const defaultSelect = {
61
+ id: true,
62
+ name: true,
63
+ level: true,
64
+ description: true,
65
+ requiredCount: true,
66
+ priority: true,
67
+ createdAt: true,
68
+ updatedAt: true,
69
+ };
70
+ const findManyArgs = parseFindManyArgs(argv, defaultSelect);
58
71
  const client = getClient();
59
- const result = await client.appLevelRequirement
60
- .findMany({
61
- select: {
62
- id: true,
63
- name: true,
64
- level: true,
65
- description: true,
66
- requiredCount: true,
67
- priority: true,
68
- createdAt: true,
69
- updatedAt: true,
70
- },
71
- })
72
- .execute();
72
+ const result = await client.appLevelRequirement.findMany(findManyArgs).execute();
73
73
  console.log(JSON.stringify(result, null, 2));
74
74
  }
75
75
  catch (error) {
@@ -80,6 +80,31 @@ async function handleList(_argv, _prompter) {
80
80
  process.exit(1);
81
81
  }
82
82
  }
83
+ async function handleFindFirst(argv, _prompter) {
84
+ try {
85
+ const defaultSelect = {
86
+ id: true,
87
+ name: true,
88
+ level: true,
89
+ description: true,
90
+ requiredCount: true,
91
+ priority: true,
92
+ createdAt: true,
93
+ updatedAt: true,
94
+ };
95
+ const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
96
+ const client = getClient();
97
+ const result = await client.appLevelRequirement.findFirst(findFirstArgs).execute();
98
+ console.log(JSON.stringify(result, null, 2));
99
+ }
100
+ catch (error) {
101
+ console.error('Failed to find record.');
102
+ if (error instanceof Error) {
103
+ console.error(error.message);
104
+ }
105
+ process.exit(1);
106
+ }
107
+ }
83
108
  async function handleGet(argv, prompter) {
84
109
  try {
85
110
  const answers = await prompter.prompt(argv, [
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { extractFirst } from 'inquirerer';
7
7
  import { getClient } from '../executor';
8
- import { coerceAnswers, stripUndefined } from '../utils';
8
+ import { coerceAnswers, parseFindFirstArgs, parseFindManyArgs, stripUndefined } from '../utils';
9
9
  const fieldSchema = {
10
10
  id: 'uuid',
11
11
  name: 'string',
@@ -15,7 +15,7 @@ const fieldSchema = {
15
15
  createdAt: 'string',
16
16
  updatedAt: 'string',
17
17
  };
18
- const usage = '\napp-level <command>\n\nCommands:\n list List all appLevel records\n get Get a appLevel by ID\n create Create a new appLevel\n update Update an existing appLevel\n delete Delete a appLevel\n\n --help, -h Show this help message\n';
18
+ const usage = '\napp-level <command>\n\nCommands:\n list List appLevel records\n find-first Find first matching appLevel record\n get Get a appLevel by ID\n create Create a new appLevel\n update Update an existing appLevel\n delete Delete a appLevel\n\nList Options:\n --limit <n> Max number of records to return (forward pagination)\n --last <n> Number of records from the end (backward pagination)\n --after <cursor> Cursor for forward pagination\n --before <cursor> Cursor for backward pagination\n --offset <n> Number of records to skip\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.name.equalTo foo)\n --condition.<f>.<op> Condition filter (dot-notation)\n --orderBy <values> Comma-separated ordering values (e.g. NAME_ASC,CREATED_AT_DESC)\n\nFind-First Options:\n --select <fields> Comma-separated list of fields to return\n --where.<field>.<op> Filter (dot-notation, e.g. --where.status.equalTo active)\n --condition.<f>.<op> Condition filter (dot-notation)\n\n --help, -h Show this help message\n';
19
19
  export default async (argv, prompter, _options) => {
20
20
  if (argv.help || argv.h) {
21
21
  console.log(usage);
@@ -28,7 +28,7 @@ export default async (argv, prompter, _options) => {
28
28
  type: 'autocomplete',
29
29
  name: 'subcommand',
30
30
  message: 'What do you want to do?',
31
- options: ['list', 'get', 'create', 'update', 'delete'],
31
+ options: ['list', 'find-first', 'get', 'create', 'update', 'delete'],
32
32
  },
33
33
  ]);
34
34
  return handleTableSubcommand(answer.subcommand, newArgv, prompter);
@@ -39,6 +39,8 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
39
39
  switch (subcommand) {
40
40
  case 'list':
41
41
  return handleList(argv, prompter);
42
+ case 'find-first':
43
+ return handleFindFirst(argv, prompter);
42
44
  case 'get':
43
45
  return handleGet(argv, prompter);
44
46
  case 'create':
@@ -52,22 +54,20 @@ async function handleTableSubcommand(subcommand, argv, prompter) {
52
54
  process.exit(1);
53
55
  }
54
56
  }
55
- async function handleList(_argv, _prompter) {
57
+ async function handleList(argv, _prompter) {
56
58
  try {
59
+ const defaultSelect = {
60
+ id: true,
61
+ name: true,
62
+ description: true,
63
+ image: true,
64
+ ownerId: true,
65
+ createdAt: true,
66
+ updatedAt: true,
67
+ };
68
+ const findManyArgs = parseFindManyArgs(argv, defaultSelect);
57
69
  const client = getClient();
58
- const result = await client.appLevel
59
- .findMany({
60
- select: {
61
- id: true,
62
- name: true,
63
- description: true,
64
- image: true,
65
- ownerId: true,
66
- createdAt: true,
67
- updatedAt: true,
68
- },
69
- })
70
- .execute();
70
+ const result = await client.appLevel.findMany(findManyArgs).execute();
71
71
  console.log(JSON.stringify(result, null, 2));
72
72
  }
73
73
  catch (error) {
@@ -78,6 +78,30 @@ async function handleList(_argv, _prompter) {
78
78
  process.exit(1);
79
79
  }
80
80
  }
81
+ async function handleFindFirst(argv, _prompter) {
82
+ try {
83
+ const defaultSelect = {
84
+ id: true,
85
+ name: true,
86
+ description: true,
87
+ image: true,
88
+ ownerId: true,
89
+ createdAt: true,
90
+ updatedAt: true,
91
+ };
92
+ const findFirstArgs = parseFindFirstArgs(argv, defaultSelect);
93
+ const client = getClient();
94
+ const result = await client.appLevel.findFirst(findFirstArgs).execute();
95
+ console.log(JSON.stringify(result, null, 2));
96
+ }
97
+ catch (error) {
98
+ console.error('Failed to find record.');
99
+ if (error instanceof Error) {
100
+ console.error(error.message);
101
+ }
102
+ process.exit(1);
103
+ }
104
+ }
81
105
  async function handleGet(argv, prompter) {
82
106
  try {
83
107
  const answers = await prompter.prompt(argv, [