@contember/cli-common 0.12.0-alpha.9 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/src/application/Application.d.ts +2 -0
  2. package/dist/src/application/Application.d.ts.map +1 -1
  3. package/dist/src/application/Application.js +13 -6
  4. package/dist/src/application/Application.js.map +1 -1
  5. package/dist/src/application/UsageFormatter.js +1 -1
  6. package/dist/src/application/UsageFormatter.js.map +1 -1
  7. package/dist/src/pathUtils.js +2 -2
  8. package/dist/src/pathUtils.js.map +1 -1
  9. package/dist/src/tsconfig.tsbuildinfo +1 -1
  10. package/dist/src/utils/PathMapping.js +7 -6
  11. package/dist/src/utils/PathMapping.js.map +1 -1
  12. package/dist/src/utils/Project.d.ts +0 -1
  13. package/dist/src/utils/Project.d.ts.map +1 -1
  14. package/dist/src/utils/Project.js +0 -37
  15. package/dist/src/utils/Project.js.map +1 -1
  16. package/dist/src/utils/ProjectManager.js +8 -8
  17. package/dist/src/utils/ProjectManager.js.map +1 -1
  18. package/dist/src/utils/Workspace.d.ts +7 -7
  19. package/dist/src/utils/Workspace.d.ts.map +1 -1
  20. package/dist/src/utils/Workspace.js +21 -60
  21. package/dist/src/utils/Workspace.js.map +1 -1
  22. package/dist/src/utils/fs.js +4 -4
  23. package/dist/src/utils/fs.js.map +1 -1
  24. package/dist/src/utils/index.d.ts +0 -1
  25. package/dist/src/utils/index.d.ts.map +1 -1
  26. package/dist/src/utils/index.js +0 -1
  27. package/dist/src/utils/index.js.map +1 -1
  28. package/dist/src/utils/npm.d.ts +1 -1
  29. package/dist/src/utils/npm.d.ts.map +1 -1
  30. package/dist/src/utils/npm.js +8 -9
  31. package/dist/src/utils/npm.js.map +1 -1
  32. package/dist/src/utils/template.d.ts.map +1 -1
  33. package/dist/src/utils/template.js +33 -30
  34. package/dist/src/utils/template.js.map +1 -1
  35. package/dist/src/utils/version.js +1 -1
  36. package/dist/src/utils/version.js.map +1 -1
  37. package/dist/src/utils/yaml.d.ts +0 -6
  38. package/dist/src/utils/yaml.d.ts.map +1 -1
  39. package/dist/src/utils/yaml.js +3 -27
  40. package/dist/src/utils/yaml.js.map +1 -1
  41. package/package.json +5 -6
  42. package/resources/templates/template-project/admin/components/Layout.tsx +12 -0
  43. package/resources/templates/template-project/admin/components/SideMenu.tsx +10 -0
  44. package/resources/templates/template-project/admin/index.html +9 -0
  45. package/resources/templates/template-project/admin/index.tsx +18 -0
  46. package/resources/templates/template-project/admin/pages/Dashboard.tsx +8 -0
  47. package/resources/templates/template-project/admin/vite-env.d.ts +7 -0
  48. package/resources/templates/template-project/api/{acl/index.ts → acl.ts} +0 -0
  49. package/resources/templates/template-project/api/model/index.ts +3 -2
  50. package/resources/templates/template-project/contember.template.yaml +3 -4
  51. package/resources/templates/template-project/tsconfig.json +16 -9
  52. package/resources/templates/template-workspace/.gitignore.dist +3 -0
  53. package/resources/templates/{template-workspace-single-instance → template-workspace}/contember.template.yaml +5 -1
  54. package/resources/templates/template-workspace/contember.yaml +4 -0
  55. package/resources/templates/template-workspace/docker-compose.yaml +159 -0
  56. package/resources/templates/template-workspace/package.json +17 -0
  57. package/resources/templates/{template-workspace-single-instance/api → template-workspace/scripts/minio}/s3-entrypoint.sh +0 -0
  58. package/resources/templates/{template-workspace-single-instance/api → template-workspace/scripts/minio}/s3-policy.json +0 -0
  59. package/resources/templates/template-workspace/tsconfig.json +16 -0
  60. package/src/application/Application.ts +14 -7
  61. package/src/utils/PathMapping.ts +1 -1
  62. package/src/utils/Project.ts +0 -40
  63. package/src/utils/Workspace.ts +21 -42
  64. package/src/utils/fs.ts +2 -2
  65. package/src/utils/index.ts +0 -1
  66. package/src/utils/npm.ts +3 -4
  67. package/src/utils/template.ts +28 -24
  68. package/src/utils/yaml.ts +3 -35
  69. package/dist/src/utils/dockerCompose.d.ts +0 -15
  70. package/dist/src/utils/dockerCompose.d.ts.map +0 -1
  71. package/dist/src/utils/dockerCompose.js +0 -22
  72. package/dist/src/utils/dockerCompose.js.map +0 -1
  73. package/resources/templates/template-project/api/migrations/2019-12-13-110355-init.json +0 -146
  74. package/resources/templates/template-project/api/model/Image.ts +0 -5
  75. package/resources/templates/template-project/api/model/Post.ts +0 -8
  76. package/resources/templates/template-project/package.json +0 -13
  77. package/resources/templates/template-workspace-single-instance/.dockerignore +0 -1
  78. package/resources/templates/template-workspace-single-instance/api/config.yaml +0 -0
  79. package/resources/templates/template-workspace-single-instance/contember.workspace.yaml +0 -2
  80. package/resources/templates/template-workspace-single-instance/docker-compose.override.dist.yaml +0 -26
  81. package/resources/templates/template-workspace-single-instance/docker-compose.yaml +0 -88
  82. package/resources/templates/template-workspace-single-instance/package.json +0 -12
  83. package/resources/templates/template-workspace-single-instance/projects/.gitkeep +0 -0
  84. package/resources/templates/template-workspace-single-instance/tsconfig.json +0 -22
  85. package/src/utils/dockerCompose.ts +0 -38
