@affinidi/cli 2.0.0-beta.9 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +139 -55
  2. package/dist/commands/generate/app.d.ts +5 -0
  3. package/dist/commands/generate/app.js +54 -59
  4. package/dist/commands/generate/app.js.map +1 -1
  5. package/dist/commands/iam/add-principal.js +8 -9
  6. package/dist/commands/iam/add-principal.js.map +1 -1
  7. package/dist/commands/iam/get-policies.js +8 -9
  8. package/dist/commands/iam/get-policies.js.map +1 -1
  9. package/dist/commands/iam/list-principals.js +1 -2
  10. package/dist/commands/iam/list-principals.js.map +1 -1
  11. package/dist/commands/iam/remove-principal.js +8 -9
  12. package/dist/commands/iam/remove-principal.js.map +1 -1
  13. package/dist/commands/iam/update-policies.js +18 -17
  14. package/dist/commands/iam/update-policies.js.map +1 -1
  15. package/dist/commands/login/add-user-to-group.d.ts +1 -1
  16. package/dist/commands/login/add-user-to-group.js +9 -10
  17. package/dist/commands/login/add-user-to-group.js.map +1 -1
  18. package/dist/commands/login/create-config.js +13 -14
  19. package/dist/commands/login/create-config.js.map +1 -1
  20. package/dist/commands/login/create-group.js +3 -4
  21. package/dist/commands/login/create-group.js.map +1 -1
  22. package/dist/commands/login/delete-config.js +5 -6
  23. package/dist/commands/login/delete-config.js.map +1 -1
  24. package/dist/commands/login/delete-group.js +5 -6
  25. package/dist/commands/login/delete-group.js.map +1 -1
  26. package/dist/commands/login/export-configs.d.ts +10 -0
  27. package/dist/commands/login/export-configs.js +67 -0
  28. package/dist/commands/login/export-configs.js.map +1 -0
  29. package/dist/commands/login/export-groups.d.ts +10 -0
  30. package/dist/commands/login/export-groups.js +64 -0
  31. package/dist/commands/login/export-groups.js.map +1 -0
  32. package/dist/commands/login/get-config.js +5 -6
  33. package/dist/commands/login/get-config.js.map +1 -1
  34. package/dist/commands/login/get-group.js +5 -6
  35. package/dist/commands/login/get-group.js.map +1 -1
  36. package/dist/commands/login/import-configs.d.ts +12 -0
  37. package/dist/commands/login/import-configs.js +70 -0
  38. package/dist/commands/login/import-configs.js.map +1 -0
  39. package/dist/commands/login/import-groups.d.ts +12 -0
  40. package/dist/commands/login/import-groups.js +51 -0
  41. package/dist/commands/login/import-groups.js.map +1 -0
  42. package/dist/commands/login/list-configs.js +1 -2
  43. package/dist/commands/login/list-configs.js.map +1 -1
  44. package/dist/commands/login/list-groups.js +1 -2
  45. package/dist/commands/login/list-groups.js.map +1 -1
  46. package/dist/commands/login/list-users-in-group.js +5 -6
  47. package/dist/commands/login/list-users-in-group.js.map +1 -1
  48. package/dist/commands/login/remove-user-from-group.d.ts +2 -2
  49. package/dist/commands/login/remove-user-from-group.js +10 -11
  50. package/dist/commands/login/remove-user-from-group.js.map +1 -1
  51. package/dist/commands/login/update-config.js +11 -12
  52. package/dist/commands/login/update-config.js.map +1 -1
  53. package/dist/commands/project/create-project.js +8 -9
  54. package/dist/commands/project/create-project.js.map +1 -1
  55. package/dist/commands/project/get-active-project.js +5 -6
  56. package/dist/commands/project/get-active-project.js.map +1 -1
  57. package/dist/commands/project/list-projects.js +2 -3
  58. package/dist/commands/project/list-projects.js.map +1 -1
  59. package/dist/commands/project/select-project.js +13 -20
  60. package/dist/commands/project/select-project.js.map +1 -1
  61. package/dist/commands/start.d.ts +0 -3
  62. package/dist/commands/start.js +17 -22
  63. package/dist/commands/start.js.map +1 -1
  64. package/dist/commands/stop.js +5 -4
  65. package/dist/commands/stop.js.map +1 -1
  66. package/dist/commands/token/create-token.d.ts +2 -2
  67. package/dist/commands/token/create-token.js +8 -9
  68. package/dist/commands/token/create-token.js.map +1 -1
  69. package/dist/commands/token/delete-token.js +5 -6
  70. package/dist/commands/token/delete-token.js.map +1 -1
  71. package/dist/commands/token/get-token.d.ts +2 -2
  72. package/dist/commands/token/get-token.js +5 -6
  73. package/dist/commands/token/get-token.js.map +1 -1
  74. package/dist/commands/token/list-tokens.d.ts +2 -2
  75. package/dist/commands/token/list-tokens.js +3 -4
  76. package/dist/commands/token/list-tokens.js.map +1 -1
  77. package/dist/commands/token/update-token.d.ts +2 -2
  78. package/dist/commands/token/update-token.js +8 -9
  79. package/dist/commands/token/update-token.js.map +1 -1
  80. package/dist/commands/whoami.d.ts +1 -4
  81. package/dist/commands/whoami.js +5 -22
  82. package/dist/commands/whoami.js.map +1 -1
  83. package/dist/common/constants.d.ts +5 -11
  84. package/dist/common/constants.js +7 -15
  85. package/dist/common/constants.js.map +1 -1
  86. package/dist/{helpers/generate-error-message.js → common/error-messages.js} +1 -1
  87. package/dist/common/error-messages.js.map +1 -0
  88. package/dist/{helpers/prompt-required-flags.js → common/prompts.js} +5 -5
  89. package/dist/common/prompts.js.map +1 -0
  90. package/dist/{helpers/input-length-validation.d.ts → common/validators.d.ts} +1 -1
  91. package/dist/{helpers/input-length-validation.js → common/validators.js} +4 -4
  92. package/dist/common/validators.js.map +1 -0
  93. package/dist/helpers/app.d.ts +11 -1
  94. package/dist/helpers/app.js +84 -10
  95. package/dist/helpers/app.js.map +1 -1
  96. package/dist/helpers/jwk.d.ts +2 -0
  97. package/dist/helpers/jwk.js +21 -1
  98. package/dist/helpers/jwk.js.map +1 -1
  99. package/dist/services/affinidi/auth/auth-result-page.d.ts +1 -0
  100. package/dist/services/affinidi/auth/{providers/error-login-page.js → auth-result-page.js} +6 -7
  101. package/dist/services/affinidi/auth/auth-result-page.js.map +1 -0
  102. package/dist/services/affinidi/auth/bff-auth-provider.d.ts +30 -0
  103. package/dist/services/affinidi/auth/bff-auth-provider.js +136 -0
  104. package/dist/services/affinidi/auth/bff-auth-provider.js.map +1 -0
  105. package/dist/services/affinidi/auth/types.d.ts +11 -0
  106. package/dist/services/affinidi/auth/types.js.map +1 -0
  107. package/dist/services/affinidi/bff-service.d.ts +32 -0
  108. package/dist/services/affinidi/bff-service.js +195 -0
  109. package/dist/services/affinidi/bff-service.js.map +1 -0
  110. package/dist/services/affinidi/bff-service.types.d.ts +38 -0
  111. package/dist/services/affinidi/{config.js → bff-service.types.js} +1 -1
  112. package/dist/services/affinidi/bff-service.types.js.map +1 -0
  113. package/dist/services/affinidi/{errors/index.js → errors.js} +18 -9
  114. package/dist/services/affinidi/errors.js.map +1 -0
  115. package/dist/services/affinidi/iam/iam.api.d.ts +120 -105
  116. package/dist/services/affinidi/iam/iam.api.js +39 -118
  117. package/dist/services/affinidi/iam/iam.api.js.map +1 -1
  118. package/dist/services/affinidi/iam/index.d.ts +15 -15
  119. package/dist/services/affinidi/iam/index.js +48 -120
  120. package/dist/services/affinidi/iam/index.js.map +1 -1
  121. package/dist/services/affinidi/logger/console-logger-adapter.js.map +1 -0
  122. package/dist/services/affinidi/logger/index.js.map +1 -0
  123. package/dist/services/affinidi/logger/logger-adapter.js.map +1 -0
  124. package/dist/services/affinidi/vp-adapter/index.d.ts +12 -12
  125. package/dist/services/affinidi/vp-adapter/index.js +49 -70
  126. package/dist/services/affinidi/vp-adapter/index.js.map +1 -1
  127. package/dist/services/affinidi/vp-adapter/vp-adapter.api.d.ts +314 -54
  128. package/dist/services/affinidi/vp-adapter/vp-adapter.api.js +81 -15
  129. package/dist/services/affinidi/vp-adapter/vp-adapter.api.js.map +1 -1
  130. package/dist/services/credentials-vault.d.ts +20 -0
  131. package/dist/services/credentials-vault.js +59 -0
  132. package/dist/services/credentials-vault.js.map +1 -0
  133. package/dist/services/env-config.d.ts +35 -0
  134. package/dist/services/env-config.js +39 -0
  135. package/dist/services/env-config.js.map +1 -0
  136. package/package.json +7 -15
  137. package/dist/helpers/generate-error-message.js.map +0 -1
  138. package/dist/helpers/index.d.ts +0 -3
  139. package/dist/helpers/index.js +0 -11
  140. package/dist/helpers/index.js.map +0 -1
  141. package/dist/helpers/input-length-validation.js.map +0 -1
  142. package/dist/helpers/prompt-required-flags.js.map +0 -1
  143. package/dist/hooks/check/check-version.d.ts +0 -17
  144. package/dist/hooks/check/check-version.js +0 -24
  145. package/dist/hooks/check/check-version.js.map +0 -1
  146. package/dist/services/affinidi/adapters/index.d.ts +0 -1
  147. package/dist/services/affinidi/adapters/index.js +0 -5
  148. package/dist/services/affinidi/adapters/index.js.map +0 -1
  149. package/dist/services/affinidi/adapters/logger/console-logger-adapter.js.map +0 -1
  150. package/dist/services/affinidi/adapters/logger/index.js.map +0 -1
  151. package/dist/services/affinidi/adapters/logger/logger-adapter.js.map +0 -1
  152. package/dist/services/affinidi/auth/index.d.ts +0 -62
  153. package/dist/services/affinidi/auth/index.js +0 -131
  154. package/dist/services/affinidi/auth/index.js.map +0 -1
  155. package/dist/services/affinidi/auth/providers/config.d.ts +0 -15
  156. package/dist/services/affinidi/auth/providers/config.js +0 -33
  157. package/dist/services/affinidi/auth/providers/config.js.map +0 -1
  158. package/dist/services/affinidi/auth/providers/error-login-page.d.ts +0 -1
  159. package/dist/services/affinidi/auth/providers/error-login-page.js.map +0 -1
  160. package/dist/services/affinidi/auth/providers/index.d.ts +0 -3
  161. package/dist/services/affinidi/auth/providers/index.js +0 -8
  162. package/dist/services/affinidi/auth/providers/index.js.map +0 -1
  163. package/dist/services/affinidi/auth/providers/ory-pkce.d.ts +0 -47
  164. package/dist/services/affinidi/auth/providers/ory-pkce.js +0 -216
  165. package/dist/services/affinidi/auth/providers/ory-pkce.js.map +0 -1
  166. package/dist/services/affinidi/auth/providers/ory.d.ts +0 -22
  167. package/dist/services/affinidi/auth/providers/ory.js +0 -154
  168. package/dist/services/affinidi/auth/providers/ory.js.map +0 -1
  169. package/dist/services/affinidi/auth/providers/successful-login-page.d.ts +0 -1
  170. package/dist/services/affinidi/auth/providers/successful-login-page.js +0 -110
  171. package/dist/services/affinidi/auth/providers/successful-login-page.js.map +0 -1
  172. package/dist/services/affinidi/auth/providers/types.d.ts +0 -10
  173. package/dist/services/affinidi/auth/providers/types.js.map +0 -1
  174. package/dist/services/affinidi/auth/token.d.ts +0 -54
  175. package/dist/services/affinidi/auth/token.js +0 -121
  176. package/dist/services/affinidi/auth/token.js.map +0 -1
  177. package/dist/services/affinidi/config.d.ts +0 -12
  178. package/dist/services/affinidi/config.js.map +0 -1
  179. package/dist/services/affinidi/errors/index.js.map +0 -1
  180. package/dist/services/affinidi/index.d.ts +0 -24
  181. package/dist/services/affinidi/index.js +0 -52
  182. package/dist/services/affinidi/index.js.map +0 -1
  183. package/dist/services/config/index.d.ts +0 -36
  184. package/dist/services/config/index.js +0 -160
  185. package/dist/services/config/index.js.map +0 -1
  186. package/dist/services/index.d.ts +0 -1
  187. package/dist/services/index.js +0 -6
  188. package/dist/services/index.js.map +0 -1
  189. package/dist/services/urls.d.ts +0 -2
  190. package/dist/services/urls.js +0 -12
  191. package/dist/services/urls.js.map +0 -1
  192. /package/dist/{helpers/generate-error-message.d.ts → common/error-messages.d.ts} +0 -0
  193. /package/dist/{helpers/prompt-required-flags.d.ts → common/prompts.d.ts} +0 -0
  194. /package/dist/services/affinidi/auth/{providers/types.js → types.js} +0 -0
  195. /package/dist/services/affinidi/{errors/index.d.ts → errors.d.ts} +0 -0
  196. /package/dist/services/affinidi/{adapters/logger → logger}/console-logger-adapter.d.ts +0 -0
  197. /package/dist/services/affinidi/{adapters/logger → logger}/console-logger-adapter.js +0 -0
  198. /package/dist/services/affinidi/{adapters/logger → logger}/index.d.ts +0 -0
  199. /package/dist/services/affinidi/{adapters/logger → logger}/index.js +0 -0
  200. /package/dist/services/affinidi/{adapters/logger → logger}/logger-adapter.d.ts +0 -0
  201. /package/dist/services/affinidi/{adapters/logger → logger}/logger-adapter.js +0 -0
