directus-template-cli 0.6.0-beta.2 → 0.7.0-beta.10
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 +0 -14
- package/bin/dev.js +6 -0
- package/bin/run.js +5 -0
- package/dist/commands/apply.d.ts +17 -17
- package/dist/commands/apply.js +166 -174
- package/dist/commands/base.d.ts +15 -0
- package/dist/commands/base.js +45 -0
- package/dist/commands/extract.d.ts +16 -9
- package/dist/commands/extract.js +81 -100
- package/dist/commands/init.d.ts +42 -0
- package/dist/commands/init.js +241 -0
- package/dist/flags/common.d.ts +8 -7
- package/dist/flags/common.js +13 -11
- package/dist/index.js +1 -5
- package/dist/lib/constants.d.ts +18 -0
- package/dist/lib/constants.js +25 -6
- package/dist/lib/extract/extract-access.js +11 -15
- package/dist/lib/extract/extract-assets.js +20 -25
- package/dist/lib/extract/extract-collections.js +12 -16
- package/dist/lib/extract/extract-content.d.ts +1 -1
- package/dist/lib/extract/extract-content.js +17 -26
- package/dist/lib/extract/extract-dashboards.js +22 -28
- package/dist/lib/extract/extract-extensions.js +12 -16
- package/dist/lib/extract/extract-fields.js +12 -16
- package/dist/lib/extract/extract-files.js +15 -19
- package/dist/lib/extract/extract-flows.js +22 -28
- package/dist/lib/extract/extract-folders.js +15 -19
- package/dist/lib/extract/extract-permissions.js +12 -16
- package/dist/lib/extract/extract-policies.js +12 -16
- package/dist/lib/extract/extract-presets.js +12 -16
- package/dist/lib/extract/extract-relations.js +14 -18
- package/dist/lib/extract/extract-roles.js +15 -19
- package/dist/lib/extract/extract-schema.js +17 -21
- package/dist/lib/extract/extract-settings.js +12 -16
- package/dist/lib/extract/extract-translations.js +12 -16
- package/dist/lib/extract/extract-users.js +15 -19
- package/dist/lib/extract/index.d.ts +1 -6
- package/dist/lib/extract/index.js +47 -58
- package/dist/lib/init/config.d.ts +3 -0
- package/dist/lib/init/config.js +12 -0
- package/dist/lib/init/index.d.ts +10 -0
- package/dist/lib/init/index.js +192 -0
- package/dist/lib/init/types.d.ts +30 -0
- package/dist/lib/init/types.js +1 -0
- package/dist/lib/load/apply-flags.js +17 -23
- package/dist/lib/load/index.d.ts +1 -12
- package/dist/lib/load/index.js +40 -44
- package/dist/lib/load/load-access.js +15 -20
- package/dist/lib/load/load-collections.d.ts +2 -0
- package/dist/lib/load/load-collections.js +29 -32
- package/dist/lib/load/load-dashboards.js +19 -25
- package/dist/lib/load/load-data.js +43 -49
- package/dist/lib/load/load-extensions.js +30 -38
- package/dist/lib/load/load-files.js +20 -24
- package/dist/lib/load/load-flows.js +23 -29
- package/dist/lib/load/load-folders.js +16 -20
- package/dist/lib/load/load-permissions.js +13 -17
- package/dist/lib/load/load-policies.js +14 -18
- package/dist/lib/load/load-presets.js +14 -18
- package/dist/lib/load/load-relations.d.ts +2 -0
- package/dist/lib/load/load-relations.js +16 -18
- package/dist/lib/load/load-roles.js +19 -23
- package/dist/lib/load/load-settings.js +18 -21
- package/dist/lib/load/load-translations.js +14 -18
- package/dist/lib/load/load-users.js +21 -25
- package/dist/lib/load/update-required-fields.js +13 -17
- package/dist/lib/sdk.d.ts +1 -2
- package/dist/lib/sdk.js +27 -27
- package/dist/lib/types/extension.js +1 -2
- package/dist/lib/types.d.ts +18 -0
- package/dist/lib/types.js +1 -0
- package/dist/lib/utils/animated-bunny.d.ts +2 -0
- package/dist/lib/utils/animated-bunny.js +62 -0
- package/dist/lib/utils/auth.d.ts +8 -6
- package/dist/lib/utils/auth.js +48 -39
- package/dist/lib/utils/catch-error.js +8 -11
- package/dist/lib/utils/check-template.js +4 -8
- package/dist/lib/utils/chunk-array.js +1 -5
- package/dist/lib/utils/ensure-dir.d.ts +2 -0
- package/dist/lib/utils/ensure-dir.js +11 -0
- package/dist/lib/utils/filter-fields.js +1 -4
- package/dist/lib/utils/get-role-ids.d.ts +1 -1
- package/dist/lib/utils/get-role-ids.js +7 -12
- package/dist/lib/utils/get-template.js +33 -36
- package/dist/lib/utils/logger.js +11 -13
- package/dist/lib/utils/open-url.js +5 -8
- package/dist/lib/utils/parse-github-url.d.ts +19 -0
- package/dist/lib/utils/parse-github-url.js +89 -0
- package/dist/lib/utils/path.js +6 -10
- package/dist/lib/utils/protected-domains.js +1 -4
- package/dist/lib/utils/read-file.js +8 -12
- package/dist/lib/utils/read-templates.js +9 -15
- package/dist/lib/utils/sanitize-flags.d.ts +3 -0
- package/dist/lib/utils/sanitize-flags.js +4 -0
- package/dist/lib/utils/system-fields.js +19 -22
- package/dist/lib/utils/template-config.d.ts +16 -0
- package/dist/lib/utils/template-config.js +34 -0
- package/dist/lib/utils/template-defaults.d.ts +1 -1
- package/dist/lib/utils/template-defaults.js +5 -14
- package/dist/lib/utils/transform-github-url.js +1 -5
- package/dist/lib/utils/validate-url.js +3 -6
- package/dist/lib/utils/wait.d.ts +7 -0
- package/dist/lib/utils/wait.js +9 -0
- package/dist/lib/utils/write-to-file.js +8 -11
- package/dist/services/docker.d.ts +23 -0
- package/dist/services/docker.js +187 -0
- package/dist/services/github.d.ts +18 -0
- package/dist/services/github.js +88 -0
- package/dist/services/posthog.d.ts +37 -0
- package/dist/services/posthog.js +104 -0
- package/oclif.manifest.json +102 -23
- package/package.json +46 -29
- package/bin/dev +0 -17
- package/bin/run +0 -5
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
9
|
-
async function extractAccess(dir) {
|
|
10
|
-
core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting access'));
|
|
1
|
+
import { ux } from '@oclif/core';
|
|
2
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
3
|
+
import { api } from '../sdk.js';
|
|
4
|
+
import catchError from '../utils/catch-error.js';
|
|
5
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
6
|
+
export default async function extractAccess(dir) {
|
|
7
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting access'));
|
|
11
8
|
try {
|
|
12
|
-
const response = await
|
|
9
|
+
const response = await api.client.request(() => ({
|
|
13
10
|
method: 'GET',
|
|
14
11
|
path: '/access?limit=-1',
|
|
15
12
|
}));
|
|
@@ -17,11 +14,10 @@ async function extractAccess(dir) {
|
|
|
17
14
|
// for (const access of response) {
|
|
18
15
|
// delete access.id
|
|
19
16
|
// }
|
|
20
|
-
await (
|
|
17
|
+
await writeToFile('access', response, dir);
|
|
21
18
|
}
|
|
22
19
|
catch (error) {
|
|
23
|
-
(
|
|
20
|
+
catchError(error);
|
|
24
21
|
}
|
|
25
|
-
|
|
22
|
+
ux.action.stop();
|
|
26
23
|
}
|
|
27
|
-
exports.default = extractAccess;
|
|
@@ -1,46 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
9
|
-
const constants_1 = require("../constants");
|
|
10
|
-
const sdk_2 = require("../sdk");
|
|
11
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
1
|
+
import { readFiles } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from 'pathe';
|
|
5
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
6
|
+
import { api } from '../sdk.js';
|
|
7
|
+
import catchError from '../utils/catch-error.js';
|
|
12
8
|
async function getAssetList() {
|
|
13
|
-
return
|
|
9
|
+
return api.client.request(readFiles({ limit: -1 }));
|
|
14
10
|
}
|
|
15
11
|
async function downloadFile(file, dir) {
|
|
16
|
-
const response = await
|
|
12
|
+
const response = await api.client.request(() => ({
|
|
17
13
|
method: 'GET',
|
|
18
14
|
path: `/assets/${file.id}`,
|
|
19
15
|
}));
|
|
20
|
-
const fullPath =
|
|
16
|
+
const fullPath = path.join(dir, 'assets', file.filename_disk);
|
|
21
17
|
if (typeof response === 'string') {
|
|
22
|
-
|
|
18
|
+
fs.writeFileSync(fullPath, response);
|
|
23
19
|
}
|
|
24
20
|
else {
|
|
25
21
|
const data = await response.arrayBuffer();
|
|
26
|
-
|
|
22
|
+
fs.writeFileSync(fullPath, Buffer.from(data));
|
|
27
23
|
}
|
|
28
24
|
}
|
|
29
|
-
async function downloadAllFiles(dir) {
|
|
30
|
-
|
|
25
|
+
export async function downloadAllFiles(dir) {
|
|
26
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Downloading assets'));
|
|
31
27
|
try {
|
|
32
|
-
const fullPath =
|
|
33
|
-
if (
|
|
34
|
-
|
|
28
|
+
const fullPath = path.join(dir, 'assets');
|
|
29
|
+
if (path && !fs.existsSync(fullPath)) {
|
|
30
|
+
fs.mkdirSync(fullPath, { recursive: true });
|
|
35
31
|
}
|
|
36
32
|
const fileList = await getAssetList();
|
|
37
33
|
await Promise.all(fileList.map(file => downloadFile(file, dir).catch(error => {
|
|
38
|
-
(
|
|
34
|
+
catchError(`Error downloading ${file.filename_disk}: ${error.message}`);
|
|
39
35
|
})));
|
|
40
36
|
}
|
|
41
37
|
catch (error) {
|
|
42
|
-
(
|
|
38
|
+
catchError(error);
|
|
43
39
|
}
|
|
44
|
-
|
|
40
|
+
ux.action.stop();
|
|
45
41
|
}
|
|
46
|
-
exports.downloadAllFiles = downloadAllFiles;
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sdk_2 = require("../sdk");
|
|
8
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
9
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readCollections } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
10
7
|
/**
|
|
11
8
|
* Extract collections from the Directus instance
|
|
12
9
|
*/
|
|
13
|
-
async function extractCollections(dir) {
|
|
14
|
-
|
|
10
|
+
export default async function extractCollections(dir) {
|
|
11
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting collections'));
|
|
15
12
|
try {
|
|
16
|
-
const response = await
|
|
13
|
+
const response = await api.client.request(readCollections());
|
|
17
14
|
const collections = response.filter(collection => !collection.collection.startsWith('directus_'));
|
|
18
|
-
await (
|
|
15
|
+
await writeToFile('collections', collections, dir);
|
|
19
16
|
}
|
|
20
17
|
catch (error) {
|
|
21
|
-
(
|
|
18
|
+
catchError(error);
|
|
22
19
|
}
|
|
23
|
-
|
|
20
|
+
ux.action.stop();
|
|
24
21
|
}
|
|
25
|
-
exports.default = extractCollections;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function extractContent(dir: string
|
|
1
|
+
export declare function extractContent(dir: string): Promise<void>;
|
|
@@ -1,42 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
10
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
11
|
-
async function getCollections(excludeCollections) {
|
|
12
|
-
const response = await sdk_2.api.client.request((0, sdk_1.readCollections)());
|
|
1
|
+
import { readCollections, readItems } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
7
|
+
async function getCollections() {
|
|
8
|
+
const response = await api.client.request(readCollections());
|
|
13
9
|
return response
|
|
14
10
|
.filter(item => !item.collection.startsWith('directus_', 0))
|
|
15
|
-
.filter(item => item.schema
|
|
16
|
-
.filter(item => !(excludeCollections === null || excludeCollections === void 0 ? void 0 : excludeCollections.includes(item.collection)))
|
|
11
|
+
.filter(item => item.schema != null)
|
|
17
12
|
.map(i => i.collection);
|
|
18
13
|
}
|
|
19
14
|
async function getDataFromCollection(collection, dir) {
|
|
20
15
|
try {
|
|
21
|
-
const response = await
|
|
22
|
-
await (
|
|
16
|
+
const response = await api.client.request(readItems(collection, { limit: -1 }));
|
|
17
|
+
await writeToFile(`${collection}`, response, `${dir}/content/`);
|
|
23
18
|
}
|
|
24
19
|
catch (error) {
|
|
25
|
-
(
|
|
20
|
+
catchError(error);
|
|
26
21
|
}
|
|
27
22
|
}
|
|
28
|
-
async function extractContent(dir
|
|
29
|
-
|
|
30
|
-
? ` (excluding ${excludeCollections.join(', ')})`
|
|
31
|
-
: '';
|
|
32
|
-
core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, `Extracting content${exclusionMessage}`));
|
|
23
|
+
export async function extractContent(dir) {
|
|
24
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting content'));
|
|
33
25
|
try {
|
|
34
|
-
const collections = await getCollections(
|
|
26
|
+
const collections = await getCollections();
|
|
35
27
|
await Promise.all(collections.map(collection => getDataFromCollection(collection, dir)));
|
|
36
28
|
}
|
|
37
29
|
catch (error) {
|
|
38
|
-
(
|
|
30
|
+
catchError(error);
|
|
39
31
|
}
|
|
40
|
-
|
|
32
|
+
ux.action.stop();
|
|
41
33
|
}
|
|
42
|
-
exports.extractContent = extractContent;
|
|
@@ -1,44 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
10
|
-
const filter_fields_1 = tslib_1.__importDefault(require("../utils/filter-fields"));
|
|
11
|
-
const system_fields_1 = require("../utils/system-fields");
|
|
12
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readDashboards, readPanels } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import filterFields from '../utils/filter-fields.js';
|
|
7
|
+
import { directusDashboardFields, directusPanelFields } from '../utils/system-fields.js';
|
|
8
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
13
9
|
/**
|
|
14
10
|
* Extract dashboards from the Directus instance
|
|
15
11
|
*/
|
|
16
|
-
async function extractDashboards(dir) {
|
|
17
|
-
|
|
12
|
+
export async function extractDashboards(dir) {
|
|
13
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting dashboards'));
|
|
18
14
|
try {
|
|
19
|
-
const response = await
|
|
20
|
-
const dashboards = (
|
|
21
|
-
await (
|
|
15
|
+
const response = await api.client.request(readDashboards({ limit: -1 }));
|
|
16
|
+
const dashboards = filterFields(response, directusDashboardFields);
|
|
17
|
+
await writeToFile('dashboards', dashboards, dir);
|
|
22
18
|
}
|
|
23
19
|
catch (error) {
|
|
24
|
-
(
|
|
20
|
+
catchError(error);
|
|
25
21
|
}
|
|
26
|
-
|
|
22
|
+
ux.action.stop();
|
|
27
23
|
}
|
|
28
|
-
exports.extractDashboards = extractDashboards;
|
|
29
24
|
/**
|
|
30
25
|
* Extract panels from the Directus instance
|
|
31
26
|
*/
|
|
32
|
-
async function extractPanels(dir) {
|
|
33
|
-
|
|
27
|
+
export async function extractPanels(dir) {
|
|
28
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting panels'));
|
|
34
29
|
try {
|
|
35
|
-
const response = await
|
|
36
|
-
const panels = (
|
|
37
|
-
await (
|
|
30
|
+
const response = await api.client.request(readPanels({ limit: -1 }));
|
|
31
|
+
const panels = filterFields(response, directusPanelFields);
|
|
32
|
+
await writeToFile('panels', panels, dir);
|
|
38
33
|
}
|
|
39
34
|
catch (error) {
|
|
40
|
-
(
|
|
35
|
+
catchError(error);
|
|
41
36
|
}
|
|
42
|
-
|
|
37
|
+
ux.action.stop();
|
|
43
38
|
}
|
|
44
|
-
exports.extractPanels = extractPanels;
|
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sdk_2 = require("../sdk");
|
|
8
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
9
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readExtensions } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
10
7
|
/**
|
|
11
8
|
* Extract extensions from the API
|
|
12
9
|
*/
|
|
13
|
-
async function extractExtensions(dir) {
|
|
14
|
-
|
|
10
|
+
export default async function extractExtensions(dir) {
|
|
11
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting extensions'));
|
|
15
12
|
try {
|
|
16
|
-
const response = await
|
|
17
|
-
await (
|
|
13
|
+
const response = await api.client.request(readExtensions());
|
|
14
|
+
await writeToFile('extensions', response, dir);
|
|
18
15
|
}
|
|
19
16
|
catch (error) {
|
|
20
|
-
(
|
|
17
|
+
catchError(error);
|
|
21
18
|
}
|
|
22
|
-
|
|
19
|
+
ux.action.stop();
|
|
23
20
|
}
|
|
24
|
-
exports.default = extractExtensions;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sdk_2 = require("../sdk");
|
|
8
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
9
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readFields } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
10
7
|
/**
|
|
11
8
|
* Extract fields from the Directus instance
|
|
12
9
|
*/
|
|
13
|
-
async function extractFields(dir) {
|
|
14
|
-
|
|
10
|
+
export default async function extractFields(dir) {
|
|
11
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting fields'));
|
|
15
12
|
try {
|
|
16
|
-
const response = await
|
|
13
|
+
const response = await api.client.request(readFields());
|
|
17
14
|
if (!Array.isArray(response)) {
|
|
18
15
|
throw new TypeError('Unexpected response format');
|
|
19
16
|
}
|
|
@@ -27,11 +24,10 @@ async function extractFields(dir) {
|
|
|
27
24
|
}
|
|
28
25
|
return i;
|
|
29
26
|
});
|
|
30
|
-
await (
|
|
27
|
+
await writeToFile('fields', fields, dir);
|
|
31
28
|
}
|
|
32
29
|
catch (error) {
|
|
33
|
-
(
|
|
30
|
+
catchError(error);
|
|
34
31
|
}
|
|
35
|
-
|
|
32
|
+
ux.action.stop();
|
|
36
33
|
}
|
|
37
|
-
exports.default = extractFields;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const filter_fields_1 = tslib_1.__importDefault(require("../utils/filter-fields"));
|
|
10
|
-
const system_fields_1 = require("../utils/system-fields");
|
|
11
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readFiles } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import filterFields from '../utils/filter-fields.js';
|
|
7
|
+
import { directusFileFields } from '../utils/system-fields.js';
|
|
8
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
12
9
|
/**
|
|
13
10
|
* Extract files from the API
|
|
14
11
|
*/
|
|
15
|
-
async function extractFiles(dir) {
|
|
16
|
-
|
|
12
|
+
export default async function extractFiles(dir) {
|
|
13
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting files'));
|
|
17
14
|
try {
|
|
18
|
-
const response = await
|
|
19
|
-
const files = (
|
|
20
|
-
await (
|
|
15
|
+
const response = await api.client.request(readFiles({ limit: -1 }));
|
|
16
|
+
const files = filterFields(response, directusFileFields);
|
|
17
|
+
await writeToFile('files', files, dir);
|
|
21
18
|
}
|
|
22
19
|
catch (error) {
|
|
23
|
-
(
|
|
20
|
+
catchError(error);
|
|
24
21
|
}
|
|
25
|
-
|
|
22
|
+
ux.action.stop();
|
|
26
23
|
}
|
|
27
|
-
exports.default = extractFiles;
|
|
@@ -1,44 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
10
|
-
const filter_fields_1 = tslib_1.__importDefault(require("../utils/filter-fields"));
|
|
11
|
-
const system_fields_1 = require("../utils/system-fields");
|
|
12
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readFlows, readOperations } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import filterFields from '../utils/filter-fields.js';
|
|
7
|
+
import { directusFlowFields, directusOperationFields } from '../utils/system-fields.js';
|
|
8
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
13
9
|
/**
|
|
14
10
|
* Extract flows from the Directus instance
|
|
15
11
|
*/
|
|
16
|
-
async function extractFlows(dir) {
|
|
17
|
-
|
|
12
|
+
export async function extractFlows(dir) {
|
|
13
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting flows'));
|
|
18
14
|
try {
|
|
19
|
-
const response = await
|
|
20
|
-
const flows = (
|
|
21
|
-
await (
|
|
15
|
+
const response = await api.client.request(readFlows({ limit: -1 }));
|
|
16
|
+
const flows = filterFields(response, directusFlowFields);
|
|
17
|
+
await writeToFile('flows', flows, dir);
|
|
22
18
|
}
|
|
23
19
|
catch (error) {
|
|
24
|
-
(
|
|
20
|
+
catchError(error);
|
|
25
21
|
}
|
|
26
|
-
|
|
22
|
+
ux.action.stop();
|
|
27
23
|
}
|
|
28
|
-
exports.extractFlows = extractFlows;
|
|
29
24
|
/**
|
|
30
25
|
* Extract operations from the Directus instance
|
|
31
26
|
*/
|
|
32
|
-
async function extractOperations(dir) {
|
|
33
|
-
|
|
27
|
+
export async function extractOperations(dir) {
|
|
28
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting operations'));
|
|
34
29
|
try {
|
|
35
|
-
const response = await
|
|
36
|
-
const operations = (
|
|
37
|
-
await (
|
|
30
|
+
const response = await api.client.request(readOperations({ limit: -1 }));
|
|
31
|
+
const operations = filterFields(response, directusOperationFields);
|
|
32
|
+
await writeToFile('operations', operations, dir);
|
|
38
33
|
}
|
|
39
34
|
catch (error) {
|
|
40
|
-
(
|
|
35
|
+
catchError(error);
|
|
41
36
|
}
|
|
42
|
-
|
|
37
|
+
ux.action.stop();
|
|
43
38
|
}
|
|
44
|
-
exports.extractOperations = extractOperations;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const filter_fields_1 = tslib_1.__importDefault(require("../utils/filter-fields"));
|
|
10
|
-
const system_fields_1 = require("../utils/system-fields");
|
|
11
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readFolders } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import filterFields from '../utils/filter-fields.js';
|
|
7
|
+
import { directusFolderFields } from '../utils/system-fields.js';
|
|
8
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
12
9
|
/**
|
|
13
10
|
* Extract folders from the Directus instance
|
|
14
11
|
*/
|
|
15
|
-
async function extractFolders(dir) {
|
|
16
|
-
|
|
12
|
+
export default async function extractFolders(dir) {
|
|
13
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting folders'));
|
|
17
14
|
try {
|
|
18
|
-
const response = await
|
|
19
|
-
const folders = (
|
|
20
|
-
await (
|
|
15
|
+
const response = await api.client.request(readFolders({ limit: -1 }));
|
|
16
|
+
const folders = filterFields(response, directusFolderFields);
|
|
17
|
+
await writeToFile('folders', folders, dir);
|
|
21
18
|
}
|
|
22
19
|
catch (error) {
|
|
23
|
-
(
|
|
20
|
+
catchError(error);
|
|
24
21
|
}
|
|
25
|
-
|
|
22
|
+
ux.action.stop();
|
|
26
23
|
}
|
|
27
|
-
exports.default = extractFolders;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sdk_2 = require("../sdk");
|
|
8
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
9
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readPermissions } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
10
7
|
/**
|
|
11
8
|
* Extract Permissions from the API
|
|
12
9
|
*/
|
|
13
|
-
async function extractPermissions(dir) {
|
|
14
|
-
|
|
10
|
+
export default async function extractPermissions(dir) {
|
|
11
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting permissions'));
|
|
15
12
|
try {
|
|
16
|
-
let response = await
|
|
13
|
+
let response = await api.client.request(readPermissions({
|
|
17
14
|
limit: -1,
|
|
18
15
|
}));
|
|
19
16
|
// Delete the id field from the permissions so we don't have to reset the autoincrement on the db
|
|
@@ -24,11 +21,10 @@ async function extractPermissions(dir) {
|
|
|
24
21
|
delete i.id;
|
|
25
22
|
return i;
|
|
26
23
|
});
|
|
27
|
-
await (
|
|
24
|
+
await writeToFile('permissions', response, dir);
|
|
28
25
|
}
|
|
29
26
|
catch (error) {
|
|
30
|
-
(
|
|
27
|
+
catchError(error);
|
|
31
28
|
}
|
|
32
|
-
|
|
29
|
+
ux.action.stop();
|
|
33
30
|
}
|
|
34
|
-
exports.default = extractPermissions;
|
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const sdk_2 = require("../sdk");
|
|
8
|
-
const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
|
|
9
|
-
const write_to_file_1 = tslib_1.__importDefault(require("../utils/write-to-file"));
|
|
1
|
+
import { readPolicies } from '@directus/sdk';
|
|
2
|
+
import { ux } from '@oclif/core';
|
|
3
|
+
import { DIRECTUS_PINK } from '../constants.js';
|
|
4
|
+
import { api } from '../sdk.js';
|
|
5
|
+
import catchError from '../utils/catch-error.js';
|
|
6
|
+
import writeToFile from '../utils/write-to-file.js';
|
|
10
7
|
/**
|
|
11
8
|
* Extract policies from the API
|
|
12
9
|
*/
|
|
13
|
-
async function extractPolicies(dir) {
|
|
14
|
-
|
|
10
|
+
export default async function extractPolicies(dir) {
|
|
11
|
+
ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting policies'));
|
|
15
12
|
try {
|
|
16
|
-
const response = await
|
|
13
|
+
const response = await api.client.request(readPolicies({ limit: -1 }));
|
|
17
14
|
// Delete the id field from the permissions so we don't have to reset the autoincrement on the db
|
|
18
15
|
for (const policies of response) {
|
|
19
16
|
delete policies.users; // Alias Field
|
|
20
17
|
delete policies.roles; // Alias Field
|
|
21
18
|
delete policies.permissions; // Alias Field
|
|
22
19
|
}
|
|
23
|
-
await (
|
|
20
|
+
await writeToFile('policies', response, dir);
|
|
24
21
|
}
|
|
25
22
|
catch (error) {
|
|
26
|
-
(
|
|
23
|
+
catchError(error);
|
|
27
24
|
}
|
|
28
|
-
|
|
25
|
+
ux.action.stop();
|
|
29
26
|
}
|
|
30
|
-
exports.default = extractPolicies;
|