directus-template-cli 0.7.0-beta.1 → 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.
Files changed (106) hide show
  1. package/bin/dev.js +6 -0
  2. package/bin/run.js +5 -0
  3. package/dist/commands/apply.d.ts +17 -17
  4. package/dist/commands/apply.js +165 -173
  5. package/dist/commands/base.d.ts +15 -0
  6. package/dist/commands/base.js +45 -0
  7. package/dist/commands/extract.d.ts +16 -7
  8. package/dist/commands/extract.js +81 -73
  9. package/dist/commands/init.d.ts +21 -15
  10. package/dist/commands/init.js +204 -155
  11. package/dist/flags/common.d.ts +8 -7
  12. package/dist/flags/common.js +13 -11
  13. package/dist/index.js +1 -5
  14. package/dist/lib/constants.d.ts +7 -5
  15. package/dist/lib/constants.js +17 -14
  16. package/dist/lib/extract/extract-access.js +11 -15
  17. package/dist/lib/extract/extract-assets.js +20 -25
  18. package/dist/lib/extract/extract-collections.js +12 -16
  19. package/dist/lib/extract/extract-content.js +14 -19
  20. package/dist/lib/extract/extract-dashboards.js +22 -28
  21. package/dist/lib/extract/extract-extensions.js +12 -16
  22. package/dist/lib/extract/extract-fields.js +13 -17
  23. package/dist/lib/extract/extract-files.js +15 -19
  24. package/dist/lib/extract/extract-flows.js +22 -28
  25. package/dist/lib/extract/extract-folders.js +15 -19
  26. package/dist/lib/extract/extract-permissions.js +12 -16
  27. package/dist/lib/extract/extract-policies.js +12 -16
  28. package/dist/lib/extract/extract-presets.js +12 -16
  29. package/dist/lib/extract/extract-relations.js +14 -18
  30. package/dist/lib/extract/extract-roles.js +15 -19
  31. package/dist/lib/extract/extract-schema.js +17 -21
  32. package/dist/lib/extract/extract-settings.js +12 -16
  33. package/dist/lib/extract/extract-translations.js +12 -16
  34. package/dist/lib/extract/extract-users.js +15 -19
  35. package/dist/lib/extract/index.js +47 -51
  36. package/dist/lib/init/config.d.ts +1 -1
  37. package/dist/lib/init/config.js +4 -7
  38. package/dist/lib/init/index.d.ts +10 -9
  39. package/dist/lib/init/index.js +129 -85
  40. package/dist/lib/init/types.js +1 -2
  41. package/dist/lib/load/apply-flags.js +17 -23
  42. package/dist/lib/load/index.d.ts +1 -12
  43. package/dist/lib/load/index.js +40 -44
  44. package/dist/lib/load/load-access.js +15 -20
  45. package/dist/lib/load/load-collections.js +27 -32
  46. package/dist/lib/load/load-dashboards.js +19 -25
  47. package/dist/lib/load/load-data.js +43 -49
  48. package/dist/lib/load/load-extensions.js +30 -38
  49. package/dist/lib/load/load-files.js +20 -24
  50. package/dist/lib/load/load-flows.js +23 -29
  51. package/dist/lib/load/load-folders.js +16 -20
  52. package/dist/lib/load/load-permissions.js +13 -17
  53. package/dist/lib/load/load-policies.js +14 -18
  54. package/dist/lib/load/load-presets.js +14 -18
  55. package/dist/lib/load/load-relations.d.ts +2 -0
  56. package/dist/lib/load/load-relations.js +16 -18
  57. package/dist/lib/load/load-roles.js +19 -23
  58. package/dist/lib/load/load-settings.js +18 -21
  59. package/dist/lib/load/load-translations.js +14 -18
  60. package/dist/lib/load/load-users.js +21 -25
  61. package/dist/lib/load/update-required-fields.js +13 -17
  62. package/dist/lib/sdk.d.ts +1 -2
  63. package/dist/lib/sdk.js +27 -27
  64. package/dist/lib/types/extension.js +1 -2
  65. package/dist/lib/types.d.ts +18 -0
  66. package/dist/lib/types.js +1 -0
  67. package/dist/lib/utils/animated-bunny.d.ts +2 -0
  68. package/dist/lib/utils/animated-bunny.js +62 -0
  69. package/dist/lib/utils/auth.d.ts +8 -6
  70. package/dist/lib/utils/auth.js +48 -39
  71. package/dist/lib/utils/catch-error.js +8 -11
  72. package/dist/lib/utils/check-template.js +4 -8
  73. package/dist/lib/utils/chunk-array.js +1 -5
  74. package/dist/lib/utils/ensure-dir.js +7 -12
  75. package/dist/lib/utils/filter-fields.js +1 -4
  76. package/dist/lib/utils/get-role-ids.d.ts +1 -1
  77. package/dist/lib/utils/get-role-ids.js +7 -12
  78. package/dist/lib/utils/get-template.js +33 -37
  79. package/dist/lib/utils/logger.js +11 -13
  80. package/dist/lib/utils/open-url.js +5 -8
  81. package/dist/lib/utils/parse-github-url.d.ts +10 -5
  82. package/dist/lib/utils/parse-github-url.js +80 -45
  83. package/dist/lib/utils/path.js +6 -10
  84. package/dist/lib/utils/protected-domains.js +1 -4
  85. package/dist/lib/utils/read-file.js +8 -12
  86. package/dist/lib/utils/read-templates.js +9 -15
  87. package/dist/lib/utils/sanitize-flags.d.ts +3 -0
  88. package/dist/lib/utils/sanitize-flags.js +4 -0
  89. package/dist/lib/utils/system-fields.js +19 -22
  90. package/dist/lib/utils/template-config.d.ts +16 -0
  91. package/dist/lib/utils/template-config.js +34 -0
  92. package/dist/lib/utils/template-defaults.d.ts +1 -1
  93. package/dist/lib/utils/template-defaults.js +5 -14
  94. package/dist/lib/utils/transform-github-url.js +1 -5
  95. package/dist/lib/utils/validate-url.js +3 -6
  96. package/dist/lib/utils/wait.js +1 -5
  97. package/dist/lib/utils/write-to-file.js +8 -11
  98. package/dist/services/docker.js +82 -29
  99. package/dist/services/github.d.ts +1 -1
  100. package/dist/services/github.js +53 -22
  101. package/dist/services/posthog.d.ts +37 -0
  102. package/dist/services/posthog.js +104 -0
  103. package/oclif.manifest.json +32 -13
  104. package/package.json +41 -31
  105. package/bin/dev +0 -17
  106. package/bin/run +0 -5