package/README.md CHANGED
@@ -11,10 +11,10 @@ Affinidi CLI is a developer tool to easily manage your projects and integration
11
11
 
12
12
  ## Installation
13
13
 
14
- Install the latest beta version of Affinidi CLI
14
+ Install the latest version of Affinidi CLI
15
15
 
16
16
  ```bash
17
- npm install -g @affinidi/cli@beta
17
+ npm install -g @affinidi/cli
18
18
  ```
19
19
 
20
20
  Uninstall the Affinidi CLI
@@ -23,9 +23,15 @@ Uninstall the Affinidi CLI
23
23
  npm uninstall -g @affinidi/cli
24
24
  ```
25
25
 
26
+ Update the Affinidi CLI
27
+
28
+ ```bash
29
+ npm update -g @affinidi/cli
30
+ ```
31
+
26
32
  ## What can I do with Affinidi CLI?
27
33
 
28
- Affinidi CLI is all you need to interact and consume Affinidi services. Optionally you can also use [Affinidi Portal](https://portal.affinidi.com/) or call Affinidi APIs directly.
34
+ Affinidi CLI is all you need to interact and consume Affinidi services. Optionally you can also use [Affinidi Portal](https://portal.affinidi.com) or call Affinidi APIs directly.
29
35
 
30
36
  ### Set up Affinidi Login for your applications
31
37
 
@@ -244,15 +250,14 @@ To check what is the current active project use the command [`affinidi project g
244
250
 
