directus-template-cli 0.3.6 → 0.4.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 (344) hide show
  1. package/README.md +5 -2
  2. package/dist/commands/apply.d.ts +1 -1
  3. package/dist/commands/apply.js +80 -50
  4. package/dist/commands/extract.d.ts +1 -2
  5. package/dist/commands/extract.js +13 -18
  6. package/dist/lib/extract/extract-assets.d.ts +182 -2
  7. package/dist/lib/extract/extract-assets.js +25 -32
  8. package/dist/lib/extract/extract-collections.d.ts +4 -0
  9. package/dist/lib/extract/extract-collections.js +24 -0
  10. package/dist/lib/extract/extract-content.d.ts +1 -1
  11. package/dist/lib/extract/extract-content.js +18 -18
  12. package/dist/lib/extract/extract-dashboards.d.ts +8 -0
  13. package/dist/lib/extract/extract-dashboards.js +42 -0
  14. package/dist/lib/extract/extract-fields.d.ts +4 -0
  15. package/dist/lib/extract/extract-fields.js +30 -0
  16. package/dist/lib/extract/extract-files.js +11 -34
  17. package/dist/lib/extract/extract-flows.d.ts +8 -0
  18. package/dist/lib/extract/extract-flows.js +42 -0
  19. package/dist/lib/extract/extract-folders.d.ts +1 -1
  20. package/dist/lib/extract/extract-folders.js +12 -13
  21. package/dist/lib/extract/extract-permissions.d.ts +1 -1
  22. package/dist/lib/extract/extract-permissions.js +13 -13
  23. package/dist/lib/extract/extract-presets.js +15 -11
  24. package/dist/lib/extract/extract-relations.d.ts +4 -0
  25. package/dist/lib/extract/extract-relations.js +33 -0
  26. package/dist/lib/extract/extract-roles.js +11 -22
  27. package/dist/lib/extract/extract-schema.js +14 -14
  28. package/dist/lib/extract/extract-settings.d.ts +4 -0
  29. package/dist/lib/extract/extract-settings.js +22 -0
  30. package/dist/lib/extract/extract-translations.d.ts +4 -0
  31. package/dist/lib/extract/extract-translations.js +24 -0
  32. package/dist/lib/extract/extract-users.d.ts +1 -1
  33. package/dist/lib/extract/extract-users.js +14 -36
  34. package/dist/lib/extract/index.d.ts +1 -1
  35. package/dist/lib/extract/index.js +27 -32
  36. package/dist/lib/interfaces.d.ts +1 -1
  37. package/dist/lib/load/index.d.ts +1 -1
  38. package/dist/lib/load/index.js +33 -44
  39. package/dist/lib/load/load-collections.d.ts +4 -0
  40. package/dist/lib/load/load-collections.js +66 -0
  41. package/dist/lib/load/load-dashboards.d.ts +2 -1
  42. package/dist/lib/load/load-dashboards.js +33 -3
  43. package/dist/lib/load/load-data.d.ts +1 -1
  44. package/dist/lib/load/load-data.js +87 -60
  45. package/dist/lib/load/load-files.d.ts +1 -1
  46. package/dist/lib/load/load-files.js +23 -20
  47. package/dist/lib/load/load-flows.d.ts +2 -2
  48. package/dist/lib/load/load-flows.js +43 -9
  49. package/dist/lib/load/load-folders.js +15 -11
  50. package/dist/lib/load/load-permissions.d.ts +1 -1
  51. package/dist/lib/load/load-permissions.js +22 -21
  52. package/dist/lib/load/load-presets.d.ts +1 -2
  53. package/dist/lib/load/load-presets.js +16 -19
  54. package/dist/lib/load/load-relations.d.ts +4 -0
  55. package/dist/lib/load/load-relations.js +33 -0
  56. package/dist/lib/load/load-roles.d.ts +1 -1
  57. package/dist/lib/load/load-roles.js +20 -10
  58. package/dist/lib/load/load-schema.d.ts +14 -2
  59. package/dist/lib/load/load-schema.js +85 -10
  60. package/dist/lib/load/load-settings.d.ts +1 -1
  61. package/dist/lib/load/load-settings.js +10 -4
  62. package/dist/lib/load/load-translations.d.ts +1 -0
  63. package/dist/lib/load/load-translations.js +21 -0
  64. package/dist/lib/load/load-users.d.ts +1 -2
  65. package/dist/lib/load/load-users.js +19 -8
  66. package/dist/lib/sdk.d.ts +13 -0
  67. package/dist/lib/sdk.js +26 -0
  68. package/dist/lib/utils/auth.d.ts +2 -2
  69. package/dist/lib/utils/auth.js +12 -11
  70. package/dist/lib/utils/check-template.d.ts +1 -0
  71. package/dist/lib/utils/check-template.js +32 -0
  72. package/dist/lib/utils/filter-fields.js +5 -5
  73. package/dist/lib/utils/get-role-ids.d.ts +55 -0
  74. package/dist/lib/utils/get-role-ids.js +14 -0
  75. package/dist/lib/utils/log-error.d.ts +14 -0
  76. package/dist/lib/utils/log-error.js +25 -0
  77. package/dist/lib/utils/path.d.ts +7 -0
  78. package/dist/lib/utils/path.js +20 -0
  79. package/dist/lib/utils/read-file.d.ts +0 -1
  80. package/dist/lib/utils/read-file.js +7 -9
  81. package/dist/lib/utils/read-templates.js +2 -2
  82. package/dist/lib/utils/system-fields.d.ts +20 -0
  83. package/dist/lib/utils/system-fields.js +159 -0
  84. package/dist/lib/utils/template-defaults.js +8 -11
  85. package/dist/lib/utils/transform-github-url.d.ts +1 -0
  86. package/dist/lib/utils/transform-github-url.js +15 -0
  87. package/dist/lib/utils/validate-url.js +1 -1
  88. package/dist/lib/utils/write-to-file.js +4 -4
  89. package/oclif.manifest.json +34 -16
  90. package/package.json +25 -23
  91. package/dist/lib/api.d.ts +0 -15
  92. package/dist/lib/api.js +0 -37
  93. package/dist/lib/extract/extract-from-endpoint.d.ts +0 -4
  94. package/dist/lib/extract/extract-from-endpoint.js +0 -23
  95. package/dist/lib/load/load-operations.d.ts +0 -1
  96. package/dist/lib/load/load-operations.js +0 -29
  97. package/dist/lib/load/load-panels.d.ts +0 -0
  98. package/dist/lib/load/load-panels.js +0 -0
  99. package/dist/lib/utils/delete-items.d.ts +0 -1
  100. package/dist/lib/utils/delete-items.js +0 -15
  101. package/dist/lib/utils/load-to-destination.d.ts +0 -1
  102. package/dist/lib/utils/load-to-destination.js +0 -14
  103. package/templates/agencyos/README.md +0 -11
  104. package/templates/agencyos/package.json +0 -11
  105. package/templates/agencyos/src/assets/08177527-b867-47e9-b5d5-eab146b3cdba.jpg +0 -0
  106. package/templates/agencyos/src/assets/08242513-ca8f-471f-b69b-82703a19d1e5.svg +0 -14
  107. package/templates/agencyos/src/assets/0dfe66dd-ceba-4dca-8907-03b2dda49443.svg +0 -1
  108. package/templates/agencyos/src/assets/12e02b82-b4a4-4aaf-8ca4-e73c20a41c26.jpeg +0 -0
  109. package/templates/agencyos/src/assets/1f19dd72-a433-481d-9b51-e3cc8e4f33d3.svg +0 -1
  110. package/templates/agencyos/src/assets/1f69c0b8-19b7-49d7-b420-bedad577a079.png +0 -0
  111. package/templates/agencyos/src/assets/21e179ab-72c3-4350-b46a-fadd16f5652e.svg +0 -1
  112. package/templates/agencyos/src/assets/270fa8d1-45a3-4fcb-87d2-27a0248f1daf.jpg +0 -0
  113. package/templates/agencyos/src/assets/27f55be1-7ef5-47c4-87ba-ab9a060ab270.jpeg +0 -0
  114. package/templates/agencyos/src/assets/2b4a0ba0-52c7-4e10-b191-c803d8da6a36.png +0 -0
  115. package/templates/agencyos/src/assets/35a67f1b-d401-4300-a503-b8e583186f2a.svg +0 -11
  116. package/templates/agencyos/src/assets/3eff7dc2-445a-47c5-9503-3f600ecdb5c6.jpeg +0 -0
  117. package/templates/agencyos/src/assets/44a4e780-d59b-4fa5-9b26-1c4b447474d2.jpg +0 -0
  118. package/templates/agencyos/src/assets/4b31c98e-ec03-4b91-bb18-ef55dd199638.jpg +0 -0
  119. package/templates/agencyos/src/assets/5419bf05-9ab2-484b-a69d-d09b18602cf1.svg +0 -1
  120. package/templates/agencyos/src/assets/5a6dfe1e-7e5b-4a5f-9f6c-983777a67c05.svg +0 -1
  121. package/templates/agencyos/src/assets/643faffb-d41d-48ad-9050-881cf495cbb6.jpg +0 -0
  122. package/templates/agencyos/src/assets/6464e61f-455a-4b47-b623-bb12e5251dfe.jpeg +0 -0
  123. package/templates/agencyos/src/assets/6789bc72-ab83-40bf-8152-d6f2bafbc2a8.png +0 -0
  124. package/templates/agencyos/src/assets/68103296-6634-4d66-918a-04b09afe6621.jpeg +0 -0
  125. package/templates/agencyos/src/assets/690c2042-e3ad-46f4-9cd8-095a7b3a1df7.svg +0 -3
  126. package/templates/agencyos/src/assets/6a1ca349-d7ab-4f43-9284-c61671e145f2.svg +0 -22
  127. package/templates/agencyos/src/assets/6dad2008-3af5-407e-827e-da5744223181.svg +0 -1
  128. package/templates/agencyos/src/assets/6ff389c5-3ecb-4219-8f72-f10326aab421.jpg +0 -0
  129. package/templates/agencyos/src/assets/7647f4c2-9880-433a-bb8e-69b0c30ae31e.svg +0 -1
  130. package/templates/agencyos/src/assets/7775c53a-6c2c-453d-8c22-8b5445121d10.jpeg +0 -0
  131. package/templates/agencyos/src/assets/793e9bf7-c646-4588-8865-fe22556070ff.svg +0 -1
  132. package/templates/agencyos/src/assets/87fc0e81-45e4-4c05-8e9a-8e5c759d7aae.png +0 -0
  133. package/templates/agencyos/src/assets/88b95737-7ff4-4a09-8523-362d42caa9f9.jpg +0 -0
  134. package/templates/agencyos/src/assets/8f748634-d77b-4985-b27e-7e1f3559881a.jpeg +0 -0
  135. package/templates/agencyos/src/assets/a104c031-6ad2-4148-ace6-052e28cfda0b.svg +0 -1
  136. package/templates/agencyos/src/assets/ac905071-0643-4337-8f53-48ed45b1ccf2.jpg +0 -0
  137. package/templates/agencyos/src/assets/b1a3fd77-8e62-4678-9d44-333a30eec13b.jpg +0 -0
  138. package/templates/agencyos/src/assets/b210ecec-860f-4057-bab9-18c044b6e129.jpg +0 -0
  139. package/templates/agencyos/src/assets/b9db00d9-535f-4e24-8a46-5f7e5fc65bf2.jpg +0 -0
  140. package/templates/agencyos/src/assets/c0253924-38cd-4ca0-9989-9c0a57ec076a.png +0 -0
  141. package/templates/agencyos/src/assets/ce0b845f-f8d8-4856-b0af-1df4e3a838cc.jpg +0 -0
  142. package/templates/agencyos/src/assets/d0130348-9ead-49d0-b8e7-871cd43921a0.svg +0 -1
  143. package/templates/agencyos/src/assets/d4fd6edc-4cc5-48c1-8bc7-e646924bbdca.jpeg +0 -0
  144. package/templates/agencyos/src/assets/d598a4c0-4e9a-44a3-a72e-49564e34a432.jpg +0 -0
  145. package/templates/agencyos/src/assets/d94c9355-d89e-4229-941a-62b8525fd69a.png +0 -0
  146. package/templates/agencyos/src/assets/df0745c2-b6e3-4b37-b64d-55a4eb0033ab.avif +0 -0
  147. package/templates/agencyos/src/assets/df979753-946b-4d93-954e-e24367388d2c.svg +0 -1
  148. package/templates/agencyos/src/assets/dfa90758-9700-49e4-8fa2-b6cd074811b7.png +0 -0
  149. package/templates/agencyos/src/assets/e15ca910-1567-4f15-b5a0-b802da67f228.jpg +0 -0
  150. package/templates/agencyos/src/assets/eef7d7b1-3bf9-4647-90c1-a16c24161335.svg +0 -4
  151. package/templates/agencyos/src/assets/f1693c44-52e4-4fae-a7d2-b3153a34eb72.jpg +0 -0
  152. package/templates/agencyos/src/assets/f81e1a85-5a9c-41ef-9ef3-6a9349722daa.jpg +0 -0
  153. package/templates/agencyos/src/assets/fbae19f3-8739-4048-a20f-89ebbf59b032.jpg +0 -0
  154. package/templates/agencyos/src/collections.json +0 -3007
  155. package/templates/agencyos/src/content/block_button.json +0 -50
  156. package/templates/agencyos/src/content/block_button_group.json +0 -27
  157. package/templates/agencyos/src/content/block_columns.json +0 -18
  158. package/templates/agencyos/src/content/block_columns_rows.json +0 -47
  159. package/templates/agencyos/src/content/block_cta.json +0 -9
  160. package/templates/agencyos/src/content/block_divider.json +0 -14
  161. package/templates/agencyos/src/content/block_faqs.json +0 -90
  162. package/templates/agencyos/src/content/block_form.json +0 -26
  163. package/templates/agencyos/src/content/block_gallery.json +0 -19
  164. package/templates/agencyos/src/content/block_gallery_files.json +0 -102
  165. package/templates/agencyos/src/content/block_hero.json +0 -20
  166. package/templates/agencyos/src/content/block_html.json +0 -1
  167. package/templates/agencyos/src/content/block_logocloud.json +0 -24
  168. package/templates/agencyos/src/content/block_logocloud_logos.json +0 -50
  169. package/templates/agencyos/src/content/block_quote.json +0 -14
  170. package/templates/agencyos/src/content/block_richtext.json +0 -58
  171. package/templates/agencyos/src/content/block_step_items.json +0 -47
  172. package/templates/agencyos/src/content/block_steps.json +0 -24
  173. package/templates/agencyos/src/content/block_team.json +0 -14
  174. package/templates/agencyos/src/content/block_testimonial_slider_items.json +0 -42
  175. package/templates/agencyos/src/content/block_testimonials.json +0 -13
  176. package/templates/agencyos/src/content/block_video.json +0 -10
  177. package/templates/agencyos/src/content/categories.json +0 -38
  178. package/templates/agencyos/src/content/contacts.json +0 -46
  179. package/templates/agencyos/src/content/conversations.json +0 -1
  180. package/templates/agencyos/src/content/forms.json +0 -129
  181. package/templates/agencyos/src/content/globals.json +0 -52
  182. package/templates/agencyos/src/content/help_articles.json +0 -1
  183. package/templates/agencyos/src/content/help_collections.json +0 -20
  184. package/templates/agencyos/src/content/help_feedback.json +0 -122
  185. package/templates/agencyos/src/content/inbox.json +0 -15
  186. package/templates/agencyos/src/content/messages.json +0 -1
  187. package/templates/agencyos/src/content/navigation.json +0 -34
  188. package/templates/agencyos/src/content/navigation_items.json +0 -185
  189. package/templates/agencyos/src/content/organization_addresses.json +0 -18
  190. package/templates/agencyos/src/content/organizations.json +0 -50
  191. package/templates/agencyos/src/content/organizations_contacts.json +0 -14
  192. package/templates/agencyos/src/content/os_activities.json +0 -23
  193. package/templates/agencyos/src/content/os_activity_contacts.json +0 -7
  194. package/templates/agencyos/src/content/os_deal_contacts.json +0 -9
  195. package/templates/agencyos/src/content/os_deal_stages.json +0 -68
  196. package/templates/agencyos/src/content/os_deals.json +0 -27
  197. package/templates/agencyos/src/content/os_email_templates.json +0 -13
  198. package/templates/agencyos/src/content/os_expenses.json +0 -22
  199. package/templates/agencyos/src/content/os_invoice_items.json +0 -65
  200. package/templates/agencyos/src/content/os_invoices.json +0 -29
  201. package/templates/agencyos/src/content/os_items.json +0 -17
  202. package/templates/agencyos/src/content/os_payment_terms.json +0 -18
  203. package/templates/agencyos/src/content/os_payments.json +0 -291
  204. package/templates/agencyos/src/content/os_project_contacts.json +0 -8
  205. package/templates/agencyos/src/content/os_project_files.json +0 -1
  206. package/templates/agencyos/src/content/os_project_templates.json +0 -467
  207. package/templates/agencyos/src/content/os_project_updates.json +0 -1
  208. package/templates/agencyos/src/content/os_projects.json +0 -50
  209. package/templates/agencyos/src/content/os_proposal_approvals.json +0 -1
  210. package/templates/agencyos/src/content/os_proposal_blocks.json +0 -134
  211. package/templates/agencyos/src/content/os_proposal_contacts.json +0 -8
  212. package/templates/agencyos/src/content/os_proposals.json +0 -33
  213. package/templates/agencyos/src/content/os_settings.json +0 -6
  214. package/templates/agencyos/src/content/os_task_files.json +0 -1
  215. package/templates/agencyos/src/content/os_tasks.json +0 -464
  216. package/templates/agencyos/src/content/os_tax_rates.json +0 -24
  217. package/templates/agencyos/src/content/page_blocks.json +0 -170
  218. package/templates/agencyos/src/content/pages.json +0 -96
  219. package/templates/agencyos/src/content/pages_blog.json +0 -7
  220. package/templates/agencyos/src/content/pages_projects.json +0 -6
  221. package/templates/agencyos/src/content/post_gallery_items.json +0 -32
  222. package/templates/agencyos/src/content/posts.json +0 -235
  223. package/templates/agencyos/src/content/redirects.json +0 -12
  224. package/templates/agencyos/src/content/seo.json +0 -52
  225. package/templates/agencyos/src/content/team.json +0 -128
  226. package/templates/agencyos/src/content/testimonials.json +0 -66
  227. package/templates/agencyos/src/dashboards.json +0 -64
  228. package/templates/agencyos/src/files.json +0 -1129
  229. package/templates/agencyos/src/flows.json +0 -451
  230. package/templates/agencyos/src/folders.json +0 -104
  231. package/templates/agencyos/src/operations.json +0 -717
  232. package/templates/agencyos/src/panels.json +0 -1019
  233. package/templates/agencyos/src/permissions.json +0 -5533
  234. package/templates/agencyos/src/presets.json +0 -2421
  235. package/templates/agencyos/src/public-permissions.json +0 -629
  236. package/templates/agencyos/src/roles.json +0 -46
  237. package/templates/agencyos/src/schema/snapshot.json +0 -39415
  238. package/templates/agencyos/src/settings.json +0 -99
  239. package/templates/agencyos/src/users.json +0 -147
  240. package/templates/website/README.md +0 -15
  241. package/templates/website/package.json +0 -11
  242. package/templates/website/src/assets/004e37f7-765e-4339-8d44-987729e47898.png +0 -0
  243. package/templates/website/src/assets/008b1c0e-bdd3-4c5f-a029-b9c07582a42d.jpg +0 -0
  244. package/templates/website/src/assets/08177527-b867-47e9-b5d5-eab146b3cdba.jpg +0 -0
  245. package/templates/website/src/assets/0dfe66dd-ceba-4dca-8907-03b2dda49443.svg +0 -1
  246. package/templates/website/src/assets/12e02b82-b4a4-4aaf-8ca4-e73c20a41c26.jpeg +0 -0
  247. package/templates/website/src/assets/18bf5269-9986-48c7-b607-01b77283df3b.png +0 -0
  248. package/templates/website/src/assets/1f19dd72-a433-481d-9b51-e3cc8e4f33d3.svg +0 -1
  249. package/templates/website/src/assets/270fa8d1-45a3-4fcb-87d2-27a0248f1daf.jpg +0 -0
  250. package/templates/website/src/assets/27f55be1-7ef5-47c4-87ba-ab9a060ab270.jpeg +0 -0
  251. package/templates/website/src/assets/284c190b-0ebb-4b3e-847d-c260b793b77c.png +0 -0
  252. package/templates/website/src/assets/35a67f1b-d401-4300-a503-b8e583186f2a.svg +0 -11
  253. package/templates/website/src/assets/3ac899c4-4bf9-4733-b2c4-b259c69faf46.png +0 -0
  254. package/templates/website/src/assets/3eff7dc2-445a-47c5-9503-3f600ecdb5c6.jpeg +0 -0
  255. package/templates/website/src/assets/40a0a417-231e-4819-86bf-66e96ec64852.svg +0 -3
  256. package/templates/website/src/assets/45140116-7656-4226-99b6-fd750722a083.svg +0 -3
  257. package/templates/website/src/assets/4b31c98e-ec03-4b91-bb18-ef55dd199638.jpg +0 -0
  258. package/templates/website/src/assets/57c6e801-9ba1-46eb-beb7-96cf7c497c92.svg +0 -1
  259. package/templates/website/src/assets/643faffb-d41d-48ad-9050-881cf495cbb6.jpg +0 -0
  260. package/templates/website/src/assets/6464e61f-455a-4b47-b623-bb12e5251dfe.jpeg +0 -0
  261. package/templates/website/src/assets/68103296-6634-4d66-918a-04b09afe6621.jpeg +0 -0
  262. package/templates/website/src/assets/68ee3ce3-bc8e-4901-b3a6-8a23afda0fa0.jpg +0 -0
  263. package/templates/website/src/assets/6dad2008-3af5-407e-827e-da5744223181.svg +0 -1
  264. package/templates/website/src/assets/72eea8c7-72fe-4ef2-9e57-524f7cb886a4.jpg +0 -0
  265. package/templates/website/src/assets/72f6f5a0-9a07-422f-b82f-b9e295ce5afa.svg +0 -4
  266. package/templates/website/src/assets/7775c53a-6c2c-453d-8c22-8b5445121d10.jpeg +0 -0
  267. package/templates/website/src/assets/7834aacc-d78c-4a55-ba92-d7b5d74188c1.png +0 -0
  268. package/templates/website/src/assets/7a5b47f6-d648-48f9-bf93-4bfafda48940.png +0 -0
  269. package/templates/website/src/assets/7c04cbdd-4b48-41aa-94d7-fc7c17373b1a.png +0 -0
  270. package/templates/website/src/assets/82b872b1-ff96-4af6-b7f1-878e60c3c448.png +0 -0
  271. package/templates/website/src/assets/840ec616-acad-412e-be79-485a702f9a55.svg +0 -1
  272. package/templates/website/src/assets/87fc0e81-45e4-4c05-8e9a-8e5c759d7aae.png +0 -0
  273. package/templates/website/src/assets/8bc1e7b3-b795-46af-bac4-34f7d90b902f.JPG +0 -0
  274. package/templates/website/src/assets/8f748634-d77b-4985-b27e-7e1f3559881a.jpeg +0 -0
  275. package/templates/website/src/assets/9778a2b4-27de-4035-af5a-f58897578787.png +0 -0
  276. package/templates/website/src/assets/a104c031-6ad2-4148-ace6-052e28cfda0b.svg +0 -1
  277. package/templates/website/src/assets/b626a403-5f09-4463-9715-44b2bd34eb26.jpg +0 -0
  278. package/templates/website/src/assets/c38f6e9e-7bb5-46c7-8266-b27ab96a1282.png +0 -0
  279. package/templates/website/src/assets/c983bd13-da09-4c90-8e65-ae6a92093df8.png +0 -0
  280. package/templates/website/src/assets/d0130348-9ead-49d0-b8e7-871cd43921a0.svg +0 -1
  281. package/templates/website/src/assets/d304528e-9000-4530-92cf-bb04891e8d5d.jpg +0 -0
  282. package/templates/website/src/assets/d4fd6edc-4cc5-48c1-8bc7-e646924bbdca.jpeg +0 -0
  283. package/templates/website/src/assets/d598a4c0-4e9a-44a3-a72e-49564e34a432.jpg +0 -0
  284. package/templates/website/src/assets/dfa90758-9700-49e4-8fa2-b6cd074811b7.png +0 -0
  285. package/templates/website/src/assets/e15ca910-1567-4f15-b5a0-b802da67f228.jpg +0 -0
  286. package/templates/website/src/assets/ea18cbf2-3c4f-488b-a68c-2d3a64cc9137.png +0 -0
  287. package/templates/website/src/assets/eb8e4c86-92ac-4697-9634-2e376f5d6015.png +0 -0
  288. package/templates/website/src/assets/f1693c44-52e4-4fae-a7d2-b3153a34eb72.jpg +0 -0
  289. package/templates/website/src/collections.json +0 -1788
  290. package/templates/website/src/content/block_cardgroup.json +0 -26
  291. package/templates/website/src/content/block_cardgroup_cards.json +0 -1
  292. package/templates/website/src/content/block_cardgroup_posts.json +0 -32
  293. package/templates/website/src/content/block_columns.json +0 -21
  294. package/templates/website/src/content/block_columns_rows.json +0 -47
  295. package/templates/website/src/content/block_cta.json +0 -15
  296. package/templates/website/src/content/block_faqs.json +0 -45
  297. package/templates/website/src/content/block_form.json +0 -26
  298. package/templates/website/src/content/block_gallery.json +0 -15
  299. package/templates/website/src/content/block_gallery_files.json +0 -38
  300. package/templates/website/src/content/block_hero.json +0 -145
  301. package/templates/website/src/content/block_html.json +0 -1
  302. package/templates/website/src/content/block_logocloud.json +0 -16
  303. package/templates/website/src/content/block_logocloud_files.json +0 -44
  304. package/templates/website/src/content/block_quote.json +0 -11
  305. package/templates/website/src/content/block_richtext.json +0 -32
  306. package/templates/website/src/content/block_steps.json +0 -14
  307. package/templates/website/src/content/block_steps_items.json +0 -26
  308. package/templates/website/src/content/block_team.json +0 -8
  309. package/templates/website/src/content/block_testimonials.json +0 -13
  310. package/templates/website/src/content/block_testimonials_items.json +0 -26
  311. package/templates/website/src/content/block_video.json +0 -10
  312. package/templates/website/src/content/blog_settings.json +0 -8
  313. package/templates/website/src/content/categories.json +0 -38
  314. package/templates/website/src/content/events.json +0 -1
  315. package/templates/website/src/content/forms.json +0 -92
  316. package/templates/website/src/content/globals.json +0 -57
  317. package/templates/website/src/content/inbox.json +0 -21
  318. package/templates/website/src/content/metrics.json +0 -1
  319. package/templates/website/src/content/navigation.json +0 -30
  320. package/templates/website/src/content/navigation_items.json +0 -140
  321. package/templates/website/src/content/pages.json +0 -123
  322. package/templates/website/src/content/pages_blocks.json +0 -310
  323. package/templates/website/src/content/posts.json +0 -120
  324. package/templates/website/src/content/projects.json +0 -48
  325. package/templates/website/src/content/projects_files.json +0 -44
  326. package/templates/website/src/content/projects_settings.json +0 -6
  327. package/templates/website/src/content/redirects.json +0 -12
  328. package/templates/website/src/content/seo.json +0 -278
  329. package/templates/website/src/content/team.json +0 -132
  330. package/templates/website/src/content/testimonials.json +0 -66
  331. package/templates/website/src/dashboards.json +0 -38
  332. package/templates/website/src/fields.json +0 -27761
  333. package/templates/website/src/files.json +0 -1100
  334. package/templates/website/src/flows.json +0 -131
  335. package/templates/website/src/folders.json +0 -52
  336. package/templates/website/src/operations.json +0 -214
  337. package/templates/website/src/panels.json +0 -433
  338. package/templates/website/src/permissions.json +0 -1556
  339. package/templates/website/src/presets.json +0 -1254
  340. package/templates/website/src/public-permissions.json +0 -511
  341. package/templates/website/src/roles.json +0 -70
  342. package/templates/website/src/schema/snapshot.json +0 -17018
  343. package/templates/website/src/settings.json +0 -66
  344. package/templates/website/src/users.json +0 -194
