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.
- package/README.md +5 -2
- package/dist/commands/apply.d.ts +1 -1
- package/dist/commands/apply.js +80 -50
- package/dist/commands/extract.d.ts +1 -2
- package/dist/commands/extract.js +13 -18
- package/dist/lib/extract/extract-assets.d.ts +182 -2
- package/dist/lib/extract/extract-assets.js +25 -32
- package/dist/lib/extract/extract-collections.d.ts +4 -0
- package/dist/lib/extract/extract-collections.js +24 -0
- package/dist/lib/extract/extract-content.d.ts +1 -1
- package/dist/lib/extract/extract-content.js +18 -18
- package/dist/lib/extract/extract-dashboards.d.ts +8 -0
- package/dist/lib/extract/extract-dashboards.js +42 -0
- package/dist/lib/extract/extract-fields.d.ts +4 -0
- package/dist/lib/extract/extract-fields.js +30 -0
- package/dist/lib/extract/extract-files.js +11 -34
- package/dist/lib/extract/extract-flows.d.ts +8 -0
- package/dist/lib/extract/extract-flows.js +42 -0
- package/dist/lib/extract/extract-folders.d.ts +1 -1
- package/dist/lib/extract/extract-folders.js +12 -13
- package/dist/lib/extract/extract-permissions.d.ts +1 -1
- package/dist/lib/extract/extract-permissions.js +13 -13
- package/dist/lib/extract/extract-presets.js +15 -11
- package/dist/lib/extract/extract-relations.d.ts +4 -0
- package/dist/lib/extract/extract-relations.js +33 -0
- package/dist/lib/extract/extract-roles.js +11 -22
- package/dist/lib/extract/extract-schema.js +14 -14
- package/dist/lib/extract/extract-settings.d.ts +4 -0
- package/dist/lib/extract/extract-settings.js +22 -0
- package/dist/lib/extract/extract-translations.d.ts +4 -0
- package/dist/lib/extract/extract-translations.js +24 -0
- package/dist/lib/extract/extract-users.d.ts +1 -1
- package/dist/lib/extract/extract-users.js +14 -36
- package/dist/lib/extract/index.d.ts +1 -1
- package/dist/lib/extract/index.js +27 -32
- package/dist/lib/interfaces.d.ts +1 -1
- package/dist/lib/load/index.d.ts +1 -1
- package/dist/lib/load/index.js +33 -44
- package/dist/lib/load/load-collections.d.ts +4 -0
- package/dist/lib/load/load-collections.js +66 -0
- package/dist/lib/load/load-dashboards.d.ts +2 -1
- package/dist/lib/load/load-dashboards.js +33 -3
- package/dist/lib/load/load-data.d.ts +1 -1
- package/dist/lib/load/load-data.js +87 -60
- package/dist/lib/load/load-files.d.ts +1 -1
- package/dist/lib/load/load-files.js +23 -20
- package/dist/lib/load/load-flows.d.ts +2 -2
- package/dist/lib/load/load-flows.js +43 -9
- package/dist/lib/load/load-folders.js +15 -11
- package/dist/lib/load/load-permissions.d.ts +1 -1
- package/dist/lib/load/load-permissions.js +22 -21
- package/dist/lib/load/load-presets.d.ts +1 -2
- package/dist/lib/load/load-presets.js +16 -19
- package/dist/lib/load/load-relations.d.ts +4 -0
- package/dist/lib/load/load-relations.js +33 -0
- package/dist/lib/load/load-roles.d.ts +1 -1
- package/dist/lib/load/load-roles.js +20 -10
- package/dist/lib/load/load-schema.d.ts +14 -2
- package/dist/lib/load/load-schema.js +85 -10
- package/dist/lib/load/load-settings.d.ts +1 -1
- package/dist/lib/load/load-settings.js +10 -4
- package/dist/lib/load/load-translations.d.ts +1 -0
- package/dist/lib/load/load-translations.js +21 -0
- package/dist/lib/load/load-users.d.ts +1 -2
- package/dist/lib/load/load-users.js +19 -8
- package/dist/lib/sdk.d.ts +13 -0
- package/dist/lib/sdk.js +26 -0
- package/dist/lib/utils/auth.d.ts +2 -2
- package/dist/lib/utils/auth.js +12 -11
- package/dist/lib/utils/check-template.d.ts +1 -0
- package/dist/lib/utils/check-template.js +32 -0
- package/dist/lib/utils/filter-fields.js +5 -5
- package/dist/lib/utils/get-role-ids.d.ts +55 -0
- package/dist/lib/utils/get-role-ids.js +14 -0
- package/dist/lib/utils/log-error.d.ts +14 -0
- package/dist/lib/utils/log-error.js +25 -0
- package/dist/lib/utils/path.d.ts +7 -0
- package/dist/lib/utils/path.js +20 -0
- package/dist/lib/utils/read-file.d.ts +0 -1
- package/dist/lib/utils/read-file.js +7 -9
- package/dist/lib/utils/read-templates.js +2 -2
- package/dist/lib/utils/system-fields.d.ts +20 -0
- package/dist/lib/utils/system-fields.js +159 -0
- package/dist/lib/utils/template-defaults.js +8 -11
- package/dist/lib/utils/transform-github-url.d.ts +1 -0
- package/dist/lib/utils/transform-github-url.js +15 -0
- package/dist/lib/utils/validate-url.js +1 -1
- package/dist/lib/utils/write-to-file.js +4 -4
- package/oclif.manifest.json +34 -16
- package/package.json +25 -23
- package/dist/lib/api.d.ts +0 -15
- package/dist/lib/api.js +0 -37
- package/dist/lib/extract/extract-from-endpoint.d.ts +0 -4
- package/dist/lib/extract/extract-from-endpoint.js +0 -23
- package/dist/lib/load/load-operations.d.ts +0 -1
- package/dist/lib/load/load-operations.js +0 -29
- package/dist/lib/load/load-panels.d.ts +0 -0
- package/dist/lib/load/load-panels.js +0 -0
- package/dist/lib/utils/delete-items.d.ts +0 -1
- package/dist/lib/utils/delete-items.js +0 -15
- package/dist/lib/utils/load-to-destination.d.ts +0 -1
- package/dist/lib/utils/load-to-destination.js +0 -14
- package/templates/agencyos/README.md +0 -11
- package/templates/agencyos/package.json +0 -11
- package/templates/agencyos/src/assets/08177527-b867-47e9-b5d5-eab146b3cdba.jpg +0 -0
- package/templates/agencyos/src/assets/08242513-ca8f-471f-b69b-82703a19d1e5.svg +0 -14
- package/templates/agencyos/src/assets/0dfe66dd-ceba-4dca-8907-03b2dda49443.svg +0 -1
- package/templates/agencyos/src/assets/12e02b82-b4a4-4aaf-8ca4-e73c20a41c26.jpeg +0 -0
- package/templates/agencyos/src/assets/1f19dd72-a433-481d-9b51-e3cc8e4f33d3.svg +0 -1
- package/templates/agencyos/src/assets/1f69c0b8-19b7-49d7-b420-bedad577a079.png +0 -0
- package/templates/agencyos/src/assets/21e179ab-72c3-4350-b46a-fadd16f5652e.svg +0 -1
- package/templates/agencyos/src/assets/270fa8d1-45a3-4fcb-87d2-27a0248f1daf.jpg +0 -0
- package/templates/agencyos/src/assets/27f55be1-7ef5-47c4-87ba-ab9a060ab270.jpeg +0 -0
- package/templates/agencyos/src/assets/2b4a0ba0-52c7-4e10-b191-c803d8da6a36.png +0 -0
- package/templates/agencyos/src/assets/35a67f1b-d401-4300-a503-b8e583186f2a.svg +0 -11
- package/templates/agencyos/src/assets/3eff7dc2-445a-47c5-9503-3f600ecdb5c6.jpeg +0 -0
- package/templates/agencyos/src/assets/44a4e780-d59b-4fa5-9b26-1c4b447474d2.jpg +0 -0
- package/templates/agencyos/src/assets/4b31c98e-ec03-4b91-bb18-ef55dd199638.jpg +0 -0
- package/templates/agencyos/src/assets/5419bf05-9ab2-484b-a69d-d09b18602cf1.svg +0 -1
- package/templates/agencyos/src/assets/5a6dfe1e-7e5b-4a5f-9f6c-983777a67c05.svg +0 -1
- package/templates/agencyos/src/assets/643faffb-d41d-48ad-9050-881cf495cbb6.jpg +0 -0
- package/templates/agencyos/src/assets/6464e61f-455a-4b47-b623-bb12e5251dfe.jpeg +0 -0
- package/templates/agencyos/src/assets/6789bc72-ab83-40bf-8152-d6f2bafbc2a8.png +0 -0
- package/templates/agencyos/src/assets/68103296-6634-4d66-918a-04b09afe6621.jpeg +0 -0
- package/templates/agencyos/src/assets/690c2042-e3ad-46f4-9cd8-095a7b3a1df7.svg +0 -3
- package/templates/agencyos/src/assets/6a1ca349-d7ab-4f43-9284-c61671e145f2.svg +0 -22
- package/templates/agencyos/src/assets/6dad2008-3af5-407e-827e-da5744223181.svg +0 -1
- package/templates/agencyos/src/assets/6ff389c5-3ecb-4219-8f72-f10326aab421.jpg +0 -0
- package/templates/agencyos/src/assets/7647f4c2-9880-433a-bb8e-69b0c30ae31e.svg +0 -1
- package/templates/agencyos/src/assets/7775c53a-6c2c-453d-8c22-8b5445121d10.jpeg +0 -0
- package/templates/agencyos/src/assets/793e9bf7-c646-4588-8865-fe22556070ff.svg +0 -1
- package/templates/agencyos/src/assets/87fc0e81-45e4-4c05-8e9a-8e5c759d7aae.png +0 -0
- package/templates/agencyos/src/assets/88b95737-7ff4-4a09-8523-362d42caa9f9.jpg +0 -0
- package/templates/agencyos/src/assets/8f748634-d77b-4985-b27e-7e1f3559881a.jpeg +0 -0
- package/templates/agencyos/src/assets/a104c031-6ad2-4148-ace6-052e28cfda0b.svg +0 -1
- package/templates/agencyos/src/assets/ac905071-0643-4337-8f53-48ed45b1ccf2.jpg +0 -0
- package/templates/agencyos/src/assets/b1a3fd77-8e62-4678-9d44-333a30eec13b.jpg +0 -0
- package/templates/agencyos/src/assets/b210ecec-860f-4057-bab9-18c044b6e129.jpg +0 -0
- package/templates/agencyos/src/assets/b9db00d9-535f-4e24-8a46-5f7e5fc65bf2.jpg +0 -0
- package/templates/agencyos/src/assets/c0253924-38cd-4ca0-9989-9c0a57ec076a.png +0 -0
- package/templates/agencyos/src/assets/ce0b845f-f8d8-4856-b0af-1df4e3a838cc.jpg +0 -0
- package/templates/agencyos/src/assets/d0130348-9ead-49d0-b8e7-871cd43921a0.svg +0 -1
- package/templates/agencyos/src/assets/d4fd6edc-4cc5-48c1-8bc7-e646924bbdca.jpeg +0 -0
- package/templates/agencyos/src/assets/d598a4c0-4e9a-44a3-a72e-49564e34a432.jpg +0 -0
- package/templates/agencyos/src/assets/d94c9355-d89e-4229-941a-62b8525fd69a.png +0 -0
- package/templates/agencyos/src/assets/df0745c2-b6e3-4b37-b64d-55a4eb0033ab.avif +0 -0
- package/templates/agencyos/src/assets/df979753-946b-4d93-954e-e24367388d2c.svg +0 -1
- package/templates/agencyos/src/assets/dfa90758-9700-49e4-8fa2-b6cd074811b7.png +0 -0
- package/templates/agencyos/src/assets/e15ca910-1567-4f15-b5a0-b802da67f228.jpg +0 -0
- package/templates/agencyos/src/assets/eef7d7b1-3bf9-4647-90c1-a16c24161335.svg +0 -4
- package/templates/agencyos/src/assets/f1693c44-52e4-4fae-a7d2-b3153a34eb72.jpg +0 -0
- package/templates/agencyos/src/assets/f81e1a85-5a9c-41ef-9ef3-6a9349722daa.jpg +0 -0
- package/templates/agencyos/src/assets/fbae19f3-8739-4048-a20f-89ebbf59b032.jpg +0 -0
- package/templates/agencyos/src/collections.json +0 -3007
- package/templates/agencyos/src/content/block_button.json +0 -50
- package/templates/agencyos/src/content/block_button_group.json +0 -27
- package/templates/agencyos/src/content/block_columns.json +0 -18
- package/templates/agencyos/src/content/block_columns_rows.json +0 -47
- package/templates/agencyos/src/content/block_cta.json +0 -9
- package/templates/agencyos/src/content/block_divider.json +0 -14
- package/templates/agencyos/src/content/block_faqs.json +0 -90
- package/templates/agencyos/src/content/block_form.json +0 -26
- package/templates/agencyos/src/content/block_gallery.json +0 -19
- package/templates/agencyos/src/content/block_gallery_files.json +0 -102
- package/templates/agencyos/src/content/block_hero.json +0 -20
- package/templates/agencyos/src/content/block_html.json +0 -1
- package/templates/agencyos/src/content/block_logocloud.json +0 -24
- package/templates/agencyos/src/content/block_logocloud_logos.json +0 -50
- package/templates/agencyos/src/content/block_quote.json +0 -14
- package/templates/agencyos/src/content/block_richtext.json +0 -58
- package/templates/agencyos/src/content/block_step_items.json +0 -47
- package/templates/agencyos/src/content/block_steps.json +0 -24
- package/templates/agencyos/src/content/block_team.json +0 -14
- package/templates/agencyos/src/content/block_testimonial_slider_items.json +0 -42
- package/templates/agencyos/src/content/block_testimonials.json +0 -13
- package/templates/agencyos/src/content/block_video.json +0 -10
- package/templates/agencyos/src/content/categories.json +0 -38
- package/templates/agencyos/src/content/contacts.json +0 -46
- package/templates/agencyos/src/content/conversations.json +0 -1
- package/templates/agencyos/src/content/forms.json +0 -129
- package/templates/agencyos/src/content/globals.json +0 -52
- package/templates/agencyos/src/content/help_articles.json +0 -1
- package/templates/agencyos/src/content/help_collections.json +0 -20
- package/templates/agencyos/src/content/help_feedback.json +0 -122
- package/templates/agencyos/src/content/inbox.json +0 -15
- package/templates/agencyos/src/content/messages.json +0 -1
- package/templates/agencyos/src/content/navigation.json +0 -34
- package/templates/agencyos/src/content/navigation_items.json +0 -185
- package/templates/agencyos/src/content/organization_addresses.json +0 -18
- package/templates/agencyos/src/content/organizations.json +0 -50
- package/templates/agencyos/src/content/organizations_contacts.json +0 -14
- package/templates/agencyos/src/content/os_activities.json +0 -23
- package/templates/agencyos/src/content/os_activity_contacts.json +0 -7
- package/templates/agencyos/src/content/os_deal_contacts.json +0 -9
- package/templates/agencyos/src/content/os_deal_stages.json +0 -68
- package/templates/agencyos/src/content/os_deals.json +0 -27
- package/templates/agencyos/src/content/os_email_templates.json +0 -13
- package/templates/agencyos/src/content/os_expenses.json +0 -22
- package/templates/agencyos/src/content/os_invoice_items.json +0 -65
- package/templates/agencyos/src/content/os_invoices.json +0 -29
- package/templates/agencyos/src/content/os_items.json +0 -17
- package/templates/agencyos/src/content/os_payment_terms.json +0 -18
- package/templates/agencyos/src/content/os_payments.json +0 -291
- package/templates/agencyos/src/content/os_project_contacts.json +0 -8
- package/templates/agencyos/src/content/os_project_files.json +0 -1
- package/templates/agencyos/src/content/os_project_templates.json +0 -467
- package/templates/agencyos/src/content/os_project_updates.json +0 -1
- package/templates/agencyos/src/content/os_projects.json +0 -50
- package/templates/agencyos/src/content/os_proposal_approvals.json +0 -1
- package/templates/agencyos/src/content/os_proposal_blocks.json +0 -134
- package/templates/agencyos/src/content/os_proposal_contacts.json +0 -8
- package/templates/agencyos/src/content/os_proposals.json +0 -33
- package/templates/agencyos/src/content/os_settings.json +0 -6
- package/templates/agencyos/src/content/os_task_files.json +0 -1
- package/templates/agencyos/src/content/os_tasks.json +0 -464
- package/templates/agencyos/src/content/os_tax_rates.json +0 -24
- package/templates/agencyos/src/content/page_blocks.json +0 -170
- package/templates/agencyos/src/content/pages.json +0 -96
- package/templates/agencyos/src/content/pages_blog.json +0 -7
- package/templates/agencyos/src/content/pages_projects.json +0 -6
- package/templates/agencyos/src/content/post_gallery_items.json +0 -32
- package/templates/agencyos/src/content/posts.json +0 -235
- package/templates/agencyos/src/content/redirects.json +0 -12
- package/templates/agencyos/src/content/seo.json +0 -52
- package/templates/agencyos/src/content/team.json +0 -128
- package/templates/agencyos/src/content/testimonials.json +0 -66
- package/templates/agencyos/src/dashboards.json +0 -64
- package/templates/agencyos/src/files.json +0 -1129
- package/templates/agencyos/src/flows.json +0 -451
- package/templates/agencyos/src/folders.json +0 -104
- package/templates/agencyos/src/operations.json +0 -717
- package/templates/agencyos/src/panels.json +0 -1019
- package/templates/agencyos/src/permissions.json +0 -5533
- package/templates/agencyos/src/presets.json +0 -2421
- package/templates/agencyos/src/public-permissions.json +0 -629
- package/templates/agencyos/src/roles.json +0 -46
- package/templates/agencyos/src/schema/snapshot.json +0 -39415
- package/templates/agencyos/src/settings.json +0 -99
- package/templates/agencyos/src/users.json +0 -147
- package/templates/website/README.md +0 -15
- package/templates/website/package.json +0 -11
- package/templates/website/src/assets/004e37f7-765e-4339-8d44-987729e47898.png +0 -0
- package/templates/website/src/assets/008b1c0e-bdd3-4c5f-a029-b9c07582a42d.jpg +0 -0
- package/templates/website/src/assets/08177527-b867-47e9-b5d5-eab146b3cdba.jpg +0 -0
- package/templates/website/src/assets/0dfe66dd-ceba-4dca-8907-03b2dda49443.svg +0 -1
- package/templates/website/src/assets/12e02b82-b4a4-4aaf-8ca4-e73c20a41c26.jpeg +0 -0
- package/templates/website/src/assets/18bf5269-9986-48c7-b607-01b77283df3b.png +0 -0
- package/templates/website/src/assets/1f19dd72-a433-481d-9b51-e3cc8e4f33d3.svg +0 -1
- package/templates/website/src/assets/270fa8d1-45a3-4fcb-87d2-27a0248f1daf.jpg +0 -0
- package/templates/website/src/assets/27f55be1-7ef5-47c4-87ba-ab9a060ab270.jpeg +0 -0
- package/templates/website/src/assets/284c190b-0ebb-4b3e-847d-c260b793b77c.png +0 -0
- package/templates/website/src/assets/35a67f1b-d401-4300-a503-b8e583186f2a.svg +0 -11
- package/templates/website/src/assets/3ac899c4-4bf9-4733-b2c4-b259c69faf46.png +0 -0
- package/templates/website/src/assets/3eff7dc2-445a-47c5-9503-3f600ecdb5c6.jpeg +0 -0
- package/templates/website/src/assets/40a0a417-231e-4819-86bf-66e96ec64852.svg +0 -3
- package/templates/website/src/assets/45140116-7656-4226-99b6-fd750722a083.svg +0 -3
- package/templates/website/src/assets/4b31c98e-ec03-4b91-bb18-ef55dd199638.jpg +0 -0
- package/templates/website/src/assets/57c6e801-9ba1-46eb-beb7-96cf7c497c92.svg +0 -1
- package/templates/website/src/assets/643faffb-d41d-48ad-9050-881cf495cbb6.jpg +0 -0
- package/templates/website/src/assets/6464e61f-455a-4b47-b623-bb12e5251dfe.jpeg +0 -0
- package/templates/website/src/assets/68103296-6634-4d66-918a-04b09afe6621.jpeg +0 -0
- package/templates/website/src/assets/68ee3ce3-bc8e-4901-b3a6-8a23afda0fa0.jpg +0 -0
- package/templates/website/src/assets/6dad2008-3af5-407e-827e-da5744223181.svg +0 -1
- package/templates/website/src/assets/72eea8c7-72fe-4ef2-9e57-524f7cb886a4.jpg +0 -0
- package/templates/website/src/assets/72f6f5a0-9a07-422f-b82f-b9e295ce5afa.svg +0 -4
- package/templates/website/src/assets/7775c53a-6c2c-453d-8c22-8b5445121d10.jpeg +0 -0
- package/templates/website/src/assets/7834aacc-d78c-4a55-ba92-d7b5d74188c1.png +0 -0
- package/templates/website/src/assets/7a5b47f6-d648-48f9-bf93-4bfafda48940.png +0 -0
- package/templates/website/src/assets/7c04cbdd-4b48-41aa-94d7-fc7c17373b1a.png +0 -0
- package/templates/website/src/assets/82b872b1-ff96-4af6-b7f1-878e60c3c448.png +0 -0
- package/templates/website/src/assets/840ec616-acad-412e-be79-485a702f9a55.svg +0 -1
- package/templates/website/src/assets/87fc0e81-45e4-4c05-8e9a-8e5c759d7aae.png +0 -0
- package/templates/website/src/assets/8bc1e7b3-b795-46af-bac4-34f7d90b902f.JPG +0 -0
- package/templates/website/src/assets/8f748634-d77b-4985-b27e-7e1f3559881a.jpeg +0 -0
- package/templates/website/src/assets/9778a2b4-27de-4035-af5a-f58897578787.png +0 -0
- package/templates/website/src/assets/a104c031-6ad2-4148-ace6-052e28cfda0b.svg +0 -1
- package/templates/website/src/assets/b626a403-5f09-4463-9715-44b2bd34eb26.jpg +0 -0
- package/templates/website/src/assets/c38f6e9e-7bb5-46c7-8266-b27ab96a1282.png +0 -0
- package/templates/website/src/assets/c983bd13-da09-4c90-8e65-ae6a92093df8.png +0 -0
- package/templates/website/src/assets/d0130348-9ead-49d0-b8e7-871cd43921a0.svg +0 -1
- package/templates/website/src/assets/d304528e-9000-4530-92cf-bb04891e8d5d.jpg +0 -0
- package/templates/website/src/assets/d4fd6edc-4cc5-48c1-8bc7-e646924bbdca.jpeg +0 -0
- package/templates/website/src/assets/d598a4c0-4e9a-44a3-a72e-49564e34a432.jpg +0 -0
- package/templates/website/src/assets/dfa90758-9700-49e4-8fa2-b6cd074811b7.png +0 -0
- package/templates/website/src/assets/e15ca910-1567-4f15-b5a0-b802da67f228.jpg +0 -0
- package/templates/website/src/assets/ea18cbf2-3c4f-488b-a68c-2d3a64cc9137.png +0 -0
- package/templates/website/src/assets/eb8e4c86-92ac-4697-9634-2e376f5d6015.png +0 -0
- package/templates/website/src/assets/f1693c44-52e4-4fae-a7d2-b3153a34eb72.jpg +0 -0
- package/templates/website/src/collections.json +0 -1788
- package/templates/website/src/content/block_cardgroup.json +0 -26
- package/templates/website/src/content/block_cardgroup_cards.json +0 -1
- package/templates/website/src/content/block_cardgroup_posts.json +0 -32
- package/templates/website/src/content/block_columns.json +0 -21
- package/templates/website/src/content/block_columns_rows.json +0 -47
- package/templates/website/src/content/block_cta.json +0 -15
- package/templates/website/src/content/block_faqs.json +0 -45
- package/templates/website/src/content/block_form.json +0 -26
- package/templates/website/src/content/block_gallery.json +0 -15
- package/templates/website/src/content/block_gallery_files.json +0 -38
- package/templates/website/src/content/block_hero.json +0 -145
- package/templates/website/src/content/block_html.json +0 -1
- package/templates/website/src/content/block_logocloud.json +0 -16
- package/templates/website/src/content/block_logocloud_files.json +0 -44
- package/templates/website/src/content/block_quote.json +0 -11
- package/templates/website/src/content/block_richtext.json +0 -32
- package/templates/website/src/content/block_steps.json +0 -14
- package/templates/website/src/content/block_steps_items.json +0 -26
- package/templates/website/src/content/block_team.json +0 -8
- package/templates/website/src/content/block_testimonials.json +0 -13
- package/templates/website/src/content/block_testimonials_items.json +0 -26
- package/templates/website/src/content/block_video.json +0 -10
- package/templates/website/src/content/blog_settings.json +0 -8
- package/templates/website/src/content/categories.json +0 -38
- package/templates/website/src/content/events.json +0 -1
- package/templates/website/src/content/forms.json +0 -92
- package/templates/website/src/content/globals.json +0 -57
- package/templates/website/src/content/inbox.json +0 -21
- package/templates/website/src/content/metrics.json +0 -1
- package/templates/website/src/content/navigation.json +0 -30
- package/templates/website/src/content/navigation_items.json +0 -140
- package/templates/website/src/content/pages.json +0 -123
- package/templates/website/src/content/pages_blocks.json +0 -310
- package/templates/website/src/content/posts.json +0 -120
- package/templates/website/src/content/projects.json +0 -48
- package/templates/website/src/content/projects_files.json +0 -44
- package/templates/website/src/content/projects_settings.json +0 -6
- package/templates/website/src/content/redirects.json +0 -12
- package/templates/website/src/content/seo.json +0 -278
- package/templates/website/src/content/team.json +0 -132
- package/templates/website/src/content/testimonials.json +0 -66
- package/templates/website/src/dashboards.json +0 -38
- package/templates/website/src/fields.json +0 -27761
- package/templates/website/src/files.json +0 -1100
- package/templates/website/src/flows.json +0 -131
- package/templates/website/src/folders.json +0 -52
- package/templates/website/src/operations.json +0 -214
- package/templates/website/src/panels.json +0 -433
- package/templates/website/src/permissions.json +0 -1556
- package/templates/website/src/presets.json +0 -1254
- package/templates/website/src/public-permissions.json +0 -511
- package/templates/website/src/roles.json +0 -70
- package/templates/website/src/schema/snapshot.json +0 -17018
- package/templates/website/src/settings.json +0 -66
- 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
|
|
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
|
|
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
|
-
|
|
14
|
-
//
|
|
15
|
-
folders.
|
|
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
|
|
18
|
-
});
|
|
19
|
+
await sdk_2.api.client.request((0, sdk_1.updateFolder)(id, rest));
|
|
20
|
+
}));
|
|
19
21
|
}
|
|
20
22
|
catch (error) {
|
|
21
|
-
|
|
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
|
|
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
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
17
|
+
await sdk_2.api.client.request((0, sdk_1.createPresets)(cleanPresets));
|
|
12
18
|
}
|
|
13
19
|
catch (error) {
|
|
14
|
-
|
|
20
|
+
(0, log_error_1.default)(error);
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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,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(
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
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(
|
|
16
|
+
const adminRole = cleanedUpRoles.find(role => role.name === 'Administrator');
|
|
10
17
|
// Admin role isn't touched.
|
|
11
|
-
const customRoles = cleanedUpRoles.filter(
|
|
18
|
+
const customRoles = cleanedUpRoles.filter(role => role.name !== 'Administrator');
|
|
12
19
|
try {
|
|
13
|
-
|
|
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
|
-
|
|
25
|
+
catch (error) {
|
|
26
|
+
(0, log_error_1.default)(error);
|
|
17
27
|
}
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
15
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
4
|
-
|
|
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
|
-
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
await sdk_2.api.client.request((0, sdk_1.updateSettings)(settings));
|
|
7
13
|
}
|
|
8
14
|
catch (error) {
|
|
9
|
-
|
|
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
|
-
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
23
|
+
for (const user of filteredUsers) {
|
|
15
24
|
try {
|
|
16
|
-
await
|
|
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
|
-
|
|
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 };
|
package/dist/lib/sdk.js
ADDED
|
@@ -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;
|
package/dist/lib/utils/auth.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function getDirectusUrl():
|
|
2
|
-
export declare function getDirectusToken(directusUrl: string):
|
|
1
|
+
export declare function getDirectusUrl(): Promise<string>;
|
|
2
|
+
export declare function getDirectusToken(directusUrl: string): Promise<string>;
|
package/dist/lib/utils/auth.js
CHANGED
|
@@ -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
|
|
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(
|
|
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(
|
|
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(
|
|
21
|
+
const directusToken = await core_1.ux.prompt('What is your Directus Admin Token?');
|
|
20
22
|
// Validate token
|
|
21
23
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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(
|
|
11
|
-
const isArrayOfUUIDs = value.every(
|
|
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
|
}
|