@@ -1,7 +1,8 @@
1
- export declare const directusToken: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
2
- export declare const directusUrl: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
3
- export declare const userEmail: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
4
- export declare const userPassword: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
5
- export declare const programmatic: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
- export declare const templateLocation: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
- export declare const templateName: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
1
+ export declare const directusToken: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
2
+ export declare const directusUrl: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
3
+ export declare const userEmail: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
4
+ export declare const userPassword: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
5
+ export declare const programmatic: import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
+ export declare const templateLocation: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ export declare const templateName: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
+ export declare const disableTelemetry: import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -1,41 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.templateName = exports.templateLocation = exports.programmatic = exports.userPassword = exports.userEmail = exports.directusUrl = exports.directusToken = void 0;
4
- const core_1 = require("@oclif/core");
5
- exports.directusToken = core_1.Flags.string({
1
+ import { Flags } from '@oclif/core';
2
+ export const directusToken = Flags.string({
6
3
  description: 'Token to use for the Directus instance',
7
4
  env: 'DIRECTUS_TOKEN',
8
5
  exclusive: ['userEmail', 'userPassword'],
9
6
  });
10
- exports.directusUrl = core_1.Flags.string({
7
+ export const directusUrl = Flags.string({
11
8
  description: 'URL of the Directus instance',
12
9
  env: 'DIRECTUS_URL',
13
10
  });
14
- exports.userEmail = core_1.Flags.string({
11
+ export const userEmail = Flags.string({
15
12
  dependsOn: ['userPassword'],
16
13
  description: 'Email for Directus authentication',
17
14
  env: 'DIRECTUS_EMAIL',
18
15
  exclusive: ['directusToken'],
19
16
  });
20
- exports.userPassword = core_1.Flags.string({
17
+ export const userPassword = Flags.string({
21
18
  dependsOn: ['userEmail'],
22
19
  description: 'Password for Directus authentication',
23
20
  env: 'DIRECTUS_PASSWORD',
24
21
  exclusive: ['directusToken'],
25
22
  });
26
- exports.programmatic = core_1.Flags.boolean({
23
+ export const programmatic = Flags.boolean({
27
24
  char: 'p',
28
25
  default: false,
29
26
  description: 'Run in programmatic mode (non-interactive) for use cases such as CI/CD pipelines.',
30
27
  summary: 'Run in programmatic mode',
31
28
  });
32
- exports.templateLocation = core_1.Flags.string({
29
+ export const templateLocation = Flags.string({
33
30
  dependsOn: ['programmatic'],
34
31
  description: 'Location of the template',
35
32
  env: 'TEMPLATE_LOCATION',
36
33
  });
37
- exports.templateName = core_1.Flags.string({
34
+ export const templateName = Flags.string({
38
35
  dependsOn: ['programmatic'],
39
36
  description: 'Name of the template',
40
37
  env: 'TEMPLATE_NAME',
41
38
  });
39
+ export const disableTelemetry = Flags.boolean({
40
+ default: false,
41
+ description: 'Disable telemetry',
42
+ env: 'DISABLE_TELEMETRY',
43
+ });
package/dist/index.js CHANGED
@@ -1,5 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.run = void 0;
4
- var core_1 = require("@oclif/core");
5
- Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
1
+ export { run } from '@oclif/core';
@@ -1,15 +1,12 @@
1
1
  export declare const DIRECTUS_PURPLE = "#6644ff";
2
2
  export declare const DIRECTUS_PINK = "#FF99DD";
3
3
  export declare const SEPARATOR = "------------------";
4
+ export declare const pinkText: import("chalk").ChalkInstance;
5
+ export declare const purpleText: import("chalk").ChalkInstance;
4
6
  export declare const COMMUNITY_TEMPLATE_REPO: {
5
7
  string: string;
6
8
  url: string;
7
9
  };
8
- export declare const STARTERS_TEMPLATE_REPO: {
9
- branch: string;
10
- string: string;
11
- url: string;
12
- };
13
10
  export declare const DEFAULT_REPO: {
14
11
  owner: string;
15
12
  path: string;
@@ -17,3 +14,8 @@ export declare const DEFAULT_REPO: {
17
14
  repo: string;
18
15
  url: string;
19
16
  };
17
+ export declare const POSTHOG_PUBLIC_KEY = "phc_STopE6gj6LDIjYonVF7493kQJK8S4v0Xrl6YPr2z9br";
18
+ export declare const POSTHOG_HOST = "https://us.i.posthog.com";
19
+ export declare const DEFAULT_BRANCH = "main";
20
+ export declare const BSL_LICENSE_URL = "https://directus.io/bsl";
21
+ export declare const BSL_LICENSE_TEXT: string;
@@ -1,22 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_REPO = exports.STARTERS_TEMPLATE_REPO = exports.COMMUNITY_TEMPLATE_REPO = exports.SEPARATOR = exports.DIRECTUS_PINK = exports.DIRECTUS_PURPLE = void 0;
4
- exports.DIRECTUS_PURPLE = '#6644ff';
5
- exports.DIRECTUS_PINK = '#FF99DD';
6
- exports.SEPARATOR = '------------------';
7
- exports.COMMUNITY_TEMPLATE_REPO = {
1
+ import chalk from 'chalk';
2
+ import terminalLink from 'terminal-link';
3
+ export const DIRECTUS_PURPLE = '#6644ff';
4
+ export const DIRECTUS_PINK = '#FF99DD';
5
+ export const SEPARATOR = '------------------';
6
+ export const pinkText = chalk.hex(DIRECTUS_PINK);
7
+ export const purpleText = chalk.hex(DIRECTUS_PURPLE);
8
+ export const COMMUNITY_TEMPLATE_REPO = {
8
9
  string: 'github:directus-labs/directus-templates',
9
10
  url: 'https://github.com/directus-labs/directus-templates',
10
11
  };
11
- exports.STARTERS_TEMPLATE_REPO = {
12
- branch: 'cms-template',
13
- string: 'github:directus-labs/starters',
14
- url: 'https://github.com/directus-labs/starters',
15
- };
16
- exports.DEFAULT_REPO = {
12
+ export const DEFAULT_REPO = {
17
13
  owner: 'directus-labs',
18
14
  path: '',
19
- ref: 'cms-template',
15
+ ref: 'main',
20
16
  repo: 'starters',
21
17
  url: 'https://github.com/directus-labs/starters',
22
18
  };
19
+ export const POSTHOG_PUBLIC_KEY = 'phc_STopE6gj6LDIjYonVF7493kQJK8S4v0Xrl6YPr2z9br';
20
+ export const POSTHOG_HOST = 'https://us.i.posthog.com';
21
+ export const DEFAULT_BRANCH = 'main';
22
+ export const BSL_LICENSE_URL = 'https://directus.io/bsl';
23
+ const BSL_LINK = terminalLink(BSL_LICENSE_URL, BSL_LICENSE_URL);
24
+ const BSL_MAILTO = terminalLink('sales-demo-with-evil-sales@directus.io', 'mailto:sales-demo-with-evil-sales@directus.io');
25
+ export const BSL_LICENSE_TEXT = `You REQUIRE a license to use Directus if your organisation has more than $5MM USD a year in revenue and/or funding.\nFor all organizations with less than $5MM USD a year in revenue and funding, Directus is free for personal projects, hobby projects and in production. This second group does not require a license. \nDirectus is licensed under BSL1.1. Visit ${pinkText(BSL_LINK)} for more information or reach out to us at ${pinkText(BSL_MAILTO)}.`;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const core_1 = require("@oclif/core");
5
- const constants_1 = require("../constants");
6
- const sdk_1 = require("../sdk");
7
- const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
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 sdk_1.api.client.request(() => ({
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 (0, write_to_file_1.default)('access', response, dir);
17
+ await writeToFile('access', response, dir);
21
18
  }
22
19
  catch (error) {
23
- (0, catch_error_1.default)(error);
20
+ catchError(error);
24
21
  }
25
- core_1.ux.action.stop();
22
+ ux.action.stop();
26
23
  }
27
- exports.default = extractAccess;
@@ -1,46 +1,41 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.downloadAllFiles = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@directus/sdk");
6
- const core_1 = require("@oclif/core");
7
- const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
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 sdk_2.api.client.request((0, sdk_1.readFiles)({ limit: -1 }));
9
+ return api.client.request(readFiles({ limit: -1 }));
14
10
  }
15
11
  async function downloadFile(file, dir) {
16
- const response = await sdk_2.api.client.request(() => ({
12
+ const response = await api.client.request(() => ({
17
13
  method: 'GET',
18
14
  path: `/assets/${file.id}`,
19
15
  }));
20
- const fullPath = node_path_1.default.join(dir, 'assets', file.filename_disk);
16
+ const fullPath = path.join(dir, 'assets', file.filename_disk);
21
17
  if (typeof response === 'string') {
22
- node_fs_1.default.writeFileSync(fullPath, response);
18
+ fs.writeFileSync(fullPath, response);
23
19
  }
24
20
  else {
25
21
  const data = await response.arrayBuffer();
26
- node_fs_1.default.writeFileSync(fullPath, Buffer.from(data));
22
+ fs.writeFileSync(fullPath, Buffer.from(data));
27
23
  }
28
24
  }
29
- async function downloadAllFiles(dir) {
30
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Downloading assets'));
25
+ export async function downloadAllFiles(dir) {
26
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Downloading assets'));
31
27
  try {
32
- const fullPath = node_path_1.default.join(dir, 'assets');
33
- if (node_path_1.default && !node_fs_1.default.existsSync(fullPath)) {
34
- node_fs_1.default.mkdirSync(fullPath, { recursive: true });
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
- (0, catch_error_1.default)(`Error downloading ${file.filename_disk}: ${error.message}`);
34
+ catchError(`Error downloading ${file.filename_disk}: ${error.message}`);
39
35
  })));
40
36
  }
41
37
  catch (error) {
42
- (0, catch_error_1.default)(error);
38
+ catchError(error);
43
39
  }
44
- core_1.ux.action.stop();
40
+ ux.action.stop();
45
41
  }
46
- exports.downloadAllFiles = downloadAllFiles;
@@ -1,25 +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 constants_1 = require("../constants");
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting collections'));
10
+ export default async function extractCollections(dir) {
11
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting collections'));
15
12
  try {
16
- const response = await sdk_2.api.client.request((0, sdk_1.readCollections)());
13
+ const response = await api.client.request(readCollections());
17
14
  const collections = response.filter(collection => !collection.collection.startsWith('directus_'));
18
- await (0, write_to_file_1.default)('collections', collections, dir);
15
+ await writeToFile('collections', collections, dir);
19
16
  }
20
17
  catch (error) {
21
- (0, catch_error_1.default)(error);
18
+ catchError(error);
22
19
  }
23
- core_1.ux.action.stop();
20
+ ux.action.stop();
24
21
  }
25
- exports.default = extractCollections;
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractContent = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@directus/sdk");
6
- const core_1 = require("@oclif/core");
7
- const constants_1 = require("../constants");
8
- const sdk_2 = require("../sdk");
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"));
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';
11
7
  async function getCollections() {
12
- const response = await sdk_2.api.client.request((0, sdk_1.readCollections)());
8
+ const response = await api.client.request(readCollections());
13
9
  return response
14
10
  .filter(item => !item.collection.startsWith('directus_', 0))
15
11
  .filter(item => item.schema != null)
@@ -17,22 +13,21 @@ async function getCollections() {
17
13
  }
18
14
  async function getDataFromCollection(collection, dir) {
19
15
  try {
20
- const response = await sdk_2.api.client.request((0, sdk_1.readItems)(collection, { limit: -1 }));
21
- await (0, write_to_file_1.default)(`${collection}`, response, `${dir}/content/`);
16
+ const response = await api.client.request(readItems(collection, { limit: -1 }));
17
+ await writeToFile(`${collection}`, response, `${dir}/content/`);
22
18
  }
23
19
  catch (error) {
24
- (0, catch_error_1.default)(error);
20
+ catchError(error);
25
21
  }
26
22
  }
27
- async function extractContent(dir) {
28
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting content'));
23
+ export async function extractContent(dir) {
24
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting content'));
29
25
  try {
30
26
  const collections = await getCollections();
31
27
  await Promise.all(collections.map(collection => getDataFromCollection(collection, dir)));
32
28
  }
33
29
  catch (error) {
34
- (0, catch_error_1.default)(error);
30
+ catchError(error);
35
31
  }
36
- core_1.ux.action.stop();
32
+ ux.action.stop();
37
33
  }
38
- exports.extractContent = extractContent;
@@ -1,44 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractPanels = exports.extractDashboards = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@directus/sdk");
6
- const core_1 = require("@oclif/core");
7
- const constants_1 = require("../constants");
8
- const sdk_2 = require("../sdk");
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting dashboards'));
12
+ export async function extractDashboards(dir) {
13
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting dashboards'));
18
14
  try {
19
- const response = await sdk_2.api.client.request((0, sdk_1.readDashboards)({ limit: -1 }));
20
- const dashboards = (0, filter_fields_1.default)(response, system_fields_1.directusDashboardFields);
21
- await (0, write_to_file_1.default)('dashboards', dashboards, dir);
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
- (0, catch_error_1.default)(error);
20
+ catchError(error);
25
21
  }
26
- core_1.ux.action.stop();
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting panels'));
27
+ export async function extractPanels(dir) {
28
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting panels'));
34
29
  try {
35
- const response = await sdk_2.api.client.request((0, sdk_1.readPanels)({ limit: -1 }));
36
- const panels = (0, filter_fields_1.default)(response, system_fields_1.directusPanelFields);
37
- await (0, write_to_file_1.default)('panels', panels, dir);
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
- (0, catch_error_1.default)(error);
35
+ catchError(error);
41
36
  }
42
- core_1.ux.action.stop();
37
+ ux.action.stop();
43
38
  }
44
- exports.extractPanels = extractPanels;
@@ -1,24 +1,20 @@
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 constants_1 = require("../constants");
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting extensions'));
10
+ export default async function extractExtensions(dir) {
11
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting extensions'));
15
12
  try {
16
- const response = await sdk_2.api.client.request((0, sdk_1.readExtensions)());
17
- await (0, write_to_file_1.default)('extensions', response, dir);
13
+ const response = await api.client.request(readExtensions());
14
+ await writeToFile('extensions', response, dir);
18
15
  }
19
16
  catch (error) {
20
- (0, catch_error_1.default)(error);
17
+ catchError(error);
21
18
  }
22
- core_1.ux.action.stop();
19
+ ux.action.stop();
23
20
  }
24
- exports.default = extractExtensions;
@@ -1,25 +1,22 @@
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 constants_1 = require("../constants");
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting fields'));
10
+ export default async function extractFields(dir) {
11
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting fields'));
15
12
  try {
16
- const response = await sdk_2.api.client.request((0, sdk_1.readFields)());
13
+ const response = await api.client.request(readFields());
17
14
  if (!Array.isArray(response)) {
18
15
  throw new TypeError('Unexpected response format');
19
16
  }
20
17
  const fields = response
21
18
  .filter(
22
- // @ts-expect-error - This is a Directus issue
19
+ // @ts-ignore
23
20
  (i) => i.meta && !i.meta.system)
24
21
  .map(i => {
25
22
  if (i.meta) {
@@ -27,11 +24,10 @@ async function extractFields(dir) {
27
24
  }
28
25
  return i;
29
26
  });
30
- await (0, write_to_file_1.default)('fields', fields, dir);
27
+ await writeToFile('fields', fields, dir);
31
28
  }
32
29
  catch (error) {
33
- (0, catch_error_1.default)(error);
30
+ catchError(error);
34
31
  }
35
- core_1.ux.action.stop();
32
+ ux.action.stop();
36
33
  }
37
- exports.default = extractFields;
@@ -1,27 +1,23 @@
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 constants_1 = require("../constants");
7
- const sdk_2 = require("../sdk");
8
- const catch_error_1 = tslib_1.__importDefault(require("../utils/catch-error"));
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting files'));
12
+ export default async function extractFiles(dir) {
13
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting files'));
17
14
  try {
18
- const response = await sdk_2.api.client.request((0, sdk_1.readFiles)({ limit: -1 }));
19
- const files = (0, filter_fields_1.default)(response, system_fields_1.directusFileFields);
20
- await (0, write_to_file_1.default)('files', files, dir);
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
- (0, catch_error_1.default)(error);
20
+ catchError(error);
24
21
  }
25
- core_1.ux.action.stop();
22
+ ux.action.stop();
26
23
  }
27
- exports.default = extractFiles;
@@ -1,44 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractOperations = exports.extractFlows = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@directus/sdk");
6
- const core_1 = require("@oclif/core");
7
- const constants_1 = require("../constants");
8
- const sdk_2 = require("../sdk");
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting flows'));
12
+ export async function extractFlows(dir) {
13
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting flows'));
18
14
  try {
19
- const response = await sdk_2.api.client.request((0, sdk_1.readFlows)({ limit: -1 }));
20
- const flows = (0, filter_fields_1.default)(response, system_fields_1.directusFlowFields);
21
- await (0, write_to_file_1.default)('flows', flows, dir);
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
- (0, catch_error_1.default)(error);
20
+ catchError(error);
25
21
  }
26
- core_1.ux.action.stop();
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
- core_1.ux.action.start(core_1.ux.colorize(constants_1.DIRECTUS_PINK, 'Extracting operations'));
27
+ export async function extractOperations(dir) {
28
+ ux.action.start(ux.colorize(DIRECTUS_PINK, 'Extracting operations'));
34
29
  try {
35
- const response = await sdk_2.api.client.request((0, sdk_1.readOperations)({ limit: -1 }));
36
- const operations = (0, filter_fields_1.default)(response, system_fields_1.directusOperationFields);
37
- await (0, write_to_file_1.default)('operations', operations, dir);
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
- (0, catch_error_1.default)(error);
35
+ catchError(error);
41
36
  }
42
- core_1.ux.action.stop();
37
+ ux.action.stop();
43
38
  }
44
- exports.extractOperations = extractOperations;