@@ -1,24 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const api_1 = require("../api");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
5
8
  const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
6
9
  async function loadFolders(dir) {
10
+ const folders = (0, read_file_1.default)('folders', dir);
11
+ core_1.ux.action.start(`Loading ${folders.length} folders`);
7
12
  try {
8
- const folders = await (0, read_file_1.default)("folders", dir);
9
- const folderSkeleton = folders.map((folder) => {
10
- return { id: folder.id, name: folder.name };
11
- });
13
+ const folderSkeleton = folders.map(folder => ({ id: folder.id, name: folder.name }));
12
14
  // Create the folders
13
- const { data } = await api_1.api.post("/folders", folderSkeleton);
14
- // Loop through the folders and update them with relationships
15
- folders.forEach(async (folder) => {
15
+ await sdk_2.api.client.request((0, sdk_1.createFolders)(folderSkeleton));
16
+ // Update the folders with relationships concurrently
17
+ await Promise.all(folders.map(async (folder) => {
16
18
  const { id, ...rest } = folder;
17
- await api_1.api.patch(`/folders/${id}`, rest);
18
- });
19
+ await sdk_2.api.client.request((0, sdk_1.updateFolder)(id, rest));
20
+ }));
19
21
  }
20
22
  catch (error) {
21
- console.log("Error loading Folders", error.response.data.errors);
23
+ (0, log_error_1.default)(error);
22
24
  }
25
+ core_1.ux.action.stop();
26
+ core_1.ux.log('Loaded folders');
23
27
  }
