@eclipse-che/che-devworkspace-generator 0.0.1-a00c266 → 0.0.1-b3f6c7c

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 (82) hide show
  1. package/README.md +42 -14
  2. package/lib/bitbucket/bitbucket-module.d.ts +12 -0
  3. package/lib/bitbucket/bitbucket-module.js +21 -0
  4. package/lib/bitbucket/bitbucket-module.js.map +1 -0
  5. package/lib/bitbucket/bitbucket-resolver.d.ts +17 -0
  6. package/lib/bitbucket/bitbucket-resolver.js +56 -0
  7. package/lib/bitbucket/bitbucket-resolver.js.map +1 -0
  8. package/lib/bitbucket/bitbucket-url.d.ts +22 -0
  9. package/lib/bitbucket/bitbucket-url.js +38 -0
  10. package/lib/bitbucket/bitbucket-url.js.map +1 -0
  11. package/lib/bitbucket-server/bitbucket-server-module.d.ts +12 -0
  12. package/lib/bitbucket-server/bitbucket-server-module.js +21 -0
  13. package/lib/bitbucket-server/bitbucket-server-module.js.map +1 -0
  14. package/lib/bitbucket-server/bitbucket-server-resolver.d.ts +17 -0
  15. package/lib/bitbucket-server/bitbucket-server-resolver.js +64 -0
  16. package/lib/bitbucket-server/bitbucket-server-resolver.js.map +1 -0
  17. package/lib/bitbucket-server/bitbucket-server-url.d.ts +24 -0
  18. package/lib/bitbucket-server/bitbucket-server-url.js +43 -0
  19. package/lib/bitbucket-server/bitbucket-server-url.js.map +1 -0
  20. package/lib/devfile/dev-container-component-finder.d.ts +2 -1
  21. package/lib/devfile/dev-container-component-finder.js +20 -7
  22. package/lib/devfile/dev-container-component-finder.js.map +1 -1
  23. package/lib/devfile/dev-container-component-inserter.d.ts +18 -0
  24. package/lib/devfile/dev-container-component-inserter.js +98 -0
  25. package/lib/devfile/dev-container-component-inserter.js.map +1 -0
  26. package/lib/devfile/devfile-module.js +2 -0
  27. package/lib/devfile/devfile-module.js.map +1 -1
  28. package/lib/generate.d.ts +3 -3
  29. package/lib/generate.js +29 -21
  30. package/lib/generate.js.map +1 -1
  31. package/lib/github/github-module.js +3 -1
  32. package/lib/github/github-module.js.map +1 -1
  33. package/lib/github/github-resolver.d.ts +6 -7
  34. package/lib/github/github-resolver.js +10 -5
  35. package/lib/github/github-resolver.js.map +1 -1
  36. package/lib/github/github-url.d.ts +5 -6
  37. package/lib/github/github-url.js +7 -9
  38. package/lib/github/github-url.js.map +1 -1
  39. package/lib/inversify/inversify-binding.js +6 -0
  40. package/lib/inversify/inversify-binding.js.map +1 -1
  41. package/lib/main.d.ts +4 -1
  42. package/lib/main.js +41 -27
  43. package/lib/main.js.map +1 -1
  44. package/lib/plugin-registry/plugin-registry-resolver.js +1 -1
  45. package/lib/plugin-registry/plugin-registry-resolver.js.map +1 -1
  46. package/lib/resolve/git-url-resolver.d.ts +5 -0
  47. package/lib/resolve/git-url-resolver.js +43 -0
  48. package/lib/resolve/git-url-resolver.js.map +1 -0
  49. package/lib/resolve/resolve-module.d.ts +12 -0
  50. package/lib/resolve/resolve-module.js +19 -0
  51. package/lib/resolve/resolve-module.js.map +1 -0
  52. package/lib/resolve/resolver.d.ts +22 -0
  53. package/lib/resolve/resolver.js +12 -0
  54. package/lib/resolve/resolver.js.map +1 -0
  55. package/lib/resolve/url.d.ts +35 -0
  56. package/lib/resolve/url.js +12 -0
  57. package/lib/resolve/url.js.map +1 -0
  58. package/lib/types.d.ts +13 -0
  59. package/lib/types.js +17 -0
  60. package/lib/types.js.map +1 -0
  61. package/package.json +1 -1
  62. package/src/bitbucket/bitbucket-module.ts +21 -0
  63. package/src/bitbucket/bitbucket-resolver.ts +46 -0
  64. package/src/bitbucket/bitbucket-url.ts +41 -0
  65. package/src/bitbucket-server/bitbucket-server-module.ts +21 -0
  66. package/src/bitbucket-server/bitbucket-server-resolver.ts +53 -0
  67. package/src/bitbucket-server/bitbucket-server-url.ts +51 -0
  68. package/src/devfile/dev-container-component-finder.ts +23 -4
  69. package/src/devfile/dev-container-component-inserter.ts +49 -0
  70. package/src/devfile/devfile-module.ts +2 -0
  71. package/src/generate.ts +52 -20
  72. package/src/github/github-module.ts +4 -1
  73. package/src/github/github-resolver.ts +17 -9
  74. package/src/github/github-url.ts +8 -9
  75. package/src/inversify/inversify-binding.ts +6 -0
  76. package/src/main.ts +47 -23
  77. package/src/plugin-registry/plugin-registry-resolver.ts +1 -1
  78. package/src/resolve/git-url-resolver.ts +30 -0
  79. package/src/resolve/resolve-module.ts +18 -0
  80. package/src/resolve/resolver.ts +25 -0
  81. package/src/resolve/url.ts +40 -0
  82. package/src/types.ts +14 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**********************************************************************