245
251
  To switch the active project use the command [`affinidi project select-project`](#affinidi-project-select-project)
246
252
 
247
- When you authenticate to Affinidi, the first project is set as your active one by default. You can specify which project you want to be active with a flag `affinidi start --project-id <uuid>`
253
+ When you authenticate to Affinidi, the first project is set as your active one by default.
248
254
 
249
255
  ### Session and configuration files
250
256
 
251
- When you authenticate to Affinidi with `affinidi start` the CLI will create a folder with two files in your home directory.
252
-
253
- `~/.affinidi/oAuthCred.json` - Stores your current session credentials. Keep it secret as this allows you to call Affinidi services.
257
+ When you authenticate to Affinidi with `affinidi start` the CLI will store your current session in OS Keychain (on macOS the passwords are managed by the Keychain, on Linux they are managed by the Secret Service API/libsecret, and on Windows they are managed by Credential Vault).
254
258
 
255
- `~/.affinidi/config-v2.json` - Stores user's CLI configurations (currently none)
259
+ NOTE: If system keychain is not available, the CLI will create a folder with a credentials file in your home directory.
260
+ `~/.affinidi/credentials-v2.json` - Stores your current session credentials. Keep it secret as this allows you to call Affinidi services.
256
261
 
257
262
  When you run `affinidi stop` your session information is deleted.
258
263
 
@@ -264,10 +269,6 @@ If you have a technical issue with the CLI's codebase, you can also [create an i
264
269
 
265
270
  ## FAQ
266
271
 
267
- ### A note from Affinidi
268
-
269
- Affinidi CLI is currently in the open beta phase and we are refining our product every day. The Affinidi CLI may be incomplete and may contain errors – they may be unstable and may cause a loss of functionality and data. Use of the Affinidi CLI will be at your own risk. As our engineers seek to improve our platform, we would not have the resources to provide any maintenance or tech support at this time. Please bear with us as we continue to improve the platform.
270
-
271
272
  ### What can I develop?
272
273
 
273
274
  You are only limited by your imagination! Affinidi CLI is a toolbox with which you can build software applications for personal or commercial use.
@@ -288,7 +289,7 @@ Some of our components would also require you to incorporate our end-user notice
288
289
 
289
290
  ### Is Affinidi CLI free for use?
290
291
 
291
- Affinidi CLI is free during the open beta phase, so come onboard and experiment with our tools and see what you can build! We may bill for certain components in the future, but we will inform you beforehand.
292
+ Affinidi CLI itself is free, so come onboard and experiment with our tools and see what you can build! We may bill for certain components in the future, but we will inform you beforehand.
292
293
 
293
294
  ### Is there any limit or cap to my usage of the Affinidi CLI?
294
295
 
@@ -326,8 +327,12 @@ Please note that this FAQ is provided for informational purposes only and is not
326
327
  * [`affinidi login create-group`](#affinidi-login-create-group)
327
328
  * [`affinidi login delete-config`](#affinidi-login-delete-config)
328
329
  * [`affinidi login delete-group`](#affinidi-login-delete-group)
330
+ * [`affinidi login export-configs`](#affinidi-login-export-configs)
331
+ * [`affinidi login export-groups`](#affinidi-login-export-groups)
329
332
  * [`affinidi login get-config`](#affinidi-login-get-config)
330
333
  * [`affinidi login get-group`](#affinidi-login-get-group)
334
+ * [`affinidi login import-configs`](#affinidi-login-import-configs)
335
+ * [`affinidi login import-groups`](#affinidi-login-import-groups)
331
336
  * [`affinidi login list-configs`](#affinidi-login-list-configs)
332
337
  * [`affinidi login list-groups`](#affinidi-login-list-groups)
333
338
  * [`affinidi login list-users-in-group`](#affinidi-login-list-users-in-group)
@@ -412,20 +417,17 @@ _See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blo
412
417
 
413
418
  ## `affinidi generate app`
414
419
 
415
- Generates a NextJS reference application that integrates Affinidi Login. Requires git
420
+ Generates a reference application that integrates Affinidi Login. Requires git
416
421
 
417
422
  ```
418
423
  USAGE
419
- $ affinidi generate app [--json] [--no-color] [--no-input] [-f django|nextjs] [-a affinidi|auth0] [-p <value>]
420
- [--force]
424
+ $ affinidi generate app [--json] [--no-color] [--no-input] [-f <value>] [-a <value>] [-p <value>] [--force]
421
425
 
422
426
  FLAGS
423
- -a, --provider=<option> Authentication provider for the reference app
424
- <options: affinidi|auth0>
425
- -f, --framework=<option> Framework for the reference app
426
- <options: django|nextjs>
427
- -p, --path=<value> Relative or absolute path where reference application should be cloned into
428
- --force Override destination directory if exists
427
+ -a, --provider=<value> Authentication provider for the reference app
428
+ -f, --framework=<value> Framework for the reference app
429
+ -p, --path=<value> Relative or absolute path where reference application should be cloned into
430
+ --force Override destination directory if exists
429
431
 
430
432
  GLOBAL FLAGS
431
433
  --json Format output as json.
@@ -466,12 +468,12 @@ Adds a principal (user or token) to the active project
466
468
 
467
469
  ```
468
470
  USAGE
469
- $ affinidi iam add-principal [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
471
+ $ affinidi iam add-principal [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
470
472
 
471
473
  FLAGS
472
474
  -i, --principal-id=<value> ID of the principal
473
475
  -t, --principal-type=<option> Type of the principal
474
- <options: machine_user|user>
476
+ <options: token|user>
475
477
 
476
478
  GLOBAL FLAGS
477
479
  --json Format output as json.
@@ -486,7 +488,7 @@ DESCRIPTION
486
488
  EXAMPLES
487
489
  $ affinidi iam add-principal -i <uuid>
488
490
 
489
- $ affinidi iam add-principal --principal-id <uuid> --principal-type machine_user
491
+ $ affinidi iam add-principal --principal-id <uuid> --principal-type token
490
492
 
491
493
  FLAG DESCRIPTIONS
492
494
  -i, --principal-id=<value> ID of the principal
@@ -500,12 +502,12 @@ Gets the policies of a principal (user or token)
500
502
 
501
503
  ```
502
504
  USAGE
503
- $ affinidi iam get-policies [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
505
+ $ affinidi iam get-policies [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
504
506
 
505
507
  FLAGS
506
508
  -i, --principal-id=<value> ID of the principal
507
509
  -t, --principal-type=<option> Type of the principal
508
- <options: machine_user|user>
510
+ <options: token|user>
509
511
 
510
512
  GLOBAL FLAGS
511
513
  --json Format output as json.
@@ -521,7 +523,7 @@ DESCRIPTION
521
523
  EXAMPLES
522
524
  $ affinidi iam get-policies -i <uuid>
523
525
 
524
- $ affinidi iam get-policies --principal-id <uuid> --principal-type machine_user
526
+ $ affinidi iam get-policies --principal-id <uuid> --principal-type token
525
527
 
526
528
  FLAG DESCRIPTIONS
527
529
  -i, --principal-id=<value> ID of the principal
@@ -557,12 +559,12 @@ Removes a principal (user or token) from the active project
557
559
 
558
560
  ```
559
561
  USAGE
560
- $ affinidi iam remove-principal [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
562
+ $ affinidi iam remove-principal [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
561
563
 
562
564
  FLAGS
563
565
  -i, --principal-id=<value> ID of the principal
564
566
  -t, --principal-type=<option> Type of the principal
565
- <options: machine_user|user>
567
+ <options: token|user>
566
568
 
567
569
  GLOBAL FLAGS
568
570
  --json Format output as json.
@@ -577,7 +579,7 @@ DESCRIPTION
577
579
  EXAMPLES
578
580
  $ affinidi iam remove-principal -i <uuid>
579
581
 
580
- $ affinidi iam remove-principal --principal-id <uuid> --principal-type machine_user
582
+ $ affinidi iam remove-principal --principal-id <uuid> --principal-type token
581
583
 
582
584
  FLAG DESCRIPTIONS
583
585
  -i, --principal-id=<value> ID of the principal
@@ -591,13 +593,13 @@ Updates the policies of a principal (user or token) in the active project
591
593
 
592
594
  ```
593
595
  USAGE
594
- $ affinidi iam update-policies [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user] [-f <value>]
596
+ $ affinidi iam update-policies [--json] [--no-color] [--no-input] [-i <value>] [-t token|user] [-f <value>]
595
597
 
596
598
  FLAGS
597
599
  -f, --file=<value> Location of a json file containing principal policies
598
600
  -i, --principal-id=<value> ID of the principal
599
601
  -t, --principal-type=<option> Type of the principal
600
- <options: machine_user|user>
602
+ <options: token|user>
601
603
 
602
604
  GLOBAL FLAGS
603
605
  --json Format output as json.
@@ -613,7 +615,7 @@ DESCRIPTION
613
615
  EXAMPLES
614
616
  $ affinidi iam update-policies -i <uuid>
615
617
 
616
- $ affinidi iam update-policies --principal-id <uuid> --principal-type machine_user --file policies.json
618
+ $ affinidi iam update-policies --principal-id <uuid> --principal-type token --file policies.json
617
619
 
618
620
  FLAG DESCRIPTIONS
619
621
  -i, --principal-id=<value> ID of the principal
@@ -627,11 +629,11 @@ Adds a user to a user group
627
629
 
628
630
  ```
629
631
  USAGE
630
- $ affinidi login add-user-to-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-sub <value>]
632
+ $ affinidi login add-user-to-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-id <value>]
631
633
 
632
634
  FLAGS
633
635
  --group-name=<value> Name of the user group
634
- --user-sub=<value> Subject of the user. Currently the user's DID is supported.
636
+ --user-id=<value> Id of the user. Currently the user's DID is supported.
635
637
 
636
638
  GLOBAL FLAGS
637
639
  --json Format output as json.
@@ -639,7 +641,7 @@ GLOBAL FLAGS
639
641
  --no-input Disables all the interactive prompts
640
642
 
641
643
  EXAMPLES
642
- $ affinidi login add-user-to-group --group-name my_group --user-sub did:key:12345
644
+ $ affinidi login add-user-to-group --group-name my_group --user-id did:key:12345
643
645
  ```
644
646
 
645
647
  ## `affinidi login create-config`
@@ -757,6 +759,52 @@ EXAMPLES
757
759
  $ affinidi login delete-group --name my_group
758
760
  ```
759
761
 
762
+ ## `affinidi login export-configs`
763
+
764
+ Export selected login configurations of your active project
765
+
766
+ ```
767
+ USAGE
768
+ $ affinidi login export-configs [--json] [--no-color] [--no-input] [-i <value>] [-p <value>]
769
+
770
+ FLAGS
771
+ -i, --ids=<value> IDs of the login configurations to export, separated by space
772
+ -p, --path=<value> Relative or absolute path where configurations should be exported
773
+
774
+ GLOBAL FLAGS
775
+ --json Format output as json.
776
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
777
+ --no-input Disables all the interactive prompts
778
+
779
+ EXAMPLES
780
+ $ affinidi login export-configs
781
+
782
+ $ affinidi login export-configs --ids "configurationId1 configurationId2" --path "../my-configs.json"
783
+ ```
784
+
785
+ ## `affinidi login export-groups`
786
+
787
+ Export selected user groups with its users
788
+
789
+ ```
790
+ USAGE
791
+ $ affinidi login export-groups [--json] [--no-color] [--no-input] [-n <value>] [-p <value>]
792
+
793
+ FLAGS
794
+ -n, --names=<value> Group names to export, separated by space
795
+ -p, --path=<value> Relative or absolute path where user groups should be exported
796
+
797
+ GLOBAL FLAGS
798
+ --json Format output as json.
799
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
800
+ --no-input Disables all the interactive prompts
801
+
802
+ EXAMPLES
803
+ $ affinidi login export-groups
804
+
805
+ $ affinidi login export-groups --names "groupName1 groupName2" --path "../my-user-groups.json"
806
+ ```
807
+
760
808
  ## `affinidi login get-config`
761
809
 
762
810
  Gets the details of a login configuration in your active project
@@ -801,6 +849,50 @@ EXAMPLES
801
849
  $ affinidi login get-group --name my_group
802
850
  ```
803
851
 
852
+ ## `affinidi login import-configs`
853
+
854
+ Import login configurations in your active project
855
+
856
+ ```
857
+ USAGE
858
+ $ affinidi login import-configs [--json] [--no-color] [--no-input] [-p <value>]
859
+
860
+ FLAGS
861
+ -p, --path=<value> Path to file with configurations that should be imported
862
+
863
+ GLOBAL FLAGS
864
+ --json Format output as json.
865
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
866
+ --no-input Disables all the interactive prompts
867
+
868
+ EXAMPLES
869
+ $ affinidi login import-configs
870
+
871
+ $ affinidi login import-configs --path "../my-configs.json"
872
+ ```
873
+
874
+ ## `affinidi login import-groups`
875
+
876
+ Import groups with its users
877
+
878
+ ```
879
+ USAGE
880
+ $ affinidi login import-groups [--json] [--no-color] [--no-input] [-p <value>]
881
+
882
+ FLAGS
883
+ -p, --path=<value> Path to file with groups that should be imported
884
+
885
+ GLOBAL FLAGS
886
+ --json Format output as json.
887
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
888
+ --no-input Disables all the interactive prompts
889
+
890
+ EXAMPLES
891
+ $ affinidi login import-groups
892
+
893
+ $ affinidi login import-groups --path "../my-groups.json"
894
+ ```
895
+
804
896
  ## `affinidi login list-configs`
805
897
 
806
898
  Lists login configurations in your active project
@@ -861,12 +953,11 @@ Removes a user from a user group
861
953
 
862
954
  ```
863
955
  USAGE
864
- $ affinidi login remove-user-from-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-mapping-id
865
- <value>]
956
+ $ affinidi login remove-user-from-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-id <value>]
866
957
 
867
958
  FLAGS
868
- --group-name=<value> Name of the user group
869
- --user-mapping-id=<value> ID of the user mapping record
959
+ --group-name=<value> Name of the user group
960
+ --user-id=<value> ID of the user
870
961
 
871
962
  GLOBAL FLAGS
872
963
  --json Format output as json.
@@ -874,7 +965,7 @@ GLOBAL FLAGS
874
965
  --no-input Disables all the interactive prompts
875
966
 
876
967
  EXAMPLES
877
- $ affinidi login remove-user-from-group --group-name my_group --user-mapping-id <value>
968
+ $ affinidi login remove-user-from-group --group-name my_group --user-id did:key:12345
878
969
  ```
879
970
 
880
971
  ## `affinidi login update-config`
@@ -925,7 +1016,7 @@ FLAG DESCRIPTIONS
925
1016
 
926
1017
  ## `affinidi project create-project`
927
1018
 
928
- Creates a project
1019
+ Creates a project and sets it as the active project
929
1020
 
930
1021
  ```
931
1022
  USAGE
@@ -1026,10 +1117,7 @@ Log in to Affinidi
1026
1117
 
1027
1118
  ```
1028
1119
  USAGE
1029
- $ affinidi start [--json] [--no-color] [--no-input] [-i <value>]
1030
-
1031
- FLAGS
1032
- -i, --project-id=<value> ID of the project to set as active
1120
+ $ affinidi start [--json] [--no-color] [--no-input]
1033
1121
 
1034
1122
  GLOBAL FLAGS
1035
1123
  --json Format output as json.
@@ -1038,13 +1126,9 @@ GLOBAL FLAGS
1038
1126
 
1039
1127
  EXAMPLES
1040
1128
  $ affinidi start
1041
-
1042
- $ affinidi start -i <project-id>
1043
-
1044
- $ affinidi start --project-id <project-id>
1045
1129
  ```
1046
1130
 
1047
- _See code: [dist/commands/start.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.8/dist/commands/start.ts)_
1131
+ _See code: [dist/commands/start.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0/dist/commands/start.ts)_
1048
1132
 
1049
1133
  ## `affinidi stop`
1050
1134
 
@@ -1063,7 +1147,7 @@ EXAMPLES
1063
1147
  $ affinidi stop
1064
1148
  ```
1065
1149
 
1066
- _See code: [dist/commands/stop.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.8/dist/commands/stop.ts)_
1150
+ _See code: [dist/commands/stop.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0/dist/commands/stop.ts)_
1067
1151
 
1068
1152
  ## `affinidi token create-token`
1069
1153
 
@@ -1183,7 +1267,7 @@ EXAMPLES
1183
1267
 
1184
1268
  ## `affinidi whoami`
1185
1269
 
1186
- Returns user's subject and principalId from his active session
1270
+ Returns user's subject, projects, and token details from the current session.
1187
1271
 
1188
1272
  ```
1189
1273
  USAGE
@@ -1198,5 +1282,5 @@ EXAMPLES
1198
1282
  $ affinidi whoami
1199
1283
  ```
1200
1284
 
1201
- _See code: [dist/commands/whoami.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.8/dist/commands/whoami.ts)_
1285
+ _See code: [dist/commands/whoami.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0/dist/commands/whoami.ts)_
1202
1286
  <!-- commandsstop -->
@@ -1,5 +1,9 @@
1
1
  import { BaseCommand } from '../../common';
2
2
  export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
3
+ static apps: any;
4
+ static providers: string[];
5
+ static frameworks: string[];
6
+ static libraries: Map<string, string[]>;
3
7
  static summary: string;
4
8
  static examples: string[];
5
9
  static flags: {
@@ -8,5 +12,6 @@ export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
8
12
  path: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
13
  force: import("@oclif/core/lib/interfaces/parser").BooleanFlag<boolean>;
10
14
  };
15
+ init(): Promise<void>;
11
16
  run(): Promise<void>;
12
17
  }
@@ -7,29 +7,46 @@ const core_1 = require("@oclif/core");
7
7
  const errors_1 = require("@oclif/core/lib/errors");
8
8
  const zod_1 = tslib_1.__importDefault(require("zod"));
9
9
  const common_1 = require("../../common");
10
- const helpers_1 = require("../../helpers");
10
+ const error_messages_1 = require("../../common/error-messages");
11
+ const prompts_2 = require("../../common/prompts");
12
+ const validators_1 = require("../../common/validators");
11
13
  const app_1 = require("../../helpers/app");
12
14
  const degit_1 = require("../../helpers/degit");
13
- const generate_error_message_1 = require("../../helpers/generate-error-message");
14
- const input_length_validation_1 = require("../../helpers/input-length-validation");
15
- const affinidi_1 = require("../../services/affinidi");
16
15
  const vp_adapter_1 = require("../../services/affinidi/vp-adapter");
17
16
  const auth0_1 = require("../../services/generator/auth0");
18
17
  const env_configurer_1 = require("../../services/generator/env-configurer");
18
+ const APPS_INFORMATION_GITHUB_LOCATION = 'samples/apps.json';
19
19
  const APPS_GITHUB_LOCATION = 'affinidi/reference-app-affinidi-vault/samples';
20
20
  class GenerateApp extends common_1.BaseCommand {
21
+ async init() {
22
+ GenerateApp.apps = await (0, app_1.getApps)(APPS_INFORMATION_GITHUB_LOCATION);
23
+ const { providers, frameworks, libraries } = (0, app_1.getSupportedAppsInformation)(GenerateApp.apps);
24
+ GenerateApp.providers = providers;
25
+ GenerateApp.frameworks = frameworks;
26
+ GenerateApp.libraries = libraries;
27
+ GenerateApp.flags.framework = core_1.Flags.string({
28
+ char: 'f',
29
+ summary: 'Framework for the reference app',
30
+ options: frameworks,
31
+ });
32
+ GenerateApp.flags.provider = core_1.Flags.string({
33
+ char: 'a',
34
+ summary: 'Authentication provider for the reference app',
35
+ options: providers,
36
+ });
37
+ }
21
38
  async run() {
22
39
  const { flags } = await this.parse(GenerateApp);
23
40
  if (flags['no-input']) {
24
41
  if (!flags.provider)
25
- throw new errors_1.CLIError((0, generate_error_message_1.giveFlagInputErrorMessage)('provider'));
42
+ throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('provider'));
26
43
  if (!flags.framework)
27
- throw new errors_1.CLIError((0, generate_error_message_1.giveFlagInputErrorMessage)('framework'));
44
+ throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('framework'));
28
45
  }
29
46
  const provider = flags.provider ??
30
47
  (await (0, prompts_1.select)({
31
48
  message: 'Select the provider for the reference app.',
32
- choices: Object.values(common_1.RefAppProvider).map((value) => ({
49
+ choices: GenerateApp.providers.map((value) => ({
33
50
  name: value,
34
51
  value,
35
52
  })),
@@ -37,21 +54,21 @@ class GenerateApp extends common_1.BaseCommand {
37
54
  const framework = flags.framework ??
38
55
  (await (0, prompts_1.select)({
39
56
  message: 'Select the framework for the reference app.',
40
- choices: Object.values(common_1.RefAppFramework).map((value) => ({
57
+ choices: GenerateApp.frameworks.map((value) => ({
41
58
  name: value,
42
59
  value,
43
60
  })),
44
61
  }));
45
- const promptFlags = await (0, helpers_1.promptRequiredParameters)(['path'], flags);
62
+ const promptFlags = await (0, prompts_2.promptRequiredParameters)(['path'], flags);
46
63
  promptFlags.framework = framework;
47
64
  promptFlags.provider = provider;
48
65
  const schema = zod_1.default.object({
49
- path: zod_1.default.string().max(input_length_validation_1.INPUT_LIMIT),
50
- framework: zod_1.default.string().max(input_length_validation_1.INPUT_LIMIT),
51
- provider: zod_1.default.string().max(input_length_validation_1.INPUT_LIMIT),
66
+ path: zod_1.default.string().max(validators_1.INPUT_LIMIT),
67
+ framework: zod_1.default.string().max(validators_1.INPUT_LIMIT),
68
+ provider: zod_1.default.string().max(validators_1.INPUT_LIMIT),
52
69
  });
53
70
  const validatedFlags = schema.parse(promptFlags);
54
- const appName = (0, app_1.getAppName)(framework, provider);
71
+ const appName = (0, app_1.getAppName)(framework, provider, GenerateApp.libraries);
55
72
  core_1.ux.action.start('Generating reference application');
56
73
  await (0, degit_1.cloneWithDegit)(`${APPS_GITHUB_LOCATION}/${appName}`, validatedFlags.path, flags.force);
57
74
  core_1.ux.action.stop('Generated successfully!');
@@ -61,62 +78,40 @@ class GenerateApp extends common_1.BaseCommand {
61
78
  });
62
79
  if (configure) {
63
80
  core_1.ux.action.start('Fetching available login configurations');
64
- const configs = await vp_adapter_1.vpAdapterService.listLoginConfigurations(affinidi_1.clientSDK.config.getProjectToken()?.projectAccessToken);
81
+ const configs = await vp_adapter_1.vpAdapterService.listLoginConfigurations();
65
82
  core_1.ux.action.stop('Fetched successfully!');
66
83
  const choices = configs.configurations.map((config) => ({
67
84
  value: {
68
- id: config.id,
85
+ id: config.configurationId,
69
86
  auth: config.auth,
70
87
  },
71
- name: `${config.name} [id: ${config.id}]`,
88
+ name: `${config.name} [id: ${config.configurationId}]`,
72
89
  }));
73
90
  const selectedConfig = await (0, prompts_1.select)({
74
91
  message: 'Select a login configuration to use in your reference application',
75
92
  choices,
76
93
  });
77
- const clientSecret = (0, input_length_validation_1.validateInputLength)(await (0, password_1.default)({
94
+ const clientSecret = (0, validators_1.validateInputLength)(await (0, password_1.default)({
78
95
  message: "What is the login configuration's client secret?",
79
96
  mask: true,
80
- }), input_length_validation_1.INPUT_LIMIT);
81
- if (framework === common_1.RefAppFramework.NEXTJS) {
82
- if (provider === common_1.RefAppProvider.AFFINIDI) {
83
- core_1.ux.action.start('Configuring reference application');
84
- await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
85
- core_1.ux.action.stop('Configured successfully!');
86
- }
87
- else if (provider === common_1.RefAppProvider.AUTH0) {
88
- const domain = (0, input_length_validation_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), input_length_validation_1.INPUT_LIMIT);
89
- const accessToken = (0, input_length_validation_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), input_length_validation_1.TOKEN_LIMIT);
90
- core_1.ux.action.start('Creating Auth0 resources and configuring reference application');
91
- const socialConnectionName = `Affinidi-${common_1.RefAppFramework.NEXTJS}`;
92
- const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, socialConnectionName, {
93
- callbackUrl: 'http://localhost:3000/api/auth/callback/auth0',
94
- logOutUrl: 'http://localhost:3000',
95
- webOriginUrl: 'http://localhost:3000',
96
- });
97
- await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, auth0ClientId, auth0ClientSecret, domain, connectionName);
98
- core_1.ux.action.stop('Configured successfully!');
99
- }
97
+ }), validators_1.INPUT_LIMIT);
98
+ if (provider === common_1.RefAppProvider.AFFINIDI) {
99
+ core_1.ux.action.start('Configuring reference application');
100
+ await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
101
+ core_1.ux.action.stop('Configured successfully!');
100
102
  }
101
- else if (framework === common_1.RefAppFramework.DJANGO) {
102
- if (provider === common_1.RefAppProvider.AFFINIDI) {
103
- core_1.ux.action.start('Configuring reference application');
104
- await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
105
- core_1.ux.action.stop('Configured successfully!');
106
- }
107
- else if (provider === common_1.RefAppProvider.AUTH0) {
108
- const domain = (0, input_length_validation_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), input_length_validation_1.INPUT_LIMIT);
109
- const accessToken = (0, input_length_validation_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), input_length_validation_1.TOKEN_LIMIT);
110
- core_1.ux.action.start('Creating Auth0 resources and configuring reference application');
111
- const socialConnectionName = `Affinidi-${common_1.RefAppFramework.DJANGO}`;
112
- const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, socialConnectionName, {
113
- callbackUrl: 'http://localhost:8000/callback',
114
- logOutUrl: 'http://localhost:8000',
115
- webOriginUrl: 'http://localhost:8000',
116
- });
117
- await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, auth0ClientId, auth0ClientSecret, domain);
118
- core_1.ux.action.stop('Configured successfully!');
119
- }
103
+ else if (provider === common_1.RefAppProvider.AUTH0) {
104
+ const domain = (0, validators_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), validators_1.INPUT_LIMIT);
105
+ const accessToken = (0, validators_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), validators_1.TOKEN_LIMIT);
106
+ core_1.ux.action.start('Creating Auth0 resources and configuring reference application');
107
+ const socialConnectionName = `Affinidi-${framework}`;
108
+ const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, socialConnectionName, {
109
+ callbackUrl: GenerateApp.apps.appName.redirectUris.callbackUrl,
110
+ logOutUrl: GenerateApp.apps.appName.redirectUris.logOutUrl,
111
+ webOriginUrl: GenerateApp.apps.appName.redirectUris.webOriginUrl,
112
+ });
113
+ await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, auth0ClientId, auth0ClientSecret, domain, connectionName);
114
+ core_1.ux.action.stop('Configured successfully!');
120
115
  }
121
116
  }
122
117
  }
@@ -124,7 +119,9 @@ class GenerateApp extends common_1.BaseCommand {
124
119
  }
125
120
  }
126
121
  exports.default = GenerateApp;
127
- GenerateApp.summary = 'Generates a NextJS reference application that integrates Affinidi Login. Requires git';
122
+ GenerateApp.providers = [];
123
+ GenerateApp.frameworks = [];
124
+ GenerateApp.summary = 'Generates a reference application that integrates Affinidi Login. Requires git';
128
125
  GenerateApp.examples = [
129
126
  '<%= config.bin %> <%= command.id %>',
130
127
  '<%= config.bin %> <%= command.id %> -p "../my-app" -f django -a affinidi',
@@ -134,12 +131,10 @@ GenerateApp.flags = {
134
131
  framework: core_1.Flags.string({
135
132
  char: 'f',
136
133
  summary: 'Framework for the reference app',
137
- options: Object.values(common_1.RefAppFramework),
138
134
  }),
139
135
  provider: core_1.Flags.string({
140
136
  char: 'a',
141
137
  summary: 'Authentication provider for the reference app',
142
- options: Object.values(common_1.RefAppProvider),
143
138
  }),
144
139
  path: core_1.Flags.string({
145
140
  char: 'p',
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;AAAA,0EAAyC;AACzC,+CAA0D;AAC1D,sCAAuC;AACvC,mDAAiD;AACjD,sDAAmB;AACnB,yCAA2E;AAC3E,2CAAwD;AACxD,2CAA8C;AAC9C,+CAAoD;AACpD,iFAAgF;AAChF,mFAAqG;AACrG,sDAAmD;AACnD,mEAAqE;AACrE,0DAAqE;AACrE,4EAAiF;AAEjF,MAAM,oBAAoB,GAAG,+CAA+C,CAAA;AAE5E,MAAqB,WAAY,SAAQ,oBAA+B;IA4B/D,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,MAAM,IAAI,iBAAQ,CAAC,IAAA,kDAAyB,EAAC,UAAU,CAAC,CAAC,CAAA;YAC9E,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,MAAM,IAAI,iBAAQ,CAAC,IAAA,kDAAyB,EAAC,WAAW,CAAC,CAAC,CAAA;SACjF;QACD,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;YACd,CAAC,MAAM,IAAA,gBAAM,EAAC;gBACZ,OAAO,EAAE,4CAA4C;gBACrD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,KAAK;oBACX,KAAK;iBACN,CAAC,CAAC;aACJ,CAAC,CAAC,CAAA;QACL,MAAM,SAAS,GACb,KAAK,CAAC,SAAS;YACf,CAAC,MAAM,IAAA,gBAAM,EAAC;gBACZ,OAAO,EAAE,6CAA6C;gBACtD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAe,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACtD,IAAI,EAAE,KAAK;oBACX,KAAK;iBACN,CAAC,CAAC;aACJ,CAAC,CAAC,CAAA;QACL,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAwB,EAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;QACnE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAE/B,MAAM,MAAM,GAAG,aAAC,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qCAAW,CAAC;YACjC,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qCAAW,CAAC;YACtC,QAAQ,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qCAAW,CAAC;SACtC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,IAAA,gBAAU,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAE/C,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAEnD,MAAM,IAAA,sBAAc,EAAC,GAAG,oBAAoB,IAAI,OAAO,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAE5F,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAEzC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACtB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAO,EAAC;gBAC9B,OAAO,EAAE,oDAAoD;aAC9D,CAAC,CAAA;YACF,IAAI,SAAS,EAAE;gBACb,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,MAAM,6BAAgB,CAAC,uBAAuB,CAC5D,oBAAS,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,kBAAkB,CACvD,CAAA;gBACD,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;gBACvC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACtD,KAAK,EAAE;wBACL,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB;oBACD,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,EAAE,GAAG;iBAC1C,CAAC,CAAC,CAAA;gBACH,MAAM,cAAc,GAAG,MAAM,IAAA,gBAAM,EAAC;oBAClC,OAAO,EAAE,mEAAmE;oBAC5E,OAAO;iBACR,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,IAAA,6CAAmB,EACtC,MAAM,IAAA,kBAAQ,EAAC;oBACb,OAAO,EAAE,kDAAkD;oBAC3D,IAAI,EAAE,IAAI;iBACX,CAAC,EACF,qCAAW,CACZ,CAAA;gBAED,IAAI,SAAS,KAAK,wBAAe,CAAC,MAAM,EAAE;oBACxC,IAAI,QAAQ,KAAK,uBAAc,CAAC,QAAQ,EAAE;wBACxC,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;wBACpD,MAAM,IAAA,wCAAuB,EAC3B,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,EAC5B,YAAY,EACZ,cAAc,CAAC,IAAI,CAAC,MAAM,CAC3B,CAAA;wBACD,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;qBAC3C;yBAAM,IAAI,QAAQ,KAAK,uBAAc,CAAC,KAAK,EAAE;wBAC5C,MAAM,MAAM,GAAG,IAAA,6CAAmB,EAAC,MAAM,IAAA,eAAK,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,EAAE,qCAAW,CAAC,CAAA;wBAC3G,MAAM,WAAW,GAAG,IAAA,6CAAmB,EACrC,MAAM,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,EAC/D,qCAAW,CACZ,CAAA;wBACD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;wBACjF,MAAM,oBAAoB,GAAG,YAAY,wBAAe,CAAC,MAAM,EAAE,CAAA;wBACjE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,4BAAoB,EACrF,WAAW,EACX,MAAM,EACN,cAAc,CAAC,IAAI,CAAC,QAAQ,EAC5B,YAAY,EACZ,cAAc,CAAC,IAAI,CAAC,MAAM,EAC1B,oBAAoB,EACpB;4BACE,WAAW,EAAE,+CAA+C;4BAC5D,SAAS,EAAE,uBAAuB;4BAClC,YAAY,EAAE,uBAAuB;yBACtC,CACF,CAAA;wBACD,MAAM,IAAA,wCAAuB,EAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;wBAC5G,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;qBAC3C;iBACF;qBAAM,IAAI,SAAS,KAAK,wBAAe,CAAC,MAAM,EAAE;oBAC/C,IAAI,QAAQ,KAAK,uBAAc,CAAC,QAAQ,EAAE;wBACxC,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;wBACpD,MAAM,IAAA,wCAAuB,EAC3B,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,EAC5B,YAAY,EACZ,cAAc,CAAC,IAAI,CAAC,MAAM,CAC3B,CAAA;wBACD,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;qBAC3C;yBAAM,IAAI,QAAQ,KAAK,uBAAc,CAAC,KAAK,EAAE;wBAC5C,MAAM,MAAM,GAAG,IAAA,6CAAmB,EAAC,MAAM,IAAA,eAAK,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,EAAE,qCAAW,CAAC,CAAA;wBAC3G,MAAM,WAAW,GAAG,IAAA,6CAAmB,EACrC,MAAM,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,EAC/D,qCAAW,CACZ,CAAA;wBACD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;wBACjF,MAAM,oBAAoB,GAAG,YAAY,wBAAe,CAAC,MAAM,EAAE,CAAA;wBACjE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,4BAAoB,EACrF,WAAW,EACX,MAAM,EACN,cAAc,CAAC,IAAI,CAAC,QAAQ,EAC5B,YAAY,EACZ,cAAc,CAAC,IAAI,CAAC,MAAM,EAC1B,oBAAoB,EACpB;4BACE,WAAW,EAAE,gCAAgC;4BAC7C,SAAS,EAAE,uBAAuB;4BAClC,YAAY,EAAE,uBAAuB;yBACtC,CACF,CAAA;wBACD,MAAM,IAAA,wCAAuB,EAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAA;wBAC5F,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;qBAC3C;iBACF;aACF;SACF;QAED,IAAI,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAA;IACxG,CAAC;;AA5KH,8BA6KC;AA5KQ,mBAAO,GAAG,uFAAuF,CAAA;AACjG,oBAAQ,GAAG;IAChB,qCAAqC;IACrC,0EAA0E;IAC1E,uGAAuG;CACxG,CAAA;AAEM,iBAAK,GAAG;IACb,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAe,CAAC;KACxC,CAAC;IACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC;KACvC,CAAC;IACF,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,6EAA6E;KACvF,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,0CAA0C;KACpD,CAAC;CACH,CAAA"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"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"}