24
28
  exports.default = loadFolders;
@@ -1 +1 @@
1
- export declare function loadPermissions(permissions: any, legacyAdminRoleId: string | number, newAdminRoleId: string | number): Promise<void>;
1
+ export default function loadPermissions(dir: string): Promise<void>;
@@ -1,25 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadPermissions = void 0;
4
3
  const tslib_1 = require("tslib");
5
- const api_1 = require("../api");
6
- const load_to_destination_1 = tslib_1.__importDefault(require("../utils/load-to-destination"));
7
- async function removeallPublicPermissions() {
8
- const { data } = await api_1.api.get("permissions?filter[role][_null]=true&limit=-1");
9
- console.log("Removing all public permissions", data.data);
10
- const ids = data.data.map((i) => i.id);
11
- if (!ids)
12
- return;
13
- await api_1.api.delete("permissions", {
14
- data: ids,
15
- });
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const get_role_ids_1 = tslib_1.__importDefault(require("../utils/get-role-ids"));
8
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
9
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
10
+ async function loadPermissions(dir) {
11
+ const permissions = (0, read_file_1.default)('permissions', dir);
12
+ core_1.ux.action.start(`Loading ${permissions.length} permissions`);
13
+ const { legacyAdminRoleId } = await (0, get_role_ids_1.default)(dir);
14
+ const filteredPermissions = permissions.filter(permission => permission.role !== legacyAdminRoleId);
15
+ for (const permission of filteredPermissions) {
16
+ try {
17
+ await sdk_2.api.client.request((0, sdk_1.createPermission)(permission));
18
+ }
19
+ catch (error) {
20
+ (0, log_error_1.default)(error);
21
+ }
22
+ }
23
+ core_1.ux.action.stop();
24
+ core_1.ux.log('Loaded permissions');
16
25
  }
17
- const clearAdminPermissions = (permissions, legacyAdminRoleId) => {
18
- return permissions.filter((permission) => permission.role !== legacyAdminRoleId);
19
- };
20
- async function loadPermissions(permissions, legacyAdminRoleId, newAdminRoleId) {
21
- await removeallPublicPermissions();
22
- permissions = clearAdminPermissions(permissions, legacyAdminRoleId);
23
- await (0, load_to_destination_1.default)("permissions", permissions);
24
- }
25
- exports.loadPermissions = loadPermissions;
26
+ exports.default = loadPermissions;
@@ -1,2 +1 @@
1
- declare const _default: (presets: any[]) => Promise<void>;
2
- export default _default;
1
+ export default function loadPresets(dir: string): Promise<void>;
@@ -1,28 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const api_1 = require("../api");
4
- exports.default = async (presets) => {
5
- await deleteAllPresets();
6
- const cleanPresets = presets.map((preset) => {
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
8
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
9
+ async function loadPresets(dir) {
10
+ const presets = (0, read_file_1.default)('presets', dir);
11
+ core_1.ux.action.start(`Loading ${presets.length} presets`);
12
+ const cleanPresets = presets.map(preset => {
7
13
  preset.user = null;
8
14
  return preset;
9
15
  });
10
16
  try {
11
- await api_1.api.post("presets", cleanPresets);
17
+ await sdk_2.api.client.request((0, sdk_1.createPresets)(cleanPresets));
12
18
  }
13
19
  catch (error) {
14
- console.log("Error uploading preset", error.response.data.errors);
20
+ (0, log_error_1.default)(error);
15
21
  }
16
- };
17
- const deleteAllPresets = async () => {
18
- try {
19
- const { data: presets } = await api_1.api.get("presets");
20
- const ids = presets.data.map((preset) => preset.id);
21
- await api_1.api.delete("presets", {
22
- data: ids,
23
- });
24
- }
25
- catch (error) {
26
- console.log("Error removing existing presets", error.response.data.errors);
27
- }
28
- };
22
+ core_1.ux.action.stop();
23
+ core_1.ux.log('Loaded presets');
24
+ }
25
+ exports.default = loadPresets;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Load relationships into the Directus instance
3
+ */
4
+ export default function loadRelations(dir: string): Promise<void>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
8
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
9
+ /**
10
+ * Load relationships into the Directus instance
11
+ */
12
+ async function loadRelations(dir) {
13
+ const relations = (0, read_file_1.default)('relations', dir);
14
+ core_1.ux.action.start(`Loading ${relations.length} relations`);
15
+ const relationsToAdd = relations.map(i => {
16
+ delete i.meta.id;
17
+ return i;
18
+ });
19
+ await addRelations(relationsToAdd);
20
+ core_1.ux.action.stop();
21
+ core_1.ux.log('Loaded relations');
22
+ }
23
+ exports.default = loadRelations;
24
+ async function addRelations(relations) {
25
+ for await (const relation of relations) {
26
+ try {
27
+ await sdk_2.api.client.request((0, sdk_1.createRelation)(relation));
28
+ }
29
+ catch (error) {
30
+ (0, log_error_1.default)(error);
31
+ }
32
+ }
33
+ }
@@ -1 +1 @@
1
- export default function loadRoles(roles: any): Promise<void>;
1
+ export default function loadRoles(dir: string): Promise<void>;
@@ -1,21 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const api_1 = require("../api");
4
- async function loadRoles(roles) {
5
- const cleanedUpRoles = roles.map((role) => {
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
8
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
9
+ async function loadRoles(dir) {
10
+ const roles = (0, read_file_1.default)('roles', dir);
11
+ core_1.ux.action.start(`Loading ${roles.length} roles`);
12
+ const cleanedUpRoles = roles.map(role => {
6
13
  delete role.users;
7
14
  return role;
8
15
  });
9
- const adminRole = cleanedUpRoles.find((role) => role.name === "Administrator");
16
+ const adminRole = cleanedUpRoles.find(role => role.name === 'Administrator');
10
17
  // Admin role isn't touched.
11
- const customRoles = cleanedUpRoles.filter((role) => role.name !== "Administrator");
18
+ const customRoles = cleanedUpRoles.filter(role => role.name !== 'Administrator');
12
19
  try {
13
- const { data } = await api_1.api.post("roles", customRoles);
20
+ // Create the custom roles aside from public and admin
21
+ await sdk_2.api.client.request((0, sdk_1.createRoles)(customRoles));
22
+ // Update the admin role
23
+ await sdk_2.api.client.request((0, sdk_1.updateRole)(adminRole.id, adminRole));
14
24
  }
15
- catch {
16
- // maybe the roles already exist
25
+ catch (error) {
26
+ (0, log_error_1.default)(error);
17
27
  }
18
- const adminUpdate = await api_1.api.patch(`roles/${adminRole.id}`, adminRole);
19
- console.log("Seeded Roles");
28
+ core_1.ux.action.stop();
29
+ core_1.ux.log('Loaded roles');
20
30
  }
21
31
  exports.default = loadRoles;
@@ -1,2 +1,14 @@
1
- declare const _default: (dir: string) => Promise<void>;
2
- export default _default;
1
+ export default function loadSchema(dir: string): Promise<void>;
2
+ /**
3
+ * Indicates the kind of change based on comparisons by deep-diff package
4
+ */
5
+ export declare const DiffKind: {
6
+ /** indicates a change occurred within an array */
7
+ A: string;
8
+ /** indicates a property/element was deleted */
9
+ D: string;
10
+ /** indicates a property/element was edited */
11
+ E: string;
12
+ /** indicates a newly added property/element */
13
+ N: string;
14
+ };
@@ -1,20 +1,95 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiffKind = void 0;
3
4
  const tslib_1 = require("tslib");
4
- const api_1 = require("../api");
5
+ /* eslint-disable unicorn/no-array-reduce */
6
+ /* eslint-disable perfectionist/sort-objects */
7
+ const sdk_1 = require("@directus/sdk");
8
+ const core_1 = require("@oclif/core");
9
+ const inquirer = tslib_1.__importStar(require("inquirer"));
10
+ const node_path_1 = tslib_1.__importDefault(require("node:path"));
11
+ const sdk_2 = require("../sdk");
12
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
5
13
  const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
6
- exports.default = async (dir) => {
7
- const schema = (0, read_file_1.default)('snapshot', dir);
8
- const { data } = await api_1.api.post('schema/diff?force', schema);
9
- if (!data.data) {
10
- console.log('No schema changes to apply');
11
- return;
14
+ async function loadSchema(dir) {
15
+ let diff;
16
+ try {
17
+ const schemaDir = node_path_1.default.resolve(dir, 'schema');
18
+ const schema = (0, read_file_1.default)('snapshot', schemaDir);
19
+ // @ts-ignore
20
+ diff = await sdk_2.api.client.request((0, sdk_1.schemaDiff)(schema, true));
21
+ if (!diff) {
22
+ core_1.ux.log('No schema to apply');
23
+ return;
24
+ }
25
+ const diffKeys = ['collections', 'fields', 'relations'];
26
+ const changes = diffKeys.map(table => {
27
+ const tableDiff = diff.diff[table];
28
+ if (!tableDiff) {
29
+ return;
30
+ }
31
+ const tableChanges = tableDiff.reduce((acc, item) => {
32
+ const { kind } = item.diff[0];
33
+ acc[exports.DiffKind[kind]] = acc[exports.DiffKind[kind]] ? acc[exports.DiffKind[kind]] + 1 : 1;
34
+ return acc;
35
+ }, {});
36
+ return {
37
+ table,
38
+ ...tableChanges,
39
+ };
40
+ });
41
+ // Display the changes to be applied in a table using the ux.table method. The table should have the following columns: Table, New, Edit, Delete
42
+ core_1.ux.log('Schema diff summary from current instance:');
43
+ core_1.ux.table(changes, {
44
+ table: {
45
+ get: (row) => row.table,
46
+ minWidth: 20,
47
+ },
48
+ create: {
49
+ get: (row) => row.new || 0,
50
+ minWidth: 5,
51
+ },
52
+ update: {
53
+ get: (row) => row.edit || 0,
54
+ minWidth: 5,
55
+ },
56
+ delete: {
57
+ get: (row) => row.delete || 0,
58
+ minWidth: 5,
59
+ },
60
+ });
61
+ }
62
+ catch (error) {
63
+ (0, log_error_1.default)(error);
64
+ }
65
+ const proceed = await inquirer.prompt([{
66
+ message: 'Applying . This cannot be undone. Continue?',
67
+ name: 'continue',
68
+ type: 'confirm',
69
+ }]);
70
+ if (!proceed.continue) {
71
+ core_1.ux.log('Cancelled applying schema changes and exiting...');
72
+ core_1.ux.exit(0);
12
73
  }
13
74
  try {
14
- await api_1.api.post('schema/apply', data.data);
15
- // console.log('Schema Loaded')
75
+ await sdk_2.api.client.request((0, sdk_1.schemaApply)(diff));
76
+ core_1.ux.log('Loaded schema');
16
77
  }
17
78
  catch (error) {
18
- console.log('Error Applying schema', error.response.data.errors);
79
+ (0, log_error_1.default)(error);
19
80
  }
81
+ }
82
+ exports.default = loadSchema;
83
+ /**
84
+ * Indicates the kind of change based on comparisons by deep-diff package
85
+ */
86
+ exports.DiffKind = {
87
+ /** indicates a change occurred within an array */
88
+ A: 'array',
89
+ /** indicates a property/element was deleted */
90
+ D: 'delete',
91
+ /** indicates a property/element was edited */
92
+ E: 'edit',
93
+ /** indicates a newly added property/element */
94
+ N: 'new',
20
95
  };
@@ -1 +1 @@
1
- export default function loadSettings(settingsObj: any): Promise<void>;
1
+ export default function loadSettings(dir: string): Promise<void>;
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const api_1 = require("../api");
4
- async function loadSettings(settingsObj) {
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const sdk_2 = require("../sdk");
6
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
7
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
8
+ async function loadSettings(dir) {
9
+ const settings = (0, read_file_1.default)('settings', dir);
5
10
  try {
6
- const { data } = await api_1.api.patch('settings', settingsObj);
11
+ // @ts-ignore
12
+ await sdk_2.api.client.request((0, sdk_1.updateSettings)(settings));
7
13
  }
8
14
  catch (error) {
9
- console.log('Error loading settings', error.response.data.errors);
15
+ (0, log_error_1.default)(error);
10
16
  }
11
17
  }
12
18
  exports.default = loadSettings;
@@ -0,0 +1 @@
1
+ export default function loadTranslations(dir: string): Promise<void>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
8
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
9
+ async function loadTranslations(dir) {
10
+ core_1.ux.action.start('Loading translations');
11
+ const translations = (0, read_file_1.default)('translations', dir);
12
+ try {
13
+ await sdk_2.api.client.request((0, sdk_1.createTranslations)(translations));
14
+ }
15
+ catch (error) {
16
+ (0, log_error_1.default)(error);
17
+ }
18
+ core_1.ux.action.stop();
19
+ core_1.ux.log('Loaded translations');
20
+ }
21
+ exports.default = loadTranslations;
@@ -1,2 +1 @@
1
- declare const _default: (users: any[], legacyAdminRoleId: string | number, newAdminRoleId: string | number) => Promise<void>;
2
- export default _default;
1
+ export default function loadUsers(dir: string): Promise<void>;
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const api_1 = require("../api");
4
- exports.default = async (users, legacyAdminRoleId, newAdminRoleId) => {
5
- const cleanedUpUsers = users.map((user) => {
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = require("@directus/sdk");
5
+ const core_1 = require("@oclif/core");
6
+ const sdk_2 = require("../sdk");
7
+ const get_role_ids_1 = tslib_1.__importDefault(require("../utils/get-role-ids"));
8
+ const log_error_1 = tslib_1.__importDefault(require("../utils/log-error"));
9
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
10
+ async function loadUsers(dir) {
11
+ const users = (0, read_file_1.default)('users', dir);
12
+ core_1.ux.action.start(`Loading ${users.length} users`);
13
+ const { legacyAdminRoleId, newAdminRoleId } = await (0, get_role_ids_1.default)(dir);
14
+ const filteredUsers = users.map(user => {
6
15
  // If the user is an admin, we need to change their role to the new admin role
7
16
  const isAdmin = user.role === legacyAdminRoleId;
8
17
  user.role = isAdmin ? newAdminRoleId : user.role;
@@ -11,13 +20,15 @@ exports.default = async (users, legacyAdminRoleId, newAdminRoleId) => {
11
20
  delete user.token;
12
21
  return user;
13
22
  });
14
- for (const user of cleanedUpUsers) {
23
+ for (const user of filteredUsers) {
15
24
  try {
16
- await api_1.api.post("users", user);
17
- // console.log('Uploaded User' + user.email)
25
+ await sdk_2.api.client.request((0, sdk_1.createUser)(user));
18
26
  }
19
27
  catch (error) {
20
- console.log("Error uploading user.", error.response.data.errors);
28
+ (0, log_error_1.default)(error);
21
29
  }
22
30
  }
23
- };
31
+ core_1.ux.action.stop();
32
+ core_1.ux.log('Loaded users');
33
+ }
34
+ exports.default = loadUsers;
@@ -0,0 +1,13 @@
1
+ import type { AuthenticationClient, RestClient } from '@directus/sdk';
2
+ export interface Schema {
3
+ any: any;
4
+ }
5
+ declare class Api {
6
+ client: RestClient<Schema> & AuthenticationClient<Schema> | undefined;
7
+ private limiter;
8
+ constructor();
9
+ initialize(url: string): void;
10
+ setAuthToken(token: string): void;
11
+ }
12
+ declare const api: Api;
13
+ export { api };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.api = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_1 = require("@directus/sdk");
6
+ const bottleneck_1 = tslib_1.__importDefault(require("bottleneck"));
7
+ class Api {
8
+ constructor() {
9
+ this.limiter = new bottleneck_1.default({
10
+ minTime: 100, // Set min time between tasks here (1000 ms = 1 second)
11
+ // You can set other options here as well.
12
+ });
13
+ }
14
+ initialize(url) {
15
+ this.client = (0, sdk_1.createDirectus)(url, {
16
+ globals: {
17
+ fetch: (...args) => this.limiter.schedule(() => fetch(...args)),
18
+ },
19
+ }).with((0, sdk_1.rest)()).with((0, sdk_1.authentication)());
20
+ }
21
+ setAuthToken(token) {
22
+ this.client.setToken(token);
23
+ }
24
+ }
25
+ const api = new Api();
26
+ exports.api = api;
@@ -1,2 +1,2 @@
1
- export declare function getDirectusUrl(): any;
2
- export declare function getDirectusToken(directusUrl: string): any;
1
+ export declare function getDirectusUrl(): Promise<string>;
2
+ export declare function getDirectusToken(directusUrl: string): Promise<string>;
@@ -2,32 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDirectusToken = exports.getDirectusUrl = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const sdk_1 = require("@directus/sdk");
5
6
  const core_1 = require("@oclif/core");
6
- const api_1 = require("../api");
7
+ const sdk_2 = require("../sdk");
7
8
  const validate_url_1 = tslib_1.__importDefault(require("./validate-url"));
8
9
  async function getDirectusUrl() {
9
- const directusUrl = await core_1.ux.prompt("What is your Directus URL?");
10
+ const directusUrl = await core_1.ux.prompt('What is your Directus URL?', { default: 'http://localhost:8055' });
10
11
  // Validate URL
11
12
  if (!(0, validate_url_1.default)(directusUrl)) {
12
- core_1.ux.warn("Invalid URL");
13
+ core_1.ux.warn('Invalid URL');
13
14
  return getDirectusUrl();
14
15
  }
16
+ sdk_2.api.initialize(directusUrl);
15
17
  return directusUrl;
16
18
  }
17
19
  exports.getDirectusUrl = getDirectusUrl;
18
20
  async function getDirectusToken(directusUrl) {
19
- const directusToken = await core_1.ux.prompt("What is your Directus Admin Token?");
21
+ const directusToken = await core_1.ux.prompt('What is your Directus Admin Token?');
20
22
  // Validate token
21
23
  try {
22
- await api_1.api.get("/users/me", {
23
- headers: {
24
- Authorization: `Bearer ${directusToken}`,
25
- },
26
- });
24
+ sdk_2.api.setAuthToken(directusToken);
25
+ const response = await sdk_2.api.client.request((0, sdk_1.readMe)());
26
+ core_1.ux.log(`Logged in as ${response.first_name} ${response.last_name}`);
27
27
  return directusToken;
28
28
  }
29
- catch {
30
- core_1.ux.warn("Invalid token");
29
+ catch (error) {
30
+ console.log(error);
31
+ core_1.ux.warn('Invalid token. Please try again.');
31
32
  return getDirectusToken(directusUrl);
32
33
  }
33
34
  }
@@ -0,0 +1 @@
1
+ export default function checkTemplate(dir: string): Promise<boolean>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const read_file_1 = tslib_1.__importDefault(require("../utils/read-file"));
5
+ async function checkTemplate(dir) {
6
+ // Check for the collections,fields, and relations files
7
+ try {
8
+ // const schemaDir = path.join(dir, 'schema')
9
+ const collections = (0, read_file_1.default)('collections', dir);
10
+ const fields = (0, read_file_1.default)('fields', dir);
11
+ const relations = (0, read_file_1.default)('relations', dir);
12
+ const isCollectionsOk = collections.length > 0 && fields.length > 0 && relations.length > 0;
13
+ return isCollectionsOk;
14
+ }
15
+ catch (error) {
16
+ console.error(error);
17
+ }
18
+ }
19
+ exports.default = checkTemplate;
20
+ // function checkSchema(schema: any) {
21
+ // const requiredSchemaKeys = ['version', 'collections', 'fields', 'relations', 'directus']
22
+ // if (!schema) {
23
+ // return false
24
+ // }
25
+ // const schemaKeys = Object.keys(schema)
26
+ // for (const key of requiredSchemaKeys) {
27
+ // if (!schemaKeys.includes(key)) {
28
+ // return false
29
+ // }
30
+ // }
31
+ // return true
32
+ // }
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // Utility function to filter out non-system fields
3
+ // Utility function to remove relationship data (arrays of integers or UUIDs) from system collection data. Used for when custom fields are added to system collections. The relational data should be populated when the actual data is loaded.
4
4
  function filterFields(dataArray, systemFields) {
5
- return dataArray.map((item) => {
5
+ return dataArray.map(item => {
6
6
  for (const key of Object.keys(item)) {
7
7
  if (!systemFields.includes(key)) {
8
8
  const value = item[key];
9
9
  if (Array.isArray(value)) {
10
- const isArrayOfIntegers = value.every((v) => Number.isInteger(v));
11
- const isArrayOfUUIDs = value.every((v) => typeof v === "string" &&
12
- /[\dA-Fa-f]{8}(?:-[\dA-Fa-f]{4}){3}-[\dA-Fa-f]{12}/.test(v));
10
+ const isArrayOfIntegers = value.every(v => Number.isInteger(v));
11
+ const isArrayOfUUIDs = value.every(v => typeof v === 'string'
12
+ && /[\dA-Fa-f]{8}(?:-[\dA-Fa-f]{4}){3}-[\dA-Fa-f]{12}/.test(v));
13
13
  if (isArrayOfIntegers || isArrayOfUUIDs) {
14
14
  item[key] = null; // or item[key] = [];
15
15
  }