@@ -6,12 +6,12 @@ const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  const listDirectories = async (dir) => {
8
8
  try {
9
- const entries = (await fs_1.promises.readdir(dir)).map(it => path_1.join(dir, it));
10
- const stats = await Promise.all(entries.map(async (it) => tuple_1.tuple(it, await fs_1.promises.lstat(it))));
9
+ const entries = (await fs_1.promises.readdir(dir)).map(it => (0, path_1.join)(dir, it));
10
+ const stats = await Promise.all(entries.map(async (it) => (0, tuple_1.tuple)(it, await fs_1.promises.lstat(it))));
11
11
  return stats.filter(([, it]) => it.isDirectory()).map(([it]) => it);
12
12
  }
13
13
  catch (e) {
14
- if (e.code && e.code === 'ENOENT') {
14
+ if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
15
15
  return [];
16
16
  }
17
17
  throw e;
@@ -29,7 +29,7 @@ const tryUnlink = async (path) => {
29
29
  await fs_1.promises.unlink(path);
30
30
  }
31
31
  catch (e) {
32
- if (e.code && e.code === 'ENOENT') {
32
+ if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
33
33
  return;
34
34
  }
35
35
  throw e;
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/utils/fs.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,2BAAmC;AACnC,+BAA2B;AAEpB,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAqB,EAAE;IACvE,IAAI;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE,CAAC,aAAK,CAAC,EAAE,EAAE,MAAM,aAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;KACnE;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClC,OAAO,EAAE,CAAA;SACT;QACD,MAAM,CAAC,CAAA;KACP;AACF,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAEM,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,QAAqC,EAAiB,EAAE;IAC9G,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAJY,QAAA,kBAAkB,sBAI9B;AAEM,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IAC9D,IAAI;QACH,MAAM,aAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KACrB;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClC,OAAM;SACN;QACD,MAAM,CAAC,CAAA;KACP;AACF,CAAC,CAAA;AATY,QAAA,SAAS,aASrB"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/utils/fs.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,2BAAmC;AACnC,+BAA2B;AAEpB,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAqB,EAAE;IACvE,IAAI;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,WAAI,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE,CAAC,IAAA,aAAK,EAAC,EAAE,EAAE,MAAM,aAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;KACnE;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,IAAK,CAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtE,OAAO,EAAE,CAAA;SACT;QACD,MAAM,CAAC,CAAA;KACP;AACF,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAEM,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,QAAqC,EAAiB,EAAE;IAC9G,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAJY,QAAA,kBAAkB,sBAI9B;AAEM,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IAC9D,IAAI;QACH,MAAM,aAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KACrB;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,IAAK,CAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtE,OAAM;SACN;QACD,MAAM,CAAC,CAAA;KACP;AACF,CAAC,CAAA;AATY,QAAA,SAAS,aASrB"}
@@ -1,5 +1,4 @@
1
1
  export * from './version';
2
- export * from './dockerCompose';
3
2
  export * from './Workspace';
4
3
  export * from './Project';
5
4
  export * from './fs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,MAAM,CAAA"}
@@ -11,7 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./version"), exports);
14
- __exportStar(require("./dockerCompose"), exports);
15
14
  __exportStar(require("./Workspace"), exports);
16
15
  __exportStar(require("./Project"), exports);
17
16
  __exportStar(require("./fs"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,kDAA+B;AAC/B,8CAA2B;AAC3B,4CAAyB;AACzB,uCAAoB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,8CAA2B;AAC3B,4CAAyB;AACzB,uCAAoB"}
@@ -1,2 +1,2 @@
1
- export declare const downloadPackage: (pkgName: string, dir: string) => Promise<void>;
1
+ export declare const downloadPackage: (pkgName: string) => Promise<string>;
2
2
  //# sourceMappingURL=npm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../../src/utils/npm.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,YAAmB,MAAM,OAAO,MAAM,KAAG,QAAQ,IAAI,CAkBhF,CAAA"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../../src/utils/npm.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAiBrE,CAAA"}
@@ -11,20 +11,19 @@ const download_tarball_1 = __importDefault(require("download-tarball"));
11
11
  const fs_extra_1 = require("fs-extra");
12
12
  const path_1 = require("path");
13
13
  const os_1 = require("os");
14
- const downloadPackage = async (pkgName, dir) => {
15
- const { scope } = npm_package_arg_1.default(pkgName);
16
- const { authorization } = registry_info_1.default(scope);
14
+ const downloadPackage = async (pkgName) => {
15
+ const { scope } = (0, npm_package_arg_1.default)(pkgName);
16
+ const { authorization } = (0, registry_info_1.default)(scope);
17
17
  const headers = authorization ? { authorization } : {};
18
- const pkg = await get_package_json_from_registry_1.default(pkgName);
18
+ const pkg = await (0, get_package_json_from_registry_1.default)(pkgName);
19
19
  const { dist: { tarball }, } = pkg;
20
- const tmpDir = path_1.join(os_1.tmpdir(), 'contember-' + Math.random());
21
- await download_tarball_1.default({ url: tarball, gotOpts: { headers }, dir: tmpDir });
22
- const dirContent = await fs_extra_1.readdir(tmpDir);
20
+ const tmpDir = (0, path_1.join)((0, os_1.tmpdir)(), 'contember-' + Math.random());
21
+ await (0, download_tarball_1.default)({ url: tarball, gotOpts: { headers }, dir: tmpDir });
22
+ const dirContent = await (0, fs_extra_1.readdir)(tmpDir);
23
23
  if (dirContent.length !== 1 || dirContent[0] !== 'package') {
24
24
  throw 'Invalid NPM package';
25
25
  }
26
- await fs_extra_1.move(path_1.join(tmpDir, 'package'), dir);
27
- await fs_extra_1.remove(tmpDir);
26
+ return (0, path_1.join)(tmpDir, 'package');
28
27
  };
29
28
  exports.downloadPackage = downloadPackage;
30
29
  //# sourceMappingURL=npm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../../src/utils/npm.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA2C;AAC3C,oGAA2D;AAC3D,sEAAiC;AACjC,wEAA8C;AAC9C,uCAAgD;AAChD,+BAA2B;AAC3B,2BAA2B;AAEpB,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAE,GAAW,EAAiB,EAAE;IACpF,MAAM,EAAE,KAAK,EAAE,GAAG,yBAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,uBAAe,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtD,MAAM,GAAG,GAAG,MAAM,wCAAc,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,GACjB,GAAG,GAAG,CAAA;IAEP,MAAM,MAAM,GAAG,WAAI,CAAC,WAAM,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3D,MAAM,0BAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,MAAM,kBAAO,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;QAC3D,MAAM,qBAAqB,CAAA;KAC3B;IACD,MAAM,eAAI,CAAC,WAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,MAAM,iBAAM,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC,CAAA;AAlBY,QAAA,eAAe,mBAkB3B"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../../src/utils/npm.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA2C;AAC3C,oGAA2D;AAC3D,sEAAiC;AACjC,wEAA8C;AAC9C,uCAAkC;AAClC,+BAA2B;AAC3B,2BAA2B;AAEpB,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,yBAAG,EAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtD,MAAM,GAAG,GAAG,MAAM,IAAA,wCAAc,EAAC,OAAO,CAAC,CAAA;IACzC,MAAM,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,GACjB,GAAG,GAAG,CAAA;IAEP,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3D,MAAM,IAAA,0BAAe,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAO,EAAC,MAAM,CAAC,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;QAC3D,MAAM,qBAAqB,CAAA;KAC3B;IACD,OAAO,IAAA,WAAI,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAC/B,CAAC,CAAA;AAjBY,QAAA,eAAe,mBAiB3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/utils/template.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,aACjB,MAAM,aACL,MAAM,wBACK,MAAM,cACjB,OAAO,MAAM,EAAE,MAAM,CAAC,kBAgEjC,CAAA"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/utils/template.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,aACjB,MAAM,aACL,MAAM,wBACK,MAAM,cACjB,OAAO,MAAM,EAAE,MAAM,CAAC,kBA+DjC,CAAA"}
@@ -4,50 +4,53 @@ exports.installTemplate = void 0;
4
4
  const path_1 = require("path");
5
5
  const fs_1 = require("./fs");
6
6
  const fs_extra_1 = require("fs-extra");
7
- const yaml_1 = require("./yaml");
8
7
  const npm_1 = require("./npm");
8
+ const pathUtils_1 = require("../pathUtils");
9
+ const yaml_1 = require("./yaml");
10
+ const localTemplates = {
11
+ ['@contember/template-workspace']: (0, path_1.join)(pathUtils_1.resourcesDir, 'templates/template-workspace'),
12
+ ['@contember/template-project']: (0, path_1.join)(pathUtils_1.resourcesDir, 'templates/template-project'),
13
+ };
9
14
  const installTemplate = async (template, targetDir, requiredTemplateType, variables = {}) => {
10
- if (path_1.isAbsolute(template)) {
11
- const nodeModulesDir = path_1.join(template, 'node_modules');
12
- await fs_extra_1.copy(template, targetDir, {
13
- filter: src => {
14
- // this is useful for Contember developers
15
- return !src.startsWith(nodeModulesDir);
16
- },
17
- });
18
- }
19
- else {
20
- await npm_1.downloadPackage(template, targetDir);
21
- }
22
- const templateConfigFile = path_1.join(targetDir, 'contember.template.yaml');
23
- if (!(await fs_extra_1.pathExists(templateConfigFile))) {
24
- await fs_extra_1.remove(targetDir);
15
+ let removeTemplate = () => { };
16
+ if (localTemplates[template]) {
17
+ template = localTemplates[template];
18
+ }
19
+ if (!(0, path_1.isAbsolute)(template)) {
20
+ template = await (0, npm_1.downloadPackage)(template);
21
+ removeTemplate = async () => {
22
+ await (0, fs_extra_1.remove)(template);
23
+ };
24
+ }
25
+ const templateConfigFile = (0, path_1.join)(template, 'contember.template.yaml');
26
+ if (!(await (0, fs_extra_1.pathExists)(templateConfigFile))) {
25
27
  throw `${template} is not a Contember template`;
26
28
  }
27
- const config = (await yaml_1.readYaml(templateConfigFile));
28
- if (!config.type || config.type !== requiredTemplateType) {
29
- await fs_extra_1.remove(targetDir);
30
- throw `${template} is not a ${requiredTemplateType} template`;
31
- }
32
- await fs_1.tryUnlink(templateConfigFile);
33
- for (const fileToRemove of config.remove || []) {
34
- await fs_1.tryUnlink(path_1.join(targetDir, fileToRemove));
35
- }
29
+ const config = (await (0, yaml_1.readYaml)(templateConfigFile));
30
+ const nodeModulesDir = (0, path_1.join)(template, 'node_modules');
31
+ const skippedFiles = new Set([...(config.remove || []).map(it => (0, path_1.join)(template, it)), templateConfigFile]);
32
+ await (0, fs_extra_1.copy)(template, targetDir, {
33
+ filter: src => !src.startsWith(nodeModulesDir) && !skippedFiles.has(src),
34
+ });
35
+ await removeTemplate();
36
36
  if (config.patchPackageJson) {
37
- await fs_1.replaceFileContent(path_1.join(targetDir, 'package.json'), content => {
37
+ await (0, fs_1.replaceFileContent)((0, path_1.join)(targetDir, 'package.json'), content => {
38
38
  const { name, version, 'scripts-template': scripts, scripts: _nullScripts, license, ...json } = JSON.parse(content);
39
39
  return JSON.stringify({ scripts, ...json }, null, ' ');
40
40
  });
41
41
  }
42
42
  for (const [source, target] of Object.entries(config.rename || {})) {
43
- await fs_extra_1.rename(path_1.join(targetDir, source), path_1.join(targetDir, target));
43
+ await (0, fs_extra_1.rename)((0, path_1.join)(targetDir, source), (0, path_1.join)(targetDir, target));
44
+ }
45
+ for (const [source, target] of Object.entries(config.copy || {})) {
46
+ await (0, fs_extra_1.copy)((0, path_1.join)(targetDir, source), (0, path_1.join)(targetDir, target));
44
47
  }
45
48
  for (const file of config.replaceVariables || []) {
46
- const path = path_1.join(targetDir, file);
47
- if (!(await fs_extra_1.pathExists(path))) {
49
+ const path = (0, path_1.join)(targetDir, file);
50
+ if (!(await (0, fs_extra_1.pathExists)(path))) {
48
51
  continue;
49
52
  }
50
- await fs_1.replaceFileContent(path, content => Object.entries(variables).reduce((content, [key, value]) => content.replace(new RegExp(`\{${key}\}`, 'g'), value), content));
53
+ await (0, fs_1.replaceFileContent)(path, content => Object.entries(variables).reduce((content, [key, value]) => content.replace(new RegExp(`\{${key}\}`, 'g'), value), content));
51
54
  }
52
55
  };
53
56
  exports.installTemplate = installTemplate;
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/utils/template.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AACvC,6BAAoD;AACpD,uCAA2D;AAC3D,iCAAiC;AACjC,+BAAuC;AAEhC,MAAM,eAAe,GAAG,KAAK,EACnC,QAAgB,EAChB,SAAiB,EACjB,oBAA4B,EAC5B,YAAoC,EAAE,EACrC,EAAE;IACH,IAAI,iBAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,MAAM,cAAc,GAAG,WAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QACrD,MAAM,eAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;YAC/B,MAAM,EAAE,GAAG,CAAC,EAAE;gBACb,0CAA0C;gBAC1C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;YACvC,CAAC;SACD,CAAC,CAAA;KACF;SAAM;QACN,MAAM,qBAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;KAC1C;IACD,MAAM,kBAAkB,GAAG,WAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAA;IACrE,IAAI,CAAC,CAAC,MAAM,qBAAU,CAAC,kBAAkB,CAAC,CAAC,EAAE;QAC5C,MAAM,iBAAM,CAAC,SAAS,CAAC,CAAA;QACvB,MAAM,GAAG,QAAQ,8BAA8B,CAAA;KAC/C;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,eAAQ,CAAC,kBAAkB,CAAC,CAMjD,CAAA;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE;QACzD,MAAM,iBAAM,CAAC,SAAS,CAAC,CAAA;QACvB,MAAM,GAAG,QAAQ,aAAa,oBAAoB,WAAW,CAAA;KAC7D;IACD,MAAM,cAAS,CAAC,kBAAkB,CAAC,CAAA;IAEnC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE;QAC/C,MAAM,cAAS,CAAC,WAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;KAC9C;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE;QAC5B,MAAM,uBAAkB,CAAC,WAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,EAAE;YACnE,MAAM,EACL,IAAI,EACJ,OAAO,EACP,kBAAkB,EAAE,OAAO,EAC3B,OAAO,EAAE,YAAY,EACrB,OAAO,EACP,GAAG,IAAI,EACP,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;KACF;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;QACnE,MAAM,iBAAM,CAAC,WAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;KAC9D;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,WAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC,MAAM,qBAAU,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9B,SAAQ;SACR;QACD,MAAM,uBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CACxC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAC/B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAChF,OAAO,CACP,CACD,CAAA;KACD;AACF,CAAC,CAAA;AApEY,QAAA,eAAe,mBAoE3B"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/utils/template.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const path_1 = require("path");
5
5
  const pathUtils_1 = require("../pathUtils");
6
6
  const getPackageVersion = () => {
7
7
  // eslint-disable-next-line @typescript-eslint/no-var-requires
8
- return require(path_1.join(pathUtils_1.packageRoot, 'package.json')).version;
8
+ return require((0, path_1.join)(pathUtils_1.packageRoot, 'package.json')).version;
9
9
  };
10
10
  exports.getPackageVersion = getPackageVersion;
11
11
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,4CAA0C;AAEnC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,8DAA8D;IAC9D,OAAO,OAAO,CAAC,WAAI,CAAC,uBAAW,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;AAC1D,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,4CAA0C;AAEnC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,8DAA8D;IAC9D,OAAO,OAAO,CAAC,IAAA,WAAI,EAAC,uBAAW,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;AAC1D,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B"}
@@ -1,9 +1,3 @@
1
1
  import { JSONObject } from './json';
2
- export declare type JsonUpdateCallback<Value = JSONObject> = (data: Partial<Value>, utils: {
3
- merge: (a: JSONObject, b: JSONObject) => JSONObject;
4
- }) => Value;
5
- export declare const updateYaml: <Value = JSONObject>(path: string, updater: JsonUpdateCallback<Value>, options?: {
6
- createMissing?: boolean;
7
- }) => Promise<void>;
8
2
  export declare const readYaml: <T = JSONObject>(path: string) => Promise<T>;
9
3
  //# sourceMappingURL=yaml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../../src/utils/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,QAAQ,CAAA;AAOlD,oBAAY,kBAAkB,CAAC,KAAK,GAAG,UAAU,IAAI,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EACpB,KAAK,EAAE;IAAE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,UAAU,CAAA;CAAE,KAC1D,KAAK,CAAA;AAEV,eAAO,MAAM,UAAU,6BAChB,MAAM,gDAEH;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,kBAoBpC,CAAA;AAED,eAAO,MAAM,QAAQ,yBAAgC,MAAM,eAG1D,CAAA"}
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../../src/utils/yaml.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAInC,eAAO,MAAM,QAAQ,yBAAgC,MAAM,eAG1D,CAAA"}
@@ -3,35 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.readYaml = exports.updateYaml = void 0;
7
- const fs_extra_1 = require("fs-extra");
8
- const fs_1 = require("fs");
9
- const cjs_1 = __importDefault(require("yawn-yaml/cjs"));
10
- const config_loader_1 = require("@contember/config-loader");
6
+ exports.readYaml = void 0;
11
7
  const js_yaml_1 = __importDefault(require("js-yaml"));
12
- const updateYaml = async (path, updater, options = {}) => {
13
- let config = '';
14
- if (await fs_extra_1.pathExists(path)) {
15
- config = await fs_1.promises.readFile(path, { encoding: 'utf8' });
16
- }
17
- else if (options.createMissing !== true) {
18
- throw new Error(`File ${path} does not exist.`);
19
- }
20
- let newConfig = '';
21
- const mergeUtils = { merge: (a, b) => config_loader_1.Merger.merge(a, b) };
22
- if (config) {
23
- const yawn = new cjs_1.default(config);
24
- yawn.json = updater(yawn.json, mergeUtils);
25
- newConfig = yawn.yaml;
26
- }
27
- else {
28
- newConfig = js_yaml_1.default.dump(updater({}, mergeUtils));
29
- }
30
- await fs_1.promises.writeFile(path, newConfig, { encoding: 'utf8' });
31
- };
32
- exports.updateYaml = updateYaml;
8
+ const promises_1 = require("fs/promises");
33
9
  const readYaml = async (path) => {
34
- const content = await fs_1.promises.readFile(path, { encoding: 'utf8' });
10
+ const content = await (0, promises_1.readFile)(path, { encoding: 'utf8' });
35
11
  return js_yaml_1.default.load(content);
36
12
  };
37
13
  exports.readYaml = readYaml;
@@ -1 +1 @@
1
- {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../../src/utils/yaml.ts"],"names":[],"mappings":";;;;;;AACA,uCAAqC;AACrC,2BAAmC;AACnC,wDAAgC;AAChC,4DAAiD;AACjD,sDAA4B;AAOrB,MAAM,UAAU,GAAG,KAAK,EAC9B,IAAY,EACZ,OAAkC,EAClC,UAAuC,EAAE,EACxC,EAAE;IACH,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,MAAM,qBAAU,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;KACtD;SAAM,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAA;KAC/C;IAED,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CAAC,sBAAM,CAAC,KAAK,CAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;IACjG,IAAI,MAAM,EAAE;QACX,MAAM,IAAI,GAAG,IAAI,aAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC1C,SAAS,GAAG,IAAI,CAAC,IAAI,CAAA;KACrB;SAAM;QACN,SAAS,GAAG,iBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAA;KAChD;IAED,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;AAC1D,CAAC,CAAA;AAvBY,QAAA,UAAU,cAuBtB;AAEM,MAAM,QAAQ,GAAG,KAAK,EAAkB,IAAY,EAAc,EAAE;IAC1E,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,OAAO,iBAAM,CAAC,IAAI,CAAC,OAAO,CAAiB,CAAA;AAC5C,CAAC,CAAA;AAHY,QAAA,QAAQ,YAGpB"}
1
+ {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../../src/utils/yaml.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4B;AAE5B,0CAAsC;AAG/B,MAAM,QAAQ,GAAG,KAAK,EAAkB,IAAY,EAAc,EAAE;IAC1E,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1D,OAAO,iBAAM,CAAC,IAAI,CAAC,OAAO,CAAiB,CAAA;AAC5C,CAAC,CAAA;AAHY,QAAA,QAAQ,YAGpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/cli-common",
3
- "version": "0.12.0-alpha.9",
3
+ "version": "1.0.0-alpha.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/src/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -9,18 +9,17 @@
9
9
  },
10
10
  "devDependencies": {
11
11
  "@types/js-yaml": "^4.0.1",
12
- "@types/fs-extra": "^9.0.3",
13
- "@types/node": "^15.12.5",
12
+ "@types/node": "^17.0.5",
14
13
  "@types/npm-package-arg": "^6.1.0"
15
14
  },
16
15
  "dependencies": {
16
+ "@contember/config-loader": "^1.0.0-alpha.0",
17
17
  "chalk": "^4.1.0",
18
18
  "download-tarball": "^2.0.0",
19
19
  "fs-extra": "^10.0.0",
20
- "js-yaml": "^4.1.0",
21
20
  "get-package-json-from-registry": "^2.2.2",
21
+ "js-yaml": "^4.1.0",
22
22
  "npm-package-arg": "^8.0.0",
23
- "registry-info": "^1.0.0",
24
- "yawn-yaml": "^1.5.0"
23
+ "registry-info": "^1.0.0"
25
24
  }
26
25
  }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react'
2
+ import { ReactNode } from 'react'
3
+ import { Layout as ContemberLayout } from '@contember/admin'
4
+ import { SideMenu } from './SideMenu'
5
+
6
+ export const Layout = (props: { children?: ReactNode }) => (
7
+ <ContemberLayout
8
+ topStart="{projectName}"
9
+ sideBar={<SideMenu />}
10
+ children={props.children}
11
+ />
12
+ )
@@ -0,0 +1,10 @@
1
+ import * as React from 'react'
2
+ import { Menu } from '@contember/admin'
3
+
4
+ export const SideMenu = () => (
5
+ <Menu>
6
+ <Menu.Item>
7
+ <Menu.Item title="Dashboard" to="dashboard" />
8
+ </Menu.Item>
9
+ </Menu>
10
+ )
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width">
6
+ <title>Admin {projectName}</title>
7
+ <script type="module" src="./index.tsx"></script>
8
+ </head>
9
+ </html>
@@ -0,0 +1,18 @@
1
+ import * as React from 'react'
2
+ import { ApplicationEntrypoint, Pages, runReactApp } from '@contember/admin'
3
+ import { Layout } from './components/Layout'
4
+ import '@contember/admin/style.css'
5
+
6
+ const pages = Object.values(import.meta.globEager('./pages/*.tsx')).flatMap(Object.values)
7
+
8
+ runReactApp(
9
+ <ApplicationEntrypoint
10
+ basePath={import.meta.env.BASE_URL}
11
+ apiBaseUrl={import.meta.env.VITE_CONTEMBER_ADMIN_API_BASE_URL}
12
+ sessionToken={import.meta.env.VITE_CONTEMBER_ADMIN_SESSION_TOKEN}
13
+ project={import.meta.env.VITE_CONTEMBER_ADMIN_PROJECT_NAME}
14
+ stage="live"
15
+ routes={{ dashboard: { path: '/' } }}
16
+ children={<Pages layout={Layout} children={pages} />}
17
+ />,
18
+ )
@@ -0,0 +1,8 @@
1
+ import * as React from 'react'
2
+ import { GenericPage } from '@contember/admin'
3
+
4
+ export const DashboardPage = (
5
+ <GenericPage pageName="dashboard">
6
+ Welcome to Contember Admin!
7
+ </GenericPage>
8
+ )
@@ -0,0 +1,7 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ interface ImportMetaEnv {
4
+ VITE_CONTEMBER_ADMIN_API_BASE_URL: string
5
+ VITE_CONTEMBER_ADMIN_SESSION_TOKEN: string
6
+ VITE_CONTEMBER_ADMIN_PROJECT_NAME: string
7
+ }
@@ -1,2 +1,3 @@
1
- export * from './Image'
2
- export * from './Post'
1
+ // export your model definition here
2
+
3
+ export { } // you can delete this line once you export your first entity
@@ -1,5 +1,4 @@
1
1
  type: project
2
- remove:
3
- - package.json
4
- - package-lock.json
5
- - tsconfig.json
2
+ replaceVariables:
3
+ - admin/index.tsx
4
+ - admin/index.html
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "noEmit": true
4
- },
5
- "references": [
6
- {
7
- "path": "../../../../schema-definition/src"
8
- }, {
9
- "path": "../../../../schema/src"
10
- }
11
- ]
3
+ "allowSyntheticDefaultImports": true,
4
+ "experimentalDecorators": true,
5
+ "isolatedModules": true,
6
+ "jsx": "react-jsx",
7
+ "lib": [
8
+ "esnext",
9
+ "dom"
10
+ ],
11
+ "module": "esnext",
12
+ "moduleResolution": "node",
13
+ "noEmit": true,
14
+ "noImplicitOverride": true,
15
+ "skipLibCheck": true,
16
+ "strict": true,
17
+ "target": "esnext"
18
+ }
12
19
  }
@@ -0,0 +1,3 @@
1
+ /dist
2
+ /node_modules
3
+ /docker-compose.override.yaml
@@ -3,5 +3,9 @@ remove:
3
3
  - package-lock.json
4
4
  patchPackageJson: true
5
5
  replaceVariables:
6
- - contember.workspace.yaml
6
+ - contember.yaml
7
+ - package.json
7
8
  - docker-compose.yaml
9
+
10
+ rename:
11
+ .gitignore.dist: .gitignore
@@ -0,0 +1,4 @@
1
+ api:
2
+ version: {version}
3
+ projects:
4
+ {projectName}: .
@@ -0,0 +1,159 @@
1
+ version: '2.4'
2
+
3
+ services:
4
+ admin:
5
+ image: node:14-alpine
6
+ command: npm run start-admin
7
+ user: '1000:1000'
8
+
9
+ environment:
10
+ VITE_PORT: '1480'
11
+ VITE_CONTEMBER_ADMIN_API_BASE_URL: 'http://localhost:1481'
12
+ VITE_CONTEMBER_ADMIN_SESSION_TOKEN: '0000000000000000000000000000000000000000'
13
+ VITE_CONTEMBER_ADMIN_PROJECT_NAME: '{projectName}'
14
+
15
+ ports:
16
+ - '1480:1480' # ports must match
17
+
18
+ working_dir: /src
19
+ volumes:
20
+ - ./:/src:cached
21
+
22
+ contember:
23
+ image: contember/engine:{version}
24
+ restart: on-failure
25
+
26
+ environment:
27
+ NODE_ENV: 'development'
28
+
29
+ CONTEMBER_ROOT_EMAIL: 'contember@localhost'
30
+ CONTEMBER_ROOT_PASSWORD: 'contember'
31
+ CONTEMBER_ROOT_TOKEN: '0000000000000000000000000000000000000000'
32
+ CONTEMBER_LOGIN_TOKEN: '1111111111111111111111111111111111111111'
33
+ CONTEMBER_CONFIG_YAML: |
34
+ projectDefaults:
35
+ s3:
36
+ prefix: '%project.slug%'
37
+
38
+ DEFAULT_DB_HOST: 'postgres'
39
+ DEFAULT_DB_PORT: '5432'
40
+ DEFAULT_DB_USER: 'contember'
41
+ DEFAULT_DB_PASSWORD: 'contember'
42
+
43
+ DEFAULT_S3_ENDPOINT: 'http://localhost:1483'
44
+ DEFAULT_S3_BUCKET: 'contember'
45
+ DEFAULT_S3_REGION: ''
46
+ DEFAULT_S3_KEY: 'contember'
47
+ DEFAULT_S3_SECRET: 'contember'
48
+ DEFAULT_S3_PROVIDER: 'minio'
49
+
50
+ TENANT_DB_NAME: 'tenant'
51
+ TENANT_MAILER_HOST: 'mailhog'
52
+ TENANT_MAILER_PORT: '1025'
53
+ TENANT_MAILER_FROM: 'contember@localhost'
54
+
55
+ ports:
56
+ - '1481:4000'
57
+
58
+ depends_on:
59
+ postgres:
60
+ condition: service_healthy
61
+
62
+ contember-cli:
63
+ image: contember/cli:{version}
64
+ user: '1000:1000'
65
+
66
+ environment:
67
+ CONTEMBER_API_URL: 'http://contember:4000/'
68
+ CONTEMBER_API_TOKEN: '0000000000000000000000000000000000000000'
69
+ CONTEMBER_PROJECT_NAME: '{projectName}'
70
+
71
+ working_dir: /src
72
+ volumes:
73
+ - ./:/src:cached
74
+
75
+ depends_on:
76
+ contember:
77
+ condition: service_started
78
+
79
+ contember-migrations:
80
+ image: contember/cli:{version}
81
+ command: 'migrations:execute . --yes'
82
+ user: '1000:1000'
83
+
84
+ environment:
85
+ CONTEMBER_API_URL: 'http://contember:4000/'
86
+ CONTEMBER_API_TOKEN: '0000000000000000000000000000000000000000'
87
+ CONTEMBER_PROJECT_NAME: '{projectName}'
88
+
89
+ working_dir: /src
90
+ volumes:
91
+ - ./:/src:cached
92
+
93
+ depends_on:
94
+ contember:
95
+ condition: service_started
96
+
97
+ postgres:
98
+ image: postgres:13-alpine
99
+
100
+ environment:
101
+ POSTGRES_PASSWORD: contember
102
+ POSTGRES_USER: contember
103
+ POSTGRES_DB: contember
104
+
105
+ ports:
106
+ - '1482:5432'
107
+
108
+ volumes:
109
+ - pgsql-data:/var/lib/postgres/data
110
+
111
+ healthcheck:
112
+ test: ['CMD-SHELL', 'pg_isready']
113
+ interval: 5s
114
+ timeout: 5s
115
+ retries: 10
116
+
117
+ s3:
118
+ image: minio/minio
119
+ entrypoint: /minio-entrypoint.sh
120
+ command: 'server --address :1483 /data'
121
+
122
+ environment:
123
+ MINIO_ROOT_USER: contember
124
+ MINIO_ROOT_PASSWORD: contember
125
+
126
+ ports:
127
+ - '1483:1483' # ports must match
128
+
129
+ volumes:
130
+ - s3-data:/data
131
+ - ./scripts/minio/s3-policy.json:/bucket-policy.json
132
+ - ./scripts/minio/s3-entrypoint.sh:/minio-entrypoint.sh
133
+
134
+ mailhog:
135
+ image: mailhog/mailhog
136
+ ports:
137
+ - '1484:8025'
138
+
139
+ adminer:
140
+ image: michalhosna/adminer:4.8.0-en_v1
141
+
142
+ environment:
143
+ ADMINER_DRIVER: pgsql
144
+ ADMINER_SERVER: postgres
145
+ ADMINER_DB: contember
146
+ ADMINER_USERNAME: contember
147
+ ADMINER_PASSWORD: contember
148
+ ADMINER_AUTOLOGIN: 1
149
+ ADMINER_NAME: Contember
150
+
151
+ ports:
152
+ - '1485:8080'
153
+
154
+ depends_on:
155
+ - postgres
156
+
157
+ volumes:
158
+ pgsql-data: ~
159
+ s3-data: ~