@decohere/create 0.0.1-dev.47 → 0.0.1-dev.49

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 (124) hide show
  1. package/commonjs/src/cli.js +3 -3
  2. package/commonjs/src/resolve-launch.js +53 -0
  3. package/commonjs/src/runner.js +5 -45
  4. package/commonjs/src/version.js +1 -1
  5. package/es6/src/cli.js +3 -3
  6. package/es6/src/resolve-launch.js +46 -0
  7. package/es6/src/runner.js +8 -57
  8. package/es6/src/version.js +3 -3
  9. package/pack-builder-tgz.mjs +19 -35
  10. package/package.json +4 -11
  11. package/types/src/resolve-launch.d.ts +10 -0
  12. package/types/src/runner.d.ts +3 -13
  13. package/types/src/version.d.ts +0 -2
  14. package/commonjs/src/domain/prompt.js +0 -64
  15. package/commonjs/src/models/compose.model.js +0 -138
  16. package/commonjs/src/models/config-yaml.model.js +0 -88
  17. package/commonjs/src/models/const.js +0 -31
  18. package/commonjs/src/models/dev-container.model.js +0 -100
  19. package/commonjs/src/models/docker-image.model.js +0 -221
  20. package/commonjs/src/models/env-file.model.js +0 -47
  21. package/commonjs/src/models/gitignore.model.js +0 -31
  22. package/commonjs/src/models/launch-json.model.js +0 -74
  23. package/commonjs/src/models/package-json.model.js +0 -133
  24. package/commonjs/src/models/project.model.js +0 -134
  25. package/commonjs/src/models/source-file.js +0 -6
  26. package/commonjs/src/models/tsconfig.model.js +0 -34
  27. package/commonjs/src/models/vscode-settings.model.js +0 -31
  28. package/commonjs/src/program.js +0 -135
  29. package/commonjs/src/resolve-target-dir.js +0 -19
  30. package/commonjs/src/services/scaffold.service.js +0 -62
  31. package/commonjs/src/webapi/api-name.js +0 -95
  32. package/commonjs/src/webapi/const.js +0 -50
  33. package/commonjs/src/webapi/create-api.js +0 -285
  34. package/commonjs/src/webapi/features/auth.feature.js +0 -463
  35. package/commonjs/src/webapi/features/auth0-cli.js +0 -406
  36. package/commonjs/src/webapi/features/biome-format.js +0 -49
  37. package/commonjs/src/webapi/features/database.feature.js +0 -273
  38. package/commonjs/src/webapi/features/finalize.feature.js +0 -91
  39. package/commonjs/src/webapi/features/postman.feature.js +0 -319
  40. package/commonjs/src/webapi/models/api-package-json.model.js +0 -63
  41. package/commonjs/src/webapi/models/auth-config.model.js +0 -26
  42. package/commonjs/src/webapi/models/controller-source-file.model.js +0 -188
  43. package/commonjs/src/webapi/models/github-ci.model.js +0 -193
  44. package/commonjs/src/webapi/models/main-source-file.model.js +0 -165
  45. package/commonjs/src/webapi/models/production-dockerfile.model.js +0 -138
  46. package/commonjs/src/webapi/models/sample-files.model.js +0 -60
  47. package/commonjs/src/webapi/models/webapi-image.model.js +0 -22
  48. package/commonjs/src/webapi/postman/hello-openapi.js +0 -175
  49. package/commonjs/src/webapi/postman/local-view.js +0 -184
  50. package/commonjs/src/webapi/postman/openapi-to-postman.js +0 -202
  51. package/es6/src/domain/prompt.js +0 -43
  52. package/es6/src/models/compose.model.js +0 -132
  53. package/es6/src/models/config-yaml.model.js +0 -76
  54. package/es6/src/models/const.js +0 -21
  55. package/es6/src/models/dev-container.model.js +0 -90
  56. package/es6/src/models/docker-image.model.js +0 -185
  57. package/es6/src/models/env-file.model.js +0 -43
  58. package/es6/src/models/gitignore.model.js +0 -21
  59. package/es6/src/models/launch-json.model.js +0 -64
  60. package/es6/src/models/package-json.model.js +0 -129
  61. package/es6/src/models/project.model.js +0 -119
  62. package/es6/src/models/source-file.js +0 -3
  63. package/es6/src/models/tsconfig.model.js +0 -24
  64. package/es6/src/models/vscode-settings.model.js +0 -21
  65. package/es6/src/program.js +0 -76
  66. package/es6/src/resolve-target-dir.js +0 -9
  67. package/es6/src/services/scaffold.service.js +0 -52
  68. package/es6/src/webapi/api-name.js +0 -59
  69. package/es6/src/webapi/const.js +0 -20
  70. package/es6/src/webapi/create-api.js +0 -265
  71. package/es6/src/webapi/features/auth.feature.js +0 -412
  72. package/es6/src/webapi/features/auth0-cli.js +0 -348
  73. package/es6/src/webapi/features/biome-format.js +0 -42
  74. package/es6/src/webapi/features/database.feature.js +0 -263
  75. package/es6/src/webapi/features/finalize.feature.js +0 -81
  76. package/es6/src/webapi/features/postman.feature.js +0 -253
  77. package/es6/src/webapi/models/api-package-json.model.js +0 -58
  78. package/es6/src/webapi/models/auth-config.model.js +0 -22
  79. package/es6/src/webapi/models/controller-source-file.model.js +0 -179
  80. package/es6/src/webapi/models/github-ci.model.js +0 -186
  81. package/es6/src/webapi/models/main-source-file.model.js +0 -161
  82. package/es6/src/webapi/models/production-dockerfile.model.js +0 -126
  83. package/es6/src/webapi/models/sample-files.model.js +0 -42
  84. package/es6/src/webapi/models/webapi-image.model.js +0 -12
  85. package/es6/src/webapi/postman/hello-openapi.js +0 -168
  86. package/es6/src/webapi/postman/local-view.js +0 -169
  87. package/es6/src/webapi/postman/openapi-to-postman.js +0 -179
  88. package/types/src/domain/prompt.d.ts +0 -4
  89. package/types/src/models/compose.model.d.ts +0 -59
  90. package/types/src/models/config-yaml.model.d.ts +0 -27
  91. package/types/src/models/const.d.ts +0 -19
  92. package/types/src/models/dev-container.model.d.ts +0 -33
  93. package/types/src/models/docker-image.model.d.ts +0 -56
  94. package/types/src/models/env-file.model.d.ts +0 -15
  95. package/types/src/models/gitignore.model.d.ts +0 -6
  96. package/types/src/models/launch-json.model.d.ts +0 -7
  97. package/types/src/models/package-json.model.d.ts +0 -32
  98. package/types/src/models/project.model.d.ts +0 -60
  99. package/types/src/models/source-file.d.ts +0 -11
  100. package/types/src/models/tsconfig.model.d.ts +0 -5
  101. package/types/src/models/vscode-settings.model.d.ts +0 -7
  102. package/types/src/program.d.ts +0 -3
  103. package/types/src/resolve-target-dir.d.ts +0 -5
  104. package/types/src/services/scaffold.service.d.ts +0 -22
  105. package/types/src/webapi/api-name.d.ts +0 -14
  106. package/types/src/webapi/const.d.ts +0 -17
  107. package/types/src/webapi/create-api.d.ts +0 -15
  108. package/types/src/webapi/features/auth.feature.d.ts +0 -10
  109. package/types/src/webapi/features/auth0-cli.d.ts +0 -72
  110. package/types/src/webapi/features/biome-format.d.ts +0 -5
  111. package/types/src/webapi/features/database.feature.d.ts +0 -5
  112. package/types/src/webapi/features/finalize.feature.d.ts +0 -2
  113. package/types/src/webapi/features/postman.feature.d.ts +0 -16
  114. package/types/src/webapi/models/api-package-json.model.d.ts +0 -18
  115. package/types/src/webapi/models/auth-config.model.d.ts +0 -26
  116. package/types/src/webapi/models/controller-source-file.model.d.ts +0 -45
  117. package/types/src/webapi/models/github-ci.model.d.ts +0 -9
  118. package/types/src/webapi/models/main-source-file.model.d.ts +0 -54
  119. package/types/src/webapi/models/production-dockerfile.model.d.ts +0 -20
  120. package/types/src/webapi/models/sample-files.model.d.ts +0 -7
  121. package/types/src/webapi/models/webapi-image.model.d.ts +0 -5
  122. package/types/src/webapi/postman/hello-openapi.d.ts +0 -19
  123. package/types/src/webapi/postman/local-view.d.ts +0 -17
  124. package/types/src/webapi/postman/openapi-to-postman.d.ts +0 -62
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- const _program = require("./program.js");
7
- void (0, _program.runCli)();
6
+ const _runner = require("./runner.js");
7
+ (0, _runner.runInBuilder)(process.argv.slice(2));
8
8
 
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkNsaSB9IGZyb20gXCIuL3Byb2dyYW0uanNcIjtcblxudm9pZCBydW5DbGkoKTtcbiJdLCJuYW1lcyI6WyJydW5DbGkiXSwibWFwcGluZ3MiOiI7Ozs7O3lCQUN1QjtBQUV2QixLQUFLQSxJQUFBQSxlQUFNIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuXG5ydW5JbkJ1aWxkZXIocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTtcbiJdLCJuYW1lcyI6WyJydW5JbkJ1aWxkZXIiLCJwcm9jZXNzIiwiYXJndiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozt3QkFDNkI7QUFFN0JBLElBQUFBLG9CQUFZLEVBQUNDLFFBQVFDLElBQUksQ0FBQ0MsS0FBSyxDQUFDIn0=
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "resolveLaunch", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return resolveLaunch;
9
+ }
10
+ });
11
+ const _nodepath = require("node:path");
12
+ function resolveLaunch(argv, cwd = process.cwd()) {
13
+ if (argv.length === 1 && (argv[0] === "--help" || argv[0] === "-h" || argv[0] === "--version")) {
14
+ return {
15
+ targetDir: cwd,
16
+ containerArgv: argv,
17
+ projectName: (0, _nodepath.basename)(cwd)
18
+ };
19
+ }
20
+ let directoryFlag;
21
+ const withoutD = [];
22
+ for(let i = 0; i < argv.length; i++){
23
+ const arg = argv[i];
24
+ if (arg === "-d") {
25
+ directoryFlag = argv[i + 1];
26
+ i++;
27
+ continue;
28
+ }
29
+ if (arg != null) withoutD.push(arg);
30
+ }
31
+ const isAdd = withoutD[0] === "webapi" && withoutD[1] === "add";
32
+ let positional;
33
+ let withoutPositional = withoutD;
34
+ if (!isAdd && withoutD[0] === "webapi" && withoutD[1] != null && !withoutD[1].startsWith("-")) {
35
+ positional = withoutD[1];
36
+ withoutPositional = [
37
+ withoutD[0],
38
+ ...withoutD.slice(2)
39
+ ];
40
+ }
41
+ const targetDir = (0, _nodepath.resolve)(cwd, positional?.trim() || directoryFlag?.trim() || ".");
42
+ return {
43
+ targetDir,
44
+ containerArgv: [
45
+ ...withoutPositional,
46
+ "-d",
47
+ "."
48
+ ],
49
+ projectName: (0, _nodepath.basename)(targetDir)
50
+ };
51
+ }
52
+
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcmVzb2x2ZS1sYXVuY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmV4cG9ydCB0eXBlIExhdW5jaFBsYW4gPSB7XG5cdHRhcmdldERpcjogc3RyaW5nO1xuXHRjb250YWluZXJBcmd2OiBzdHJpbmdbXTtcblx0cHJvamVjdE5hbWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogSG9zdCBgbnBtIGNyZWF0ZWAgYXJndiDihpIgZGlyZWN0b3J5IHRvIG1vdW50IGFuZCBhcmd2IGZvciB0aGUgaW4taW1hZ2UgQ0xJLlxuICogUG9zaXRpb25hbCBgd2ViYXBpIG15LWFwcGAgd2lucyBvdmVyIGAtZGAgKG5wbSB0cmVhdHMgYC1kYCBhcyBpdHMgb3duIGxvZ2xldmVsKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMYXVuY2goYXJndjogc3RyaW5nW10sIGN3ZCA9IHByb2Nlc3MuY3dkKCkpOiBMYXVuY2hQbGFuIHtcblx0aWYgKFxuXHRcdGFyZ3YubGVuZ3RoID09PSAxICYmXG5cdFx0KGFyZ3ZbMF0gPT09IFwiLS1oZWxwXCIgfHwgYXJndlswXSA9PT0gXCItaFwiIHx8IGFyZ3ZbMF0gPT09IFwiLS12ZXJzaW9uXCIpXG5cdCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHR0YXJnZXREaXI6IGN3ZCxcblx0XHRcdGNvbnRhaW5lckFyZ3Y6IGFyZ3YsXG5cdFx0XHRwcm9qZWN0TmFtZTogYmFzZW5hbWUoY3dkKSxcblx0XHR9O1xuXHR9XG5cdGxldCBkaXJlY3RvcnlGbGFnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGNvbnN0IHdpdGhvdXREOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3YubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBhcmcgPSBhcmd2W2ldO1xuXHRcdGlmIChhcmcgPT09IFwiLWRcIikge1xuXHRcdFx0ZGlyZWN0b3J5RmxhZyA9IGFyZ3ZbaSArIDFdO1xuXHRcdFx0aSsrO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChhcmcgIT0gbnVsbCkgd2l0aG91dEQucHVzaChhcmcpO1xuXHR9XG5cblx0Y29uc3QgaXNBZGQgPSB3aXRob3V0RFswXSA9PT0gXCJ3ZWJhcGlcIiAmJiB3aXRob3V0RFsxXSA9PT0gXCJhZGRcIjtcblx0bGV0IHBvc2l0aW9uYWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0bGV0IHdpdGhvdXRQb3NpdGlvbmFsID0gd2l0aG91dEQ7XG5cdGlmIChcblx0XHQhaXNBZGQgJiZcblx0XHR3aXRob3V0RFswXSA9PT0gXCJ3ZWJhcGlcIiAmJlxuXHRcdHdpdGhvdXREWzFdICE9IG51bGwgJiZcblx0XHQhd2l0aG91dERbMV0uc3RhcnRzV2l0aChcIi1cIilcblx0KSB7XG5cdFx0cG9zaXRpb25hbCA9IHdpdGhvdXREWzFdO1xuXHRcdHdpdGhvdXRQb3NpdGlvbmFsID0gW3dpdGhvdXREWzBdLCAuLi53aXRob3V0RC5zbGljZSgyKV07XG5cdH1cblxuXHRjb25zdCB0YXJnZXREaXIgPSByZXNvbHZlKGN3ZCwgcG9zaXRpb25hbD8udHJpbSgpIHx8IGRpcmVjdG9yeUZsYWc/LnRyaW0oKSB8fCBcIi5cIik7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0RGlyLFxuXHRcdGNvbnRhaW5lckFyZ3Y6IFsuLi53aXRob3V0UG9zaXRpb25hbCwgXCItZFwiLCBcIi5cIl0sXG5cdFx0cHJvamVjdE5hbWU6IGJhc2VuYW1lKHRhcmdldERpciksXG5cdH07XG59XG4iXSwibmFtZXMiOlsicmVzb2x2ZUxhdW5jaCIsImFyZ3YiLCJjd2QiLCJwcm9jZXNzIiwibGVuZ3RoIiwidGFyZ2V0RGlyIiwiY29udGFpbmVyQXJndiIsInByb2plY3ROYW1lIiwiYmFzZW5hbWUiLCJkaXJlY3RvcnlGbGFnIiwid2l0aG91dEQiLCJpIiwiYXJnIiwicHVzaCIsImlzQWRkIiwicG9zaXRpb25hbCIsIndpdGhvdXRQb3NpdGlvbmFsIiwic3RhcnRzV2l0aCIsInNsaWNlIiwicmVzb2x2ZSIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7K0JBWWdCQTs7O2VBQUFBOzs7MEJBWmtCO0FBWTNCLFNBQVNBLGNBQWNDLElBQWMsRUFBRUMsTUFBTUMsUUFBUUQsR0FBRyxFQUFFO0lBQ2hFLElBQ0NELEtBQUtHLE1BQU0sS0FBSyxLQUNmSCxDQUFBQSxJQUFJLENBQUMsRUFBRSxLQUFLLFlBQVlBLElBQUksQ0FBQyxFQUFFLEtBQUssUUFBUUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFVLEdBQ2xFO1FBQ0QsT0FBTztZQUNOSSxXQUFXSDtZQUNYSSxlQUFlTDtZQUNmTSxhQUFhQyxJQUFBQSxrQkFBUSxFQUFDTjtRQUN2QjtJQUNEO0lBQ0EsSUFBSU87SUFDSixNQUFNQyxXQUFxQixFQUFFO0lBQzdCLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJVixLQUFLRyxNQUFNLEVBQUVPLElBQUs7UUFDckMsTUFBTUMsTUFBTVgsSUFBSSxDQUFDVSxFQUFFO1FBQ25CLElBQUlDLFFBQVEsTUFBTTtZQUNqQkgsZ0JBQWdCUixJQUFJLENBQUNVLElBQUksRUFBRTtZQUMzQkE7WUFDQTtRQUNEO1FBQ0EsSUFBSUMsT0FBTyxNQUFNRixTQUFTRyxJQUFJLENBQUNEO0lBQ2hDO0lBRUEsTUFBTUUsUUFBUUosUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZQSxRQUFRLENBQUMsRUFBRSxLQUFLO0lBQzFELElBQUlLO0lBQ0osSUFBSUMsb0JBQW9CTjtJQUN4QixJQUNDLENBQUNJLFNBQ0RKLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFDaEJBLFFBQVEsQ0FBQyxFQUFFLElBQUksUUFDZixDQUFDQSxRQUFRLENBQUMsRUFBRSxDQUFDTyxVQUFVLENBQUMsTUFDdkI7UUFDREYsYUFBYUwsUUFBUSxDQUFDLEVBQUU7UUFDeEJNLG9CQUFvQjtZQUFDTixRQUFRLENBQUMsRUFBRTtlQUFLQSxTQUFTUSxLQUFLLENBQUM7U0FBRztJQUN4RDtJQUVBLE1BQU1iLFlBQVljLElBQUFBLGlCQUFPLEVBQUNqQixLQUFLYSxZQUFZSyxVQUFVWCxlQUFlVyxVQUFVO0lBQzlFLE9BQU87UUFDTmY7UUFDQUMsZUFBZTtlQUFJVTtZQUFtQjtZQUFNO1NBQUk7UUFDaERULGFBQWFDLElBQUFBLGtCQUFRLEVBQUNIO0lBQ3ZCO0FBQ0QifQ==
@@ -12,20 +12,17 @@ const _nodechild_process = require("node:child_process");
12
12
  const _nodefs = require("node:fs");
