@decohere/create 0.0.1-dev.20 → 0.0.1-dev.20261105.103

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 (94) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +255 -0
  3. package/es6/src/cli.js +1 -34
  4. package/es6/src/index.js +2 -0
  5. package/es6/src/resolve-launch.js +87 -0
  6. package/es6/src/runner.js +67 -24
  7. package/es6/src/version.js +14 -6
  8. package/pack-builder-tgz.mjs +177 -0
  9. package/package.json +23 -11
  10. package/types/src/index.d.ts +3 -0
  11. package/types/src/resolve-launch.d.ts +20 -0
  12. package/types/src/runner.d.ts +3 -11
  13. package/types/src/version.d.ts +1 -1
  14. package/commonjs/src/cli.js +0 -40
  15. package/commonjs/src/domain/prompt.js +0 -55
  16. package/commonjs/src/models/compose.model.js +0 -82
  17. package/commonjs/src/models/config-yaml.model.js +0 -34
  18. package/commonjs/src/models/const.js +0 -29
  19. package/commonjs/src/models/container-image.model.js +0 -88
  20. package/commonjs/src/models/dev-container.model.js +0 -73
  21. package/commonjs/src/models/env-file.model.js +0 -33
  22. package/commonjs/src/models/gitignore.model.js +0 -32
  23. package/commonjs/src/models/launch-json.model.js +0 -52
  24. package/commonjs/src/models/package-json.model.js +0 -64
  25. package/commonjs/src/models/project.model.js +0 -126
  26. package/commonjs/src/models/source-file.js +0 -6
  27. package/commonjs/src/models/tsconfig.model.js +0 -34
  28. package/commonjs/src/models/vscode-settings.model.js +0 -31
  29. package/commonjs/src/runner.js +0 -56
  30. package/commonjs/src/services/scaffold.service.js +0 -62
  31. package/commonjs/src/version.js +0 -32
  32. package/commonjs/src/webapi/create-api.js +0 -169
  33. package/commonjs/src/webapi/features/auth.feature.js +0 -166
  34. package/commonjs/src/webapi/features/auth0-cli.js +0 -151
  35. package/commonjs/src/webapi/features/database.feature.js +0 -151
  36. package/commonjs/src/webapi/features/finalize.feature.js +0 -51
  37. package/commonjs/src/webapi/features/postman.feature.js +0 -309
  38. package/commonjs/src/webapi/models/api-package-json.model.js +0 -57
  39. package/commonjs/src/webapi/models/auth-config.model.js +0 -23
  40. package/commonjs/src/webapi/models/controller-source-file.model.js +0 -180
  41. package/commonjs/src/webapi/models/main-source-file.model.js +0 -132
  42. package/commonjs/src/webapi/models/sample-files.model.js +0 -60
  43. package/es6/src/domain/prompt.js +0 -37
  44. package/es6/src/models/compose.model.js +0 -77
  45. package/es6/src/models/config-yaml.model.js +0 -30
  46. package/es6/src/models/const.js +0 -19
  47. package/es6/src/models/container-image.model.js +0 -84
  48. package/es6/src/models/dev-container.model.js +0 -68
  49. package/es6/src/models/env-file.model.js +0 -29
  50. package/es6/src/models/gitignore.model.js +0 -22
  51. package/es6/src/models/launch-json.model.js +0 -42
  52. package/es6/src/models/package-json.model.js +0 -60
  53. package/es6/src/models/project.model.js +0 -111
  54. package/es6/src/models/source-file.js +0 -3
  55. package/es6/src/models/tsconfig.model.js +0 -24
  56. package/es6/src/models/vscode-settings.model.js +0 -21
  57. package/es6/src/services/scaffold.service.js +0 -52
  58. package/es6/src/webapi/create-api.js +0 -151
  59. package/es6/src/webapi/features/auth.feature.js +0 -115
  60. package/es6/src/webapi/features/auth0-cli.js +0 -116
  61. package/es6/src/webapi/features/database.feature.js +0 -141
  62. package/es6/src/webapi/features/finalize.feature.js +0 -41
  63. package/es6/src/webapi/features/postman.feature.js +0 -258
  64. package/es6/src/webapi/models/api-package-json.model.js +0 -52
  65. package/es6/src/webapi/models/auth-config.model.js +0 -19
  66. package/es6/src/webapi/models/controller-source-file.model.js +0 -171
  67. package/es6/src/webapi/models/main-source-file.model.js +0 -128
  68. package/es6/src/webapi/models/sample-files.model.js +0 -42
  69. package/types/src/domain/prompt.d.ts +0 -2
  70. package/types/src/models/compose.model.d.ts +0 -32
  71. package/types/src/models/config-yaml.model.d.ts +0 -16
  72. package/types/src/models/const.d.ts +0 -17
  73. package/types/src/models/container-image.model.d.ts +0 -15
  74. package/types/src/models/dev-container.model.d.ts +0 -21
  75. package/types/src/models/env-file.model.d.ts +0 -14
  76. package/types/src/models/gitignore.model.d.ts +0 -6
  77. package/types/src/models/launch-json.model.d.ts +0 -5
  78. package/types/src/models/package-json.model.d.ts +0 -18
  79. package/types/src/models/project.model.d.ts +0 -55
  80. package/types/src/models/source-file.d.ts +0 -11
  81. package/types/src/models/tsconfig.model.d.ts +0 -5
  82. package/types/src/models/vscode-settings.model.d.ts +0 -7
  83. package/types/src/services/scaffold.service.d.ts +0 -22
  84. package/types/src/webapi/create-api.d.ts +0 -7
  85. package/types/src/webapi/features/auth.feature.d.ts +0 -7
  86. package/types/src/webapi/features/auth0-cli.d.ts +0 -22
  87. package/types/src/webapi/features/database.feature.d.ts +0 -5
  88. package/types/src/webapi/features/finalize.feature.d.ts +0 -2
  89. package/types/src/webapi/features/postman.feature.d.ts +0 -7
  90. package/types/src/webapi/models/api-package-json.model.d.ts +0 -17
  91. package/types/src/webapi/models/auth-config.model.d.ts +0 -18
  92. package/types/src/webapi/models/controller-source-file.model.d.ts +0 -42
  93. package/types/src/webapi/models/main-source-file.model.d.ts +0 -36
  94. package/types/src/webapi/models/sample-files.model.d.ts +0 -7
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "DevContainer", {
6
- enumerable: true,
7
- get: function() {
8
- return DevContainer;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class DevContainer {
13
- key = _const.WELL_KNOWN_FILES.DEVCONTAINER_JSON;
14
- _extensions = [];
15
- _ports = [];
16
- _mounts;
17
- _postStartCommand;
18
- _useCompose = false;
19
- constructor(){
20
- this._mounts = [
21
- "source=..,target=/workspace,type=bind,consistency=cached"
22
- ];
23
- this.forwardPort(3000);
24
- }
25
- addExtension(...ids) {
26
- this._extensions.push(...ids);
27
- return this;
28
- }
29
- forwardPort(...ports) {
30
- this._ports.push(...ports);
31
- return this;
32
- }
33
- setPostStartCommand(cmd) {
34
- this._postStartCommand = cmd;
35
- return this;
36
- }
37
- useCompose() {
38
- this._useCompose = true;
39
- return this;
40
- }
41
- files() {
42
- const config = {};
43
- if (this._useCompose) {
44
- config.dockerComposeFile = "docker-compose.yml";
45
- config.service = "devcontainer";
46
- config.workspaceFolder = "/workspace";
47
- }
48
- if (this._mounts) {
49
- config.mounts = this._mounts;
50
- }
51
- if (this._extensions.length > 0) {
52
- config.customizations = {
53
- vscode: {
54
- extensions: this._extensions
55
- }
56
- };
57
- }
58
- if (this._ports.length > 0) {
59
- config.forwardPorts = this._ports;
60
- }
61
- if (this._postStartCommand) {
62
- config.postStartCommand = this._postStartCommand;
63
- }
64
- return [
65
- {
66
- filePath: ".devcontainer/devcontainer.json",
67
- content: JSON.stringify(config, null, 2)
68
- }
69
- ];
70
- }
71
- }
72
-
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Rldi1jb250YWluZXIubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi9zb3VyY2UtZmlsZS5qc1wiO1xuXG4vKipcbiAqIE1vZGVsIGZvciBgLmRldmNvbnRhaW5lci9kZXZjb250YWluZXIuanNvbmAuXG4gKlxuICogRmVhdHVyZXMgY2FsbCBidWlsZGVyIG1ldGhvZHMgKGBhZGRFeHRlbnNpb25gLCBgZm9yd2FyZFBvcnRgLCBldGMuKSBkdXJpbmdcbiAqIHRoZWlyIGNvbmZpZ3VyZSBwaGFzZS4gYE1vbm9SZXBvU2NhZmZvbGRgIGNhbGxzIGBmaWxlcygpYCBhdCByZW5kZXIgdGltZS5cbiAqL1xuXG5leHBvcnQgY2xhc3MgRGV2Q29udGFpbmVyIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkRFVkNPTlRBSU5FUl9KU09OO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9leHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wb3J0czogbnVtYmVyW10gPSBbXTtcblx0cHJpdmF0ZSByZWFkb25seSBfbW91bnRzOiBzdHJpbmdbXTtcblx0cHJpdmF0ZSBfcG9zdFN0YXJ0Q29tbWFuZD86IHN0cmluZztcblx0cHJpdmF0ZSBfdXNlQ29tcG9zZSA9IGZhbHNlO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9tb3VudHMgPSBbXCJzb3VyY2U9Li4sdGFyZ2V0PS93b3Jrc3BhY2UsdHlwZT1iaW5kLGNvbnNpc3RlbmN5PWNhY2hlZFwiXTtcblx0XHR0aGlzLmZvcndhcmRQb3J0KDMwMDApO1xuXHR9XG5cblx0cHVibGljIGFkZEV4dGVuc2lvbiguLi5pZHM6IHN0cmluZ1tdKTogdGhpcyB7XG5cdFx0dGhpcy5fZXh0ZW5zaW9ucy5wdXNoKC4uLmlkcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZm9yd2FyZFBvcnQoLi4ucG9ydHM6IG51bWJlcltdKTogdGhpcyB7XG5cdFx0dGhpcy5fcG9ydHMucHVzaCguLi5wb3J0cyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0UG9zdFN0YXJ0Q29tbWFuZChjbWQ6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3Bvc3RTdGFydENvbW1hbmQgPSBjbWQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgdXNlQ29tcG9zZSgpOiB0aGlzIHtcblx0XHR0aGlzLl91c2VDb21wb3NlID0gdHJ1ZTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdGNvbnN0IGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuXHRcdGlmICh0aGlzLl91c2VDb21wb3NlKSB7XG5cdFx0XHRjb25maWcuZG9ja2VyQ29tcG9zZUZpbGUgPSBcImRvY2tlci1jb21wb3NlLnltbFwiO1xuXHRcdFx0Y29uZmlnLnNlcnZpY2UgPSBcImRldmNvbnRhaW5lclwiO1xuXHRcdFx0Y29uZmlnLndvcmtzcGFjZUZvbGRlciA9IFwiL3dvcmtzcGFjZVwiO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9tb3VudHMpIHtcblx0XHRcdGNvbmZpZy5tb3VudHMgPSB0aGlzLl9tb3VudHM7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2V4dGVuc2lvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uZmlnLmN1c3RvbWl6YXRpb25zID0geyB2c2NvZGU6IHsgZXh0ZW5zaW9uczogdGhpcy5fZXh0ZW5zaW9ucyB9IH07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3BvcnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbmZpZy5mb3J3YXJkUG9ydHMgPSB0aGlzLl9wb3J0cztcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fcG9zdFN0YXJ0Q29tbWFuZCkge1xuXHRcdFx0Y29uZmlnLnBvc3RTdGFydENvbW1hbmQgPSB0aGlzLl9wb3N0U3RhcnRDb21tYW5kO1xuXHRcdH1cblxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvZGV2Y29udGFpbmVyLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRldkNvbnRhaW5lciIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJERVZDT05UQUlORVJfSlNPTiIsIl9leHRlbnNpb25zIiwiX3BvcnRzIiwiX21vdW50cyIsIl9wb3N0U3RhcnRDb21tYW5kIiwiX3VzZUNvbXBvc2UiLCJmb3J3YXJkUG9ydCIsImFkZEV4dGVuc2lvbiIsImlkcyIsInB1c2giLCJwb3J0cyIsInNldFBvc3RTdGFydENvbW1hbmQiLCJjbWQiLCJ1c2VDb21wb3NlIiwiZmlsZXMiLCJjb25maWciLCJkb2NrZXJDb21wb3NlRmlsZSIsInNlcnZpY2UiLCJ3b3Jrc3BhY2VGb2xkZXIiLCJtb3VudHMiLCJsZW5ndGgiLCJjdXN0b21pemF0aW9ucyIsInZzY29kZSIsImV4dGVuc2lvbnMiLCJmb3J3YXJkUG9ydHMiLCJwb3N0U3RhcnRDb21tYW5kIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFVYUE7OztlQUFBQTs7O3VCQVZvQjtBQVUxQixNQUFNQTtJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsaUJBQWlCLENBQUM7SUFDeENDLGNBQXdCLEVBQUUsQ0FBQztJQUMzQkMsU0FBbUIsRUFBRSxDQUFDO0lBQ3RCQyxRQUFrQjtJQUMzQkMsa0JBQTJCO0lBQzNCQyxjQUFjLE1BQU07SUFFNUIsYUFBcUI7UUFDcEIsSUFBSSxDQUFDRixPQUFPLEdBQUc7WUFBQztTQUEyRDtRQUMzRSxJQUFJLENBQUNHLFdBQVcsQ0FBQztJQUNsQjtJQUVPQyxhQUFhLEdBQUdDLEdBQWEsRUFBUTtRQUMzQyxJQUFJLENBQUNQLFdBQVcsQ0FBQ1EsSUFBSSxJQUFJRDtRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPRixZQUFZLEdBQUdJLEtBQWUsRUFBUTtRQUM1QyxJQUFJLENBQUNSLE1BQU0sQ0FBQ08sSUFBSSxJQUFJQztRQUNwQixPQUFPLElBQUk7SUFDWjtJQUVPQyxvQkFBb0JDLEdBQVcsRUFBUTtRQUM3QyxJQUFJLENBQUNSLGlCQUFpQixHQUFHUTtRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPQyxhQUFtQjtRQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztRQUNuQixPQUFPLElBQUk7SUFDWjtJQUVPUyxRQUFzQjtRQUM1QixNQUFNQyxTQUFrQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDVixXQUFXLEVBQUU7WUFDckJVLE9BQU9DLGlCQUFpQixHQUFHO1lBQzNCRCxPQUFPRSxPQUFPLEdBQUc7WUFDakJGLE9BQU9HLGVBQWUsR0FBRztRQUMxQjtRQUVBLElBQUksSUFBSSxDQUFDZixPQUFPLEVBQUU7WUFDakJZLE9BQU9JLE1BQU0sR0FBRyxJQUFJLENBQUNoQixPQUFPO1FBQzdCO1FBRUEsSUFBSSxJQUFJLENBQUNGLFdBQVcsQ0FBQ21CLE1BQU0sR0FBRyxHQUFHO1lBQ2hDTCxPQUFPTSxjQUFjLEdBQUc7Z0JBQUVDLFFBQVE7b0JBQUVDLFlBQVksSUFBSSxDQUFDdEIsV0FBVztnQkFBQztZQUFFO1FBQ3BFO1FBRUEsSUFBSSxJQUFJLENBQUNDLE1BQU0sQ0FBQ2tCLE1BQU0sR0FBRyxHQUFHO1lBQzNCTCxPQUFPUyxZQUFZLEdBQUcsSUFBSSxDQUFDdEIsTUFBTTtRQUNsQztRQUVBLElBQUksSUFBSSxDQUFDRSxpQkFBaUIsRUFBRTtZQUMzQlcsT0FBT1UsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDckIsaUJBQWlCO1FBQ2pEO1FBRUEsT0FBTztZQUNOO2dCQUNDc0IsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUFDZCxRQUFRLE1BQU07WUFDdkM7U0FDQTtJQUNGO0FBQ0QifQ==
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "EnvFile", {
6
- enumerable: true,
7
- get: function() {
8
- return EnvFile;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class EnvFile {
13
- key = _const.WELL_KNOWN_FILES.ENV_FILE;
14
- _entries = new Map();
15
- addEntry(key, value) {
16
- this._entries.set(key, value);
17
- return this;
18
- }
19
- files() {
20
- if (this._entries.size === 0) return [];
21
- const content = [
22
- ...this._entries.entries()
23
- ].map(([k, v])=>`${k}=${v}`).join("\n") + "\n";
24
- return [
25
- {
26
- filePath: ".env",
27
- content
28
- }
29
- ];
30
- }
31
- }
32
-
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Vudi1maWxlLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBY2N1bXVsYXRlcyBrZXk9dmFsdWUgcGFpcnMgYW5kIHJlbmRlcnMgdGhlbSBhcyBhIGAuZW52YCBmaWxlLlxuICpcbiAqIFJlZ2lzdGVyIG9uY2UgaW4gdGhlIHdvcmtzcGFjZTsgZmVhdHVyZXMgY2FsbCBgYWRkRW50cnlgIGR1cmluZyB0aGVpclxuICogc2NhZmZvbGQgcGhhc2UgdG8gY29udHJpYnV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoZSBmaW5hbCBmaWxlIGlzXG4gKiB3cml0dGVuIGF0IHJlbmRlciB0aW1lIHdoZW4gYHdvcmtzcGFjZS5zY2FmZm9sZCgpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5cdHB1YmxpYyBhZGRFbnRyeShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0aWYgKHRoaXMuX2VudHJpZXMuc2l6ZSA9PT0gMCkgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGNvbnRlbnQgPVxuXHRcdFx0Wy4uLnRoaXMuX2VudHJpZXMuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gYCR7a309JHt2fWApLmpvaW4oXCJcXG5cIikgKyBcIlxcblwiO1xuXHRcdHJldHVybiBbeyBmaWxlUGF0aDogXCIuZW52XCIsIGNvbnRlbnQgfV07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJFbnZGaWxlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIkVOVl9GSUxFIiwiX2VudHJpZXMiLCJNYXAiLCJhZGRFbnRyeSIsInZhbHVlIiwic2V0IiwiZmlsZXMiLCJzaXplIiwiY29udGVudCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJmaWxlUGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFVYUE7OztlQUFBQTs7O3VCQVZvQjtBQVUxQixNQUFNQTtJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsUUFBUSxDQUFDO0lBRS9CQyxXQUFXLElBQUlDLE1BQXNCO0lBRS9DQyxTQUFTTCxHQUFXLEVBQUVNLEtBQWEsRUFBUTtRQUNqRCxJQUFJLENBQUNILFFBQVEsQ0FBQ0ksR0FBRyxDQUFDUCxLQUFLTTtRQUN2QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxJQUFJLEtBQUssR0FBRyxPQUFPLEVBQUU7UUFDdkMsTUFBTUMsVUFDTDtlQUFJLElBQUksQ0FBQ1AsUUFBUSxDQUFDUSxPQUFPO1NBQUcsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsR0FBR0MsRUFBRSxHQUFLLEdBQUdELEVBQUUsQ0FBQyxFQUFFQyxHQUFHLEVBQUVDLElBQUksQ0FBQyxRQUFRO1FBQ3hFLE9BQU87WUFBQztnQkFBRUMsVUFBVTtnQkFBUU47WUFBUTtTQUFFO0lBQ3ZDO0FBQ0QifQ==
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Gitignore", {
6
- enumerable: true,
7
- get: function() {
8
- return Gitignore;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class Gitignore {
13
- key = _const.WELL_KNOWN_FILES.GITIGNORE;
14
- ignoreList = [
15
- "node_modules",
16
- "dist",
17
- ".pnpm-store",
18
- ".env",
19
- ".env.local",
20
- ".DS_Store"
21
- ];
22
- files() {
23
- return [
24
- {
25
- filePath: ".gitignore",
26
- content: this.ignoreList.join("\n")
27
- }
28
- ];
29
- }
30
- }
31
-
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2dpdGlnbm9yZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBHaXRpZ25vcmUgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuR0lUSUdOT1JFO1xuXHRwcml2YXRlIGlnbm9yZUxpc3QgPSBbXG5cdFx0XCJub2RlX21vZHVsZXNcIixcblx0XHRcImRpc3RcIixcblx0XHRcIi5wbnBtLXN0b3JlXCIsXG5cdFx0XCIuZW52XCIsXG5cdFx0XCIuZW52LmxvY2FsXCIsXG5cdFx0XCIuRFNfU3RvcmVcIixcblx0XTtcblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZ2l0aWdub3JlXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IHRoaXMuaWdub3JlTGlzdC5qb2luKFwiXFxuXCIpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiR2l0aWdub3JlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIkdJVElHTk9SRSIsImlnbm9yZUxpc3QiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2FBOzs7ZUFBQUE7Ozt1QkFIb0I7QUFHMUIsTUFBTUE7SUFDSUMsTUFBTUMsdUJBQWdCLENBQUNDLFNBQVMsQ0FBQztJQUN6Q0MsYUFBYTtRQUNwQjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDQSxDQUFDO0lBRUtDLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBUyxJQUFJLENBQUNILFVBQVUsQ0FBQ0ksSUFBSSxDQUFDO1lBQy9CO1NBQ0E7SUFDRjtBQUNEIn0=
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LaunchJson", {
6
- enumerable: true,
7
- get: function() {
8
- return LaunchJson;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class LaunchJson {
13
- key = _const.WELL_KNOWN_FILES.LAUNCH_JSON;
14
- files() {
15
- return [
16
- {
17
- filePath: ".vscode/launch.json",
18
- content: JSON.stringify({
19
- version: "0.2.0",
20
- configurations: [
21
- {
22
- name: "Build",
23
- type: "node",
24
- request: "launch",
25
- runtimeExecutable: "pnpm",
26
- runtimeArgs: [
27
- "build"
28
- ],
29
- console: "integratedTerminal",
30
- // biome-ignore lint/suspicious/noTemplateCurlyInString: VS Code variable
31
- cwd: "${workspaceFolder}"
32
- },
33
- {
34
- name: "Serve / Dev",
35
- type: "node",
36
- request: "launch",
37
- runtimeExecutable: "pnpm",
38
- runtimeArgs: [
39
- "dev"
40
- ],
41
- console: "integratedTerminal",
42
- // biome-ignore lint/suspicious/noTemplateCurlyInString: VS Code variable
43
- cwd: "${workspaceFolder}"
44
- }
45
- ]
46
- }, null, 2)
47
- }
48
- ];
49
- }
50
- }
51
-
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2xhdW5jaC1qc29uLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuZXhwb3J0IGNsYXNzIExhdW5jaEpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuTEFVTkNIX0pTT047XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiLnZzY29kZS9sYXVuY2guanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2ZXJzaW9uOiBcIjAuMi4wXCIsXG5cdFx0XHRcdFx0XHRjb25maWd1cmF0aW9uczogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJCdWlsZFwiLFxuXHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwibm9kZVwiLFxuXHRcdFx0XHRcdFx0XHRcdHJlcXVlc3Q6IFwibGF1bmNoXCIsXG5cdFx0XHRcdFx0XHRcdFx0cnVudGltZUV4ZWN1dGFibGU6IFwicG5wbVwiLFxuXHRcdFx0XHRcdFx0XHRcdHJ1bnRpbWVBcmdzOiBbXCJidWlsZFwiXSxcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlOiBcImludGVncmF0ZWRUZXJtaW5hbFwiLFxuXHRcdFx0XHRcdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IFZTIENvZGUgdmFyaWFibGVcblx0XHRcdFx0XHRcdFx0XHRjd2Q6IFwiJHt3b3Jrc3BhY2VGb2xkZXJ9XCIsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcIlNlcnZlIC8gRGV2XCIsXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJub2RlXCIsXG5cdFx0XHRcdFx0XHRcdFx0cmVxdWVzdDogXCJsYXVuY2hcIixcblx0XHRcdFx0XHRcdFx0XHRydW50aW1lRXhlY3V0YWJsZTogXCJwbnBtXCIsXG5cdFx0XHRcdFx0XHRcdFx0cnVudGltZUFyZ3M6IFtcImRldlwiXSxcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlOiBcImludGVncmF0ZWRUZXJtaW5hbFwiLFxuXHRcdFx0XHRcdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IFZTIENvZGUgdmFyaWFibGVcblx0XHRcdFx0XHRcdFx0XHRjd2Q6IFwiJHt3b3Jrc3BhY2VGb2xkZXJ9XCIsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHQyLFxuXHRcdFx0XHQpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiTGF1bmNoSnNvbiIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJMQVVOQ0hfSlNPTiIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsInZlcnNpb24iLCJjb25maWd1cmF0aW9ucyIsIm5hbWUiLCJ0eXBlIiwicmVxdWVzdCIsInJ1bnRpbWVFeGVjdXRhYmxlIiwicnVudGltZUFyZ3MiLCJjb25zb2xlIiwiY3dkIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdhQTs7O2VBQUFBOzs7dUJBSG9CO0FBRzFCLE1BQU1BO0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxXQUFXLENBQUM7SUFFNUNDLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUN0QjtvQkFDQ0MsU0FBUztvQkFDVEMsZ0JBQWdCO3dCQUNmOzRCQUNDQyxNQUFNOzRCQUNOQyxNQUFNOzRCQUNOQyxTQUFTOzRCQUNUQyxtQkFBbUI7NEJBQ25CQyxhQUFhO2dDQUFDOzZCQUFROzRCQUN0QkMsU0FBUzs0QkFDVCx5RUFBeUU7NEJBQ3pFQyxLQUFLO3dCQUNOO3dCQUNBOzRCQUNDTixNQUFNOzRCQUNOQyxNQUFNOzRCQUNOQyxTQUFTOzRCQUNUQyxtQkFBbUI7NEJBQ25CQyxhQUFhO2dDQUFDOzZCQUFNOzRCQUNwQkMsU0FBUzs0QkFDVCx5RUFBeUU7NEJBQ3pFQyxLQUFLO3dCQUNOO3FCQUNBO2dCQUNGLEdBQ0EsTUFDQTtZQUVGO1NBQ0E7SUFDRjtBQUNEIn0=
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PackageJson", {
6
- enumerable: true,
7
- get: function() {
8
- return PackageJson;
9
- }
10
- });
11
- const _version = require("../version.js");
12
- const _const = require("./const.js");
13
- class PackageJson {
14
- name;
15
- key = _const.WELL_KNOWN_FILES.PACKAGE_JSON;
16
- _dependencies;
17
- _devDependencies;
18
- constructor(name){
19
- this.name = name;
20
- this._dependencies = {
21
- "@decohere/cortex": _version.CREATE_VERSION,
22
- "@decohere/crucible": _version.CREATE_VERSION,
23
- "@decohere/nexus": _version.CREATE_VERSION,
24
- "@decohere/protocol": _version.CREATE_VERSION,
25
- "@decohere/scribe": _version.CREATE_VERSION,
26
- "@decohere/scribe-pino": _version.CREATE_VERSION,
27
- "pino-pretty": "^13.0.0"
28
- };
29
- this._devDependencies = {
30
- "@decohere/terminal": _version.CREATE_VERSION,
31
- typescript: "^6.0.3",
32
- "@biomejs/biome": "^2.0.0"
33
- };
34
- }
35
- addDependency(name, version) {
36
- this._dependencies[name] = version;
37
- return this;
38
- }
39
- addDevDependency(name, version) {
40
- this._devDependencies[name] = version;
41
- return this;
42
- }
43
- files() {
44
- return [
45
- {
46
- filePath: "package.json",
47
- content: JSON.stringify({
48
- name: this.name,
49
- version: "0.0.1",
50
- type: "module",
51
- scripts: {
52
- build: "forge build",
53
- "build:watch": "forge build --watch",
54
- dev: "flux serve"
55
- },
56
- dependencies: this._dependencies,
57
- devDependencies: this._devDependencies
58
- }, null, 2)
59
- }
60
- ];
61
- }
62
- }
63
-
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZykge1xuXHRcdHRoaXMuX2RlcGVuZGVuY2llcyA9IHtcblx0XHRcdFwiQGRlY29oZXJlL2NvcnRleFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL2NydWNpYmxlXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJAZGVjb2hlcmUvbmV4dXNcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9wcm90b2NvbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL3NjcmliZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL3NjcmliZS1waW5vXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJwaW5vLXByZXR0eVwiOiBcIl4xMy4wLjBcIixcblx0XHR9O1xuXHRcdHRoaXMuX2RldkRlcGVuZGVuY2llcyA9IHtcblx0XHRcdFwiQGRlY29oZXJlL3Rlcm1pbmFsXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0dHlwZXNjcmlwdDogXCJeNi4wLjNcIixcblx0XHRcdFwiQGJpb21lanMvYmlvbWVcIjogXCJeMi4wLjBcIixcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFkZERlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZERldkRlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwicGFja2FnZS5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG5hbWU6IHRoaXMubmFtZSxcblx0XHRcdFx0XHRcdHZlcnNpb246IFwiMC4wLjFcIixcblx0XHRcdFx0XHRcdHR5cGU6IFwibW9kdWxlXCIsXG5cdFx0XHRcdFx0XHRzY3JpcHRzOiB7XG5cdFx0XHRcdFx0XHRcdGJ1aWxkOiBcImZvcmdlIGJ1aWxkXCIsXG5cdFx0XHRcdFx0XHRcdFwiYnVpbGQ6d2F0Y2hcIjogXCJmb3JnZSBidWlsZCAtLXdhdGNoXCIsXG5cdFx0XHRcdFx0XHRcdGRldjogXCJmbHV4IHNlcnZlXCIsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0ZGVwZW5kZW5jaWVzOiB0aGlzLl9kZXBlbmRlbmNpZXMsXG5cdFx0XHRcdFx0XHRkZXZEZXBlbmRlbmNpZXM6IHRoaXMuX2RldkRlcGVuZGVuY2llcyxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0Mixcblx0XHRcdFx0KSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlBhY2thZ2VKc29uIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIlBBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwibmFtZSIsIkNSRUFURV9WRVJTSU9OIiwidHlwZXNjcmlwdCIsImFkZERlcGVuZGVuY3kiLCJ2ZXJzaW9uIiwiYWRkRGV2RGVwZW5kZW5jeSIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsInR5cGUiLCJzY3JpcHRzIiwiYnVpbGQiLCJkZXYiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBV2FBOzs7ZUFBQUE7Ozt5QkFYa0I7dUJBQ0U7QUFVMUIsTUFBTUE7O0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxZQUFZLENBQUM7SUFFbkNDLGNBQXNDO0lBQ3RDQyxpQkFBeUM7SUFFMUQsWUFBbUIsQUFBaUJDLElBQVksQ0FBRTthQUFkQSxPQUFBQTtRQUNuQyxJQUFJLENBQUNGLGFBQWEsR0FBRztZQUNwQixvQkFBb0JHLHVCQUFjO1lBQ2xDLHNCQUFzQkEsdUJBQWM7WUFDcEMsbUJBQW1CQSx1QkFBYztZQUNqQyxzQkFBc0JBLHVCQUFjO1lBQ3BDLG9CQUFvQkEsdUJBQWM7WUFDbEMseUJBQXlCQSx1QkFBYztZQUN2QyxlQUFlO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDRixnQkFBZ0IsR0FBRztZQUN2QixzQkFBc0JFLHVCQUFjO1lBQ3BDQyxZQUFZO1lBQ1osa0JBQWtCO1FBQ25CO0lBQ0Q7SUFFT0MsY0FBY0gsSUFBWSxFQUFFSSxPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDTixhQUFhLENBQUNFLEtBQUssR0FBR0k7UUFDM0IsT0FBTyxJQUFJO0lBQ1o7SUFFT0MsaUJBQWlCTCxJQUFZLEVBQUVJLE9BQWUsRUFBUTtRQUM1RCxJQUFJLENBQUNMLGdCQUFnQixDQUFDQyxLQUFLLEdBQUdJO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUN0QjtvQkFDQ1YsTUFBTSxJQUFJLENBQUNBLElBQUk7b0JBQ2ZJLFNBQVM7b0JBQ1RPLE1BQU07b0JBQ05DLFNBQVM7d0JBQ1JDLE9BQU87d0JBQ1AsZUFBZTt3QkFDZkMsS0FBSztvQkFDTjtvQkFDQUMsY0FBYyxJQUFJLENBQUNqQixhQUFhO29CQUNoQ2tCLGlCQUFpQixJQUFJLENBQUNqQixnQkFBZ0I7Z0JBQ3ZDLEdBQ0EsTUFDQTtZQUVGO1NBQ0E7SUFDRjtBQUNEIn0=
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get MonoRepoScaffold () {
13
- return MonoRepoScaffold;
14
- },
15
- get ProjectScaffold () {
16
- return ProjectScaffold;
17
- },
18
- get WorkspaceScaffold () {
19
- return WorkspaceScaffold;
20
- }
21
- });
22
- const _promises = require("node:fs/promises");
23
- const _nodepath = require("node:path");
24
- class ProjectScaffold {
25
- dir;
26
- _models = new Map();
27
- _files = [];
28
- constructor(dir){
29
- this.dir = dir;
30
- }
31
- addModel(model) {
32
- this._models.set(model.key, model);
33
- return model;
34
- }
35
- addFile(provider) {
36
- this._files.push(...provider.files());
37
- return this;
38
- }
39
- getModel(key) {
40
- return this._models.get(key);
41
- }
42
- getModels(ctor) {
43
- return [
44
- ...this._models.values()
45
- ].filter((m)=>m instanceof ctor);
46
- }
47
- /** Returns all files with `dir/` prepended to each path. */ files() {
48
- const all = [
49
- ...this._files,
50
- ...[
51
- ...this._models.values()
52
- ].flatMap((m)=>m.files())
53
- ];
54
- return all.map((f)=>({
55
- filePath: `${this.dir}/${f.filePath}`,
56
- content: f.content
57
- }));
58
- }
59
- }
60
- class WorkspaceScaffold {
61
- files = [];
62
- targetDir = process.cwd();
63
- /** Derived from the basename of targetDir. */ get name() {
64
- return (0, _nodepath.basename)(this.targetDir);
65
- }
66
- /** Add an ad-hoc file provider whose output is included at render time. */ addFile(provider) {
67
- this.files.push(...provider.files());
68
- return this;
69
- }
70
- }
71
- class MonoRepoScaffold extends WorkspaceScaffold {
72
- _models = new Map();
73
- _projects = [];
74
- /** Register a named project. */ addProject(project) {
75
- this._projects.push(project);
76
- return project;
77
- }
78
- /** Retrieve a previously-registered project by its directory path. */ getProject(dir) {
79
- return this._projects.find((p)=>p.dir === dir);
80
- }
81
- /** Register a named model at workspace level. */ addModel(model) {
82
- this._models.set(model.key, model);
83
- return model;
84
- }
85
- /**
86
- * Retrieve a model by key. Searches workspace models first, then all
87
- * registered projects in order.
88
- */ getModel(key) {
89
- const m = this._models.get(key);
90
- if (m !== undefined) return m;
91
- for (const project of this._projects){
92
- const pm = project.getModel(key);
93
- if (pm !== undefined) return pm;
94
- }
95
- return undefined;
96
- }
97
- /**
98
- * Retrieve all models of a given type. Searches workspace models and all
99
- * projects, so features can discover controllers across multiple projects.
100
- */ getModels(ctor) {
101
- return [
102
- ...[
103
- ...this._models.values()
104
- ].filter((m)=>m instanceof ctor),
105
- ...this._projects.flatMap((p)=>p.getModels(ctor))
106
- ];
107
- }
108
- /** Render all models and projects into files, then write everything to disk. */ async scaffold() {
109
- const allFiles = [
110
- ...this.files,
111
- ...[
112
- ...this._models.values()
113
- ].flatMap((m)=>m.files()),
114
- ...this._projects.flatMap((p)=>p.files())
115
- ];
116
- await Promise.all(allFiles.map(async (file)=>{
117
- const fullPath = (0, _nodepath.join)(this.targetDir, file.filePath);
118
- await (0, _promises.mkdir)((0, _nodepath.dirname)(fullPath), {
119
- recursive: true
120
- });
121
- await (0, _promises.writeFile)(fullPath, file.content);
122
- }));
123
- }
124
- }
125
-
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3Byb2plY3QubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXIsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSwgU291cmNlRmlsZVByb3ZpZGVyIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBIHN1Yi11bml0IG9mIHRoZSBtb25vcmVwbyAoZS5nLiBgcHJvamVjdHMvYXBpYCkuXG4gKlxuICogTW9kZWxzIGFuZCBmaWxlcyByZWdpc3RlcmVkIGhlcmUgcHJvZHVjZSBwYXRocyByZWxhdGl2ZSB0byBgZGlyYC4gVGhlIHBhcmVudFxuICogYE1vbm9SZXBvU2NhZmZvbGRgIGNhbGxzIGBmaWxlcygpYCBhbmQgcHJlcGVuZHMgYGRpci9gIHRvIGV2ZXJ5IHBhdGgsIHNvXG4gKiBtb2RlbHMgcmVtYWluIHVuYXdhcmUgb2Ygd2hlcmUgdGhleSBsaXZlIGluIHRoZSByZXBvLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdFNjYWZmb2xkIHtcblx0cHJpdmF0ZSByZWFkb25seSBfbW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFNvdXJjZUZpbGVQcm92aWRlcj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cblx0cHVibGljIGFkZE1vZGVsPFQgZXh0ZW5kcyBLZXllZE1vZGVsPihtb2RlbDogVCk6IFQge1xuXHRcdHRoaXMuX21vZGVscy5zZXQobW9kZWwua2V5LCBtb2RlbCk7XG5cdFx0cmV0dXJuIG1vZGVsO1xuXHR9XG5cblx0cHVibGljIGFkZEZpbGUocHJvdmlkZXI6IFNvdXJjZUZpbGVQcm92aWRlcik6IHRoaXMge1xuXHRcdHRoaXMuX2ZpbGVzLnB1c2goLi4ucHJvdmlkZXIuZmlsZXMoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWw8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fbW9kZWxzLmdldChrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWxzPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGN0b3I6IG5ldyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gVCk6IFRbXSB7XG5cdFx0cmV0dXJuIFsuLi50aGlzLl9tb2RlbHMudmFsdWVzKCldLmZpbHRlcigobSk6IG0gaXMgVCA9PiBtIGluc3RhbmNlb2YgY3Rvcik7XG5cdH1cblxuXHQvKiogUmV0dXJucyBhbGwgZmlsZXMgd2l0aCBgZGlyL2AgcHJlcGVuZGVkIHRvIGVhY2ggcGF0aC4gKi9cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgYWxsID0gWy4uLnRoaXMuX2ZpbGVzLCAuLi5bLi4udGhpcy5fbW9kZWxzLnZhbHVlcygpXS5mbGF0TWFwKChtKSA9PiBtLmZpbGVzKCkpXTtcblx0XHRyZXR1cm4gYWxsLm1hcCgoZikgPT4gKHsgZmlsZVBhdGg6IGAke3RoaXMuZGlyfS8ke2YuZmlsZVBhdGh9YCwgY29udGVudDogZi5jb250ZW50IH0pKTtcblx0fVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya3NwYWNlU2NhZmZvbGQge1xuXHRwdWJsaWMgcmVhZG9ubHkgZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXHRwdWJsaWMgdGFyZ2V0RGlyOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5cdC8qKiBEZXJpdmVkIGZyb20gdGhlIGJhc2VuYW1lIG9mIHRhcmdldERpci4gKi9cblx0cHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGJhc2VuYW1lKHRoaXMudGFyZ2V0RGlyKTtcblx0fVxuXG5cdC8qKiBBZGQgYW4gYWQtaG9jIGZpbGUgcHJvdmlkZXIgd2hvc2Ugb3V0cHV0IGlzIGluY2x1ZGVkIGF0IHJlbmRlciB0aW1lLiAqL1xuXHRwdWJsaWMgYWRkRmlsZShwcm92aWRlcjogU291cmNlRmlsZVByb3ZpZGVyKTogdGhpcyB7XG5cdFx0dGhpcy5maWxlcy5wdXNoKC4uLnByb3ZpZGVyLmZpbGVzKCkpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFic3RyYWN0IGFkZE1vZGVsPFQgZXh0ZW5kcyBLZXllZE1vZGVsPihtb2RlbDogVCk6IFQ7XG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRNb2RlbDxUIGV4dGVuZHMgU291cmNlRmlsZVByb3ZpZGVyPihrZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQ7XG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRNb2RlbHM8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oXG5cdFx0Y3RvcjogbmV3ICguLi5hcmdzOiBuZXZlcltdKSA9PiBULFxuXHQpOiBUW107XG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRQcm9qZWN0KGRpcjogc3RyaW5nKTogUHJvamVjdFNjYWZmb2xkIHwgdW5kZWZpbmVkO1xuXHRwdWJsaWMgYWJzdHJhY3Qgc2NhZmZvbGQoKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBNb25vUmVwb1NjYWZmb2xkIGV4dGVuZHMgV29ya3NwYWNlU2NhZmZvbGQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9tb2RlbHMgPSBuZXcgTWFwPHN0cmluZywgU291cmNlRmlsZVByb3ZpZGVyPigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wcm9qZWN0czogUHJvamVjdFNjYWZmb2xkW10gPSBbXTtcblxuXHQvKiogUmVnaXN0ZXIgYSBuYW1lZCBwcm9qZWN0LiAqL1xuXHRwdWJsaWMgYWRkUHJvamVjdChwcm9qZWN0OiBQcm9qZWN0U2NhZmZvbGQpOiBQcm9qZWN0U2NhZmZvbGQge1xuXHRcdHRoaXMuX3Byb2plY3RzLnB1c2gocHJvamVjdCk7XG5cdFx0cmV0dXJuIHByb2plY3Q7XG5cdH1cblxuXHQvKiogUmV0cmlldmUgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgcHJvamVjdCBieSBpdHMgZGlyZWN0b3J5IHBhdGguICovXG5cdHB1YmxpYyBnZXRQcm9qZWN0KGRpcjogc3RyaW5nKTogUHJvamVjdFNjYWZmb2xkIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fcHJvamVjdHMuZmluZCgocCkgPT4gcC5kaXIgPT09IGRpcik7XG5cdH1cblxuXHQvKiogUmVnaXN0ZXIgYSBuYW1lZCBtb2RlbCBhdCB3b3Jrc3BhY2UgbGV2ZWwuICovXG5cdHB1YmxpYyBhZGRNb2RlbDxUIGV4dGVuZHMgS2V5ZWRNb2RlbD4obW9kZWw6IFQpOiBUIHtcblx0XHR0aGlzLl9tb2RlbHMuc2V0KG1vZGVsLmtleSwgbW9kZWwpO1xuXHRcdHJldHVybiBtb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSBhIG1vZGVsIGJ5IGtleS4gU2VhcmNoZXMgd29ya3NwYWNlIG1vZGVscyBmaXJzdCwgdGhlbiBhbGxcblx0ICogcmVnaXN0ZXJlZCBwcm9qZWN0cyBpbiBvcmRlci5cblx0ICovXG5cdHB1YmxpYyBnZXRNb2RlbDxUIGV4dGVuZHMgU291cmNlRmlsZVByb3ZpZGVyPihrZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG0gPSB0aGlzLl9tb2RlbHMuZ2V0KGtleSkgYXMgVCB8IHVuZGVmaW5lZDtcblx0XHRpZiAobSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gbTtcblx0XHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgdGhpcy5fcHJvamVjdHMpIHtcblx0XHRcdGNvbnN0IHBtID0gcHJvamVjdC5nZXRNb2RlbDxUPihrZXkpO1xuXHRcdFx0aWYgKHBtICE9PSB1bmRlZmluZWQpIHJldHVybiBwbTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSBhbGwgbW9kZWxzIG9mIGEgZ2l2ZW4gdHlwZS4gU2VhcmNoZXMgd29ya3NwYWNlIG1vZGVscyBhbmQgYWxsXG5cdCAqIHByb2plY3RzLCBzbyBmZWF0dXJlcyBjYW4gZGlzY292ZXIgY29udHJvbGxlcnMgYWNyb3NzIG11bHRpcGxlIHByb2plY3RzLlxuXHQgKi9cblx0cHVibGljIGdldE1vZGVsczxUIGV4dGVuZHMgU291cmNlRmlsZVByb3ZpZGVyPihjdG9yOiBuZXcgKC4uLmFyZ3M6IG5ldmVyW10pID0+IFQpOiBUW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHQuLi5bLi4udGhpcy5fbW9kZWxzLnZhbHVlcygpXS5maWx0ZXIoKG0pOiBtIGlzIFQgPT4gbSBpbnN0YW5jZW9mIGN0b3IpLFxuXHRcdFx0Li4udGhpcy5fcHJvamVjdHMuZmxhdE1hcCgocCkgPT4gcC5nZXRNb2RlbHMoY3RvcikpLFxuXHRcdF07XG5cdH1cblxuXHQvKiogUmVuZGVyIGFsbCBtb2RlbHMgYW5kIHByb2plY3RzIGludG8gZmlsZXMsIHRoZW4gd3JpdGUgZXZlcnl0aGluZyB0byBkaXNrLiAqL1xuXHRwdWJsaWMgYXN5bmMgc2NhZmZvbGQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgYWxsRmlsZXMgPSBbXG5cdFx0XHQuLi50aGlzLmZpbGVzLFxuXHRcdFx0Li4uWy4uLnRoaXMuX21vZGVscy52YWx1ZXMoKV0uZmxhdE1hcCgobSkgPT4gbS5maWxlcygpKSxcblx0XHRcdC4uLnRoaXMuX3Byb2plY3RzLmZsYXRNYXAoKHApID0+IHAuZmlsZXMoKSksXG5cdFx0XTtcblxuXHRcdGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0YWxsRmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGZ1bGxQYXRoID0gam9pbih0aGlzLnRhcmdldERpciwgZmlsZS5maWxlUGF0aCk7XG5cdFx0XHRcdGF3YWl0IG1rZGlyKGRpcm5hbWUoZnVsbFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0XHRcdFx0YXdhaXQgd3JpdGVGaWxlKGZ1bGxQYXRoLCBmaWxlLmNvbnRlbnQpO1xuXHRcdFx0fSksXG5cdFx0KTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIk1vbm9SZXBvU2NhZmZvbGQiLCJQcm9qZWN0U2NhZmZvbGQiLCJXb3Jrc3BhY2VTY2FmZm9sZCIsIl9tb2RlbHMiLCJNYXAiLCJfZmlsZXMiLCJkaXIiLCJhZGRNb2RlbCIsIm1vZGVsIiwic2V0Iiwia2V5IiwiYWRkRmlsZSIsInByb3ZpZGVyIiwicHVzaCIsImZpbGVzIiwiZ2V0TW9kZWwiLCJnZXQiLCJnZXRNb2RlbHMiLCJjdG9yIiwidmFsdWVzIiwiZmlsdGVyIiwibSIsImFsbCIsImZsYXRNYXAiLCJtYXAiLCJmIiwiZmlsZVBhdGgiLCJjb250ZW50IiwidGFyZ2V0RGlyIiwicHJvY2VzcyIsImN3ZCIsIm5hbWUiLCJiYXNlbmFtZSIsIl9wcm9qZWN0cyIsImFkZFByb2plY3QiLCJwcm9qZWN0IiwiZ2V0UHJvamVjdCIsImZpbmQiLCJwIiwidW5kZWZpbmVkIiwicG0iLCJzY2FmZm9sZCIsImFsbEZpbGVzIiwiUHJvbWlzZSIsImZpbGUiLCJmdWxsUGF0aCIsImpvaW4iLCJta2RpciIsImRpcm5hbWUiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBa0VhQTtlQUFBQTs7UUF2REFDO2VBQUFBOztRQStCU0M7ZUFBQUE7OzswQkExQ1c7MEJBQ087QUFVakMsTUFBTUQ7O0lBQ0tFLFVBQVUsSUFBSUMsTUFBa0M7SUFDaERDLFNBQXVCLEVBQUUsQ0FBQztJQUUzQyxZQUFtQixBQUFnQkMsR0FBVyxDQUFFO2FBQWJBLE1BQUFBO0lBQWM7SUFFMUNDLFNB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
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
-
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TsConfig", {
6
- enumerable: true,
7
- get: function() {
8
- return TsConfig;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class TsConfig {
13
- key = _const.WELL_KNOWN_FILES.TSCONFIG;
14
- files() {
15
- return [
16
- {
17
- filePath: "tsconfig.json",
18
- content: JSON.stringify({
19
- compilerOptions: {
20
- target: "ES2022",
21
- module: "NodeNext",
22
- moduleResolution: "NodeNext",
23
- strict: true,
24
- skipLibCheck: true,
25
- experimentalDecorators: true,
26
- emitDecoratorMetadata: true
27
- }
28
- }, null, 2)
29
- }
30
- ];
31
- }
32
- }
33
-
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3RzY29uZmlnLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuZXhwb3J0IGNsYXNzIFRzQ29uZmlnIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLlRTQ09ORklHO1xuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInRzY29uZmlnLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y29tcGlsZXJPcHRpb25zOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogXCJFUzIwMjJcIixcblx0XHRcdFx0XHRcdFx0bW9kdWxlOiBcIk5vZGVOZXh0XCIsXG5cdFx0XHRcdFx0XHRcdG1vZHVsZVJlc29sdXRpb246IFwiTm9kZU5leHRcIixcblx0XHRcdFx0XHRcdFx0c3RyaWN0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRza2lwTGliQ2hlY2s6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGVtaXREZWNvcmF0b3JNZXRhZGF0YTogdHJ1ZSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJUc0NvbmZpZyIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJUU0NPTkZJRyIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbXBpbGVyT3B0aW9ucyIsInRhcmdldCIsIm1vZHVsZSIsIm1vZHVsZVJlc29sdXRpb24iLCJzdHJpY3QiLCJza2lwTGliQ2hlY2siLCJleHBlcmltZW50YWxEZWNvcmF0b3JzIiwiZW1pdERlY29yYXRvck1ldGFkYXRhIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdhQTs7O2VBQUFBOzs7dUJBSG9CO0FBRzFCLE1BQU1BO0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxRQUFRLENBQUM7SUFFekNDLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUN0QjtvQkFDQ0MsaUJBQWlCO3dCQUNoQkMsUUFBUTt3QkFDUkMsUUFBUTt3QkFDUkMsa0JBQWtCO3dCQUNsQkMsUUFBUTt3QkFDUkMsY0FBYzt3QkFDZEMsd0JBQXdCO3dCQUN4QkMsdUJBQXVCO29CQUN4QjtnQkFDRCxHQUNBLE1BQ0E7WUFFRjtTQUNBO0lBQ0Y7QUFDRCJ9
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "VSCodeSettings", {
6
- enumerable: true,
7
- get: function() {
8
- return VSCodeSettings;
9
- }
10
- });
11
- const _const = require("./const.js");
12
- class VSCodeSettings {
13
- title;
14
- key = _const.WELL_KNOWN_FILES.VSCODE_SETTINGS;
15
- constructor(title){
16
- this.title = title;
17
- }
18
- files() {
19
- return [
20
- {
21
- filePath: ".vscode/settings.json",
22
- content: JSON.stringify({
23
- "window.title": `${this.title}\${separator}\${activeEditorShort}`,
24
- "window.titleSeparator": " | "
25
- }, null, 2)
26
- }
27
- ];
28
- }
29
- }
30
-
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3ZzY29kZS1zZXR0aW5ncy5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBWU0NvZGVTZXR0aW5ncyBpbXBsZW1lbnRzIEtleWVkTW9kZWwge1xuXHRwdWJsaWMgcmVhZG9ubHkga2V5ID0gV0VMTF9LTk9XTl9GSUxFUy5WU0NPREVfU0VUVElOR1M7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGl0bGU6IHN0cmluZykge31cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIudnNjb2RlL3NldHRpbmdzLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ3aW5kb3cudGl0bGVcIjogYCR7dGhpcy50aXRsZX1cXCR7c2VwYXJhdG9yfVxcJHthY3RpdmVFZGl0b3JTaG9ydH1gLFxuXHRcdFx0XHRcdFx0XCJ3aW5kb3cudGl0bGVTZXBhcmF0b3JcIjogXCIgfCBcIixcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0Mixcblx0XHRcdFx0KSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlZTQ29kZVNldHRpbmdzIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIlZTQ09ERV9TRVRUSU5HUyIsInRpdGxlIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOzs7OytCQUdhQTs7O2VBQUFBOzs7dUJBSG9CO0FBRzFCLE1BQU1BOztJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsZUFBZSxDQUFDO0lBRXZELFlBQW1CLEFBQWlCQyxLQUFhLENBQUU7YUFBZkEsUUFBQUE7SUFBZ0I7SUFFN0NDLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUN0QjtvQkFDQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUNMLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztvQkFDakUseUJBQXlCO2dCQUMxQixHQUNBLE1BQ0E7WUFFRjtTQUNBO0lBQ0Y7QUFDRCJ9
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "runInBuilder", {
6
- enumerable: true,
7
- get: function() {
8
- return runInBuilder;
9
- }
10
- });
11
- const _nodechild_process = require("node:child_process");
12
- const _nodefs = require("node:fs");
13
- const _nodepath = require("node:path");
14
- const _version = require("./version.js");
15
- const BUILDER_IMAGE = `ghcr.io/decohere/scaffold:${_version.CREATE_VERSION}`;
16
- function runInBuilder(opts) {
17
- const targetDir = (0, _nodepath.resolve)(opts.d ?? ".");
18
- (0, _nodefs.mkdirSync)(targetDir, {
19
- recursive: true
20
- });
21
- // Ensure Docker is available.
22
- try {
23
- (0, _nodechild_process.execFileSync)("docker", [
24
- "info"
25
- ], {
26
- stdio: "pipe"
27
- });
28
- } catch {
29
- console.error("\n Docker is required to scaffold a Decohere project.\n" + " Install Docker Desktop: https://www.docker.com/products/docker-desktop\n");
30
- process.exit(1);
31
- }
32
- const volumes = [
33
- "-v",
34
- `${targetDir}:/workspace`
35
- ];
36
- console.log(" Running scaffolding in a sandboxed container...\n");
37
- const result = (0, _nodechild_process.spawnSync)("docker", [
38
- "run",
39
- "--rm",
40
- "-it",
41
- ...volumes,
42
- "-e",
43
- "DECOHERE_BUILDER=1",
44
- "-w",
45
- "/workspace",
46
- BUILDER_IMAGE,
47
- "webapi",
48
- "-d",
49
- "."
50
- ], {
51
- stdio: "inherit"
52
- });
53
- process.exit(result.status ?? 0);
54
- }
55
-
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb24uanNcIjtcblxuY29uc3QgQlVJTERFUl9JTUFHRSA9IGBnaGNyLmlvL2RlY29oZXJlL3NjYWZmb2xkOiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBSdW4gdGhlIHNjYWZmb2xkIGluc2lkZSBhIHByZS1idWlsdCBEb2NrZXIgYnVpbGRlciBpbWFnZS5cbiAqXG4gKiBDYWxsZWQgd2hlbiBgREVDT0hFUkVfQlVJTERFUmAgaXMgbm90IHNldCDigJQgaS5lLiB0aGUgQ0xJIGlzIHJ1bm5pbmcgb24gdGhlXG4gKiBob3N0LCBvdXRzaWRlIHRoZSBjb250YWluZXIuIE1vdW50cyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcyBgL3dvcmtzcGFjZWAgc29cbiAqIHRoZSBzY2FmZm9sZGVkIGZpbGVzIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIGhvc3QgZmlsZXN5c3RlbS5cbiAqXG4gKiBJZiBgfi8uY29uZmlnL2F1dGgwYCBleGlzdHMgb24gdGhlIGhvc3QgdGhlIGRpcmVjdG9yeSBpcyBhbHNvIG1vdW50ZWQgc29cbiAqIHRoZSBhdXRoMCBDTEkgaW5zaWRlIHRoZSBjb250YWluZXIgY2FuIHJldXNlIGV4aXN0aW5nIGNyZWRlbnRpYWxzIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuSW5CdWlsZGVyKG9wdHM6IHsgZD86IHN0cmluZyB9KTogbmV2ZXIge1xuXHRjb25zdCB0YXJnZXREaXIgPSByZXNvbHZlKG9wdHMuZCA/PyBcIi5cIik7XG5cdG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdC8vIEVuc3VyZSBEb2NrZXIgaXMgYXZhaWxhYmxlLlxuXHR0cnkge1xuXHRcdGV4ZWNGaWxlU3luYyhcImRvY2tlclwiLCBbXCJpbmZvXCJdLCB7IHN0ZGlvOiBcInBpcGVcIiB9KTtcblx0fSBjYXRjaCB7XG5cdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFwiXFxuICBEb2NrZXIgaXMgcmVxdWlyZWQgdG8gc2NhZmZvbGQgYSBEZWNvaGVyZSBwcm9qZWN0LlxcblwiICtcblx0XHRcdFx0XCIgIEluc3RhbGwgRG9ja2VyIERlc2t0b3A6IGh0dHBzOi8vd3d3LmRvY2tlci5jb20vcHJvZHVjdHMvZG9ja2VyLWRlc2t0b3BcXG5cIixcblx0XHQpO1xuXHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0fVxuXG5cdGNvbnN0IHZvbHVtZXM6IHN0cmluZ1tdID0gW1wiLXZcIiwgYCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYF07XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhcblx0XHRcImRvY2tlclwiLFxuXHRcdFtcblx0XHRcdFwicnVuXCIsXG5cdFx0XHRcIi0tcm1cIixcblx0XHRcdFwiLWl0XCIsXG5cdFx0XHQuLi52b2x1bWVzLFxuXHRcdFx0XCItZVwiLFxuXHRcdFx0XCJERUNPSEVSRV9CVUlMREVSPTFcIixcblx0XHRcdFwiLXdcIixcblx0XHRcdFwiL3dvcmtzcGFjZVwiLFxuXHRcdFx0QlVJTERFUl9JTUFHRSxcblx0XHRcdFwid2ViYXBpXCIsXG5cdFx0XHRcIi1kXCIsXG5cdFx0XHRcIi5cIixcblx0XHRdLFxuXHRcdHsgc3RkaW86IFwiaW5oZXJpdFwiIH0sXG5cdCk7XG5cblx0cHJvY2Vzcy5leGl0KHJlc3VsdC5zdGF0dXMgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsicnVuSW5CdWlsZGVyIiwiQlVJTERFUl9JTUFHRSIsIkNSRUFURV9WRVJTSU9OIiwib3B0cyIsInRhcmdldERpciIsInJlc29sdmUiLCJkIiwibWtkaXJTeW5jIiwicmVjdXJzaXZlIiwiZXhlY0ZpbGVTeW5jIiwic3RkaW8iLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzIiwiZXhpdCIsInZvbHVtZXMiLCJsb2ciLCJyZXN1bHQiLCJzcGF3blN5bmMiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaUJnQkE7OztlQUFBQTs7O21DQWpCd0I7d0JBQ2Q7MEJBQ0Y7eUJBQ087QUFFL0IsTUFBTUMsZ0JBQWdCLENBQUMsMEJBQTBCLEVBQUVDLHVCQUFjLEVBQUU7QUFZNUQsU0FBU0YsYUFBYUcsSUFBb0I7SUFDaEQsTUFBTUMsWUFBWUMsSUFBQUEsaUJBQU8sRUFBQ0YsS0FBS0csQ0FBQyxJQUFJO0lBQ3BDQyxJQUFBQSxpQkFBUyxFQUFDSCxXQUFXO1FBQUVJLFdBQVc7SUFBSztJQUV2Qyw4QkFBOEI7SUFDOUIsSUFBSTtRQUNIQyxJQUFBQSwrQkFBWSxFQUFDLFVBQVU7WUFBQztTQUFPLEVBQUU7WUFBRUMsT0FBTztRQUFPO0lBQ2xELEVBQUUsT0FBTTtRQUNQQyxRQUFRQyxLQUFLLENBQ1osNkRBQ0M7UUFFRkMsUUFBUUMsSUFBSSxDQUFDO0lBQ2Q7SUFFQSxNQUFNQyxVQUFvQjtRQUFDO1FBQU0sR0FBR1gsVUFBVSxXQUFXLENBQUM7S0FBQztJQUUzRE8sUUFBUUssR0FBRyxDQUFDO0lBRVosTUFBTUMsU0FBU0MsSUFBQUEsNEJBQVMsRUFDdkIsVUFDQTtRQUNDO1FBQ0E7UUFDQTtXQUNHSDtRQUNIO1FBQ0E7UUFDQTtRQUNBO1FBQ0FkO1FBQ0E7UUFDQTtRQUNBO0tBQ0EsRUFDRDtRQUFFUyxPQUFPO0lBQVU7SUFHcEJHLFFBQVFDLElBQUksQ0FBQ0csT0FBT0UsTUFBTSxJQUFJO0FBQy9CIn0=
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "ScaffoldService", {
6
- enumerable: true,
7
- get: function() {
8
- return ScaffoldService;
9
- }
10
- });
11
- async function scaffold(workspace, cliOptions, features) {
12
- const options = await getAllOptions(workspace, cliOptions, features);
13
- // Features mutate workspace models first, then workspace renders to disk.
14
- await scaffoldFeatures(workspace, options, features);
15
- await scaffoldWorkspace(workspace, options);
16
- // Post-write phase: install deps, print final messages, etc.
17
- await finalizeFeatures(workspace, options, features);
18
- }
19
- async function scaffoldWorkspace(workspace, _options) {
20
- await workspace.scaffold();
21
- }
22
- /**
23
- * Iterate features in order, calling `getOptions` on each.
24
- * Each feature receives the running merged options so later features can
25
- * branch on decisions made by earlier ones (e.g. database choice affects auth).
26
- * Results are shallow-merged, so features only need to return what they own.
27
- */ async function getAllOptions(workspace, cliOptions, features) {
28
- let options = {
29
- ...cliOptions
30
- };
31
- for (const feature of features){
32
- const featureOptions = await feature.getOptions(workspace, options);
33
- options = {
34
- ...options,
35
- ...featureOptions
36
- };
37
- }
38
- return options;
39
- }
40
- /**
41
- * Iterate features in order, calling `scaffold` with the fully-resolved options.
42
- * All option-gathering is complete before any scaffolding begins.
43
- */ async function scaffoldFeatures(workspace, options, features) {
44
- for (const feature of features){
45
- await feature.scaffold(workspace, options);
46
- }
47
- }
48
- /**
49
- * Iterate features in order, calling `finalize` on each (if defined).
50
- * All files are on disk by this point.
51
- */ async function finalizeFeatures(workspace, options, features) {
52
- for (const feature of features){
53
- if (feature.finalize) {
54
- await feature.finalize(workspace, options);
55
- }
56
- }
57
- }
58
- const ScaffoldService = {
59
- scaffold
60
- };
61
-
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvc2VydmljZXMvc2NhZmZvbGQuc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtzcGFjZVNjYWZmb2xkIH0gZnJvbSBcIi4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5cbi8qKlxuICogQSBmZWF0dXJlIGhhcyB0aHJlZSByZXNwb25zaWJpbGl0aWVzOlxuICogIDEuIGBnZXRPcHRpb25zYCDigJQgcmVzb2x2ZSBwcm92aWRlciBzZWxlY3Rpb24gYW5kIGFueSBmb2xsb3ctdXAgcXVlc3Rpb25zLlxuICogICAgIFJlY2VpdmVzIHRoZSBvcHRpb25zIGNvbGxlY3RlZCBzbyBmYXI7IHJldHVybnMgb25seSB0aGUga2V5cyBpdCBvd25zLlxuICogICAgIFNob3J0LWNpcmN1aXRzIGlmIHRoZSBjYWxsZXIgYWxyZWFkeSBzdXBwbGllZCB0aG9zZSBrZXlzIHZpYSBDTEkgZmxhZ3MuXG4gKiAgMi4gYHNjYWZmb2xkYCDigJQgbXV0YXRlIHRoZSB3b3Jrc3BhY2UgbW9kZWxzIGFuZC9vciB3cml0ZSBmaWxlcyB1c2luZyB0aGVcbiAqICAgICBmdWxseS1yZXNvbHZlZCBvcHRpb25zLiBDYWxsZWQgYWZ0ZXIgQUxMIGZlYXR1cmVzIGhhdmUgZ2F0aGVyZWQgb3B0aW9uc1xuICogICAgIGJ1dCBCRUZPUkUgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gZGlzay5cbiAqICAzLiBgZmluYWxpemVgIChvcHRpb25hbCkg4oCUIHJ1biBwb3N0LXdyaXRlIGFjdGlvbnMgKGUuZy4gaW5zdGFsbCBkZXBlbmRlbmNpZXMpLlxuICogICAgIENhbGxlZCBhZnRlciB3b3Jrc3BhY2Uuc2NhZmZvbGQoKSBoYXMgZmx1c2hlZCBhbGwgZmlsZXMgdG8gZGlzay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlPFRPcHRpb25zIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiB7XG5cdGdldE9wdGlvbnMoXG5cdFx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0XHRjbGlPcHRpb25zOiBQYXJ0aWFsPFRPcHRpb25zPixcblx0KTogUHJvbWlzZTxQYXJ0aWFsPFRPcHRpb25zPj47XG5cdHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cdGZpbmFsaXplPyh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLCBvcHRpb25zOiBUT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gfCB2b2lkO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzY2FmZm9sZChcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogb2JqZWN0LFxuXHRmZWF0dXJlczogRmVhdHVyZVtdLFxuKSB7XG5cdGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBnZXRBbGxPcHRpb25zKHdvcmtzcGFjZSwgY2xpT3B0aW9ucywgZmVhdHVyZXMpO1xuXHQvLyBGZWF0dXJlcyBtdXRhdGUgd29ya3NwYWNlIG1vZGVscyBmaXJzdCwgdGhlbiB3b3Jrc3BhY2UgcmVuZGVycyB0byBkaXNrLlxuXHRhd2FpdCBzY2FmZm9sZEZlYXR1cmVzKHdvcmtzcGFjZSwgb3B0aW9ucywgZmVhdHVyZXMpO1xuXHRhd2FpdCBzY2FmZm9sZFdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMpO1xuXHQvLyBQb3N0LXdyaXRlIHBoYXNlOiBpbnN0YWxsIGRlcHMsIHByaW50IGZpbmFsIG1lc3NhZ2VzLCBldGMuXG5cdGF3YWl0IGZpbmFsaXplRmVhdHVyZXMod29ya3NwYWNlLCBvcHRpb25zLCBmZWF0dXJlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkV29ya3NwYWNlKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIF9vcHRpb25zOiBvYmplY3QpIHtcblx0YXdhaXQgd29ya3NwYWNlLnNjYWZmb2xkKCk7XG59XG5cbi8qKlxuICogSXRlcmF0ZSBmZWF0dXJlcyBpbiBvcmRlciwgY2FsbGluZyBgZ2V0T3B0aW9uc2Agb24gZWFjaC5cbiAqIEVhY2ggZmVhdHVyZSByZWNlaXZlcyB0aGUgcnVubmluZyBtZXJnZWQgb3B0aW9ucyBzbyBsYXRlciBmZWF0dXJlcyBjYW5cbiAqIGJyYW5jaCBvbiBkZWNpc2lvbnMgbWFkZSBieSBlYXJsaWVyIG9uZXMgKGUuZy4gZGF0YWJhc2UgY2hvaWNlIGFmZmVjdHMgYXV0aCkuXG4gKiBSZXN1bHRzIGFyZSBzaGFsbG93LW1lcmdlZCwgc28gZmVhdHVyZXMgb25seSBuZWVkIHRvIHJldHVybiB3aGF0IHRoZXkgb3duLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxPcHRpb25zKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRjbGlPcHRpb25zOiBvYmplY3QsXG5cdGZlYXR1cmVzOiBGZWF0dXJlW10sXG4pOiBQcm9taXNlPG9iamVjdD4ge1xuXHRsZXQgb3B0aW9ucyA9IHsgLi4uY2xpT3B0aW9ucyB9O1xuXHRmb3IgKGNvbnN0IGZlYXR1cmUgb2YgZmVhdHVyZXMpIHtcblx0XHRjb25zdCBmZWF0dXJlT3B0aW9ucyA9IGF3YWl0IGZlYXR1cmUuZ2V0T3B0aW9ucyh3b3Jrc3BhY2UsIG9wdGlvbnMpO1xuXHRcdG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIC4uLmZlYXR1cmVPcHRpb25zIH07XG5cdH1cblx0cmV0dXJuIG9wdGlvbnM7XG59XG5cbi8qKlxuICogSXRlcmF0ZSBmZWF0dXJlcyBpbiBvcmRlciwgY2FsbGluZyBgc2NhZmZvbGRgIHdpdGggdGhlIGZ1bGx5LXJlc29sdmVkIG9wdGlvbnMuXG4gKiBBbGwgb3B0aW9uLWdhdGhlcmluZyBpcyBjb21wbGV0ZSBiZWZvcmUgYW55IHNjYWZmb2xkaW5nIGJlZ2lucy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2NhZmZvbGRGZWF0dXJlcyhcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0b3B0aW9uczogb2JqZWN0LFxuXHRmZWF0dXJlczogRmVhdHVyZVtdLFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGZvciAoY29uc3QgZmVhdHVyZSBvZiBmZWF0dXJlcykge1xuXHRcdGF3YWl0IGZlYXR1cmUuc2NhZmZvbGQod29ya3NwYWNlLCBvcHRpb25zIGFzIG5ldmVyKTtcblx0fVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgZmVhdHVyZXMgaW4gb3JkZXIsIGNhbGxpbmcgYGZpbmFsaXplYCBvbiBlYWNoIChpZiBkZWZpbmVkKS5cbiAqIEFsbCBmaWxlcyBhcmUgb24gZGlzayBieSB0aGlzIHBvaW50LlxuICovXG5hc3luYyBmdW5jdGlvbiBmaW5hbGl6ZUZlYXR1cmVzKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRvcHRpb25zOiBvYmplY3QsXG5cdGZlYXR1cmVzOiBGZWF0dXJlW10sXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Zm9yIChjb25zdCBmZWF0dXJlIG9mIGZlYXR1cmVzKSB7XG5cdFx0aWYgKGZlYXR1cmUuZmluYWxpemUpIHtcblx0XHRcdGF3YWl0IGZlYXR1cmUuZmluYWxpemUod29ya3NwYWNlLCBvcHRpb25zIGFzIG5ldmVyKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IFNjYWZmb2xkU2VydmljZSA9IHsgc2NhZmZvbGQgfTtcbiJdLCJuYW1lcyI6WyJTY2FmZm9sZFNlcnZpY2UiLCJzY2FmZm9sZCIsIndvcmtzcGFjZSIsImNsaU9wdGlvbnMiLCJmZWF0dXJlcyIsIm9wdGlvbnMiLCJnZXRBbGxPcHRpb25zIiwic2NhZmZvbGRGZWF0dXJlcyIsInNjYWZmb2xkV29ya3NwYWNlIiwiZmluYWxpemVGZWF0dXJlcyIsIl9vcHRpb25zIiwiZmVhdHVyZSIsImZlYXR1cmVPcHRpb25zIiwiZ2V0T3B0aW9ucyIsImZpbmFsaXplIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdGYUE7OztlQUFBQTs7O0FBbEViLGVBQWVDLFNBQ2RDLFNBQTRCLEVBQzVCQyxVQUFrQixFQUNsQkMsUUFBbUI7SUFFbkIsTUFBTUMsVUFBVSxNQUFNQyxjQUFjSixXQUFXQyxZQUFZQztJQUMzRCwwRUFBMEU7SUFDMUUsTUFBTUcsaUJBQWlCTCxXQUFXRyxTQUFTRDtJQUMzQyxNQUFNSSxrQkFBa0JOLFdBQVdHO0lBQ25DLDZEQUE2RDtJQUM3RCxNQUFNSSxpQkFBaUJQLFdBQVdHLFNBQVNEO0FBQzVDO0FBRUEsZUFBZUksa0JBQWtCTixTQUE0QixFQUFFUSxRQUFnQjtJQUM5RSxNQUFNUixVQUFVRCxRQUFRO0FBQ3pCO0FBRUE7Ozs7O0NBS0MsR0FDRCxlQUFlSyxjQUNkSixTQUE0QixFQUM1QkMsVUFBa0IsRUFDbEJDLFFBQW1CO0lBRW5CLElBQUlDLFVBQVU7UUFBRSxHQUFHRixVQUFVO0lBQUM7SUFDOUIsS0FBSyxNQUFNUSxXQUFXUCxTQUFVO1FBQy9CLE1BQU1RLGlCQUFpQixNQUFNRCxRQUFRRSxVQUFVLENBQUNYLFdBQVdHO1FBQzNEQSxVQUFVO1lBQUUsR0FBR0EsT0FBTztZQUFFLEdBQUdPLGNBQWM7UUFBQztJQUMzQztJQUNBLE9BQU9QO0FBQ1I7QUFFQTs7O0NBR0MsR0FDRCxlQUFlRSxpQkFDZEwsU0FBNEIsRUFDNUJHLE9BQWUsRUFDZkQsUUFBbUI7SUFFbkIsS0FBSyxNQUFNTyxXQUFXUCxTQUFVO1FBQy9CLE1BQU1PLFFBQVFWLFFBQVEsQ0FBQ0MsV0FBV0c7SUFDbkM7QUFDRDtBQUVBOzs7Q0FHQyxHQUNELGVBQWVJLGlCQUNkUCxTQUE0QixFQUM1QkcsT0FBZSxFQUNmRCxRQUFtQjtJQUVuQixLQUFLLE1BQU1PLFdBQVdQLFNBQVU7UUFDL0IsSUFBSU8sUUFBUUcsUUFBUSxFQUFFO1lBQ3JCLE1BQU1ILFFBQVFHLFFBQVEsQ0FBQ1osV0FBV0c7UUFDbkM7SUFDRDtBQUNEO0FBRU8sTUFBTUwsa0JBQWtCO0lBQUVDO0FBQVMifQ==