3
+ * Copyright (c) 2023 Red Hat, Inc.
4
+ *
5
+ * This program and the accompanying materials are made
6
+ * available under the terms of the Eclipse Public License 2.0
7
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
8
+ *
9
+ * SPDX-License-Identifier: EPL-2.0
10
+ ***********************************************************************/
11
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
12
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
16
+ };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ exports.__esModule = true;
54
+ exports.DevContainerComponentInserter = void 0;
55
+ var inversify_1 = require("inversify");
56
+ /**
57
+ * Adds a new component on empty devfile with specific name and image
58
+ */
59
+ var DevContainerComponentInserter = /** @class */ (function () {
60
+ function DevContainerComponentInserter() {
61
+ this.DEFAULT_DEV_CONTAINER_IMAGE = 'quay.io/devfile/universal-developer-image:ubi8-latest';
62
+ this.DEFAULT_DEV_CONTAINER_NAME = 'dev';
63
+ }
64
+ DevContainerComponentInserter.prototype.insert = function (devfileContext, defaultComponentImage) {
65
+ return __awaiter(this, void 0, void 0, function () {
66
+ var devContainerImage, devContainerComponent;
67
+ return __generator(this, function (_a) {
68
+ if (!devfileContext.devWorkspace.spec) {
69
+ devfileContext.devWorkspace.spec = {
70
+ started: true
71
+ };
72
+ }
73
+ if (!devfileContext.devWorkspace.spec.template) {
74
+ devfileContext.devWorkspace.spec.template = {};
75
+ }
76
+ if (!devfileContext.devWorkspace.spec.template.components) {
77
+ devfileContext.devWorkspace.spec.template.components = [];
78
+ }
79
+ devContainerImage = defaultComponentImage ? defaultComponentImage : this.DEFAULT_DEV_CONTAINER_IMAGE;
80
+ console.log("No container component has been found. A default container component with image " + devContainerImage + " will be added.");
81
+ devContainerComponent = {
82
+ name: this.DEFAULT_DEV_CONTAINER_NAME,
83
+ container: {
84
+ image: devContainerImage
85
+ }
86
+ };
87
+ devfileContext.devWorkspace.spec.template.components.push(devContainerComponent);
88
+ return [2 /*return*/];
89
+ });
90
+ });
91
+ };
92
+ DevContainerComponentInserter = __decorate([
93
+ (0, inversify_1.injectable)()
94
+ ], DevContainerComponentInserter);
95
+ return DevContainerComponentInserter;
96
+ }());
97
+ exports.DevContainerComponentInserter = DevContainerComponentInserter;
98
+ //# sourceMappingURL=dev-container-component-inserter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-container-component-inserter.js","sourceRoot":"","sources":["../../src/devfile/dev-container-component-inserter.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIzE,uCAAuC;AAEvC;;GAEG;AAEH;IAAA;QACW,gCAA2B,GAAG,uDAAuD,CAAC;QACtF,+BAA0B,GAAG,KAAK,CAAC;IA4B9C,CAAC;IA1BO,8CAAM,GAAZ,UAAa,cAA8B,EAAE,qBAA8B;;;;gBACzE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE;oBACrC,cAAc,CAAC,YAAY,CAAC,IAAI,GAAG;wBACjC,OAAO,EAAE,IAAI;qBACd,CAAC;iBACH;gBACD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC9C,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;iBAChD;gBACD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBACzD,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;iBAC3D;gBAEK,iBAAiB,GAAG,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC;gBAC3G,OAAO,CAAC,GAAG,CACT,qFAAmF,iBAAiB,oBAAiB,CACtH,CAAC;gBACI,qBAAqB,GAA+C;oBACxE,IAAI,EAAE,IAAI,CAAC,0BAA0B;oBACrC,SAAS,EAAE;wBACT,KAAK,EAAE,iBAAiB;qBACzB;iBACF,CAAC;gBAEF,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;;;;KAClF;IA7BU,6BAA6B;QADzC,IAAA,sBAAU,GAAE;OACA,6BAA6B,CA8BzC;IAAD,oCAAC;CAAA,AA9BD,IA8BC;AA9BY,sEAA6B"}
@@ -12,8 +12,10 @@ exports.devfileModule = void 0;
12
12
  ***********************************************************************/
13
13
  var inversify_1 = require("inversify");
14
14
  var dev_container_component_finder_1 = require("./dev-container-component-finder");
15
+ var dev_container_component_inserter_1 = require("./dev-container-component-inserter");
15
16
  var devfileModule = new inversify_1.ContainerModule(function (bind) {
16
17
  bind(dev_container_component_finder_1.DevContainerComponentFinder).toSelf().inSingletonScope();
18
+ bind(dev_container_component_inserter_1.DevContainerComponentInserter).toSelf().inSingletonScope();
17
19
  });
18
20
  exports.devfileModule = devfileModule;
19
21
  //# sourceMappingURL=devfile-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devfile-module.js","sourceRoot":"","sources":["../../src/devfile/devfile-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;yEAQyE;AACzE,uCAAwD;AAExD,mFAA+E;AAE/E,IAAM,aAAa,GAAG,IAAI,2BAAe,CAAC,UAAC,IAAqB;IAC9D,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAChE,CAAC,CAAC,CAAC;AAEM,sCAAa"}