13
13
  const _nodeos = require("node:os");
14
14
  const _nodepath = require("node:path");
15
+ const _resolvelaunch = require("./resolve-launch.js");
15
16
  const _version = require("./version.js");
16
17
  const BUILDER_IMAGE = `${_version.CREATE_IMAGE_REPOSITORY}:${_version.CREATE_VERSION}`;
17
- function runInBuilder(opts) {
18
- const targetDir = (0, _nodepath.resolve)(opts.d ?? ".");
19
- const projectName = (0, _nodepath.basename)(targetDir);
18
+ function runInBuilder(argv) {
19
+ const { targetDir, containerArgv, projectName } = (0, _resolvelaunch.resolveLaunch)(argv);
20
20
  (0, _nodefs.mkdirSync)(targetDir, {
21
21
  recursive: true
22
22
  });
23
- // Host-owned so initializeCommand can always write here even if something
24
- // else in .devcontainer ends up oddly owned.
25
23
  (0, _nodefs.mkdirSync)((0, _nodepath.resolve)(targetDir, ".devcontainer", "npm-auth"), {
26
24
  recursive: true
27
25
  });
28
- // Ensure Docker is available.
29
26
  try {
30
27
  (0, _nodechild_process.execFileSync)("docker", [
31
28
  "info"
@@ -39,12 +36,10 @@ function runInBuilder(opts) {
39
36
  const hostUid = process.getuid?.();
40
37
  const hostGid = process.getgid?.() ?? hostUid;
41
38
  const runAsHostUser = hostUid != null && hostGid != null;
42
- // Anonymous root-owned volumes are not writable when we drop privileges.
43
39
  const npmCacheDir = (0, _nodepath.resolve)((0, _nodeos.homedir)(), ".cache/decohere-create/npm");
44
40
  (0, _nodefs.mkdirSync)(npmCacheDir, {
45
41
  recursive: true
46
42
  });
47
- // Isolated HOME so --user host-uid can write without a matching /etc/passwd entry.
48
43
  const builderHome = "/tmp/decohere-create-home";
49
44
  const volumes = [
50
45
  "-v",
@@ -55,7 +50,6 @@ function runInBuilder(opts) {
55
50
  const envArgs = [
56
51
  "-e",
57
52
  "DECOHERE_BUILDER=1",
58
- // Host dir basename — container cwd is /workspace so basename would be wrong.
59
53
  "-e",
60
54
  `DECOHERE_PROJECT_NAME=${projectName}`,
61
55
  "-e",
@@ -65,14 +59,11 @@ function runInBuilder(opts) {
65
59
  "-e",
66
60
  `HOME=${builderHome}`
67
61
  ];
68
- // Mount host .npmrc where the non-root process can read it.
69
62
  const npmrcPath = (0, _nodepath.resolve)((0, _nodeos.homedir)(), ".npmrc");
70
63
  if ((0, _nodefs.existsSync)(npmrcPath)) {
71
64
  volumes.push("-v", `${npmrcPath}:/tmp/host-npmrc:ro`);
72
65
  envArgs.push("-e", "NPM_CONFIG_USERCONFIG=/tmp/host-npmrc");
73
66
  }
74
- // Auth0 CLI reads credentials from $HOME/.config/auth0 — without this mount,
75
- // ensureSpaApp fails and Postman gets an empty auth0ClientId.
76
67
  const auth0ConfigDir = (0, _nodepath.resolve)((0, _nodeos.homedir)(), ".config/auth0");
77
68
  if ((0, _nodefs.existsSync)(auth0ConfigDir)) {
78
69
  volumes.push("-v", `${auth0ConfigDir}:${builderHome}/.config/auth0`);
@@ -81,41 +72,10 @@ function runInBuilder(opts) {
81
72
  if (runAsHostUser) {
82
73
  userArgs.push("--user", `${hostUid}:${hostGid}`);
83
74
  } else if (hostUid != null) {
84
- // Fallback for environments without getgid: keep legacy chown path.
85
75
  envArgs.push("-e", `HOST_UID=${hostUid}`);
86
76
  if (hostGid != null) envArgs.push("-e", `HOST_GID=${hostGid}`);
87
77
  }
88
- const commandArgs = opts.add ? [
89
- "webapi",
90
- "add",
91
- opts.names?.[0] ?? "",
92
- "-d",
93
- "."
94
- ] : [
95
- "webapi",
96
- "-d",
97
- "."
98
- ];
99
- if (!opts.add) {
100
- for (const name of opts.names ?? []){
101
- commandArgs.push("--name", name);
102
- }
103
- }
104
- if (opts.databaseProvider != null) {
105
- commandArgs.push("--database", opts.databaseProvider);
106
- }
107
- if (opts.authProvider != null) {
108
- commandArgs.push("--auth", opts.authProvider);
109
- }
110
- if (opts.postmanProvider != null) {
111
- commandArgs.push("--postman", opts.postmanProvider);
112
- }
113
- if (opts.installDependencies != null) {
114
- commandArgs.push("--install", opts.installDependencies);
115
- }
116
78
  console.log(" Running scaffolding in a sandboxed container...\n");
117
- // Only allocate a TTY when stdin is itself a TTY — avoids a hung process
118
- // in non-interactive environments (pipes, CI, scripts).
119
79
  const ttyFlags = process.stdin.isTTY ? [
120
80
  "-it"
121
81
  ] : [
@@ -131,7 +91,7 @@ function runInBuilder(opts) {
131
91
  "-w",
132
92
  "/workspace",
133
93
  BUILDER_IMAGE,
134
- ...commandArgs
94
+ ...containerArgv
135
95
  ], {
136
96
  stdio: "inherit"
137
97
  });
@@ -141,4 +101,4 @@ function runInBuilder(opts) {
141
101
  process.exit(result.status ?? 0);
142
102
  }
143
103
 
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSwgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaU9wdGlvbnMgfSBmcm9tIFwiLi93ZWJhcGkvY3JlYXRlLWFwaS5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBSdW4gdGhlIHNjYWZmb2xkIGluc2lkZSBhIHByZS1idWlsdCBEb2NrZXIgYnVpbGRlciBpbWFnZS5cbiAqXG4gKiBDYWxsZWQgd2hlbiBgREVDT0hFUkVfQlVJTERFUmAgaXMgbm90IHNldCDigJQgaS5lLiB0aGUgQ0xJIGlzIHJ1bm5pbmcgb24gdGhlXG4gKiBob3N0LCBvdXRzaWRlIHRoZSBjb250YWluZXIuIE1vdW50cyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcyBgL3dvcmtzcGFjZWAgc29cbiAqIHRoZSBzY2FmZm9sZGVkIGZpbGVzIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIGhvc3QgZmlsZXN5c3RlbS5cbiAqXG4gKiBUaGUgY29udGFpbmVyIHJ1bnMgYXMgdGhlIGhvc3QgdWlkL2dpZCB3aGVuZXZlciBwb3NzaWJsZSBzbyBzY2FmZm9sZGVkIGZpbGVzXG4gKiBhcmUgbmV2ZXIgcm9vdC1vd25lZCAocG9zdC1ob2MgYGNob3duYCBpcyB1bnJlbGlhYmxlIGFjcm9zcyBEb2NrZXIgc2V0dXBzKS5cbiAqXG4gKiBIb3N0IGB+Ly5jb25maWcvYXV0aDBgIGlzIG1vdW50ZWQgd2hlbiBwcmVzZW50IHNvIHRoZSBBdXRoMCBDTEkgY2FuIHJldXNlXG4gKiBjcmVkZW50aWFscyAocmVxdWlyZWQgZm9yIFBvc3RtYW4gU1BBIC8gYXV0aDBDbGllbnRJZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JbkJ1aWxkZXIob3B0czogQXBpT3B0aW9ucyk6IG5ldmVyIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShvcHRzLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9IGJhc2VuYW1lKHRhcmdldERpcik7XG5cdG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHQvLyBIb3N0LW93bmVkIHNvIGluaXRpYWxpemVDb21tYW5kIGNhbiBhbHdheXMgd3JpdGUgaGVyZSBldmVuIGlmIHNvbWV0aGluZ1xuXHQvLyBlbHNlIGluIC5kZXZjb250YWluZXIgZW5kcyB1cCBvZGRseSBvd25lZC5cblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gRW5zdXJlIERvY2tlciBpcyBhdmFpbGFibGUuXG5cdHRyeSB7XG5cdFx0ZXhlY0ZpbGVTeW5jKFwiZG9ja2VyXCIsIFtcImluZm9cIl0sIHsgc3RkaW86IFwicGlwZVwiIH0pO1xuXHR9IGNhdGNoIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XCJcXG4gIERvY2tlciBpcyByZXF1aXJlZCB0byBzY2FmZm9sZCBhIERlY29oZXJlIHByb2plY3QuXFxuXCIgK1xuXHRcdFx0XHRcIiAgSW5zdGFsbCBEb2NrZXIgRGVza3RvcDogaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcFxcblwiLFxuXHRcdCk7XG5cdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHR9XG5cblx0Y29uc3QgaG9zdFVpZCA9IHByb2Nlc3MuZ2V0dWlkPy4oKTtcblx0Y29uc3QgaG9zdEdpZCA9IHByb2Nlc3MuZ2V0Z2lkPy4oKSA/PyBob3N0VWlkO1xuXHRjb25zdCBydW5Bc0hvc3RVc2VyID0gaG9zdFVpZCAhPSBudWxsICYmIGhvc3RHaWQgIT0gbnVsbDtcblxuXHQvLyBBbm9ueW1vdXMgcm9vdC1vd25lZCB2b2x1bWVzIGFyZSBub3Qgd3JpdGFibGUgd2hlbiB3ZSBkcm9wIHByaXZpbGVnZXMuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gSXNvbGF0ZWQgSE9NRSBzbyAtLXVzZXIgaG9zdC11aWQgY2FuIHdyaXRlIHdpdGhvdXQgYSBtYXRjaGluZyAvZXRjL3Bhc3N3ZCBlbnRyeS5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdC8vIEhvc3QgZGlyIGJhc2VuYW1lIOKAlCBjb250YWluZXIgY3dkIGlzIC93b3Jrc3BhY2Ugc28gYmFzZW5hbWUgd291bGQgYmUgd3JvbmcuXG5cdFx0XCItZVwiLFxuXHRcdGBERUNPSEVSRV9QUk9KRUNUX05BTUU9JHtwcm9qZWN0TmFtZX1gLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfQ0FDSEU9L25wbS1jYWNoZVwiLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfUFJFRkVSX09GRkxJTkU9dHJ1ZVwiLFxuXHRcdFwiLWVcIixcblx0XHRgSE9NRT0ke2J1aWxkZXJIb21lfWAsXG5cdF07XG5cblx0Ly8gTW91bnQgaG9zdCAubnBtcmMgd2hlcmUgdGhlIG5vbi1yb290IHByb2Nlc3MgY2FuIHJlYWQgaXQuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Ly8gQXV0aDAgQ0xJIHJlYWRzIGNyZWRlbnRpYWxzIGZyb20gJEhPTUUvLmNvbmZpZy9hdXRoMCDigJQgd2l0aG91dCB0aGlzIG1vdW50LFxuXHQvLyBlbnN1cmVTcGFBcHAgZmFpbHMgYW5kIFBvc3RtYW4gZ2V0cyBhbiBlbXB0eSBhdXRoMENsaWVudElkLlxuXHRjb25zdCBhdXRoMENvbmZpZ0RpciA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5jb25maWcvYXV0aDBcIik7XG5cdGlmIChleGlzdHNTeW5jKGF1dGgwQ29uZmlnRGlyKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke2F1dGgwQ29uZmlnRGlyfToke2J1aWxkZXJIb21lfS8uY29uZmlnL2F1dGgwYCk7XG5cdH1cblxuXHRjb25zdCB1c2VyQXJnczogc3RyaW5nW10gPSBbXTtcblx0aWYgKHJ1bkFzSG9zdFVzZXIpIHtcblx0XHR1c2VyQXJncy5wdXNoKFwiLS11c2VyXCIsIGAke2hvc3RVaWR9OiR7aG9zdEdpZH1gKTtcblx0fSBlbHNlIGlmIChob3N0VWlkICE9IG51bGwpIHtcblx0XHQvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgZ2V0Z2lkOiBrZWVwIGxlZ2FjeSBjaG93biBwYXRoLlxuXHRcdGVudkFyZ3MucHVzaChcIi1lXCIsIGBIT1NUX1VJRD0ke2hvc3RVaWR9YCk7XG5cdFx0aWYgKGhvc3RHaWQgIT0gbnVsbCkgZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfR0lEPSR7aG9zdEdpZH1gKTtcblx0fVxuXG5cdGNvbnN0IGNvbW1hbmRBcmdzOiBzdHJpbmdbXSA9IG9wdHMuYWRkXG5cdFx0PyBbXCJ3ZWJhcGlcIiwgXCJhZGRcIiwgb3B0cy5uYW1lcz8uWzBdID8/IFwiXCIsIFwiLWRcIiwgXCIuXCJdXG5cdFx0OiBbXCJ3ZWJhcGlcIiwgXCItZFwiLCBcIi5cIl07XG5cdGlmICghb3B0cy5hZGQpIHtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2Ygb3B0cy5uYW1lcyA/PyBbXSkge1xuXHRcdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tbmFtZVwiLCBuYW1lKTtcblx0XHR9XG5cdH1cblx0aWYgKG9wdHMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tZGF0YWJhc2VcIiwgb3B0cy5kYXRhYmFzZVByb3ZpZGVyKTtcblx0fVxuXHRpZiAob3B0cy5hdXRoUHJvdmlkZXIgIT0gbnVsbCkge1xuXHRcdGNvbW1hbmRBcmdzLnB1c2goXCItLWF1dGhcIiwgb3B0cy5hdXRoUHJvdmlkZXIpO1xuXHR9XG5cdGlmIChvcHRzLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tcG9zdG1hblwiLCBvcHRzLnBvc3RtYW5Qcm92aWRlcik7XG5cdH1cblx0aWYgKG9wdHMuaW5zdGFsbERlcGVuZGVuY2llcyAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0taW5zdGFsbFwiLCBvcHRzLmluc3RhbGxEZXBlbmRlbmNpZXMpO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdC8vIE9ubHkgYWxsb2NhdGUgYSBUVFkgd2hlbiBzdGRpbiBpcyBpdHNlbGYgYSBUVFkg4oCUIGF2b2lkcyBhIGh1bmcgcHJvY2Vzc1xuXHQvLyBpbiBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnRzIChwaXBlcywgQ0ksIHNjcmlwdHMpLlxuXHRjb25zdCB0dHlGbGFncyA9IHByb2Nlc3Muc3RkaW4uaXNUVFkgPyBbXCItaXRcIl0gOiBbXCItaVwiXTtcblxuXHRjb25zdCByZXN1bHQgPSBzcGF3blN5bmMoXG5cdFx0XCJkb2NrZXJcIixcblx0XHRbXG5cdFx0XHRcInJ1blwiLFxuXHRcdFx0XCItLXJtXCIsXG5cdFx0XHQuLi50dHlGbGFncyxcblx0XHRcdC4uLnVzZXJBcmdzLFxuXHRcdFx0Li4udm9sdW1lcyxcblx0XHRcdC4uLmVudkFyZ3MsXG5cdFx0XHRcIi13XCIsXG5cdFx0XHRcIi93b3Jrc3BhY2VcIixcblx0XHRcdEJVSUxERVJfSU1BR0UsXG5cdFx0XHQuLi5jb21tYW5kQXJncyxcblx0XHRdLFxuXHRcdHsgc3RkaW86IFwiaW5oZXJpdFwiIH0sXG5cdCk7XG5cblx0aWYgKHJlc3VsdC5zdGF0dXMgPT09IDApIHtcblx0XHRjb25zb2xlLmxvZyhgXFxuICBTY2FmZm9sZCBjb21wbGV0ZSFcXG5cXG4gIE9wZW4geW91ciBwcm9qZWN0OlxcblxcbiAgICBjb2RlICR7dGFyZ2V0RGlyfVxcbmApO1xuXHR9XG5cblx0cHJvY2Vzcy5leGl0KHJlc3VsdC5zdGF0dXMgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsicnVuSW5CdWlsZGVyIiwiQlVJTERFUl9JTUFHRSIsIkNSRUFURV9JTUFHRV9SRVBPU0lUT1JZIiwiQ1JFQVRFX1ZFUlNJT04iLCJvcHRzIiwidGFyZ2V0RGlyIiwicmVzb2x2ZSIsImQiLCJwcm9qZWN0TmFtZSIsImJhc2VuYW1lIiwibWtkaXJTeW5jIiwicmVjdXJzaXZlIiwiZXhlY0ZpbGVTeW5jIiwic3RkaW8iLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzIiwiZXhpdCIsImhvc3RVaWQiLCJnZXR1aWQiLCJob3N0R2lkIiwiZ2V0Z2lkIiwicnVuQXNIb3N0VXNlciIsIm5wbUNhY2hlRGlyIiwiaG9tZWRpciIsImJ1aWxkZXJIb21lIiwidm9sdW1lcyIsImVudkFyZ3MiLCJucG1yY1BhdGgiLCJleGlzdHNTeW5jIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJjb21tYW5kQXJncyIsImFkZCIsIm5hbWVzIiwibmFtZSIsImRhdGFiYXNlUHJvdmlkZXIiLCJhdXRoUHJvdmlkZXIiLCJwb3N0bWFuUHJvdmlkZXIiLCJpbnN0YWxsRGVwZW5kZW5jaWVzIiwibG9nIiwidHR5RmxhZ3MiLCJzdGRpbiIsImlzVFRZIiwicmVzdWx0Iiwic3Bhd25TeW5jIiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXNCZ0JBOzs7ZUFBQUE7OzttQ0F0QndCO3dCQUNGO3dCQUNkOzBCQUNVO3lCQUNzQjtBQUd4RCxNQUFNQyxnQkFBZ0IsR0FBR0MsZ0NBQXVCLENBQUMsQ0FBQyxFQUFFQyx1QkFBYyxFQUFFO0FBZTdELFNBQVNILGFBQWFJLElBQWdCO0lBQzVDLE1BQU1DLFlBQVlDLElBQUFBLGlCQUFPLEVBQUNGLEtBQUtHLENBQUMsSUFBSTtJQUNwQyxNQUFNQyxjQUFjQyxJQUFBQSxrQkFBUSxFQUFDSjtJQUM3QkssSUFBQUEsaUJBQVMsRUFBQ0wsV0FBVztRQUFFTSxXQUFXO0lBQUs7SUFDdkMsMEVBQTBFO0lBQzFFLDZDQUE2QztJQUM3Q0QsSUFBQUEsaUJBQVMsRUFBQ0osSUFBQUEsaUJBQU8sRUFBQ0QsV0FBVyxpQkFBaUIsYUFBYTtRQUFFTSxXQUFXO0lBQUs7SUFFN0UsOEJBQThCO0lBQzlCLElBQUk7UUFDSEMsSUFBQUEsK0JBQVksRUFB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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHJlc29sdmVMYXVuY2ggfSBmcm9tIFwiLi9yZXNvbHZlLWxhdW5jaC5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX0lNQUdFX1JFUE9TSVRPUlksIENSRUFURV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvbi5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBQdWxsL3J1biB0aGUgRGVjb2hlcmUgQ0xJIGltYWdlLiBIb3N0IGBAZGVjb2hlcmUvY3JlYXRlYCBkb2VzIG5vdCBsb2FkIHRoZVxuICogYEBkZWNvaGVyZS9jbGlgIGRlcGVuZGVuY3kgdHJlZSDigJQgdGhhdCBsaXZlcyBpbiB0aGUgaW1hZ2Ugb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkluQnVpbGRlcihhcmd2OiBzdHJpbmdbXSk6IG5ldmVyIHtcblx0Y29uc3QgeyB0YXJnZXREaXIsIGNvbnRhaW5lckFyZ3YsIHByb2plY3ROYW1lIH0gPSByZXNvbHZlTGF1bmNoKGFyZ3YpO1xuXHRta2RpclN5bmModGFyZ2V0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0dHJ5IHtcblx0XHRleGVjRmlsZVN5bmMoXCJkb2NrZXJcIiwgW1wiaW5mb1wiXSwgeyBzdGRpbzogXCJwaXBlXCIgfSk7XG5cdH0gY2F0Y2gge1xuXHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcIlxcbiAgRG9ja2VyIGlzIHJlcXVpcmVkIHRvIHNjYWZmb2xkIGEgRGVjb2hlcmUgcHJvamVjdC5cXG5cIiArXG5cdFx0XHRcdFwiICBJbnN0YWxsIERvY2tlciBEZXNrdG9wOiBodHRwczovL3d3dy5kb2NrZXIuY29tL3Byb2R1Y3RzL2RvY2tlci1kZXNrdG9wXFxuXCIsXG5cdFx0KTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblxuXHRjb25zdCBob3N0VWlkID0gcHJvY2Vzcy5nZXR1aWQ/LigpO1xuXHRjb25zdCBob3N0R2lkID0gcHJvY2Vzcy5nZXRnaWQ/LigpID8/IGhvc3RVaWQ7XG5cdGNvbnN0IHJ1bkFzSG9zdFVzZXIgPSBob3N0VWlkICE9IG51bGwgJiYgaG9zdEdpZCAhPSBudWxsO1xuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdFwiLWVcIixcblx0XHRgREVDT0hFUkVfUFJPSkVDVF9OQU1FPSR7cHJvamVjdE5hbWV9YCxcblx0XHRcIi1lXCIsXG5cdFx0XCJOUE1fQ09ORklHX0NBQ0hFPS9ucG0tY2FjaGVcIixcblx0XHRcIi1lXCIsXG5cdFx0XCJOUE1fQ09ORklHX1BSRUZFUl9PRkZMSU5FPXRydWVcIixcblx0XHRcIi1lXCIsXG5cdFx0YEhPTUU9JHtidWlsZGVySG9tZX1gLFxuXHRdO1xuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Y29uc3QgYXV0aDBDb25maWdEaXIgPSByZXNvbHZlKGhvbWVkaXIoKSwgXCIuY29uZmlnL2F1dGgwXCIpO1xuXHRpZiAoZXhpc3RzU3luYyhhdXRoMENvbmZpZ0RpcikpIHtcblx0XHR2b2x1bWVzLnB1c2goXCItdlwiLCBgJHthdXRoMENvbmZpZ0Rpcn06JHtidWlsZGVySG9tZX0vLmNvbmZpZy9hdXRoMGApO1xuXHR9XG5cblx0Y29uc3QgdXNlckFyZ3M6IHN0cmluZ1tdID0gW107XG5cdGlmIChydW5Bc0hvc3RVc2VyKSB7XG5cdFx0dXNlckFyZ3MucHVzaChcIi0tdXNlclwiLCBgJHtob3N0VWlkfToke2hvc3RHaWR9YCk7XG5cdH0gZWxzZSBpZiAoaG9zdFVpZCAhPSBudWxsKSB7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfVUlEPSR7aG9zdFVpZH1gKTtcblx0XHRpZiAoaG9zdEdpZCAhPSBudWxsKSBlbnZBcmdzLnB1c2goXCItZVwiLCBgSE9TVF9HSUQ9JHtob3N0R2lkfWApO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdGNvbnN0IHR0eUZsYWdzID0gcHJvY2Vzcy5zdGRpbi5pc1RUWSA/IFtcIi1pdFwiXSA6IFtcIi1pXCJdO1xuXG5cdGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhcblx0XHRcImRvY2tlclwiLFxuXHRcdFtcblx0XHRcdFwicnVuXCIsXG5cdFx0XHRcIi0tcm1cIixcblx0XHRcdC4uLnR0eUZsYWdzLFxuXHRcdFx0Li4udXNlckFyZ3MsXG5cdFx0XHQuLi52b2x1bWVzLFxuXHRcdFx0Li4uZW52QXJncyxcblx0XHRcdFwiLXdcIixcblx0XHRcdFwiL3dvcmtzcGFjZVwiLFxuXHRcdFx0QlVJTERFUl9JTUFHRSxcblx0XHRcdC4uLmNvbnRhaW5lckFyZ3YsXG5cdFx0XSxcblx0XHR7IHN0ZGlvOiBcImluaGVyaXRcIiB9LFxuXHQpO1xuXG5cdGlmIChyZXN1bHQuc3RhdHVzID09PSAwKSB7XG5cdFx0Y29uc29sZS5sb2coYFxcbiAgU2NhZmZvbGQgY29tcGxldGUhXFxuXFxuICBPcGVuIHlvdXIgcHJvamVjdDpcXG5cXG4gICAgY29kZSAke3RhcmdldERpcn1cXG5gKTtcblx0fVxuXG5cdHByb2Nlc3MuZXhpdChyZXN1bHQuc3RhdHVzID8/IDApO1xufVxuIl0sIm5hbWVzIjpbInJ1bkluQnVpbGRlciIsIkJVSUxERVJfSU1BR0UiLCJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiYXJndiIsInRhcmdldERpciIsImNvbnRhaW5lckFyZ3YiLCJwcm9qZWN0TmFtZSIsInJlc29sdmVMYXVuY2giLCJta2RpclN5bmMiLCJyZWN1cnNpdmUiLCJyZXNvbHZlIiwiZXhlY0ZpbGVTeW5jIiwic3RkaW8iLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzIiwiZXhpdCIsImhvc3RVaWQiLCJnZXR1aWQiLCJob3N0R2lkIiwiZ2V0Z2lkIiwicnVuQXNIb3N0VXNlciIsIm5wbUNhY2hlRGlyIiwiaG9tZWRpciIsImJ1aWxkZXJIb21lIiwidm9sdW1lcyIsImVudkFyZ3MiLCJucG1yY1BhdGgiLCJleGlzdHNTeW5jIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJsb2ciLCJ0dHlGbGFncyIsInN0ZGluIiwiaXNUVFkiLCJyZXN1bHQiLCJzcGF3blN5bmMiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBYWdCQTs7O2VBQUFBOzs7bUNBYndCO3dCQUNGO3dCQUNkOzBCQUNBOytCQUNNO3lCQUMwQjtBQUV4RCxNQUFNQyxnQkFBZ0IsR0FBR0MsZ0NBQXVCLENBQUMsQ0FBQyxFQUFFQyx1QkFBYyxFQUFFO0FBTTdELFNBQVNILGFBQWFJLElBQWM7SUFDMUMsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLElBQUFBLDRCQUFhLEVBQUNKO0lBQ2hFSyxJQUFBQSxpQkFBUyxFQUFDSixXQUFXO1FBQUVLLFdBQVc7SUFBSztJQUN2Q0QsSUFBQUEsaUJBQVMsRUFBQ0UsSUFBQUEsaUJBQU8sRUFBQ04sV0FBVyxpQkFBaUIsYUFBYTtRQUFFSyxXQUFXO0lBQUs7SUFFN0UsSUFBSTtRQUNIRSxJQUFBQSwrQkFBWSxFQUFDLFVBQVU7WUFBQztTQUFPLEVBQUU7WUFBRUMsT0FBTztRQUFPO0lBQ2xELEVBQUUsT0FBTTtRQUNQQyxRQUFRQyxLQUFLLENBQ1osNkRBQ0M7UUFFRkMsUUFBUUMsSUFBSSxDQUFDO0lBQ2Q7SUFFQSxNQUFNQyxVQUFVRixRQUFRRyxNQUFNO0lBQzlCLE1BQU1DLFVBQVVKLFFBQVFLLE1BQU0sUUFBUUg7SUFDdEMsTUFBTUksZ0JBQWdCSixXQUFXLFFBQVFFLFdBQVc7SUFFcEQsTUFBTUcsY0FBY1osSUFBQUEsaUJBQU8sRUFBQ2EsSUFBQUEsZUFBTyxLQUFJO0lBQ3ZDZixJQUFBQSxpQkFBUyxFQUFDYyxhQUFhO1FBQUViLFdBQVc7SUFBSztJQUV6QyxNQUFNZSxjQUFjO0lBRXBCLE1BQU1DLFVBQW9CO1FBQ3pCO1FBQ0EsR0FBR3JCLFVBQVUsV0FBVyxDQUFDO1FBQ3pCO1FBQ0EsR0FBR2tCLFlBQVksV0FBVyxDQUFDO0tBQzNCO0lBRUQsTUFBTUksVUFBb0I7UUFDekI7UUFDQTtRQUNBO1FBQ0EsQ0FBQyxzQkFBc0IsRUFBRXBCLGFBQWE7UUFDdEM7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLENBQUMsS0FBSyxFQUFFa0IsYUFBYTtLQUNyQjtJQUVELE1BQU1HLFlBQVlqQixJQUFBQSxpQkFBTyxFQUFDYSxJQUFBQSxlQUFPLEtBQUk7SUFDckMsSUFBSUssSUFBQUEsa0JBQVUsRUFBQ0QsWUFBWTtRQUMxQkYsUUFBUUksSUFBSSxDQUFDLE1BQU0sR0FBR0YsVUFBVSxtQkFBbUIsQ0FBQztRQUNwREQsUUFBUUcsSUFBSSxDQUFDLE1BQU07SUFDcEI7SUFFQSxNQUFNQyxpQkFBaUJwQixJQUFBQSxpQkFBTyxFQUFDYSxJQUFBQSxlQUFPLEtBQUk7SUFDMUMsSUFBSUssSUFBQUEsa0JBQVUsRUFBQ0UsaUJBQWlCO1FBQy9CTCxRQUFRSSxJQUFJLENBQUMsTUFBTSxHQUFHQyxlQUFlLENBQUMsRUFBRU4sWUFBWSxjQUFjLENBQUM7SUFDcEU7SUFFQSxNQUFNTyxXQUFxQixFQUFFO0lBQzdCLElBQUlWLGVBQWU7UUFDbEJVLFNBQVNGLElBQUksQ0FBQyxVQUFVLEdBQUdaLFFBQVEsQ0FBQyxFQUFFRSxTQUFTO0lBQ2hELE9BQU8sSUFBSUYsV0FBVyxNQUFNO1FBQzNCUyxRQUFRRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRVosU0FBUztRQUN4QyxJQUFJRSxXQUFXLE1BQU1PLFFBQVFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFVixTQUFTO0lBQzlEO0lBRUFOLFFBQVFtQixHQUFHLENBQUM7SUFFWixNQUFNQyxXQUFXbEIsUUFBUW1CLEtBQUssQ0FBQ0MsS0FBSyxHQUFHO1FBQUM7S0FBTSxHQUFHO1FBQUM7S0FBSztJQUV2RCxNQUFNQyxTQUFTQyxJQUFBQSw0QkFBUyxFQUN2QixVQUNBO1FBQ0M7UUFDQTtXQUNHSjtXQUNBRjtXQUNBTjtXQUNBQztRQUNIO1FBQ0E7UUFDQTFCO1dBQ0dLO0tBQ0gsRUFDRDtRQUFFTyxPQUFPO0lBQVU7SUFHcEIsSUFBSXdCLE9BQU9FLE1BQU0sS0FBSyxHQUFHO1FBQ3hCekIsUUFBUW1CLEdBQUcsQ0FBQyxDQUFDLDJEQUEyRCxFQUFFNUIsVUFBVSxFQUFFLENBQUM7SUFDeEY7SUFFQVcsUUFBUUMsSUFBSSxDQUFDb0IsT0FBT0UsTUFBTSxJQUFJO0FBQy9CIn0=
@@ -47,4 +47,4 @@ const createMetadata = resolveCreateMetadata();
47
47
  const CREATE_VERSION = createMetadata.version;
48
48
  const CREATE_IMAGE_REPOSITORY = createMetadata.imageRepository;
49
49
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvdmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG5jb25zdCBfcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxudHlwZSBDcmVhdGVQYWNrYWdlTWV0YWRhdGEgPSB7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZlcnNpb24/OiBzdHJpbmc7XG5cdGRlY29oZXJlPzoge1xuXHRcdGRvY2tlckltYWdlUmVwb3NpdG9yeT86IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04gPSBcIjAuMC4xLWRldlwiO1xuY29uc3QgREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IFwiZ2hjci5pby90eXBlc21pdGhzL2RlY29oZXJlL2NyZWF0ZVwiO1xuXG5mdW5jdGlvbiByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKSB7XG5cdGxldCBkaXIgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBrZyA9IF9yZXF1aXJlKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkgYXMgQ3JlYXRlUGFja2FnZU1ldGFkYXRhO1xuXHRcdFx0aWYgKHBrZy5uYW1lID09PSBcIkBkZWNvaGVyZS9jcmVhdGVcIikge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHZlcnNpb246IHBrZy52ZXJzaW9uID8/IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcdFx0aW1hZ2VSZXBvc2l0b3J5OlxuXHRcdFx0XHRcdFx0cGtnLmRlY29oZXJlPy5kb2NrZXJJbWFnZVJlcG9zaXRvcnkgPz8gREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cdFx0Y29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuXHRcdGlmIChwYXJlbnQgPT09IGRpcikgYnJlYWs7XG5cdFx0ZGlyID0gcGFyZW50O1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR2ZXJzaW9uOiBERUZBVUxUX0NSRUFURV9WRVJTSU9OLFxuXHRcdGltYWdlUmVwb3NpdG9yeTogREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0fTtcbn1cblxuY29uc3QgY3JlYXRlTWV0YWRhdGEgPSByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKTtcblxuLyoqIFZlcnNpb24gb2YgQGRlY29oZXJlL2NyZWF0ZSwgdXNlZCB0byBwaW4gc2NhZmZvbGRlZCBAZGVjb2hlcmUvKiBkZXBlbmRlbmNpZXMuICovXG5leHBvcnQgY29uc3QgQ1JFQVRFX1ZFUlNJT04gPSBjcmVhdGVNZXRhZGF0YS52ZXJzaW9uO1xuXG4vKiogQ2Fub25pY2FsIHB1Ymxpc2hlZCBEb2NrZXIgcmVwb3NpdG9yeSBmb3IgdGhlIEBkZWNvaGVyZS9jcmVhdGUgYnVpbGRlciBpbWFnZS4gKi9cbmV4cG9ydCBjb25zdCBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IGNyZWF0ZU1ldGFkYXRhLmltYWdlUmVwb3NpdG9yeTtcbiJdLCJuYW1lcyI6WyJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiX3JlcXVpcmUiLCJjcmVhdGVSZXF1aXJlIiwiREVGQVVMVF9DUkVBVEVfVkVSU0lPTiIsIkRFRkFVTFRfQ1JFQVRFX0lNQUdFX1JFUE9TSVRPUlkiLCJyZXNvbHZlQ3JlYXRlTWV0YWRhdGEiLCJkaXIiLCJkaXJuYW1lIiwiZmlsZVVSTFRvUGF0aCIsImkiLCJwa2ciLCJqb2luIiwibmFtZSIsInZlcnNpb24iLCJpbWFnZVJlcG9zaXRvcnkiLCJkZWNvaGVyZSIsImRvY2tlckltYWdlUmVwb3NpdG9yeSIsInBhcmVudCIsImNyZWF0ZU1ldGFkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQStDYUE7ZUFBQUE7O1FBSEFDO2VBQUFBOzs7NEJBNUNpQjswQkFDQTt5QkFDQTtBQUU5QixNQUFNQyxXQUFXQyxJQUFBQSx5QkFBYSxFQUFDO0FBVS9CLE1BQU1DLHlCQUF5QjtBQUMvQixNQUFNQyxrQ0FBa0M7QUFFeEMsU0FBU0M7SUFDUixJQUFJQyxNQUFNQyxJQUFBQSxpQkFBTyxFQUFDQyxJQUFBQSxzQkFBYSxFQUFDO0lBQ2hDLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJLEdBQUdBLElBQUs7UUFDM0IsSUFBSTtZQUNILE1BQU1DLE1BQU1ULFNBQVNVLElBQUFBLGNBQUksRUFBQ0wsS0FBSztZQUMvQixJQUFJSSxJQUFJRSxJQUFJLEtBQUssb0JBQW9CO2dCQUNwQyxPQUFPO29CQUNOQyxTQUFTSCxJQUFJRyxPQUFPLElBQUlWO29CQUN4QlcsaUJBQ0NKLElBQUlLLFFBQVEsRUFBRUMseUJBQXlCWjtnQkFDekM7WUFDRDtRQUNELEVBQUUsT0FBTSxDQUFDO1FBQ1QsTUFBTWEsU0FBU1YsSUFBQUEsaUJBQU8sRUFBQ0Q7UUFDdkIsSUFBSVcsV0FBV1gsS0FBSztRQUNwQkEsTUFBTVc7SUFDUDtJQUVBLE9BQU87UUFDTkosU0FBU1Y7UUFDVFcsaUJBQWlCVjtJQUNsQjtBQUNEO0FBRUEsTUFBTWMsaUJBQWlCYjtBQUdoQixNQUFNTCxpQkFBaUJrQixlQUFlTCxPQUFPO0FBRzdDLE1BQU1kLDBCQUEwQm1CLGVBQWVKLGVBQWUifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvdmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG5jb25zdCBfcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxudHlwZSBDcmVhdGVQYWNrYWdlTWV0YWRhdGEgPSB7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZlcnNpb24/OiBzdHJpbmc7XG5cdGRlY29oZXJlPzoge1xuXHRcdGRvY2tlckltYWdlUmVwb3NpdG9yeT86IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04gPSBcIjAuMC4xLWRldlwiO1xuY29uc3QgREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IFwiZ2hjci5pby90eXBlc21pdGhzL2RlY29oZXJlL2NyZWF0ZVwiO1xuXG5mdW5jdGlvbiByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKSB7XG5cdGxldCBkaXIgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBrZyA9IF9yZXF1aXJlKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkgYXMgQ3JlYXRlUGFja2FnZU1ldGFkYXRhO1xuXHRcdFx0aWYgKHBrZy5uYW1lID09PSBcIkBkZWNvaGVyZS9jcmVhdGVcIikge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHZlcnNpb246IHBrZy52ZXJzaW9uID8/IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcdFx0aW1hZ2VSZXBvc2l0b3J5OlxuXHRcdFx0XHRcdFx0cGtnLmRlY29oZXJlPy5kb2NrZXJJbWFnZVJlcG9zaXRvcnkgPz8gREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cdFx0Y29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuXHRcdGlmIChwYXJlbnQgPT09IGRpcikgYnJlYWs7XG5cdFx0ZGlyID0gcGFyZW50O1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR2ZXJzaW9uOiBERUZBVUxUX0NSRUFURV9WRVJTSU9OLFxuXHRcdGltYWdlUmVwb3NpdG9yeTogREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0fTtcbn1cblxuY29uc3QgY3JlYXRlTWV0YWRhdGEgPSByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKTtcblxuZXhwb3J0IGNvbnN0IENSRUFURV9WRVJTSU9OID0gY3JlYXRlTWV0YWRhdGEudmVyc2lvbjtcblxuZXhwb3J0IGNvbnN0IENSRUFURV9JTUFHRV9SRVBPU0lUT1JZID0gY3JlYXRlTWV0YWRhdGEuaW1hZ2VSZXBvc2l0b3J5O1xuIl0sIm5hbWVzIjpbIkNSRUFURV9JTUFHRV9SRVBPU0lUT1JZIiwiQ1JFQVRFX1ZFUlNJT04iLCJfcmVxdWlyZSIsImNyZWF0ZVJlcXVpcmUiLCJERUZBVUxUX0NSRUFURV9WRVJTSU9OIiwiREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsInJlc29sdmVDcmVhdGVNZXRhZGF0YSIsImRpciIsImRpcm5hbWUiLCJmaWxlVVJMVG9QYXRoIiwiaSIsInBrZyIsImpvaW4iLCJuYW1lIiwidmVyc2lvbiIsImltYWdlUmVwb3NpdG9yeSIsImRlY29oZXJlIiwiZG9ja2VySW1hZ2VSZXBvc2l0b3J5IiwicGFyZW50IiwiY3JlYXRlTWV0YWRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBNkNhQTtlQUFBQTs7UUFGQUM7ZUFBQUE7Ozs0QkEzQ2lCOzBCQUNBO3lCQUNBO0FBRTlCLE1BQU1DLFdBQVdDLElBQUFBLHlCQUFhLEVBQUM7QUFVL0IsTUFBTUMseUJBQXlCO0FBQy9CLE1BQU1DLGtDQUFrQztBQUV4QyxTQUFTQztJQUNSLElBQUlDLE1BQU1DLElBQUFBLGlCQUFPLEVBQUNDLElBQUFBLHNCQUFhLEVBQUM7SUFDaEMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUksR0FBR0EsSUFBSztRQUMzQixJQUFJO1lBQ0gsTUFBTUMsTUFBTVQsU0FBU1UsSUFBQUEsY0FBSSxFQUFDTCxLQUFLO1lBQy9CLElBQUlJLElBQUlFLElBQUksS0FBSyxvQkFBb0I7Z0JBQ3BDLE9BQU87b0JBQ05DLFNBQVNILElBQUlHLE9BQU8sSUFBSVY7b0JBQ3hCVyxpQkFDQ0osSUFBSUssUUFBUSxFQUFFQyx5QkFBeUJaO2dCQUN6QztZQUNEO1FBQ0QsRUFBRSxPQUFNLENBQUM7UUFDVCxNQUFNYSxTQUFTVixJQUFBQSxpQkFBTyxFQUFDRDtRQUN2QixJQUFJVyxXQUFXWCxLQUFLO1FBQ3BCQSxNQUFNVztJQUNQO0lBRUEsT0FBTztRQUNOSixTQUFTVjtRQUNUVyxpQkFBaUJWO0lBQ2xCO0FBQ0Q7QUFFQSxNQUFNYyxpQkFBaUJiO0FBRWhCLE1BQU1MLGlCQUFpQmtCLGVBQWVMLE9BQU87QUFFN0MsTUFBTWQsMEJBQTBCbUIsZUFBZUosZUFBZSJ9
package/es6/src/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { runCli } from "./program.js";
3
- void runCli();
2
+ import { runInBuilder } from "./runner.js";
3
+ runInBuilder(process.argv.slice(2));
4
4
 
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkNsaSB9IGZyb20gXCIuL3Byb2dyYW0uanNcIjtcblxudm9pZCBydW5DbGkoKTtcbiJdLCJuYW1lcyI6WyJydW5DbGkiXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxNQUFNLFFBQVEsZUFBZTtBQUV0QyxLQUFLQSJ9
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuXG5ydW5JbkJ1aWxkZXIocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTtcbiJdLCJuYW1lcyI6WyJydW5JbkJ1aWxkZXIiLCJwcm9jZXNzIiwiYXJndiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiO0FBQ0EsU0FBU0EsWUFBWSxRQUFRLGNBQWM7QUFFM0NBLGFBQWFDLFFBQVFDLElBQUksQ0FBQ0MsS0FBSyxDQUFDIn0=
@@ -0,0 +1,46 @@
1
+ import { basename, resolve } from "node:path";
2
+ /**
3
+ * Host `npm create` argv → directory to mount and argv for the in-image CLI.
4
+ * Positional `webapi my-app` wins over `-d` (npm treats `-d` as its own loglevel).
5
+ */ export function resolveLaunch(argv, cwd = process.cwd()) {
6
+ if (argv.length === 1 && (argv[0] === "--help" || argv[0] === "-h" || argv[0] === "--version")) {
7
+ return {
8
+ targetDir: cwd,
9
+ containerArgv: argv,
10
+ projectName: basename(cwd)
11
+ };
12
+ }
13
+ let directoryFlag;
14
+ const withoutD = [];
15
+ for(let i = 0; i < argv.length; i++){
16
+ const arg = argv[i];
17
+ if (arg === "-d") {
18
+ directoryFlag = argv[i + 1];
19
+ i++;
20
+ continue;
21
+ }
22
+ if (arg != null) withoutD.push(arg);
23
+ }
24
+ const isAdd = withoutD[0] === "webapi" && withoutD[1] === "add";
25
+ let positional;
26
+ let withoutPositional = withoutD;
27
+ if (!isAdd && withoutD[0] === "webapi" && withoutD[1] != null && !withoutD[1].startsWith("-")) {
28
+ positional = withoutD[1];
29
+ withoutPositional = [
30
+ withoutD[0],
31
+ ...withoutD.slice(2)
32
+ ];
33
+ }
34
+ const targetDir = resolve(cwd, positional?.trim() || directoryFlag?.trim() || ".");
35
+ return {
36
+ targetDir,
37
+ containerArgv: [
38
+ ...withoutPositional,
39
+ "-d",
40
+ "."
41
+ ],
42
+ projectName: basename(targetDir)
43
+ };
44
+ }
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcmVzb2x2ZS1sYXVuY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmV4cG9ydCB0eXBlIExhdW5jaFBsYW4gPSB7XG5cdHRhcmdldERpcjogc3RyaW5nO1xuXHRjb250YWluZXJBcmd2OiBzdHJpbmdbXTtcblx0cHJvamVjdE5hbWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogSG9zdCBgbnBtIGNyZWF0ZWAgYXJndiDihpIgZGlyZWN0b3J5IHRvIG1vdW50IGFuZCBhcmd2IGZvciB0aGUgaW4taW1hZ2UgQ0xJLlxuICogUG9zaXRpb25hbCBgd2ViYXBpIG15LWFwcGAgd2lucyBvdmVyIGAtZGAgKG5wbSB0cmVhdHMgYC1kYCBhcyBpdHMgb3duIGxvZ2xldmVsKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMYXVuY2goYXJndjogc3RyaW5nW10sIGN3ZCA9IHByb2Nlc3MuY3dkKCkpOiBMYXVuY2hQbGFuIHtcblx0aWYgKFxuXHRcdGFyZ3YubGVuZ3RoID09PSAxICYmXG5cdFx0KGFyZ3ZbMF0gPT09IFwiLS1oZWxwXCIgfHwgYXJndlswXSA9PT0gXCItaFwiIHx8IGFyZ3ZbMF0gPT09IFwiLS12ZXJzaW9uXCIpXG5cdCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHR0YXJnZXREaXI6IGN3ZCxcblx0XHRcdGNvbnRhaW5lckFyZ3Y6IGFyZ3YsXG5cdFx0XHRwcm9qZWN0TmFtZTogYmFzZW5hbWUoY3dkKSxcblx0XHR9O1xuXHR9XG5cdGxldCBkaXJlY3RvcnlGbGFnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGNvbnN0IHdpdGhvdXREOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3YubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBhcmcgPSBhcmd2W2ldO1xuXHRcdGlmIChhcmcgPT09IFwiLWRcIikge1xuXHRcdFx0ZGlyZWN0b3J5RmxhZyA9IGFyZ3ZbaSArIDFdO1xuXHRcdFx0aSsrO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChhcmcgIT0gbnVsbCkgd2l0aG91dEQucHVzaChhcmcpO1xuXHR9XG5cblx0Y29uc3QgaXNBZGQgPSB3aXRob3V0RFswXSA9PT0gXCJ3ZWJhcGlcIiAmJiB3aXRob3V0RFsxXSA9PT0gXCJhZGRcIjtcblx0bGV0IHBvc2l0aW9uYWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0bGV0IHdpdGhvdXRQb3NpdGlvbmFsID0gd2l0aG91dEQ7XG5cdGlmIChcblx0XHQhaXNBZGQgJiZcblx0XHR3aXRob3V0RFswXSA9PT0gXCJ3ZWJhcGlcIiAmJlxuXHRcdHdpdGhvdXREWzFdICE9IG51bGwgJiZcblx0XHQhd2l0aG91dERbMV0uc3RhcnRzV2l0aChcIi1cIilcblx0KSB7XG5cdFx0cG9zaXRpb25hbCA9IHdpdGhvdXREWzFdO1xuXHRcdHdpdGhvdXRQb3NpdGlvbmFsID0gW3dpdGhvdXREWzBdLCAuLi53aXRob3V0RC5zbGljZSgyKV07XG5cdH1cblxuXHRjb25zdCB0YXJnZXREaXIgPSByZXNvbHZlKGN3ZCwgcG9zaXRpb25hbD8udHJpbSgpIHx8IGRpcmVjdG9yeUZsYWc/LnRyaW0oKSB8fCBcIi5cIik7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0RGlyLFxuXHRcdGNvbnRhaW5lckFyZ3Y6IFsuLi53aXRob3V0UG9zaXRpb25hbCwgXCItZFwiLCBcIi5cIl0sXG5cdFx0cHJvamVjdE5hbWU6IGJhc2VuYW1lKHRhcmdldERpciksXG5cdH07XG59XG4iXSwibmFtZXMiOlsiYmFzZW5hbWUiLCJyZXNvbHZlIiwicmVzb2x2ZUxhdW5jaCIsImFyZ3YiLCJjd2QiLCJwcm9jZXNzIiwibGVuZ3RoIiwidGFyZ2V0RGlyIiwiY29udGFpbmVyQXJndiIsInByb2plY3ROYW1lIiwiZGlyZWN0b3J5RmxhZyIsIndpdGhvdXREIiwiaSIsImFyZyIsInB1c2giLCJpc0FkZCIsInBvc2l0aW9uYWwiLCJ3aXRob3V0UG9zaXRpb25hbCIsInN0YXJ0c1dpdGgiLCJzbGljZSIsInRyaW0iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsRUFBRUMsT0FBTyxRQUFRLFlBQVk7QUFROUM7OztDQUdDLEdBQ0QsT0FBTyxTQUFTQyxjQUFjQyxJQUFjLEVBQUVDLE1BQU1DLFFBQVFELEdBQUcsRUFBRTtJQUNoRSxJQUNDRCxLQUFLRyxNQUFNLEtBQUssS0FDZkgsQ0FBQUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZQSxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVSxHQUNsRTtRQUNELE9BQU87WUFDTkksV0FBV0g7WUFDWEksZUFBZUw7WUFDZk0sYUFBYVQsU0FBU0k7UUFDdkI7SUFDRDtJQUNBLElBQUlNO0lBQ0osTUFBTUMsV0FBcUIsRUFBRTtJQUM3QixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSVQsS0FBS0csTUFBTSxFQUFFTSxJQUFLO1FBQ3JDLE1BQU1DLE1BQU1WLElBQUksQ0FBQ1MsRUFBRTtRQUNuQixJQUFJQyxRQUFRLE1BQU07WUFDakJILGdCQUFnQlAsSUFBSSxDQUFDUyxJQUFJLEVBQUU7WUFDM0JBO1lBQ0E7UUFDRDtRQUNBLElBQUlDLE9BQU8sTUFBTUYsU0FBU0csSUFBSSxDQUFDRDtJQUNoQztJQUVBLE1BQU1FLFFBQVFKLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSztJQUMxRCxJQUFJSztJQUNKLElBQUlDLG9CQUFvQk47SUFDeEIsSUFDQyxDQUFDSSxTQUNESixRQUFRLENBQUMsRUFBRSxLQUFLLFlBQ2hCQSxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQ2YsQ0FBQ0EsUUFBUSxDQUFDLEVBQUUsQ0FBQ08sVUFBVSxDQUFDLE1BQ3ZCO1FBQ0RGLGFBQWFMLFFBQVEsQ0FBQyxFQUFFO1FBQ3hCTSxvQkFBb0I7WUFBQ04sUUFBUSxDQUFDLEVBQUU7ZUFBS0EsU0FBU1EsS0FBSyxDQUFDO1NBQUc7SUFDeEQ7SUFFQSxNQUFNWixZQUFZTixRQUFRRyxLQUFLWSxZQUFZSSxVQUFVVixlQUFlVSxVQUFVO0lBQzlFLE9BQU87UUFDTmI7UUFDQUMsZUFBZTtlQUFJUztZQUFtQjtZQUFNO1NBQUk7UUFDaERSLGFBQWFULFNBQVNPO0lBQ3ZCO0FBQ0QifQ==
package/es6/src/runner.js CHANGED
@@ -1,33 +1,21 @@
1
1
  import { execFileSync, spawnSync } from "node:child_process";
2
2
  import { existsSync, mkdirSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { basename, resolve } from "node:path";
4
+ import { resolve } from "node:path";
5
+ import { resolveLaunch } from "./resolve-launch.js";
5
6
  import { CREATE_IMAGE_REPOSITORY, CREATE_VERSION } from "./version.js";
6
7
  const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
7
8
  /**
8
- * Run the scaffold inside a pre-built Docker builder image.
9
- *
10
- * Called when `DECOHERE_BUILDER` is not set — i.e. the CLI is running on the
11
- * host, outside the container. Mounts the target directory as `/workspace` so
12
- * the scaffolded files are written back to the host filesystem.
13
- *
14
- * The container runs as the host uid/gid whenever possible so scaffolded files
15
- * are never root-owned (post-hoc `chown` is unreliable across Docker setups).
16
- *
17
- * Host `~/.config/auth0` is mounted when present so the Auth0 CLI can reuse
18
- * credentials (required for Postman SPA / auth0ClientId).
19
- */ export function runInBuilder(opts) {
20
- const targetDir = resolve(opts.d ?? ".");
21
- const projectName = basename(targetDir);
9
+ * Pull/run the Decohere CLI image. Host `@decohere/create` does not load the
10
+ * `@decohere/cli` dependency tree — that lives in the image only.
11
+ */ export function runInBuilder(argv) {
12
+ const { targetDir, containerArgv, projectName } = resolveLaunch(argv);
22
13
  mkdirSync(targetDir, {
23
14
  recursive: true
24
15
  });
25
- // Host-owned so initializeCommand can always write here even if something
26
- // else in .devcontainer ends up oddly owned.
27
16
  mkdirSync(resolve(targetDir, ".devcontainer", "npm-auth"), {
28
17
  recursive: true
29
18
  });
30
- // Ensure Docker is available.
31
19
  try {
32
20
  execFileSync("docker", [
33
21
  "info"
@@ -41,12 +29,10 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
41
29
  const hostUid = process.getuid?.();
42
30
  const hostGid = process.getgid?.() ?? hostUid;
43
31
  const runAsHostUser = hostUid != null && hostGid != null;
44
- // Anonymous root-owned volumes are not writable when we drop privileges.
45
32
  const npmCacheDir = resolve(homedir(), ".cache/decohere-create/npm");
46
33
  mkdirSync(npmCacheDir, {
47
34
  recursive: true
48
35
  });
49
- // Isolated HOME so --user host-uid can write without a matching /etc/passwd entry.
50
36
  const builderHome = "/tmp/decohere-create-home";
51
37
  const volumes = [
52
38
  "-v",
@@ -57,7 +43,6 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
57
43
  const envArgs = [
58
44
  "-e",
59
45
  "DECOHERE_BUILDER=1",
60
- // Host dir basename — container cwd is /workspace so basename would be wrong.
61
46
  "-e",
62
47
  `DECOHERE_PROJECT_NAME=${projectName}`,
63
48
  "-e",
@@ -67,14 +52,11 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
67
52
  "-e",
68
53
  `HOME=${builderHome}`
69
54
  ];
70
- // Mount host .npmrc where the non-root process can read it.
71
55
  const npmrcPath = resolve(homedir(), ".npmrc");
72
56
  if (existsSync(npmrcPath)) {
73
57
  volumes.push("-v", `${npmrcPath}:/tmp/host-npmrc:ro`);
74
58
  envArgs.push("-e", "NPM_CONFIG_USERCONFIG=/tmp/host-npmrc");
75
59
  }
76
- // Auth0 CLI reads credentials from $HOME/.config/auth0 — without this mount,
77
- // ensureSpaApp fails and Postman gets an empty auth0ClientId.
78
60
  const auth0ConfigDir = resolve(homedir(), ".config/auth0");
79
61
  if (existsSync(auth0ConfigDir)) {
80
62
  volumes.push("-v", `${auth0ConfigDir}:${builderHome}/.config/auth0`);
@@ -83,41 +65,10 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
83
65
  if (runAsHostUser) {
84
66
  userArgs.push("--user", `${hostUid}:${hostGid}`);
85
67
  } else if (hostUid != null) {
86
- // Fallback for environments without getgid: keep legacy chown path.
87
68
  envArgs.push("-e", `HOST_UID=${hostUid}`);
88
69
  if (hostGid != null) envArgs.push("-e", `HOST_GID=${hostGid}`);
89
70
  }
90
- const commandArgs = opts.add ? [
91
- "webapi",
92
- "add",
93
- opts.names?.[0] ?? "",
94
- "-d",
95
- "."
96
- ] : [
97
- "webapi",
98
- "-d",
99
- "."
100
- ];
101
- if (!opts.add) {
102
- for (const name of opts.names ?? []){
103
- commandArgs.push("--name", name);
104
- }
105
- }
106
- if (opts.databaseProvider != null) {
107
- commandArgs.push("--database", opts.databaseProvider);
108
- }
109
- if (opts.authProvider != null) {
110
- commandArgs.push("--auth", opts.authProvider);
111
- }
112
- if (opts.postmanProvider != null) {
113
- commandArgs.push("--postman", opts.postmanProvider);
114
- }
115
- if (opts.installDependencies != null) {
116
- commandArgs.push("--install", opts.installDependencies);
117
- }
118
71
  console.log(" Running scaffolding in a sandboxed container...\n");
119
- // Only allocate a TTY when stdin is itself a TTY — avoids a hung process
120
- // in non-interactive environments (pipes, CI, scripts).
121
72
  const ttyFlags = process.stdin.isTTY ? [
122
73
  "-it"
123
74
  ] : [
@@ -133,7 +84,7 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
133
84
  "-w",
134
85
  "/workspace",
135
86
  BUILDER_IMAGE,
136
- ...commandArgs
87
+ ...containerArgv
137
88
  ], {
138
89
  stdio: "inherit"
139
90
  });
@@ -143,4 +94,4 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
143
94
  process.exit(result.status ?? 0);
144
95
  }
145
96
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSwgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaU9wdGlvbnMgfSBmcm9tIFwiLi93ZWJhcGkvY3JlYXRlLWFwaS5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBSdW4gdGhlIHNjYWZmb2xkIGluc2lkZSBhIHByZS1idWlsdCBEb2NrZXIgYnVpbGRlciBpbWFnZS5cbiAqXG4gKiBDYWxsZWQgd2hlbiBgREVDT0hFUkVfQlVJTERFUmAgaXMgbm90IHNldCDigJQgaS5lLiB0aGUgQ0xJIGlzIHJ1bm5pbmcgb24gdGhlXG4gKiBob3N0LCBvdXRzaWRlIHRoZSBjb250YWluZXIuIE1vdW50cyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcyBgL3dvcmtzcGFjZWAgc29cbiAqIHRoZSBzY2FmZm9sZGVkIGZpbGVzIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIGhvc3QgZmlsZXN5c3RlbS5cbiAqXG4gKiBUaGUgY29udGFpbmVyIHJ1bnMgYXMgdGhlIGhvc3QgdWlkL2dpZCB3aGVuZXZlciBwb3NzaWJsZSBzbyBzY2FmZm9sZGVkIGZpbGVzXG4gKiBhcmUgbmV2ZXIgcm9vdC1vd25lZCAocG9zdC1ob2MgYGNob3duYCBpcyB1bnJlbGlhYmxlIGFjcm9zcyBEb2NrZXIgc2V0dXBzKS5cbiAqXG4gKiBIb3N0IGB+Ly5jb25maWcvYXV0aDBgIGlzIG1vdW50ZWQgd2hlbiBwcmVzZW50IHNvIHRoZSBBdXRoMCBDTEkgY2FuIHJldXNlXG4gKiBjcmVkZW50aWFscyAocmVxdWlyZWQgZm9yIFBvc3RtYW4gU1BBIC8gYXV0aDBDbGllbnRJZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JbkJ1aWxkZXIob3B0czogQXBpT3B0aW9ucyk6IG5ldmVyIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShvcHRzLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9IGJhc2VuYW1lKHRhcmdldERpcik7XG5cdG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHQvLyBIb3N0LW93bmVkIHNvIGluaXRpYWxpemVDb21tYW5kIGNhbiBhbHdheXMgd3JpdGUgaGVyZSBldmVuIGlmIHNvbWV0aGluZ1xuXHQvLyBlbHNlIGluIC5kZXZjb250YWluZXIgZW5kcyB1cCBvZGRseSBvd25lZC5cblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gRW5zdXJlIERvY2tlciBpcyBhdmFpbGFibGUuXG5cdHRyeSB7XG5cdFx0ZXhlY0ZpbGVTeW5jKFwiZG9ja2VyXCIsIFtcImluZm9cIl0sIHsgc3RkaW86IFwicGlwZVwiIH0pO1xuXHR9IGNhdGNoIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XCJcXG4gIERvY2tlciBpcyByZXF1aXJlZCB0byBzY2FmZm9sZCBhIERlY29oZXJlIHByb2plY3QuXFxuXCIgK1xuXHRcdFx0XHRcIiAgSW5zdGFsbCBEb2NrZXIgRGVza3RvcDogaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcFxcblwiLFxuXHRcdCk7XG5cdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHR9XG5cblx0Y29uc3QgaG9zdFVpZCA9IHByb2Nlc3MuZ2V0dWlkPy4oKTtcblx0Y29uc3QgaG9zdEdpZCA9IHByb2Nlc3MuZ2V0Z2lkPy4oKSA/PyBob3N0VWlkO1xuXHRjb25zdCBydW5Bc0hvc3RVc2VyID0gaG9zdFVpZCAhPSBudWxsICYmIGhvc3RHaWQgIT0gbnVsbDtcblxuXHQvLyBBbm9ueW1vdXMgcm9vdC1vd25lZCB2b2x1bWVzIGFyZSBub3Qgd3JpdGFibGUgd2hlbiB3ZSBkcm9wIHByaXZpbGVnZXMuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gSXNvbGF0ZWQgSE9NRSBzbyAtLXVzZXIgaG9zdC11aWQgY2FuIHdyaXRlIHdpdGhvdXQgYSBtYXRjaGluZyAvZXRjL3Bhc3N3ZCBlbnRyeS5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdC8vIEhvc3QgZGlyIGJhc2VuYW1lIOKAlCBjb250YWluZXIgY3dkIGlzIC93b3Jrc3BhY2Ugc28gYmFzZW5hbWUgd291bGQgYmUgd3JvbmcuXG5cdFx0XCItZVwiLFxuXHRcdGBERUNPSEVSRV9QUk9KRUNUX05BTUU9JHtwcm9qZWN0TmFtZX1gLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfQ0FDSEU9L25wbS1jYWNoZVwiLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfUFJFRkVSX09GRkxJTkU9dHJ1ZVwiLFxuXHRcdFwiLWVcIixcblx0XHRgSE9NRT0ke2J1aWxkZXJIb21lfWAsXG5cdF07XG5cblx0Ly8gTW91bnQgaG9zdCAubnBtcmMgd2hlcmUgdGhlIG5vbi1yb290IHByb2Nlc3MgY2FuIHJlYWQgaXQuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Ly8gQXV0aDAgQ0xJIHJlYWRzIGNyZWRlbnRpYWxzIGZyb20gJEhPTUUvLmNvbmZpZy9hdXRoMCDigJQgd2l0aG91dCB0aGlzIG1vdW50LFxuXHQvLyBlbnN1cmVTcGFBcHAgZmFpbHMgYW5kIFBvc3RtYW4gZ2V0cyBhbiBlbXB0eSBhdXRoMENsaWVudElkLlxuXHRjb25zdCBhdXRoMENvbmZpZ0RpciA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5jb25maWcvYXV0aDBcIik7XG5cdGlmIChleGlzdHNTeW5jKGF1dGgwQ29uZmlnRGlyKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke2F1dGgwQ29uZmlnRGlyfToke2J1aWxkZXJIb21lfS8uY29uZmlnL2F1dGgwYCk7XG5cdH1cblxuXHRjb25zdCB1c2VyQXJnczogc3RyaW5nW10gPSBbXTtcblx0aWYgKHJ1bkFzSG9zdFVzZXIpIHtcblx0XHR1c2VyQXJncy5wdXNoKFwiLS11c2VyXCIsIGAke2hvc3RVaWR9OiR7aG9zdEdpZH1gKTtcblx0fSBlbHNlIGlmIChob3N0VWlkICE9IG51bGwpIHtcblx0XHQvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgZ2V0Z2lkOiBrZWVwIGxlZ2FjeSBjaG93biBwYXRoLlxuXHRcdGVudkFyZ3MucHVzaChcIi1lXCIsIGBIT1NUX1VJRD0ke2hvc3RVaWR9YCk7XG5cdFx0aWYgKGhvc3RHaWQgIT0gbnVsbCkgZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfR0lEPSR7aG9zdEdpZH1gKTtcblx0fVxuXG5cdGNvbnN0IGNvbW1hbmRBcmdzOiBzdHJpbmdbXSA9IG9wdHMuYWRkXG5cdFx0PyBbXCJ3ZWJhcGlcIiwgXCJhZGRcIiwgb3B0cy5uYW1lcz8uWzBdID8/IFwiXCIsIFwiLWRcIiwgXCIuXCJdXG5cdFx0OiBbXCJ3ZWJhcGlcIiwgXCItZFwiLCBcIi5cIl07XG5cdGlmICghb3B0cy5hZGQpIHtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2Ygb3B0cy5uYW1lcyA/PyBbXSkge1xuXHRcdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tbmFtZVwiLCBuYW1lKTtcblx0XHR9XG5cdH1cblx0aWYgKG9wdHMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tZGF0YWJhc2VcIiwgb3B0cy5kYXRhYmFzZVByb3ZpZGVyKTtcblx0fVxuXHRpZiAob3B0cy5hdXRoUHJvdmlkZXIgIT0gbnVsbCkge1xuXHRcdGNvbW1hbmRBcmdzLnB1c2goXCItLWF1dGhcIiwgb3B0cy5hdXRoUHJvdmlkZXIpO1xuXHR9XG5cdGlmIChvcHRzLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tcG9zdG1hblwiLCBvcHRzLnBvc3RtYW5Qcm92aWRlcik7XG5cdH1cblx0aWYgKG9wdHMuaW5zdGFsbERlcGVuZGVuY2llcyAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0taW5zdGFsbFwiLCBvcHRzLmluc3RhbGxEZXBlbmRlbmNpZXMpO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdC8vIE9ubHkgYWxsb2NhdGUgYSBUVFkgd2hlbiBzdGRpbiBpcyBpdHNlbGYgYSBUVFkg4oCUIGF2b2lkcyBhIGh1bmcgcHJvY2Vzc1xuXHQvLyBpbiBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnRzIChwaXBlcywgQ0ksIHNjcmlwdHMpLlxuXHRjb25zdCB0dHlGbGFncyA9IHByb2Nlc3Muc3RkaW4uaXNUVFkgPyBbXCItaXRcIl0gOiBbXCItaVwiXTtcblxuXHRjb25zdCByZXN1bHQgPSBzcGF3blN5bmMoXG5cdFx0XCJkb2NrZXJcIixcblx0XHRbXG5cdFx0XHRcInJ1blwiLFxuXHRcdFx0XCItLXJtXCIsXG5cdFx0XHQuLi50dHlGbGFncyxcblx0XHRcdC4uLnVzZXJBcmdzLFxuXHRcdFx0Li4udm9sdW1lcyxcblx0XHRcdC4uLmVudkFyZ3MsXG5cdFx0XHRcIi13XCIsXG5cdFx0XHRcIi93b3Jrc3BhY2VcIixcblx0XHRcdEJVSUxERVJfSU1BR0UsXG5cdFx0XHQuLi5jb21tYW5kQXJncyxcblx0XHRdLFxuXHRcdHsgc3RkaW86IFwiaW5oZXJpdFwiIH0sXG5cdCk7XG5cblx0aWYgKHJlc3VsdC5zdGF0dXMgPT09IDApIHtcblx0XHRjb25zb2xlLmxvZyhgXFxuICBTY2FmZm9sZCBjb21wbGV0ZSFcXG5cXG4gIE9wZW4geW91ciBwcm9qZWN0OlxcblxcbiAgICBjb2RlICR7dGFyZ2V0RGlyfVxcbmApO1xuXHR9XG5cblx0cHJvY2Vzcy5leGl0KHJlc3VsdC5zdGF0dXMgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsiZXhlY0ZpbGVTeW5jIiwic3Bhd25TeW5jIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImhvbWVkaXIiLCJiYXNlbmFtZSIsInJlc29sdmUiLCJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiQlVJTERFUl9JTUFHRSIsInJ1bkluQnVpbGRlciIsIm9wdHMiLCJ0YXJnZXREaXIiLCJkIiwicHJvamVjdE5hbWUiLCJyZWN1cnNpdmUiLCJzdGRpbyIsImNvbnNvbGUiLCJlcnJvciIsInByb2Nlc3MiLCJleGl0IiwiaG9zdFVpZCIsImdldHVpZCIsImhvc3RHaWQiLCJnZXRnaWQiLCJydW5Bc0hvc3RVc2VyIiwibnBtQ2FjaGVEaXIiLCJidWlsZGVySG9tZSIsInZvbHVtZXMiLCJlbnZBcmdzIiwibnBtcmNQYXRoIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJjb21tYW5kQXJncyIsImFkZCIsIm5hbWVzIiwibmFtZSIsImRhdGFiYXNlUHJvdmlkZXIiLCJhdXRoUHJvdmlkZXIiLCJwb3N0bWFuUHJvdmlkZXIiLCJpbnN0YWxsRGVwZW5kZW5jaWVzIiwibG9nIiwidHR5RmxhZ3MiLCJzdGRpbiIsImlzVFRZIiwicmVzdWx0Iiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLEVBQUVDLFNBQVMsUUFBUSxxQkFBcUI7QUFDN0QsU0FBU0MsVUFBVSxFQUFFQyxTQUFTLFFBQVEsVUFBVTtBQUNoRCxTQUFTQyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sUUFBUSxZQUFZO0FBQzlDLFNBQVNDLHVCQUF1QixFQUFFQyxjQUFjLFFBQVEsZUFBZTtBQUd2RSxNQUFNQyxnQkFBZ0IsR0FBR0Ysd0JBQXdCLENBQUMsRUFBRUMsZ0JBQWdCO0FBRXBFOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE9BQU8sU0FBU0UsYUFBYUMsSUFBZ0I7SUFDNUMsTUFBTUMsWUFBWU4sUUFBUUssS0FBS0UsQ0FBQyxJQUFJO0lBQ3BDLE1BQU1DLGNBQWNULFNBQVNPO0lBQzdCVCxVQUFVUyxXQUFXO1FBQUVHLFdBQVc7SUFBSztJQUN2QywwRUFBMEU7SUFDMUUsNkNBQTZDO0lBQzdDWixVQUFVRyxR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
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHJlc29sdmVMYXVuY2ggfSBmcm9tIFwiLi9yZXNvbHZlLWxhdW5jaC5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX0lNQUdFX1JFUE9TSVRPUlksIENSRUFURV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvbi5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBQdWxsL3J1biB0aGUgRGVjb2hlcmUgQ0xJIGltYWdlLiBIb3N0IGBAZGVjb2hlcmUvY3JlYXRlYCBkb2VzIG5vdCBsb2FkIHRoZVxuICogYEBkZWNvaGVyZS9jbGlgIGRlcGVuZGVuY3kgdHJlZSDigJQgdGhhdCBsaXZlcyBpbiB0aGUgaW1hZ2Ugb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkluQnVpbGRlcihhcmd2OiBzdHJpbmdbXSk6IG5ldmVyIHtcblx0Y29uc3QgeyB0YXJnZXREaXIsIGNvbnRhaW5lckFyZ3YsIHByb2plY3ROYW1lIH0gPSByZXNvbHZlTGF1bmNoKGFyZ3YpO1xuXHRta2RpclN5bmModGFyZ2V0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0dHJ5IHtcblx0XHRleGVjRmlsZVN5bmMoXCJkb2NrZXJcIiwgW1wiaW5mb1wiXSwgeyBzdGRpbzogXCJwaXBlXCIgfSk7XG5cdH0gY2F0Y2gge1xuXHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcIlxcbiAgRG9ja2VyIGlzIHJlcXVpcmVkIHRvIHNjYWZmb2xkIGEgRGVjb2hlcmUgcHJvamVjdC5cXG5cIiArXG5cdFx0XHRcdFwiICBJbnN0YWxsIERvY2tlciBEZXNrdG9wOiBodHRwczovL3d3dy5kb2NrZXIuY29tL3Byb2R1Y3RzL2RvY2tlci1kZXNrdG9wXFxuXCIsXG5cdFx0KTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblxuXHRjb25zdCBob3N0VWlkID0gcHJvY2Vzcy5nZXR1aWQ/LigpO1xuXHRjb25zdCBob3N0R2lkID0gcHJvY2Vzcy5nZXRnaWQ/LigpID8/IGhvc3RVaWQ7XG5cdGNvbnN0IHJ1bkFzSG9zdFVzZXIgPSBob3N0VWlkICE9IG51bGwgJiYgaG9zdEdpZCAhPSBudWxsO1xuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdFwiLWVcIixcblx0XHRgREVDT0hFUkVfUFJPSkVDVF9OQU1FPSR7cHJvamVjdE5hbWV9YCxcblx0XHRcIi1lXCIsXG5cdFx0XCJOUE1fQ09ORklHX0NBQ0hFPS9ucG0tY2FjaGVcIixcblx0XHRcIi1lXCIsXG5cdFx0XCJOUE1fQ09ORklHX1BSRUZFUl9PRkZMSU5FPXRydWVcIixcblx0XHRcIi1lXCIsXG5cdFx0YEhPTUU9JHtidWlsZGVySG9tZX1gLFxuXHRdO1xuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Y29uc3QgYXV0aDBDb25maWdEaXIgPSByZXNvbHZlKGhvbWVkaXIoKSwgXCIuY29uZmlnL2F1dGgwXCIpO1xuXHRpZiAoZXhpc3RzU3luYyhhdXRoMENvbmZpZ0RpcikpIHtcblx0XHR2b2x1bWVzLnB1c2goXCItdlwiLCBgJHthdXRoMENvbmZpZ0Rpcn06JHtidWlsZGVySG9tZX0vLmNvbmZpZy9hdXRoMGApO1xuXHR9XG5cblx0Y29uc3QgdXNlckFyZ3M6IHN0cmluZ1tdID0gW107XG5cdGlmIChydW5Bc0hvc3RVc2VyKSB7XG5cdFx0dXNlckFyZ3MucHVzaChcIi0tdXNlclwiLCBgJHtob3N0VWlkfToke2hvc3RHaWR9YCk7XG5cdH0gZWxzZSBpZiAoaG9zdFVpZCAhPSBudWxsKSB7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfVUlEPSR7aG9zdFVpZH1gKTtcblx0XHRpZiAoaG9zdEdpZCAhPSBudWxsKSBlbnZBcmdzLnB1c2goXCItZVwiLCBgSE9TVF9HSUQ9JHtob3N0R2lkfWApO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdGNvbnN0IHR0eUZsYWdzID0gcHJvY2Vzcy5zdGRpbi5pc1RUWSA/IFtcIi1pdFwiXSA6IFtcIi1pXCJdO1xuXG5cdGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhcblx0XHRcImRvY2tlclwiLFxuXHRcdFtcblx0XHRcdFwicnVuXCIsXG5cdFx0XHRcIi0tcm1cIixcblx0XHRcdC4uLnR0eUZsYWdzLFxuXHRcdFx0Li4udXNlckFyZ3MsXG5cdFx0XHQuLi52b2x1bWVzLFxuXHRcdFx0Li4uZW52QXJncyxcblx0XHRcdFwiLXdcIixcblx0XHRcdFwiL3dvcmtzcGFjZVwiLFxuXHRcdFx0QlVJTERFUl9JTUFHRSxcblx0XHRcdC4uLmNvbnRhaW5lckFyZ3YsXG5cdFx0XSxcblx0XHR7IHN0ZGlvOiBcImluaGVyaXRcIiB9LFxuXHQpO1xuXG5cdGlmIChyZXN1bHQuc3RhdHVzID09PSAwKSB7XG5cdFx0Y29uc29sZS5sb2coYFxcbiAgU2NhZmZvbGQgY29tcGxldGUhXFxuXFxuICBPcGVuIHlvdXIgcHJvamVjdDpcXG5cXG4gICAgY29kZSAke3RhcmdldERpcn1cXG5gKTtcblx0fVxuXG5cdHByb2Nlc3MuZXhpdChyZXN1bHQuc3RhdHVzID8/IDApO1xufVxuIl0sIm5hbWVzIjpbImV4ZWNGaWxlU3luYyIsInNwYXduU3luYyIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJob21lZGlyIiwicmVzb2x2ZSIsInJlc29sdmVMYXVuY2giLCJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiQlVJTERFUl9JTUFHRSIsInJ1bkluQnVpbGRlciIsImFyZ3YiLCJ0YXJnZXREaXIiLCJjb250YWluZXJBcmd2IiwicHJvamVjdE5hbWUiLCJyZWN1cnNpdmUiLCJzdGRpbyIsImNvbnNvbGUiLCJlcnJvciIsInByb2Nlc3MiLCJleGl0IiwiaG9zdFVpZCIsImdldHVpZCIsImhvc3RHaWQiLCJnZXRnaWQiLCJydW5Bc0hvc3RVc2VyIiwibnBtQ2FjaGVEaXIiLCJidWlsZGVySG9tZSIsInZvbHVtZXMiLCJlbnZBcmdzIiwibnBtcmNQYXRoIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJsb2ciLCJ0dHlGbGFncyIsInN0ZGluIiwiaXNUVFkiLCJyZXN1bHQiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFlBQVksRUFBRUMsU0FBUyxRQUFRLHFCQUFxQjtBQUM3RCxTQUFTQyxVQUFVLEVBQUVDLFNBQVMsUUFBUSxVQUFVO0FBQ2hELFNBQVNDLE9BQU8sUUFBUSxVQUFVO0FBQ2xDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLGFBQWEsUUFBUSxzQkFBc0I7QUFDcEQsU0FBU0MsdUJBQXVCLEVBQUVDLGNBQWMsUUFBUSxlQUFlO0FBRXZFLE1BQU1DLGdCQUFnQixHQUFHRix3QkFBd0IsQ0FBQyxFQUFFQyxnQkFBZ0I7QUFFcEU7OztDQUdDLEdBQ0QsT0FBTyxTQUFTRSxhQUFhQyxJQUFjO0lBQzFDLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLFdBQVcsRUFBRSxHQUFHUixjQUFjSztJQUNoRVIsVUFBVVMsV0FBVztRQUFFRyxXQUFXO0lBQUs7SUFDdkNaLFVBQVVFLFFBQVFPLFdBQVcsaUJBQWlCLGFBQWE7UUFBRUcsV0FBVztJQUFLO0lBRTdFLElBQUk7UUFDSGYsYUFBYSxVQUFVO1lBQUM7U0FBTyxFQUFFO1lBQUVnQixPQUFPO1FBQU87SUFDbEQsRUFBRSxPQUFNO1FBQ1BDLFFBQVFDLEtBQUssQ0FDWiw2REFDQztRQUVGQyxRQUFRQyxJQUFJLENBQUM7SUFDZDtJQUVBLE1BQU1DLFVBQVVGLFFBQVFHLE1BQU07SUFDOUIsTUFBTUMsVUFBVUosUUFBUUssTUFBTSxRQUFRSDtJQUN0QyxNQUFNSSxnQkFBZ0JKLFdBQVcsUUFBUUUsV0FBVztJQUVwRCxNQUFNRyxjQUFjckIsUUFBUUQsV0FBVztJQUN2Q0QsVUFBVXVCLGFBQWE7UUFBRVgsV0FBVztJQUFLO0lBRXpDLE1BQU1ZLGNBQWM7SUFFcEIsTUFBTUMsVUFBb0I7UUFDekI7UUFDQSxHQUFHaEIsVUFBVSxXQUFXLENBQUM7UUFDekI7UUFDQSxHQUFHYyxZQUFZLFdBQVcsQ0FBQztLQUMzQjtJQUVELE1BQU1HLFVBQW9CO1FBQ3pCO1FBQ0E7UUFDQTtRQUNBLENBQUMsc0JBQXNCLEVBQUVmLGFBQWE7UUFDdEM7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLENBQUMsS0FBSyxFQUFFYSxhQUFhO0tBQ3JCO0lBRUQsTUFBTUcsWUFBWXpCLFFBQVFELFdBQVc7SUFDckMsSUFBSUYsV0FBVzRCLFlBQVk7UUFDMUJGLFFBQVFHLElBQUksQ0FBQyxNQUFNLEdBQUdELFVBQVUsbUJBQW1CLENBQUM7UUFDcERELFFBQVFFLElBQUksQ0FBQyxNQUFNO0lBQ3BCO0lBRUEsTUFBTUMsaUJBQWlCM0IsUUFBUUQsV0FBVztJQUMxQyxJQUFJRixXQUFXOEIsaUJBQWlCO1FBQy9CSixRQUFRRyxJQUFJLENBQUMsTUFBTSxHQUFHQyxlQUFlLENBQUMsRUFBRUwsWUFBWSxjQUFjLENBQUM7SUFDcEU7SUFFQSxNQUFNTSxXQUFxQixFQUFFO0lBQzdCLElBQUlSLGVBQWU7UUFDbEJRLFNBQVNGLElBQUksQ0FBQyxVQUFVLEdBQUdWLFFBQVEsQ0FBQyxFQUFFRSxTQUFTO0lBQ2hELE9BQU8sSUFBSUYsV0FBVyxNQUFNO1FBQzNCUSxRQUFRRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRVYsU0FBUztRQUN4QyxJQUFJRSxXQUFXLE1BQU1NLFFBQVFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFUixTQUFTO0lBQzlEO0lBRUFOLFFBQVFpQixHQUFHLENBQUM7SUFFWixNQUFNQyxXQUFXaEIsUUFBUWlCLEtBQUssQ0FBQ0MsS0FBSyxHQUFHO1FBQUM7S0FBTSxHQUFHO1FBQUM7S0FBSztJQUV2RCxNQUFNQyxTQUFTckMsVUFDZCxVQUNBO1FBQ0M7UUFDQTtXQUNHa0M7V0FDQUY7V0FDQUw7V0FDQUM7UUFDSDtRQUNBO1FBQ0FwQjtXQUNHSTtLQUNILEVBQ0Q7UUFBRUcsT0FBTztJQUFVO0lBR3BCLElBQUlzQixPQUFPQyxNQUFNLEtBQUssR0FBRztRQUN4QnRCLFFBQVFpQixHQUFHLENBQUMsQ0FBQywyREFBMkQsRUFBRXRCLFVBQVUsRUFBRSxDQUFDO0lBQ3hGO0lBRUFPLFFBQVFDLElBQUksQ0FBQ2tCLE9BQU9DLE1BQU0sSUFBSTtBQUMvQiJ9
@@ -26,7 +26,7 @@ function resolveCreateMetadata() {
26
26
  };
27
27
  }
28
28
  const createMetadata = resolveCreateMetadata();
29
- /** Version of @decohere/create, used to pin scaffolded @decohere/* dependencies. */ export const CREATE_VERSION = createMetadata.version;
30
- /** Canonical published Docker repository for the @decohere/create builder image. */ export const CREATE_IMAGE_REPOSITORY = createMetadata.imageRepository;
29
+ export const CREATE_VERSION = createMetadata.version;
30
+ export const CREATE_IMAGE_REPOSITORY = createMetadata.imageRepository;
31
31
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvdmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG5jb25zdCBfcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxudHlwZSBDcmVhdGVQYWNrYWdlTWV0YWRhdGEgPSB7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZlcnNpb24/OiBzdHJpbmc7XG5cdGRlY29oZXJlPzoge1xuXHRcdGRvY2tlckltYWdlUmVwb3NpdG9yeT86IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04gPSBcIjAuMC4xLWRldlwiO1xuY29uc3QgREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IFwiZ2hjci5pby90eXBlc21pdGhzL2RlY29oZXJlL2NyZWF0ZVwiO1xuXG5mdW5jdGlvbiByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKSB7XG5cdGxldCBkaXIgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBrZyA9IF9yZXF1aXJlKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkgYXMgQ3JlYXRlUGFja2FnZU1ldGFkYXRhO1xuXHRcdFx0aWYgKHBrZy5uYW1lID09PSBcIkBkZWNvaGVyZS9jcmVhdGVcIikge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHZlcnNpb246IHBrZy52ZXJzaW9uID8/IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcdFx0aW1hZ2VSZXBvc2l0b3J5OlxuXHRcdFx0XHRcdFx0cGtnLmRlY29oZXJlPy5kb2NrZXJJbWFnZVJlcG9zaXRvcnkgPz8gREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cdFx0Y29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuXHRcdGlmIChwYXJlbnQgPT09IGRpcikgYnJlYWs7XG5cdFx0ZGlyID0gcGFyZW50O1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR2ZXJzaW9uOiBERUZBVUxUX0NSRUFURV9WRVJTSU9OLFxuXHRcdGltYWdlUmVwb3NpdG9yeTogREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0fTtcbn1cblxuY29uc3QgY3JlYXRlTWV0YWRhdGEgPSByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKTtcblxuLyoqIFZlcnNpb24gb2YgQGRlY29oZXJlL2NyZWF0ZSwgdXNlZCB0byBwaW4gc2NhZmZvbGRlZCBAZGVjb2hlcmUvKiBkZXBlbmRlbmNpZXMuICovXG5leHBvcnQgY29uc3QgQ1JFQVRFX1ZFUlNJT04gPSBjcmVhdGVNZXRhZGF0YS52ZXJzaW9uO1xuXG4vKiogQ2Fub25pY2FsIHB1Ymxpc2hlZCBEb2NrZXIgcmVwb3NpdG9yeSBmb3IgdGhlIEBkZWNvaGVyZS9jcmVhdGUgYnVpbGRlciBpbWFnZS4gKi9cbmV4cG9ydCBjb25zdCBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IGNyZWF0ZU1ldGFkYXRhLmltYWdlUmVwb3NpdG9yeTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVSZXF1aXJlIiwiZGlybmFtZSIsImpvaW4iLCJmaWxlVVJMVG9QYXRoIiwiX3JlcXVpcmUiLCJ1cmwiLCJERUZBVUxUX0NSRUFURV9WRVJTSU9OIiwiREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsInJlc29sdmVDcmVhdGVNZXRhZGF0YSIsImRpciIsImkiLCJwa2ciLCJuYW1lIiwidmVyc2lvbiIsImltYWdlUmVwb3NpdG9yeSIsImRlY29oZXJlIiwiZG9ja2VySW1hZ2VSZXBvc2l0b3J5IiwicGFyZW50IiwiY3JlYXRlTWV0YWRhdGEiLCJDUkVBVEVfVkVSU0lPTiIsIkNSRUFURV9JTUFHRV9SRVBPU0lUT1JZIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsY0FBYztBQUM1QyxTQUFTQyxPQUFPLEVBQUVDLElBQUksUUFBUSxZQUFZO0FBQzFDLFNBQVNDLGFBQWEsUUFBUSxXQUFXO0FBRXpDLE1BQU1DLFdBQVdKLGNBQWMsWUFBWUssR0FBRztBQVU5QyxNQUFNQyx5QkFBeUI7QUFDL0IsTUFBTUMsa0NBQWtDO0FBRXhDLFNBQVNDO0lBQ1IsSUFBSUMsTUFBTVIsUUFBUUUsY0FBYyxZQUFZRSxHQUFHO0lBQy9DLElBQUssSUFBSUssSUFBSSxHQUFHQSxJQUFJLEdBQUdBLElBQUs7UUFDM0IsSUFBSTtZQUNILE1BQU1DLE1BQU1QLFNBQVNGLEtBQUtPLEtBQUs7WUFDL0IsSUFBSUUsSUFBSUMsSUFBSSxLQUFLLG9CQUFvQjtnQkFDcEMsT0FBTztvQkFDTkMsU0FBU0YsSUFBSUUsT0FBTyxJQUFJUDtvQkFDeEJRLGlCQUNDSCxJQUFJSSxRQUFRLEVBQUVDLHlCQUF5QlQ7Z0JBQ3pDO1lBQ0Q7UUFDRCxFQUFFLE9BQU0sQ0FBQztRQUNULE1BQU1VLFNBQVNoQixRQUFRUTtRQUN2QixJQUFJUSxXQUFXUixLQUFLO1FBQ3BCQSxNQUFNUTtJQUNQO0lBRUEsT0FBTztRQUNOSixTQUFTUDtRQUNUUSxpQkFBaUJQO0lBQ2xCO0FBQ0Q7QUFFQSxNQUFNVyxpQkFBaUJWO0FBRXZCLGtGQUFrRixHQUNsRixPQUFPLE1BQU1XLGlCQUFpQkQsZUFBZUwsT0FBTyxDQUFDO0FBRXJELGtGQUFrRixHQUNsRixPQUFPLE1BQU1PLDBCQUEwQkYsZUFBZUosZUFBZSxDQUFDIn0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvdmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG5jb25zdCBfcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxudHlwZSBDcmVhdGVQYWNrYWdlTWV0YWRhdGEgPSB7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZlcnNpb24/OiBzdHJpbmc7XG5cdGRlY29oZXJlPzoge1xuXHRcdGRvY2tlckltYWdlUmVwb3NpdG9yeT86IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04gPSBcIjAuMC4xLWRldlwiO1xuY29uc3QgREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSA9IFwiZ2hjci5pby90eXBlc21pdGhzL2RlY29oZXJlL2NyZWF0ZVwiO1xuXG5mdW5jdGlvbiByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKSB7XG5cdGxldCBkaXIgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBrZyA9IF9yZXF1aXJlKGpvaW4oZGlyLCBcInBhY2thZ2UuanNvblwiKSkgYXMgQ3JlYXRlUGFja2FnZU1ldGFkYXRhO1xuXHRcdFx0aWYgKHBrZy5uYW1lID09PSBcIkBkZWNvaGVyZS9jcmVhdGVcIikge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHZlcnNpb246IHBrZy52ZXJzaW9uID8/IERFRkFVTFRfQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcdFx0aW1hZ2VSZXBvc2l0b3J5OlxuXHRcdFx0XHRcdFx0cGtnLmRlY29oZXJlPy5kb2NrZXJJbWFnZVJlcG9zaXRvcnkgPz8gREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cdFx0Y29uc3QgcGFyZW50ID0gZGlybmFtZShkaXIpO1xuXHRcdGlmIChwYXJlbnQgPT09IGRpcikgYnJlYWs7XG5cdFx0ZGlyID0gcGFyZW50O1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR2ZXJzaW9uOiBERUZBVUxUX0NSRUFURV9WRVJTSU9OLFxuXHRcdGltYWdlUmVwb3NpdG9yeTogREVGQVVMVF9DUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSxcblx0fTtcbn1cblxuY29uc3QgY3JlYXRlTWV0YWRhdGEgPSByZXNvbHZlQ3JlYXRlTWV0YWRhdGEoKTtcblxuZXhwb3J0IGNvbnN0IENSRUFURV9WRVJTSU9OID0gY3JlYXRlTWV0YWRhdGEudmVyc2lvbjtcblxuZXhwb3J0IGNvbnN0IENSRUFURV9JTUFHRV9SRVBPU0lUT1JZID0gY3JlYXRlTWV0YWRhdGEuaW1hZ2VSZXBvc2l0b3J5O1xuIl0sIm5hbWVzIjpbImNyZWF0ZVJlcXVpcmUiLCJkaXJuYW1lIiwiam9pbiIsImZpbGVVUkxUb1BhdGgiLCJfcmVxdWlyZSIsInVybCIsIkRFRkFVTFRfQ1JFQVRFX1ZFUlNJT04iLCJERUZBVUxUX0NSRUFURV9JTUFHRV9SRVBPU0lUT1JZIiwicmVzb2x2ZUNyZWF0ZU1ldGFkYXRhIiwiZGlyIiwiaSIsInBrZyIsIm5hbWUiLCJ2ZXJzaW9uIiwiaW1hZ2VSZXBvc2l0b3J5IiwiZGVjb2hlcmUiLCJkb2NrZXJJbWFnZVJlcG9zaXRvcnkiLCJwYXJlbnQiLCJjcmVhdGVNZXRhZGF0YSIsIkNSRUFURV9WRVJTSU9OIiwiQ1JFQVRFX0lNQUdFX1JFUE9TSVRPUlkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBUSxjQUFjO0FBQzVDLFNBQVNDLE9BQU8sRUFBRUMsSUFBSSxRQUFRLFlBQVk7QUFDMUMsU0FBU0MsYUFBYSxRQUFRLFdBQVc7QUFFekMsTUFBTUMsV0FBV0osY0FBYyxZQUFZSyxHQUFHO0FBVTlDLE1BQU1DLHlCQUF5QjtBQUMvQixNQUFNQyxrQ0FBa0M7QUFFeEMsU0FBU0M7SUFDUixJQUFJQyxNQUFNUixRQUFRRSxjQUFjLFlBQVlFLEdBQUc7SUFDL0MsSUFBSyxJQUFJSyxJQUFJLEdBQUdBLElBQUksR0FBR0EsSUFBSztRQUMzQixJQUFJO1lBQ0gsTUFBTUMsTUFBTVAsU0FBU0YsS0FBS08sS0FBSztZQUMvQixJQUFJRSxJQUFJQyxJQUFJLEtBQUssb0JBQW9CO2dCQUNwQyxPQUFPO29CQUNOQyxTQUFTRixJQUFJRSxPQUFPLElBQUlQO29CQUN4QlEsaUJBQ0NILElBQUlJLFFBQVEsRUFBRUMseUJBQXlCVDtnQkFDekM7WUFDRDtRQUNELEVBQUUsT0FBTSxDQUFDO1FBQ1QsTUFBTVUsU0FBU2hCLFFBQVFRO1FBQ3ZCLElBQUlRLFdBQVdSLEtBQUs7UUFDcEJBLE1BQU1RO0lBQ1A7SUFFQSxPQUFPO1FBQ05KLFNBQVNQO1FBQ1RRLGlCQUFpQlA7SUFDbEI7QUFDRDtBQUVBLE1BQU1XLGlCQUFpQlY7QUFFdkIsT0FBTyxNQUFNVyxpQkFBaUJELGVBQWVMLE9BQU8sQ0FBQztBQUVyRCxPQUFPLE1BQU1PLDBCQUEwQkYsZUFBZUosZUFBZSxDQUFDIn0=
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Pack `@decohere/create` for the builder image with production deps bundled
4
- * from dist/release. Direct `@decohere/*` dependencies are rewritten to `file:`
5
- * (not `overrides` — npm EOVERRIDE rejects overriding a direct dep). Nested
6
- * workspace packages get the same rewrite so `npm install` never hits the
7
- * private registry. The image then `npm install -g --offline`.
3
+ * Vendor `@decohere/cli` for the builder image: resolve `@decohere/*` from
4
+ * dist/release via `file:` (not `overrides`), `npm install --install-links`,
5
+ * then tar the installed tree including `node_modules`. `--install-links`
6
+ * materializes `file:` packages (and their deps) instead of leaving symlinks
7
+ * whose nested installs live outside the create directory.
8
8
  */
9
9
  import { spawnSync } from "node:child_process";
10
- import { readdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
10
+ import { readdirSync, readFileSync, writeFileSync } from "node:fs";
11
11
  import { dirname, join, relative, resolve } from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
13
 
@@ -87,23 +87,6 @@ export function rewriteDecohereDepsToFile(pkg, fromDir, packages) {
87
87
  };
88
88
  }
89
89
 
90
- /**
91
- * @param {Record<string, unknown>} pkg
92
- * @returns {string[]}
93
- */
94
- export function productionDepNames(pkg) {
95
- const deps = pkg.dependencies;
96
- if (deps == null || typeof deps !== "object") return [];
97
- return Object.keys(deps);
98
- }
99
-
100
- /**
101
- * @param {Record<string, unknown>} pkg
102
- */
103
- export function withBundleDependencies(pkg) {
104
- return { ...pkg, bundleDependencies: productionDepNames(pkg) };
105
- }
106
-
107
90
  function writeJson(path, value) {
108
91
  writeFileSync(path, `${JSON.stringify(value, null, 2)}\n`);
109
92
  }
@@ -118,6 +101,17 @@ function runNpm(cwd, args) {
118
101
  return result.stdout.trim();
119
102
  }
120
103
 
104
+ function packInstalledTree(outDir, dest) {
105
+ const result = spawnSync(
106
+ "tar",
107
+ ["--create", "--gzip", "--dereference", "--file", dest, "-C", outDir, "."],
108
+ { encoding: "utf8" },
109
+ );
110
+ if (result.status !== 0) {
111
+ throw new Error(`tar failed (exit ${result.status}):\n${result.stderr}${result.stdout}`);
112
+ }
113
+ }
114
+
121
115
  export function packBuilderTgz(options) {
122
116
  const outDir = resolve(options.outDir);
123
117
  const workspaceOut = resolve(options.workspaceOut);
@@ -137,24 +131,14 @@ export function packBuilderTgz(options) {
137
131
  for (const { path, original } of originals) {
138
132
  writeJson(path, rewriteDecohereDepsToFile(original, dirname(path), packages));
139
133
  }
140
- runNpm(outDir, ["install", "--omit=dev", "--ignore-scripts"]);
134
+ runNpm(outDir, ["install", "--omit=dev", "--ignore-scripts", "--install-links"]);
141
135
  } finally {
142
136
  for (const { path, original } of originals) {
143
137
  writeJson(path, original);
144
138
  }
145
139
  }
146
140
 
147
- writeJson(packageJsonPath, withBundleDependencies(createOriginal));
148
- try {
149
- const packed = runNpm(outDir, ["pack", "--pack-destination", dirname(dest)]);
150
- const tgzName = packed.split(/\r?\n/).at(-1)?.replace(/^.*\//, "");
151
- if (tgzName == null || tgzName === "") {
152
- throw new Error(`npm pack did not print a tarball name:\n${packed}`);
153
- }
154
- renameSync(join(dirname(dest), tgzName), dest);
155
- } finally {
156
- writeJson(packageJsonPath, createOriginal);
157
- }
141
+ packInstalledTree(outDir, dest);
158
142
  return dest;
159
143
  }
160
144
 
package/package.json CHANGED
@@ -1,15 +1,12 @@
1
1
  {
2
2
  "name": "@decohere/create",
3
- "version": "0.0.1-dev.47",
4
- "description": "Scaffold a new Decohere project — build with Forge, serve with Flux",
3
+ "version": "0.0.1-dev.49",
4
+ "description": "Download the Decohere scaffolder image and run it (npm create @decohere)",
5
5
  "keywords": [
6
6
  "decohere",
7
7
  "create",
8
8
  "scaffold",
9
- "cli",
10
- "forge",
11
- "flux",
12
- "typescript"
9
+ "cli"
13
10
  ],
14
11
  "license": "ISC",
15
12
  "author": "Typesmiths",
@@ -20,11 +17,7 @@
20
17
  "scripts": {
21
18
  "test": "echo \"Error: no test specified\" && exit 1"
22
19
  },
23
- "dependencies": {
24
- "@decohere/nexus": "0.0.1-dev.47",
25
- "commander": "^13.1.0",
26
- "openapi-to-postmanv2": "^5.0.0"
27
- },
20
+ "dependencies": {},
28
21
  "devDependencies": {},
29
22
  "decohere": {
30
23
  "dockerImageRepository": "ghcr.io/typesmiths/decohere/create"