contensis-cli 1.1.2-beta.0 → 1.1.2-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 (75) hide show
  1. package/dist/commands/copy.js +70 -0
  2. package/dist/commands/copy.js.map +7 -0
  3. package/dist/commands/create.js.map +2 -2
  4. package/dist/commands/dev.js +11 -4
  5. package/dist/commands/dev.js.map +2 -2
  6. package/dist/commands/get.js +1 -0
  7. package/dist/commands/get.js.map +2 -2
  8. package/dist/commands/globalOptions.js +24 -3
  9. package/dist/commands/globalOptions.js.map +2 -2
  10. package/dist/commands/import.js +1 -6
  11. package/dist/commands/import.js.map +2 -2
  12. package/dist/commands/index.js +7 -3
  13. package/dist/commands/index.js.map +2 -2
  14. package/dist/factories/RequestHandlerFactory.js +214 -0
  15. package/dist/factories/RequestHandlerFactory.js.map +7 -0
  16. package/dist/localisation/en-GB.js +30 -5
  17. package/dist/localisation/en-GB.js.map +2 -2
  18. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js +159 -0
  19. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js.map +7 -0
  20. package/dist/providers/GitHubCliModuleProvider.js +117 -0
  21. package/dist/providers/GitHubCliModuleProvider.js.map +7 -0
  22. package/dist/providers/HttpProvider.js +72 -0
  23. package/dist/providers/HttpProvider.js.map +7 -0
  24. package/dist/providers/ManifestProvider.js +53 -0
  25. package/dist/providers/ManifestProvider.js.map +7 -0
  26. package/dist/providers/file-provider.js +14 -0
  27. package/dist/providers/file-provider.js.map +2 -2
  28. package/dist/services/ContensisAuthService.js +19 -11
  29. package/dist/services/ContensisAuthService.js.map +2 -2
  30. package/dist/services/ContensisCliService.js +88 -14
  31. package/dist/services/ContensisCliService.js.map +2 -2
  32. package/dist/services/ContensisDevService.js +34 -58
  33. package/dist/services/ContensisDevService.js.map +3 -3
  34. package/dist/shell.js +1 -0
  35. package/dist/shell.js.map +2 -2
  36. package/dist/util/api-ids.js +110 -0
  37. package/dist/util/api-ids.js.map +7 -0
  38. package/dist/util/console.printer.js.map +2 -2
  39. package/dist/util/debug.js +29 -0
  40. package/dist/util/debug.js.map +7 -0
  41. package/dist/util/fetch.js +65 -0
  42. package/dist/util/fetch.js.map +7 -0
  43. package/dist/util/index.js.map +1 -1
  44. package/dist/util/logger.js.map +2 -2
  45. package/dist/version.js +1 -1
  46. package/dist/version.js.map +1 -1
  47. package/package.json +5 -3
  48. package/src/commands/copy.ts +79 -0
  49. package/src/commands/create.ts +0 -1
  50. package/src/commands/dev.ts +14 -6
  51. package/src/commands/get.ts +12 -11
  52. package/src/commands/globalOptions.ts +25 -2
  53. package/src/commands/import.ts +4 -8
  54. package/src/commands/index.ts +7 -3
  55. package/src/factories/RequestHandlerFactory.ts +246 -0
  56. package/src/localisation/en-GB.ts +55 -12
  57. package/src/mappers/DevRequests-to-RequestHanderCliArgs.ts +200 -0
  58. package/src/providers/GitHubCliModuleProvider.ts +127 -0
  59. package/src/providers/HttpProvider.ts +50 -0
  60. package/src/providers/ManifestProvider.ts +43 -0
  61. package/src/providers/file-provider.ts +13 -0
  62. package/src/services/ContensisAuthService.ts +23 -14
  63. package/src/services/ContensisCliService.ts +112 -15
  64. package/src/services/ContensisDevService.ts +52 -87
  65. package/src/shell.ts +2 -1
  66. package/src/util/api-ids.ts +111 -0
  67. package/src/util/console.printer.ts +2 -1
  68. package/src/util/debug.ts +1 -0
  69. package/src/util/fetch.ts +74 -0
  70. package/src/util/index.ts +1 -1
  71. package/src/util/logger.ts +0 -1
  72. package/src/version.ts +1 -1
  73. package/dist/mappers/DevRequests-to-RequestHanderSiteConfigYaml.js +0 -56
  74. package/dist/mappers/DevRequests-to-RequestHanderSiteConfigYaml.js.map +0 -7
  75. package/src/mappers/DevRequests-to-RequestHanderSiteConfigYaml.ts +0 -44
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/services/ContensisAuthService.ts"],
4
- "sourcesContent": ["import { NodejsClient } from 'contensis-management-api/lib/client';\nimport { ClientGrants, ClientGrantType } from 'contensis-core-api';\n\nclass ContensisAuthService {\n private client: NodejsClient;\n\n constructor({\n clientId = '',\n clientSecret = '',\n username,\n password,\n refreshToken,\n projectId,\n rootUrl,\n }: {\n clientId?: string;\n clientSecret?: string;\n username?: string;\n password?: string;\n refreshToken?: string;\n projectId: string;\n rootUrl: string;\n }) {\n let credentials: {\n clientType: ClientGrantType;\n clientDetails: ClientGrants;\n };\n if (clientId && clientSecret) {\n credentials = {\n clientType: 'client_credentials',\n clientDetails: {\n clientId,\n clientSecret,\n },\n };\n } else if (username && password) {\n credentials = {\n clientType: 'contensis_classic',\n clientDetails: {\n username,\n password,\n },\n };\n } else if (refreshToken) {\n credentials = {\n clientType: 'contensis_classic_refresh_token',\n clientDetails: {\n refreshToken,\n },\n };\n } else {\n credentials = { clientType: 'none', clientDetails: { refreshToken: '' } };\n }\n\n this.client = NodejsClient.create({\n ...credentials,\n projectId,\n rootUrl,\n });\n }\n\n ClassicToken = async (): Promise<string | null | undefined> => {\n // make sure our token isn't expried.\n await this.client.ensureBearerToken();\n return (this.client as any).contensisClassicToken;\n };\n BearerToken = async () =>\n this.client.bearerToken || (await this.client.ensureBearerToken());\n RefreshToken = async () =>\n !this.client.isRefreshTokenExpired() ? this.client.refreshToken : null;\n\n /* PROJECTS */\n ProjectId = () => this.client.clientConfig.projectId;\n RootUrl = () => this.client.clientConfig.rootUrl;\n}\n\nexport default ContensisAuthService;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAG7B,MAAM,qBAAqB;AAAA,EACjB;AAAA,EAER,YAAY;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAQG;AACD,QAAI;AAIJ,QAAI,YAAY,cAAc;AAC5B,oBAAc;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,YAAY,UAAU;AAC/B,oBAAc;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,cAAc;AACvB,oBAAc;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,QACF;AAAA,MACF;AAAA,IACF,OAAO;AACL,oBAAc,EAAE,YAAY,QAAQ,eAAe,EAAE,cAAc,GAAG,EAAE;AAAA,IAC1E;AAEA,SAAK,SAAS,2BAAa,OAAO;AAAA,MAChC,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,YAAgD;AAE7D,UAAM,KAAK,OAAO,kBAAkB;AACpC,WAAQ,KAAK,OAAe;AAAA,EAC9B;AAAA,EACA,cAAc,YACZ,KAAK,OAAO,eAAgB,MAAM,KAAK,OAAO,kBAAkB;AAAA,EAClE,eAAe,YACb,CAAC,KAAK,OAAO,sBAAsB,IAAI,KAAK,OAAO,eAAe;AAAA,EAGpE,YAAY,MAAM,KAAK,OAAO,aAAa;AAAA,EAC3C,UAAU,MAAM,KAAK,OAAO,aAAa;AAC3C;AAEA,IAAO,+BAAQ;",
4
+ "sourcesContent": ["import { NodejsClient } from 'contensis-management-api/lib/client';\nimport { ClientGrants, ClientGrantType } from 'contensis-core-api';\n\nclass ContensisAuthService {\n private client: NodejsClient;\n private credentials: {\n clientType: ClientGrantType;\n clientDetails: ClientGrants;\n };\n\n get clientType() {\n return this.credentials.clientType;\n }\n get clientDetails() {\n return this.credentials.clientDetails;\n }\n\n constructor({\n clientId = '',\n clientSecret = '',\n username,\n password,\n refreshToken,\n projectId,\n rootUrl,\n }: {\n clientId?: string;\n clientSecret?: string;\n username?: string;\n password?: string;\n refreshToken?: string;\n projectId: string;\n rootUrl: string;\n }) {\n if (clientId && clientSecret)\n this.credentials = {\n clientType: 'client_credentials',\n clientDetails: {\n clientId,\n clientSecret,\n },\n };\n else if (username && password)\n this.credentials = {\n clientType: 'contensis_classic',\n clientDetails: {\n username,\n password,\n },\n };\n else if (refreshToken)\n this.credentials = {\n clientType: 'contensis_classic_refresh_token',\n clientDetails: {\n refreshToken,\n },\n };\n else\n this.credentials = {\n clientType: 'none',\n clientDetails: { refreshToken: '' },\n };\n\n this.client = NodejsClient.create({\n ...this.credentials,\n projectId,\n rootUrl,\n });\n }\n\n ClassicToken = async (): Promise<string | null | undefined> => {\n // make sure our token isn't expried.\n await this.client.ensureBearerToken();\n return (this.client as any).contensisClassicToken;\n };\n BearerToken = async () =>\n this.client.bearerToken || (await this.client.ensureBearerToken());\n RefreshToken = async () =>\n !this.client.isRefreshTokenExpired() ? this.client.refreshToken : null;\n\n /* PROJECTS */\n ProjectId = () => this.client.clientConfig.projectId;\n RootUrl = () => this.client.clientConfig.rootUrl;\n}\n\nexport default ContensisAuthService;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAG7B,MAAM,qBAAqB;AAAA,EACjB;AAAA,EACA;AAAA,EAKR,IAAI,aAAa;AACf,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,gBAAgB;AAClB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,YAAY;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAQG;AACD,QAAI,YAAY;AACd,WAAK,cAAc;AAAA,QACjB,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,aACO,YAAY;AACnB,WAAK,cAAc;AAAA,QACjB,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,aACO;AACP,WAAK,cAAc;AAAA,QACjB,YAAY;AAAA,QACZ,eAAe;AAAA,UACb;AAAA,QACF;AAAA,MACF;AAAA;AAEA,WAAK,cAAc;AAAA,QACjB,YAAY;AAAA,QACZ,eAAe,EAAE,cAAc,GAAG;AAAA,MACpC;AAEF,SAAK,SAAS,2BAAa,OAAO;AAAA,MAChC,GAAG,KAAK;AAAA,MACR;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,YAAgD;AAE7D,UAAM,KAAK,OAAO,kBAAkB;AACpC,WAAQ,KAAK,OAAe;AAAA,EAC9B;AAAA,EACA,cAAc,YACZ,KAAK,OAAO,eAAgB,MAAM,KAAK,OAAO,kBAAkB;AAAA,EAClE,eAAe,YACb,CAAC,KAAK,OAAO,sBAAsB,IAAI,KAAK,OAAO,eAAe;AAAA,EAGpE,YAAY,MAAM,KAAK,OAAO,aAAa;AAAA,EAC3C,UAAU,MAAM,KAAK,OAAO,aAAa;AAC3C;AAEA,IAAO,+BAAQ;",
6
6
  "names": []
7
7
  }
@@ -41,14 +41,16 @@ var import_file_provider = require("../providers/file-provider");
41
41
  var import_SessionCacheProvider = __toESM(require("../providers/SessionCacheProvider"));
42
42
  var import_CredentialProvider = __toESM(require("../providers/CredentialProvider"));
43
43
  var import_util = require("../util");
44
+ var import_api_ids = require("../util/api-ids");
44
45
  var import_console = require("../util/console.printer");
45
46
  var import_csv = require("../util/csv.formatter");
46
- var import_xml = require("../util/xml.formatter");
47
47
  var import_json = require("../util/json.formatter");
48
+ var import_xml = require("../util/xml.formatter");
49
+ var import_debug = require("../util/debug");
48
50
  var import_diff = require("../util/diff");
51
+ var import_find = require("../util/find");
49
52
  var import_logger = require("../util/logger");
50
53
  var import_timers = require("../util/timers");
51
- var import_find = require("../util/find");
52
54
  let insecurePasswordWarningShown = false;
53
55
  class ContensisCli {
54
56
  static quit = (error) => {
@@ -64,6 +66,7 @@ class ContensisCli {
64
66
  contensis;
65
67
  contensisOpts;
66
68
  currentProject;
69
+ debug = (0, import_debug.isDebug)();
67
70
  sourceAlias;
68
71
  targetEnv;
69
72
  urls;
@@ -98,6 +101,7 @@ class ContensisCli {
98
101
  }
99
102
  }
100
103
  constructor(args, outputOpts, contensisOpts = {}) {
104
+ var _a;
101
105
  const [exe, script, verb = "", noun = "", ...restArgs] = args;
102
106
  this.verb = verb == null ? void 0 : verb.toLowerCase();
103
107
  this.noun = noun == null ? void 0 : noun.toLowerCase();
@@ -105,6 +109,11 @@ class ContensisCli {
105
109
  const commandText = `${this.verb} ${this.noun} ${restArgs ? restArgs.join(" ") : ""}`.trim();
106
110
  this.session = new import_SessionCacheProvider.default();
107
111
  this.contensisOpts = contensisOpts;
112
+ if (Array.isArray((_a = this.contensisOpts.query) == null ? void 0 : _a.fields)) {
113
+ this.contensisOpts.query.fields = (0, import_api_ids.sanitiseIds)(
114
+ this.contensisOpts.query.fields
115
+ );
116
+ }
108
117
  this.format = outputOpts == null ? void 0 : outputOpts.format;
109
118
  this.output = (outputOpts == null ? void 0 : outputOpts.output) && import_path.default.join(process.cwd(), outputOpts.output);
110
119
  const currentEnvironment = (outputOpts == null ? void 0 : outputOpts.alias) || this.currentEnv;
@@ -1408,6 +1417,60 @@ Components:`));
1408
1417
  log.help(messages.connect.tip());
1409
1418
  }
1410
1419
  };
1420
+ CopyEntryField = async ({
1421
+ commit,
1422
+ fromFile,
1423
+ logOutput
1424
+ }) => {
1425
+ var _a, _b, _c, _d, _e, _f, _g;
1426
+ const { currentEnv, currentProject, log, messages } = this;
1427
+ const contensis = await this.ConnectContensisImport({
1428
+ commit,
1429
+ fromFile,
1430
+ importDataType: "entries"
1431
+ });
1432
+ if (contensis) {
1433
+ log.line();
1434
+ if (contensis.isPreview) {
1435
+ console.log(log.successText(` -- IMPORT PREVIEW -- `));
1436
+ } else {
1437
+ console.log(log.warningText(` *** COMMITTING IMPORT *** `));
1438
+ }
1439
+ const [err, result] = await (0, import_await_to_js.default)(
1440
+ contensis.content.copy.MigrateFieldContent()
1441
+ );
1442
+ if (err)
1443
+ (0, import_logger.logError)(err);
1444
+ if (result)
1445
+ await this.HandleFormattingAndOutput(result, () => {
1446
+ (0, import_console.printEntriesMigrateResult)(this, result, {
1447
+ showAll: logOutput === "all",
1448
+ showDiff: logOutput === "all" || logOutput === "changes",
1449
+ showChanged: logOutput === "changes"
1450
+ });
1451
+ });
1452
+ if (result && !err && !((_a = result.errors) == null ? void 0 : _a.length) && (!commit && result.entriesToMigrate[currentProject].totalCount || commit && (((_b = result.migrateResult) == null ? void 0 : _b.created) || ((_c = result.migrateResult) == null ? void 0 : _c.updated)))) {
1453
+ log.success(
1454
+ messages.entries.imported(
1455
+ currentEnv,
1456
+ commit,
1457
+ commit ? (((_d = result.migrateResult) == null ? void 0 : _d.created) || 0) + (((_e = result.migrateResult) == null ? void 0 : _e.updated) || 0) : result.entriesToMigrate[currentProject].totalCount
1458
+ )
1459
+ );
1460
+ if (!commit) {
1461
+ log.raw(``);
1462
+ log.help(messages.entries.commitTip());
1463
+ }
1464
+ } else {
1465
+ log.error(messages.entries.failedImport(currentEnv), err);
1466
+ if (!((_g = (_f = result == null ? void 0 : result.entriesToMigrate) == null ? void 0 : _f[currentProject]) == null ? void 0 : _g.totalCount))
1467
+ log.help(messages.entries.notFound(currentEnv));
1468
+ }
1469
+ } else {
1470
+ log.warning(messages.models.noList(currentProject));
1471
+ log.help(messages.connect.tip());
1472
+ }
1473
+ };
1411
1474
  GetNodes = async (rootPath, depth = 0) => {
1412
1475
  const { currentProject, log, messages } = this;
1413
1476
  const contensis = await this.ConnectContensis();
@@ -1611,7 +1674,7 @@ Components:`));
1611
1674
  const contensis = await this.ConnectContensis();
1612
1675
  if (contensis) {
1613
1676
  const [err, blocks] = await contensis.blocks.GetBlocks();
1614
- if (Array.isArray(blocks)) {
1677
+ if (Array.isArray(blocks) && blocks.length) {
1615
1678
  await this.HandleFormattingAndOutput(blocks, () => {
1616
1679
  log.success(messages.blocks.list(currentEnv, env.currentProject));
1617
1680
  for (const {
@@ -1634,8 +1697,7 @@ Components:`));
1634
1697
  return blocks;
1635
1698
  }
1636
1699
  if (err) {
1637
- log.error(messages.blocks.noList(currentEnv));
1638
- log.error((0, import_json.jsonFormatter)(err));
1700
+ log.error(messages.blocks.noList(currentEnv, env.currentProject));
1639
1701
  }
1640
1702
  }
1641
1703
  };
@@ -1648,10 +1710,27 @@ Components:`));
1648
1710
  branch,
1649
1711
  version
1650
1712
  );
1651
- if (blocks) {
1713
+ if (err || (blocks == null ? void 0 : blocks.length) === 0) {
1714
+ log.warning(
1715
+ messages.blocks.noGet(
1716
+ blockId,
1717
+ branch,
1718
+ version,
1719
+ currentEnv,
1720
+ env.currentProject
1721
+ )
1722
+ );
1723
+ log.help(messages.blocks.noGetTip());
1724
+ } else if (blocks) {
1652
1725
  await this.HandleFormattingAndOutput(blocks, () => {
1653
1726
  log.success(
1654
- messages.blocks.get(blockId, currentEnv, env.currentProject)
1727
+ messages.blocks.get(
1728
+ blockId,
1729
+ branch,
1730
+ version,
1731
+ currentEnv,
1732
+ env.currentProject
1733
+ )
1655
1734
  );
1656
1735
  for (const block of blocks)
1657
1736
  (0, import_console.printBlockVersion)(
@@ -1667,10 +1746,6 @@ Components:`));
1667
1746
  });
1668
1747
  return blocks;
1669
1748
  }
1670
- if (err) {
1671
- log.error(messages.blocks.noList(currentEnv, env.currentProject));
1672
- log.error((0, import_json.jsonFormatter)(err));
1673
- }
1674
1749
  }
1675
1750
  };
1676
1751
  PushBlock = async (block) => {
@@ -1915,9 +1990,7 @@ Components:`));
1915
1990
  const { currentEnv, env, log, messages } = this;
1916
1991
  const contensis = await this.ConnectContensis();
1917
1992
  if (contensis) {
1918
- const [err, renderers] = await contensis.renderers.GetRenderers(
1919
- rendererId
1920
- );
1993
+ const [err, renderers] = await contensis.renderers.GetRenderers();
1921
1994
  if (Array.isArray(renderers)) {
1922
1995
  await this.HandleFormattingAndOutput(renderers, () => {
1923
1996
  log.success(messages.renderers.list(currentEnv, env.currentProject));
@@ -1944,6 +2017,7 @@ Components:`));
1944
2017
  );
1945
2018
  }
1946
2019
  });
2020
+ return renderers;
1947
2021
  }
1948
2022
  if (err) {
1949
2023
  log.error(messages.renderers.noList(currentEnv, env.currentProject));