1
+ {"version":3,"file":"devfile-module.js","sourceRoot":"","sources":["../../src/devfile/devfile-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;yEAQyE;AACzE,uCAAwD;AAExD,mFAA+E;AAC/E,uFAAmF;AAEnF,IAAM,aAAa,GAAG,IAAI,2BAAe,CAAC,UAAC,IAAqB;IAC9D,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,gEAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAClE,CAAC,CAAC,CAAC;AAEM,sCAAa"}
package/lib/generate.d.ts CHANGED
@@ -9,8 +9,8 @@
9
9
  ***********************************************************************/
10
10
  import { DevfileContext } from './api/devfile-context';
11
11
  export declare class Generate {
12
- static readonly MERGE_CONTRIBUTION = "controller.devfile.io/merge-contribution";
13
12
  private devContainerComponentFinder;
14
- generate(devfileContent: string, editorContent: string, outputFile?: string): Promise<DevfileContext>;
15
- generateContent(devfileContent: string, editorContent: string): Promise<DevfileContext>;
13
+ generate(devfileContent: string, editorContent: string, outputFile?: string, injectDefaultComponent?: string, defaultComponentImage?: string): Promise<DevfileContext>;
14
+ generateContent(devfileContent: string, editorContent: string, injectDefaultComponent?: string, defaultComponentImage?: string): Promise<DevfileContext>;
15
+ private createDevWorkspaceMetadata;
16
16
  }
package/lib/generate.js CHANGED
@@ -78,13 +78,12 @@ var dev_container_component_finder_1 = require("./devfile/dev-container-componen
78
78
  var Generate = /** @class */ (function () {
79
79
  function Generate() {
80
80
  }
81
- Generate_1 = Generate;
82
- Generate.prototype.generate = function (devfileContent, editorContent, outputFile) {
81
+ Generate.prototype.generate = function (devfileContent, editorContent, outputFile, injectDefaultComponent, defaultComponentImage) {
83
82
  return __awaiter(this, void 0, void 0, function () {
84
83
  var context, allContentArray, generatedContent;
85
84
  return __generator(this, function (_a) {
86
85
  switch (_a.label) {
87
- case 0: return [4 /*yield*/, this.generateContent(devfileContent, editorContent)];
86
+ case 0: return [4 /*yield*/, this.generateContent(devfileContent, editorContent, injectDefaultComponent, defaultComponentImage)];
88
87
  case 1:
89
88
  context = _a.sent();
90
89
  if (!outputFile) return [3 /*break*/, 3];
@@ -102,16 +101,16 @@ var Generate = /** @class */ (function () {
102
101
  });
103
102
  });
104
103
  };
105
- Generate.prototype.generateContent = function (devfileContent, editorContent) {
104
+ Generate.prototype.generateContent = function (devfileContent, editorContent, injectDefaultComponent, defaultComponentImage) {
106
105
  return __awaiter(this, void 0, void 0, function () {
107
- var devfile, suffix, editorDevfile, metadata, editorDevWorkspaceTemplate, devfileMetadata, devfileCopy, editorSpecContribution, devWorkspace, devWorkspaceTemplates, context, devContainer, devContainerAttributes;
106
+ var devfile, suffix, editorDevfile, metadata, editorDevWorkspaceTemplate, devfileMetadata, devfileCopy, editorSpecContribution, devWorkspace, devWorkspaceTemplates, context;
108
107
  return __generator(this, function (_a) {
109
108
  switch (_a.label) {
110
109
  case 0:
111
110
  devfile = jsYaml.load(devfileContent);
112
111
  suffix = devfile.metadata.name || '';
113
112
  editorDevfile = jsYaml.load(editorContent);
114
- metadata = editorDevfile.metadata;
113
+ metadata = this.createDevWorkspaceMetadata(editorDevfile);
115
114
  // add sufix
116
115
  metadata.name = metadata.name + "-" + suffix;
117
116
  delete editorDevfile.metadata;
@@ -122,7 +121,7 @@ var Generate = /** @class */ (function () {
122
121
  metadata: metadata,
123
122
  spec: editorDevfile
124
123
  };
125
- devfileMetadata = devfile.metadata;
124
+ devfileMetadata = this.createDevWorkspaceMetadata(devfile, true);
126
125
  devfileCopy = Object.assign({}, devfile);
127
126
  delete devfileCopy.schemaVersion;
128
127
  delete devfileCopy.metadata;
@@ -138,6 +137,7 @@ var Generate = /** @class */ (function () {
138
137
  metadata: devfileMetadata,
139
138
  spec: {
140
139
  started: true,
140
+ routingClass: 'che',
141
141
  template: devfileCopy,
142
142
  contributions: [editorSpecContribution]
143
143
  }
@@ -149,29 +149,37 @@ var Generate = /** @class */ (function () {
149
149
  devWorkspaceTemplates: devWorkspaceTemplates,
150
150
  suffix: suffix
151
151
  };
152
- return [4 /*yield*/, this.devContainerComponentFinder.find(context)];
152
+ // find devContainer component, add a default one if not found
153
+ return [4 /*yield*/, this.devContainerComponentFinder.find(context, injectDefaultComponent, defaultComponentImage)];
153
154
  case 1:
154
- devContainer = _a.sent();
155
- devContainerAttributes = devContainer.attributes;
156
- if (!devContainerAttributes) {
157
- devContainerAttributes = {};
158
- devContainerAttributes[Generate_1.MERGE_CONTRIBUTION] = true;
159
- devContainer.attributes = devContainerAttributes;
160
- }
161
- else {
162
- devContainerAttributes[Generate_1.MERGE_CONTRIBUTION] = true;
163
- }
155
+ // find devContainer component, add a default one if not found
156
+ _a.sent();
164
157
  return [2 /*return*/, context];
165
158
  }
166
159
  });
167
160
  });
168
161
  };
169
- var Generate_1;
170
- Generate.MERGE_CONTRIBUTION = 'controller.devfile.io/merge-contribution';
162
+ Generate.prototype.createDevWorkspaceMetadata = function (devfile, addDevfileContent) {
163
+ if (addDevfileContent === void 0) { addDevfileContent = false; }
164
+ var devWorkspaceMetadata = {};
165
+ var devfileMetadata = devfile.metadata;
166
+ if (devfileMetadata.name) {
167
+ devWorkspaceMetadata.name = devfileMetadata.name;
168
+ }
169
+ if (devfileMetadata.generateName) {
170
+ devWorkspaceMetadata.generateName = devfileMetadata.generateName;
171
+ }
172
+ if (addDevfileContent) {
173
+ devWorkspaceMetadata.annotations = {
174
+ 'che.eclipse.org/devfile': jsYaml.dump(devfile)
175
+ };
176
+ }
177
+ return devWorkspaceMetadata;
178
+ };
171
179
  __decorate([
172
180
  (0, inversify_1.inject)(dev_container_component_finder_1.DevContainerComponentFinder)
173
181
  ], Generate.prototype, "devContainerComponentFinder");
174
- Generate = Generate_1 = __decorate([
182
+ Generate = __decorate([
175
183
  (0, inversify_1.injectable)()
176
184
  ], Generate);
177
185
  return Generate;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASzE,uCAA+C;AAC/C,8CAAkC;AAClC,2CAA+B;AAE/B,2FAAuF;AAGvF;IAAA;IA8FA,CAAC;iBA9FY,QAAQ;IAMb,2BAAQ,GAAd,UAAe,cAAsB,EAAE,aAAqB,EAAE,UAAmB;;;;;4BAC/D,qBAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,EAAA;;wBAAnE,OAAO,GAAG,SAAyD;6BAGrE,UAAU,EAAV,wBAAU;wBAEN,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAArB,CAAqB,CAAC,CAAC;wBAC7F,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;wBAElD,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAEvD,qBAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAA;;wBAAzD,SAAyD,CAAC;;;wBAG5D,OAAO,CAAC,GAAG,CAAC,kBAAgB,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,oBAAiB,CAAC,CAAC;wBAC7F,sBAAO,OAAO,EAAC;;;;KAChB;IAEK,kCAAe,GAArB,UAAsB,cAAsB,EAAE,aAAqB;;;;;;wBAC3D,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAItC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;wBAGrC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAG3C,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;wBACxC,YAAY;wBACZ,QAAQ,CAAC,IAAI,GAAM,QAAQ,CAAC,IAAI,SAAI,MAAQ,CAAC;wBAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC;wBAC9B,OAAO,aAAa,CAAC,aAAa,CAAC;wBAC7B,0BAA0B,GAAiC;4BAC/D,UAAU,EAAE,+BAA+B;4BAC3C,IAAI,EAAE,sBAAsB;4BAC5B,QAAQ,UAAA;4BACR,IAAI,EAAE,aAAiD;yBACxD,CAAC;wBAGI,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;wBACnC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBAC/C,OAAO,WAAW,CAAC,aAAa,CAAC;wBACjC,OAAO,WAAW,CAAC,QAAQ,CAAC;wBACtB,sBAAsB,GAA0C;4BACpE,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE,0BAA0B,CAAC,QAAQ,CAAC,IAAI;6BAC/C;yBACF,CAAC;wBACI,YAAY,GAAyB;4BACzC,UAAU,EAAE,+BAA+B;4BAC3C,IAAI,EAAE,cAAc;4BACpB,QAAQ,EAAE,eAAe;4BACzB,IAAI,EAAE;gCACJ,OAAO,EAAE,IAAI;gCACb,QAAQ,EAAE,WAAW;gCACrB,aAAa,EAAE,CAAC,sBAAsB,CAAC;6BACxC;yBACF,CAAC;wBAGI,qBAAqB,GAAG,CAAC,0BAA0B,CAAC,CAAC;wBAErD,OAAO,GAAG;4BACd,OAAO,SAAA;4BACP,YAAY,cAAA;4BACZ,qBAAqB,uBAAA;4BACrB,MAAM,QAAA;yBACP,CAAC;wBAG6D,qBAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAA/G,YAAY,GAA+C,SAAoD;wBAG/G,sBAAsB,GAAG,YAAY,CAAC,UAAU,CAAC;wBACrD,IAAI,CAAC,sBAAsB,EAAE;4BAC3B,sBAAsB,GAAG,EAAE,CAAC;4BAC5B,sBAAsB,CAAC,UAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;4BAC3D,YAAY,CAAC,UAAU,GAAG,sBAAsB,CAAC;yBAClD;6BAAM;4BACL,sBAAsB,CAAC,UAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;yBAC5D;wBAED,sBAAO,OAAO,EAAC;;;;KAChB;;IA5Fe,2BAAkB,GAAG,0CAA2C,CAAA;IAGhF;QADC,IAAA,kBAAM,EAAC,4DAA2B,CAAC;yDAC6B;IAJtD,QAAQ;QADpB,IAAA,sBAAU,GAAE;OACA,QAAQ,CA8FpB;IAAD,eAAC;CAAA,AA9FD,IA8FC;AA9FY,4BAAQ"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,10 @@ exports.githubModule = void 0;
12
12
  ***********************************************************************/
13
13
  var inversify_1 = require("inversify");
14
14
  var github_resolver_1 = require("./github-resolver");
15
+ var types_1 = require("../types");
16
+ var Resolver = types_1.TYPES.Resolver;
15
17
  var githubModule = new inversify_1.ContainerModule(function (bind) {
16
- bind(github_resolver_1.GithubResolver).toSelf().inSingletonScope();
18
+ bind(Resolver).to(github_resolver_1.GithubResolver).inSingletonScope();
17
19
  });
18
20
  exports.githubModule = githubModule;
19
21
  //# sourceMappingURL=github-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-module.js","sourceRoot":"","sources":["../../src/github/github-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;yEAQyE;AACzE,uCAAwD;AAExD,qDAAmD;AAEnD,IAAM,YAAY,GAAG,IAAI,2BAAe,CAAC,UAAC,IAAqB;IAC7D,IAAI,CAAC,gCAAc,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACnD,CAAC,CAAC,CAAC;AAEM,oCAAY"}
1
+ {"version":3,"file":"github-module.js","sourceRoot":"","sources":["../../src/github/github-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;yEAQyE;AACzE,uCAAwD;AAExD,qDAAmD;AACnD,kCAAiC;AAEzB,IAAA,QAAQ,GAAK,aAAK,SAAV,CAAW;AAE3B,IAAM,YAAY,GAAG,IAAI,2BAAe,CAAC,UAAC,IAAqB;IAC7D,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,gCAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACvD,CAAC,CAAC,CAAC;AAEM,oCAAY"}
@@ -7,12 +7,11 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ***********************************************************************/
10
- import { GithubUrl } from './github-url';
11
- /**
12
- * Provides a github URL object allowing to interact
13
- */
14
- export declare class GithubResolver {
10
+ import { Url } from '../resolve/url';
11
+ import { Resolver } from '../resolve/resolver';
12
+ export declare class GithubResolver implements Resolver {
15
13
  static readonly GITHUB_URL_PATTERN: RegExp;
16
- resolve(link: string): GithubUrl;
17
- getGroup(match: RegExpExecArray, groupName: string, defaultValue?: string): string;
14
+ isValid(url: string): boolean;
15
+ resolve(link: string): Url;
16
+ private getGroup;
18
17
  }
@@ -18,23 +18,28 @@ exports.__esModule = true;
18
18
  exports.GithubResolver = void 0;
19
19
  var github_url_1 = require("./github-url");
20
20
  var inversify_1 = require("inversify");
21
- /**
22
- * Provides a github URL object allowing to interact
23
- */
24
21
  var GithubResolver = /** @class */ (function () {
25
22
  function GithubResolver() {
26
23
  }
27
24
  GithubResolver_1 = GithubResolver;
25
+ GithubResolver.prototype.isValid = function (url) {
26
+ return GithubResolver_1.GITHUB_URL_PATTERN.test(url);
27
+ };
28
28
  GithubResolver.prototype.resolve = function (link) {
29
29
  var match = GithubResolver_1.GITHUB_URL_PATTERN.exec(link);
30
30
  if (!match) {
31
31
  throw new Error("Invalid github URL: " + link);
32
32
  }
33
+ var scheme = this.getGroup(match, 'scheme');
34
+ var hostName = this.getGroup(match, 'host');
33
35
  var repoUser = this.getGroup(match, 'repoUser');
34
36
  var repoName = this.getGroup(match, 'repoName');
37
+ if (/^[\w-][\w.-]*?\.git$/.test(repoName)) {
38
+ repoName = repoName.substring(0, repoName.length - 4);
39
+ }
35
40
  var branchName = this.getGroup(match, 'branchName', 'HEAD');
36
41
  var subFolder = this.getGroup(match, 'subFolder');
37
- return new github_url_1.GithubUrl(repoUser, repoName, branchName, subFolder);
42
+ return new github_url_1.GithubUrl(scheme, hostName, repoUser, repoName, branchName, subFolder);
38
43
  };
39
44
  GithubResolver.prototype.getGroup = function (match, groupName, defaultValue) {
40
45
  if (match.groups && match.groups[groupName]) {
@@ -44,7 +49,7 @@ var GithubResolver = /** @class */ (function () {
44
49
  };
45
50
  var GithubResolver_1;
46
51
  // eslint-disable-next-line max-len
47
- GithubResolver.GITHUB_URL_PATTERN = /^(?:http)(?:s)?(?:\:\/\/)github\.com\/(?<repoUser>[^\/]+)\/(?<repoName>[^\/]+)((\/)|(?:\/(blob|tree)\/(?<branchName>[^\/]+)(?:\/(?<subFolder>.*))?))?$/;
52
+ GithubResolver.GITHUB_URL_PATTERN = /^(?<scheme>https?):\/\/(?<host>github(\..+)?\.[^\/]+)\/(?<repoUser>[^\/]+)\/(?<repoName>[^\/]+)((\/)|\/(blob|tree)\/(?<branchName>[^\/]+)(?:\/(?<subFolder>.*))?)?$/;
48
53
  GithubResolver = GithubResolver_1 = __decorate([
49
54
  (0, inversify_1.injectable)()
50
55
  ], GithubResolver);
@@ -1 +1 @@
1
- {"version":3,"file":"github-resolver.js","sourceRoot":"","sources":["../../src/github/github-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;AAEzE,2CAAyC;AACzC,uCAAuC;AAEvC;;GAEG;AAEH;IAAA;IAuBA,CAAC;uBAvBY,cAAc;IAKzB,gCAAO,GAAP,UAAQ,IAAY;QAClB,IAAM,KAAK,GAAG,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,yBAAuB,IAAM,CAAC,CAAC;SAChD;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,IAAI,sBAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,iCAAQ,GAAR,UAAS,KAAsB,EAAE,SAAiB,EAAE,YAAqB;QACvE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChC;QACD,OAAO,YAAY,IAAI,EAAE,CAAC;IAC5B,CAAC;;IArBD,mCAAmC;IACnB,iCAAkB,GAChC,wJAAyJ,CAAA;IAHhJ,cAAc;QAD1B,IAAA,sBAAU,GAAE;OACA,cAAc,CAuB1B;IAAD,qBAAC;CAAA,AAvBD,IAuBC;AAvBY,wCAAc"}
1
+ {"version":3,"file":"github-resolver.js","sourceRoot":"","sources":["../../src/github/github-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;;;;;;;AAEzE,2CAAyC;AACzC,uCAAuC;AAKvC;IAAA;IAgCA,CAAC;uBAhCY,cAAc;IAKzB,gCAAO,GAAP,UAAQ,GAAW;QACjB,OAAO,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,gCAAO,GAAP,UAAQ,IAAY;QAClB,IAAM,KAAK,GAAG,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,yBAAuB,IAAM,CAAC,CAAC;SAChD;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACvD;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,IAAI,sBAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAEO,iCAAQ,GAAhB,UAAiB,KAAsB,EAAE,SAAiB,EAAE,YAAqB;QAC/E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChC;QACD,OAAO,YAAY,IAAI,EAAE,CAAC;IAC5B,CAAC;;IA9BD,mCAAmC;IACnB,iCAAkB,GAChC,qKAAsK,CAAA;IAH7J,cAAc;QAD1B,IAAA,sBAAU,GAAE;OACA,cAAc,CAgC1B;IAAD,qBAAC;CAAA,AAhCD,IAgCC;AAhCY,wCAAc"}
@@ -7,16 +7,15 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ***********************************************************************/
10
- /**
11
- * Provides helper methods on top of github URL to get for example raw content of get relative links
12
- */
13
- export declare class GithubUrl {
10
+ import { Url } from '../resolve/url';
11
+ export declare class GithubUrl implements Url {
12
+ private readonly scheme;
13
+ private readonly hostName;
14
14
  private readonly repoUser;
15
15
  private readonly repoName;
16
16
  private readonly branchName;
17
17
  private readonly subFolder;
18
- static readonly RAW_LINK = "https://raw.githubusercontent.com";
19
- constructor(repoUser: string, repoName: string, branchName: string, subFolder: string);
18
+ constructor(scheme: string, hostName: string, repoUser: string, repoName: string, branchName: string, subFolder: string);
20
19
  /**
21
20
  * Provides the raw link to the given path based on the current repository information
22
21
  */
@@ -10,11 +10,10 @@
10
10
  ***********************************************************************/
11
11
  exports.__esModule = true;
12
12
  exports.GithubUrl = void 0;
13
- /**
14
- * Provides helper methods on top of github URL to get for example raw content of get relative links
15
- */
16
13
  var GithubUrl = /** @class */ (function () {
17
- function GithubUrl(repoUser, repoName, branchName, subFolder) {
14
+ function GithubUrl(scheme, hostName, repoUser, repoName, branchName, subFolder) {
15
+ this.scheme = scheme;
16
+ this.hostName = hostName;
18
17
  this.repoUser = repoUser;
19
18
  this.repoName = repoName;
20
19
  this.branchName = branchName;
@@ -24,13 +23,14 @@ var GithubUrl = /** @class */ (function () {
24
23
  * Provides the raw link to the given path based on the current repository information
25
24
  */
26
25
  GithubUrl.prototype.getContentUrl = function (path) {
27
- return GithubUrl.RAW_LINK + "/" + this.repoUser + "/" + this.repoName + "/" + this.branchName + "/" + path;
26
+ var hostName = this.hostName === 'github.com' ? 'githubusercontent.com' : this.hostName;
27
+ return this.scheme + "://raw." + hostName + "/" + this.repoUser + "/" + this.repoName + "/" + this.branchName + "/" + path;
28
28
  };
29
29
  GithubUrl.prototype.getUrl = function () {
30
- return "https://github.com/" + this.repoUser + "/" + this.repoName + "/tree/" + this.branchName + "/" + this.subFolder;
30
+ return this.scheme + "://" + this.hostName + "/" + this.repoUser + "/" + this.repoName + "/tree/" + this.branchName + "/" + this.subFolder;
31
31
  };
32
32
  GithubUrl.prototype.getCloneUrl = function () {
33
- return "https://github.com/" + this.repoUser + "/" + this.repoName + ".git";
33
+ return this.scheme + "://" + this.hostName + "/" + this.repoUser + "/" + this.repoName + ".git";
34
34
  };
35
35
  GithubUrl.prototype.getRepoName = function () {
36
36
  return this.repoName;
@@ -38,8 +38,6 @@ var GithubUrl = /** @class */ (function () {
38
38
  GithubUrl.prototype.getBranchName = function () {
39
39
  return this.branchName;
40
40
  };
41
- // raw link
42
- GithubUrl.RAW_LINK = 'https://raw.githubusercontent.com';
43
41
  return GithubUrl;
44
42
  }());
45
43
  exports.GithubUrl = GithubUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"github-url.js","sourceRoot":"","sources":["../../src/github/github-url.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;AAEzE;;GAEG;AACH;IAIE,mBACmB,QAAgB,EAChB,QAAgB,EAChB,UAAkB,EAClB,SAAiB;QAHjB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEJ;;OAEG;IACH,iCAAa,GAAb,UAAc,IAAY;QACxB,OAAU,SAAS,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,UAAU,SAAI,IAAM,CAAC;IAC9F,CAAC;IAED,0BAAM,GAAN;QACE,OAAO,wBAAsB,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,cAAS,IAAI,CAAC,UAAU,SAAI,IAAI,CAAC,SAAW,CAAC;IAC1G,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,wBAAsB,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAM,CAAC;IACpE,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,iCAAa,GAAb;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IA/BD,WAAW;IACK,kBAAQ,GAAG,mCAAmC,CAAC;IA+BjE,gBAAC;CAAA,AAjCD,IAiCC;AAjCY,8BAAS"}
1
+ {"version":3,"file":"github-url.js","sourceRoot":"","sources":["../../src/github/github-url.ts"],"names":[],"mappings":";AAAA;;;;;;;;yEAQyE;;;AAIzE;IACE,mBACmB,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,UAAkB,EAClB,SAAiB;QALjB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEJ;;OAEG;IACH,iCAAa,GAAb,UAAc,IAAY;QACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1F,OAAU,IAAI,CAAC,MAAM,eAAU,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,UAAU,SAAI,IAAM,CAAC;IACzG,CAAC;IAED,0BAAM,GAAN;QACE,OAAU,IAAI,CAAC,MAAM,WAAM,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,cAAS,IAAI,CAAC,UAAU,SAAI,IAAI,CAAC,SAAW,CAAC;IACzH,CAAC;IAED,+BAAW,GAAX;QACE,OAAU,IAAI,CAAC,MAAM,WAAM,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,QAAQ,SAAM,CAAC;IACnF,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,iCAAa,GAAb;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,gBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,8BAAS"}
@@ -51,7 +51,10 @@ var inversify_1 = require("inversify");
51
51
  var devfile_module_1 = require("../devfile/devfile-module");
52
52
  var fetch_module_1 = require("../fetch/fetch-module");
53
53
  var github_module_1 = require("../github/github-module");
54
+ var resolve_module_1 = require("../resolve/resolve-module");
54
55
  var plugin_registry_module_1 = require("../plugin-registry/plugin-registry-module");
56
+ var bitbucket_module_1 = require("../bitbucket/bitbucket-module");
57
+ var bitbucket_server_module_1 = require("../bitbucket-server/bitbucket-server-module");
55
58
  /**
56
59
  * Manage all bindings for inversify
57
60
  */
@@ -65,6 +68,9 @@ var InversifyBinding = /** @class */ (function () {
65
68
  this.container.load(devfile_module_1.devfileModule);
66
69
  this.container.load(fetch_module_1.fetchModule);
67
70
  this.container.load(github_module_1.githubModule);
71
+ this.container.load(bitbucket_module_1.bitbucketModule);
72
+ this.container.load(bitbucket_server_module_1.bitbucketServerModule);
73
+ this.container.load(resolve_module_1.resolveModule);
68
74
  this.container.load(plugin_registry_module_1.pluginRegistryModule);
69
75
  this.container.bind(Symbol["for"]('AxiosInstance')).toConstantValue(options.axiosInstance);
70
76
  this.container.bind('string').toConstantValue(options.pluginRegistryUrl).whenTargetNamed('PLUGIN_REGISTRY_URL');
@@ -1 +1 @@
1
- {"version":3,"file":"inversify-binding.js","sourceRoot":"","sources":["../../src/inversify/inversify-binding.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;yEAQyE;AACzE,4BAA0B;AAG1B,uCAAsC;AACtC,4DAA0D;AAC1D,sDAAoD;AACpD,yDAAuD;AACvD,oFAAiF;AAEjF;;GAEG;AACH;IAAA;IAgBA,CAAC;IAbc,uCAAY,GAAzB,UAA0B,OAAgC;;;gBACxD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;gBAEjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAAW,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAAoB,CAAC,CAAC;gBAE1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAG,CAAA,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;gBAEhH,sBAAO,IAAI,CAAC,SAAS,EAAC;;;KACvB;IACH,uBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,4CAAgB"}
1
+ {"version":3,"file":"inversify-binding.js","sourceRoot":"","sources":["../../src/inversify/inversify-binding.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;yEAQyE;AACzE,4BAA0B;AAG1B,uCAAsC;AACtC,4DAA0D;AAC1D,sDAAoD;AACpD,yDAAuD;AACvD,4DAA0D;AAC1D,oFAAiF;AACjF,kEAAgE;AAChE,uFAAoF;AAEpF;;GAEG;AACH;IAAA;IAmBA,CAAC;IAhBc,uCAAY,GAAzB,UAA0B,OAAgC;;;gBACxD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;gBAEjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAAW,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAe,CAAC,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAAqB,CAAC,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAAoB,CAAC,CAAC;gBAE1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAG,CAAA,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;gBAEhH,sBAAO,IAAI,CAAC,SAAS,EAAC;;;KACvB;IACH,uBAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,4CAAgB"}
package/lib/main.d.ts CHANGED
@@ -20,12 +20,15 @@ export declare class Main {
20
20
  devfileContent?: string;
21
21
  outputFile?: string;
22
22
  editorPath?: string;
23
- pluginRegistryUrl?: string;
23
+ editorContent?: string;
24
24
  editorEntry?: string;
25
+ pluginRegistryUrl?: string;
25
26
  projects: {
26
27
  name: string;
27
28
  location: string;
28
29
  }[];
30
+ injectDefaultComponent?: string;
31
+ defaultComponentImage?: string;
29
32
  }, axiosInstance: axios.AxiosInstance): Promise<DevfileContext>;
30
33
  replaceIfExistingProjects(devfileContent: string, projects: {
31
34
  name: string;
package/lib/main.js CHANGED
@@ -68,11 +68,11 @@ exports.Main = void 0;
68
68
  var axios = __importStar(require("axios"));
69
69
  var fs = __importStar(require("fs-extra"));
70
70
  var generate_1 = require("./generate");
71
- var github_resolver_1 = require("./github/github-resolver");
72
71
  var jsYaml = __importStar(require("js-yaml"));
73
72
  var inversify_binding_1 = require("./inversify/inversify-binding");
74
73
  var url_fetcher_1 = require("./fetch/url-fetcher");
75
74
  var plugin_registry_resolver_1 = require("./plugin-registry/plugin-registry-resolver");
75
+ var git_url_resolver_1 = require("./resolve/git-url-resolver");
76
76
  var Main = /** @class */ (function () {
77
77
  /**
78
78
  * Default constructor.
@@ -83,18 +83,20 @@ var Main = /** @class */ (function () {
83
83
  // Generates a devfile context object based on params
84
84
  Main.prototype.generateDevfileContext = function (params, axiosInstance) {
85
85
  return __awaiter(this, void 0, void 0, function () {
86
- var devfilePath, devfileUrl, outputFile, editorPath, pluginRegistryUrl, editorEntry, projects, inversifyBinbding, container, devfileContent, editorContent, githubResolver, githubUrl, devfileParsed, editorDevfile, generate;
86
+ var pluginRegistryUrl, inversifyBinbding, container, devfileContent, editorContent, resolver, url, devfileParsed, editorDevfile, generate;
87
87
  return __generator(this, function (_a) {
88
88
  switch (_a.label) {
89
89
  case 0:
90
- devfilePath = params.devfilePath, devfileUrl = params.devfileUrl, outputFile = params.outputFile, editorPath = params.editorPath, pluginRegistryUrl = params.pluginRegistryUrl, editorEntry = params.editorEntry, projects = params.projects;
91
- if (!editorPath && !editorEntry) {
92
- throw new Error('missing editorPath or editorEntry');
90
+ if (!params.editorPath && !params.editorEntry && !params.editorContent) {
91
+ throw new Error('missing editorPath or editorEntry or editorContent');
93
92
  }
94
- if (!devfilePath && !devfileUrl && !params.devfileContent) {
93
+ if (!params.devfilePath && !params.devfileUrl && !params.devfileContent) {
95
94
  throw new Error('missing devfilePath or devfileUrl or devfileContent');
96
95
  }
97
- if (!pluginRegistryUrl) {
96
+ if (params.pluginRegistryUrl) {
97
+ pluginRegistryUrl = params.pluginRegistryUrl;
98
+ }
99
+ else {
98
100
  pluginRegistryUrl = 'https://eclipse-che.github.io/che-plugin-registry/main/v3';
99
101
  console.log("No plug-in registry url. Setting to " + pluginRegistryUrl);
100
102
  }
@@ -106,10 +108,10 @@ var Main = /** @class */ (function () {
106
108
  case 1:
107
109
  container = _a.sent();
108
110
  container.bind(generate_1.Generate).toSelf().inSingletonScope();
109
- if (!devfileUrl) return [3 /*break*/, 3];
110
- githubResolver = container.get(github_resolver_1.GithubResolver);
111
- githubUrl = githubResolver.resolve(devfileUrl);
112
- return [4 /*yield*/, container.get(url_fetcher_1.UrlFetcher).fetchText(githubUrl.getContentUrl('devfile.yaml'))];
111
+ if (!params.devfileUrl) return [3 /*break*/, 3];
112
+ resolver = container.get(git_url_resolver_1.GitUrlResolver);
113
+ url = resolver.resolve(params.devfileUrl);
114
+ return [4 /*yield*/, container.get(url_fetcher_1.UrlFetcher).fetchText(url.getContentUrl('devfile.yaml'))];
113
115
  case 2:
114
116
  // user devfile
115
117
  devfileContent = _a.sent();
@@ -119,10 +121,10 @@ var Main = /** @class */ (function () {
119
121
  // no, so add the current project being cloned
120
122
  devfileParsed.projects = [
121
123
  {
122
- name: githubUrl.getRepoName(),
124
+ name: url.getRepoName(),
123
125
  git: {
124
- remotes: { origin: githubUrl.getCloneUrl() },
125
- checkoutFrom: { revision: githubUrl.getBranchName() }
126
+ remotes: { origin: url.getCloneUrl() },
127
+ checkoutFrom: { revision: url.getBranchName() }
126
128
  }
127
129
  },
128
130
  ];
@@ -131,8 +133,8 @@ var Main = /** @class */ (function () {
131
133
  devfileContent = jsYaml.dump(devfileParsed);
132
134
  return [3 /*break*/, 6];
133
135
  case 3:
134
- if (!devfilePath) return [3 /*break*/, 5];
135
- return [4 /*yield*/, fs.readFile(devfilePath)];
136
+ if (!params.devfilePath) return [3 /*break*/, 5];
137
+ return [4 /*yield*/, fs.readFile(params.devfilePath)];
136
138
  case 4:
137
139
  devfileContent = _a.sent();
138
140
  return [3 /*break*/, 6];
@@ -141,20 +143,24 @@ var Main = /** @class */ (function () {
141
143
  _a.label = 6;
142
144
  case 6:
143
145
  // enhance projects
144
- devfileContent = this.replaceIfExistingProjects(devfileContent, projects);
145
- if (!editorEntry) return [3 /*break*/, 8];
146
- return [4 /*yield*/, container.get(plugin_registry_resolver_1.PluginRegistryResolver).loadDevfilePlugin(editorEntry)];
146
+ devfileContent = this.replaceIfExistingProjects(devfileContent, params.projects);
147
+ if (!params.editorContent) return [3 /*break*/, 7];
148
+ editorContent = params.editorContent;
149
+ return [3 /*break*/, 11];
147
150
  case 7:
151
+ if (!params.editorEntry) return [3 /*break*/, 9];
152
+ return [4 /*yield*/, container.get(plugin_registry_resolver_1.PluginRegistryResolver).loadDevfilePlugin(params.editorEntry)];
153
+ case 8:
148
154
  editorDevfile = _a.sent();
149
155
  editorContent = jsYaml.dump(editorDevfile);
150
- return [3 /*break*/, 10];
151
- case 8: return [4 /*yield*/, fs.readFile(editorPath)];
152
- case 9:
153
- editorContent = _a.sent();
154
- _a.label = 10;
156
+ return [3 /*break*/, 11];
157
+ case 9: return [4 /*yield*/, fs.readFile(params.editorPath)];
155
158
  case 10:
159
+ editorContent = _a.sent();
160
+ _a.label = 11;
161
+ case 11:
156
162
  generate = container.get(generate_1.Generate);
157
- return [2 /*return*/, generate.generate(devfileContent, editorContent, outputFile)];
163
+ return [2 /*return*/, generate.generate(devfileContent, editorContent, params.outputFile, params.injectDefaultComponent, params.defaultComponentImage)];
158
164
  }
159
165
  });
160
166
  });
@@ -187,7 +193,7 @@ var Main = /** @class */ (function () {
187
193
  };
188
194
  Main.prototype.start = function () {
189
195
  return __awaiter(this, void 0, void 0, function () {
190
- var devfilePath, devfileUrl, outputFile, editorPath, pluginRegistryUrl, editorEntry, projects, args, error_1;
196
+ var devfilePath, devfileUrl, outputFile, editorPath, pluginRegistryUrl, editorEntry, injectDefaultComponent, defaultComponentImage, projects, args, error_1;
191
197
  return __generator(this, function (_a) {
192
198
  switch (_a.label) {
193
199
  case 0:
@@ -218,6 +224,12 @@ var Main = /** @class */ (function () {
218
224
  location = location.replace('{{_INTERNAL_URL_}}', '{{ INTERNAL_URL }}');
219
225
  projects.push({ name: name, location: location });
220
226
  }
227
+ if (arg.startsWith('--injectDefaultComponent:')) {
228
+ injectDefaultComponent = arg.substring('--injectDefaultComponent:'.length);
229
+ }
230
+ if (arg.startsWith('--defaultComponentImage:')) {
231
+ defaultComponentImage = arg.substring('--defaultComponentImage:'.length);
232
+ }
221
233
  });
222
234
  _a.label = 1;
223
235
  case 1:
@@ -238,7 +250,9 @@ var Main = /** @class */ (function () {
238
250
  outputFile: outputFile,
239
251
  pluginRegistryUrl: pluginRegistryUrl,
240
252
  editorEntry: editorEntry,
241
- projects: projects
253
+ projects: projects,
254
+ injectDefaultComponent: injectDefaultComponent,
255
+ defaultComponentImage: defaultComponentImage
242
256
  }, axios["default"])];
243
257
  case 2:
244
258
  _a.sent();