@decohere/create 0.0.1-dev.41 → 0.0.1-dev.42

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.
@@ -3,120 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: Object.getOwnPropertyDescriptor(all, name).get
10
- });
11
- }
12
- _export(exports, {
13
- get createProgram () {
14
- return createProgram;
15
- },
16
- get runCreate () {
17
- return runCreate;
18
- }
19
- });
20
- const _nodepath = require("node:path");
21
- const _nodeurl = require("node:url");
22
- const _commander = require("commander");
23
- const _resolvetargetdir = require("./resolve-target-dir.js");
24
- const _runner = require("./runner.js");
25
- const _createapi = require("./webapi/create-api.js");
26
- function _getRequireWildcardCache(nodeInterop) {
27
- if (typeof WeakMap !== "function") return null;
28
- var cacheBabelInterop = new WeakMap();
29
- var cacheNodeInterop = new WeakMap();
30
- return (_getRequireWildcardCache = function(nodeInterop) {
31
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
- })(nodeInterop);
33
- }
34
- function _interop_require_wildcard(obj, nodeInterop) {
35
- if (!nodeInterop && obj && obj.__esModule) {
36
- return obj;
37
- }
38
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
- return {
40
- default: obj
41
- };
42
- }
43
- var cache = _getRequireWildcardCache(nodeInterop);
44
- if (cache && cache.has(obj)) {
45
- return cache.get(obj);
46
- }
47
- var newObj = {
48
- __proto__: null
49
- };
50
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
- for(var key in obj){
52
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
53
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
54
- if (desc && (desc.get || desc.set)) {
55
- Object.defineProperty(newObj, key, desc);
56
- } else {
57
- newObj[key] = obj[key];
58
- }
59
- }
60
- }
61
- newObj.default = obj;
62
- if (cache) {
63
- cache.set(obj, newObj);
64
- }
65
- return newObj;
66
- }
67
- function createProgram() {
68
- const program = new _commander.Command();
69
- program.exitOverride();
70
- program.name("decohere").description("Scaffold a new Decohere project").option("-d <directory>", "Target directory (default: current directory)", ".");
71
- program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--database <provider>", "Database provider: none | postgres/typeorm").option("--auth <provider>", "Auth provider: none | auth0").option("--postman <provider>", "Postman provider: none | local | api").option("-y, --yes", "Install dependencies without prompting").option("--install <mode>", "Dependency install mode: ask | yes | no", "ask").action(async (directory, _opts, cmd)=>{
72
- const opts = cmd.optsWithGlobals();
73
- const installMode = String(opts.install ?? "ask").toLowerCase();
74
- const normalized = {
75
- d: (0, _resolvetargetdir.resolveTargetDir)(directory, typeof opts.d === "string" ? opts.d : undefined),
76
- databaseProvider: opts.database,
77
- authProvider: opts.auth,
78
- postmanProvider: opts.postman,
79
- installDependencies: opts.yes === true ? "yes" : installMode === "yes" || installMode === "no" ? installMode : undefined
80
- };
81
- if (process.env.DECOHERE_BUILDER !== "1") {
82
- (0, _runner.runInBuilder)(normalized);
83
- return;
84
- }
85
- const { closePrompt } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./domain/prompt.js")));
86
- try {
87
- await (0, _createapi.scaffoldApi)(normalized);
88
- } finally{
89
- closePrompt();
90
- }
91
- });
92
- return program;
93
- }
94
- async function runCreate(argv) {
95
- await createProgram().parseAsync(argv, {
96
- from: "user"
97
- });
98
- }
99
- function isCliEntry() {
100
- const entry = process.argv[1];
101
- if (!entry) {
102
- return false;
103
- }
104
- return require("url").pathToFileURL(__filename).toString() === (0, _nodeurl.pathToFileURL)((0, _nodepath.resolve)(entry)).href;
105
- }
106
- async function main() {
107
- try {
108
- await createProgram().parseAsync(process.argv);
109
- } catch (err) {
110
- if (err instanceof _commander.CommanderError) {
111
- process.exit(err.exitCode);
112
- }
113
- console.error(err);
114
- process.exit(1);
115
- }
116
- process.exit(process.exitCode ?? 0);
117
- }
118
- if (isCliEntry()) {
119
- void main();
120
- }
6
+ const _program = require("./program.js");
7
+ void (0, _program.runCli)();
121
8
 
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kZXJFcnJvciB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJlc29sdmVUYXJnZXREaXIgfSBmcm9tIFwiLi9yZXNvbHZlLXRhcmdldC1kaXIuanNcIjtcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBBcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmltcG9ydCB7IHNjYWZmb2xkQXBpIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oKTogQ29tbWFuZCB7XG5cdGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXHRwcm9ncmFtLmV4aXRPdmVycmlkZSgpO1xuXHRwcm9ncmFtXG5cdFx0Lm5hbWUoXCJkZWNvaGVyZVwiKVxuXHRcdC5kZXNjcmlwdGlvbihcIlNjYWZmb2xkIGEgbmV3IERlY29oZXJlIHByb2plY3RcIilcblx0XHQub3B0aW9uKFwiLWQgPGRpcmVjdG9yeT5cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiBjdXJyZW50IGRpcmVjdG9yeSlcIiwgXCIuXCIpO1xuXG5cdHByb2dyYW1cblx0XHQuY29tbWFuZChcIndlYmFwaVwiKVxuXHRcdC5hcmd1bWVudChcIltkaXJlY3RvcnldXCIsIFwiVGFyZ2V0IGRpcmVjdG9yeSAoZGVmYXVsdDogLWQgb3IgY3VycmVudCBkaXJlY3RvcnkpXCIpXG5cdFx0Lm9wdGlvbihcIi0tZGF0YWJhc2UgPHByb3ZpZGVyPlwiLCBcIkRhdGFiYXNlIHByb3ZpZGVyOiBub25lIHwgcG9zdGdyZXMvdHlwZW9ybVwiKVxuXHRcdC5vcHRpb24oXCItLWF1dGggPHByb3ZpZGVyPlwiLCBcIkF1dGggcHJvdmlkZXI6IG5vbmUgfCBhdXRoMFwiKVxuXHRcdC5vcHRpb24oXCItLXBvc3RtYW4gPHByb3ZpZGVyPlwiLCBcIlBvc3RtYW4gcHJvdmlkZXI6IG5vbmUgfCBsb2NhbCB8IGFwaVwiKVxuXHRcdC5vcHRpb24oXCIteSwgLS15ZXNcIiwgXCJJbnN0YWxsIGRlcGVuZGVuY2llcyB3aXRob3V0IHByb21wdGluZ1wiKVxuXHRcdC5vcHRpb24oXCItLWluc3RhbGwgPG1vZGU+XCIsIFwiRGVwZW5kZW5jeSBpbnN0YWxsIG1vZGU6IGFzayB8IHllcyB8IG5vXCIsIFwiYXNrXCIpXG5cdFx0LmFjdGlvbihhc3luYyAoZGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIF9vcHRzOiB1bmtub3duLCBjbWQ6IENvbW1hbmQpID0+IHtcblx0XHRcdGNvbnN0IG9wdHMgPSBjbWQub3B0c1dpdGhHbG9iYWxzKCk7XG5cdFx0XHRjb25zdCBpbnN0YWxsTW9kZSA9IFN0cmluZyhvcHRzLmluc3RhbGwgPz8gXCJhc2tcIikudG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IG5vcm1hbGl6ZWQ6IEFwaU9wdGlvbnMgPSB7XG5cdFx0XHRcdGQ6IHJlc29sdmVUYXJnZXREaXIoZGlyZWN0b3J5LCB0eXBlb2Ygb3B0cy5kID09PSBcInN0cmluZ1wiID8gb3B0cy5kIDogdW5kZWZpbmVkKSxcblx0XHRcdFx0ZGF0YWJhc2VQcm92aWRlcjogb3B0cy5kYXRhYmFzZSxcblx0XHRcdFx0YXV0aFByb3ZpZGVyOiBvcHRzLmF1dGgsXG5cdFx0XHRcdHBvc3RtYW5Qcm92aWRlcjogb3B0cy5wb3N0bWFuLFxuXHRcdFx0XHRpbnN0YWxsRGVwZW5kZW5jaWVzOlxuXHRcdFx0XHRcdG9wdHMueWVzID09PSB0cnVlXG5cdFx0XHRcdFx0XHQ/IFwieWVzXCJcblx0XHRcdFx0XHRcdDogaW5zdGFsbE1vZGUgPT09IFwieWVzXCIgfHwgaW5zdGFsbE1vZGUgPT09IFwibm9cIlxuXHRcdFx0XHRcdFx0XHQ/IGluc3RhbGxNb2RlXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHByb2Nlc3MuZW52LkRFQ09IRVJFX0JVSUxERVIgIT09IFwiMVwiKSB7XG5cdFx0XHRcdHJ1bkluQnVpbGRlcihub3JtYWxpemVkKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB7IGNsb3NlUHJvbXB0IH0gPSBhd2FpdCBpbXBvcnQoXCIuL2RvbWFpbi9wcm9tcHQuanNcIik7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBzY2FmZm9sZEFwaShub3JtYWxpemVkKTtcblx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdGNsb3NlUHJvbXB0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbi8qKiBQYXJzZSBhcmd2IGFzIHRoZSBwdWJsaXNoZWQgYmluIGRvZXMgKGBmcm9tOiBcInVzZXJcImAgPSBubyBub2RlL3NjcmlwdCBwcmVmaXgpLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNyZWF0ZShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuXHRhd2FpdCBjcmVhdGVQcm9ncmFtKCkucGFyc2VBc3luYyhhcmd2LCB7IGZyb206IFwidXNlclwiIH0pO1xufVxuXG5mdW5jdGlvbiBpc0NsaUVudHJ5KCk6IGJvb2xlYW4ge1xuXHRjb25zdCBlbnRyeSA9IHByb2Nlc3MuYXJndlsxXTtcblx0aWYgKCFlbnRyeSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gaW1wb3J0Lm1ldGEudXJsID09PSBwYXRoVG9GaWxlVVJMKHJlc29sdmUoZW50cnkpKS5ocmVmO1xufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuXHR0cnkge1xuXHRcdGF3YWl0IGNyZWF0ZVByb2dyYW0oKS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndik7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBDb21tYW5kZXJFcnJvcikge1xuXHRcdFx0cHJvY2Vzcy5leGl0KGVyci5leGl0Q29kZSk7XG5cdFx0fVxuXHRcdGNvbnNvbGUuZXJyb3IoZXJyKTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblx0cHJvY2Vzcy5leGl0KHByb2Nlc3MuZXhpdENvZGUgPz8gMCk7XG59XG5cbmlmIChpc0NsaUVudHJ5KCkpIHtcblx0dm9pZCBtYWluKCk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUHJvZ3JhbSIsInJ1bkNyZWF0ZSIsInByb2dyYW0iLCJDb21tYW5kIiwiZXhpdE92ZXJyaWRlIiwibmFtZSIsImRlc2NyaXB0aW9uIiwib3B0aW9uIiwiY29tbWFuZCIsImFyZ3VtZW50IiwiYWN0aW9uIiwiZGlyZWN0b3J5IiwiX29wdHMiLCJjbWQiLCJvcHRzIiwib3B0c1dpdGhHbG9iYWxzIiwiaW5zdGFsbE1vZGUiLCJTdHJpbmciLCJpbnN0YWxsIiwidG9Mb3dlckNhc2UiLCJub3JtYWxpemVkIiwiZCIsInJlc29sdmVUYXJnZXREaXIiLCJ1bmRlZmluZWQiLCJkYXRhYmFzZVByb3ZpZGVyIiwiZGF0YWJhc2UiLCJhdXRoUHJvdmlkZXIiLCJhdXRoIiwicG9zdG1hblByb3ZpZGVyIiwicG9zdG1hbiIsImluc3RhbGxEZXBlbmRlbmNpZXMiLCJ5ZXMiLCJwcm9jZXNzIiwiZW52IiwiREVDT0hFUkVfQlVJTERFUiIsInJ1bkluQnVpbGRlciIsImNsb3NlUHJvbXB0Iiwic2NhZmZvbGRBcGkiLCJhcmd2IiwicGFyc2VBc3luYyIsImZyb20iLCJpc0NsaUVudHJ5IiwiZW50cnkiLCJwYXRoVG9GaWxlVVJMIiwicmVzb2x2ZSIsImhyZWYiLCJtYWluIiwiZXJyIiwiQ29tbWFuZGVyRXJyb3IiLCJleGl0IiwiZXhpdENvZGUiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztRQVNnQkE7ZUFBQUE7O1FBaURNQztlQUFBQTs7OzBCQXpERTt5QkFDTTsyQkFDVTtrQ0FDUDt3QkFDSjsyQkFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLFNBQVNEO0lBQ2YsTUFBTUUsVUFBVSxJQUFJQyxrQkFBTztJQUMzQkQsUUFBUUUsWUFBWTtJQUNwQkYsUUFDRUcsSUFBSSxDQUFDLFlBQ0xDLFdBQVcsQ0FBQyxtQ0FDWkMsTUFBTSxDQUFDLGtCQUFrQixpREFBaUQ7SUFFNUVMLFFBQ0VNLE9BQU8sQ0FBQyxVQUNSQyxRQUFRLENBQUMsZUFBZSx1REFDeEJGLE1BQU0sQ0FBQyx5QkFBeUIsOENBQ2hDQSxNQUFNLENBQUMscUJBQXFCLCtCQUM1QkEsTUFBTSxDQUFDLHdCQUF3Qix3Q0FDL0JBLE1BQU0sQ0FBQyxhQUFhLDBDQUNwQkEsTUFBTSxDQUFDLG9CQUFvQiwyQ0FBMkMsT0FDdEVHLE1BQU0sQ0FBQyxPQUFPQyxXQUErQkMsT0FBZ0JDO1FBQzdELE1BQU1DLE9BQU9ELElBQUlFLGVBQWU7UUFDaEMsTUFBTUMsY0FBY0MsT0FBT0gsS0FBS0ksT0FBTyxJQUFJLE9BQU9DLFdBQVc7UUFDN0QsTUFBTUMsYUFBeUI7WUFDOUJDLEdBQUdDLElBQUFBLGtDQUFnQixFQUFDWCxXQUFXLE9BQU9HLEtBQUtPLENBQUMsS0FBSyxXQUFXUCxLQUFLTyxDQUFDLEdBQUdFO1lBQ3JFQyxrQkFBa0JWLEtBQUtXLFFBQVE7WUFDL0JDLGNBQWNaLEtBQUthLElBQUk7WUFDdkJDLGlCQUFpQmQsS0FBS2UsT0FBTztZQUM3QkMscUJBQ0NoQixLQUFLaUIsR0FBRyxLQUFLLE9BQ1YsUUFDQWYsZ0JBQWdCLFNBQVNBLGdCQUFnQixPQUN4Q0EsY0FDQU87UUFDTjtRQUVBLElBQUlTLFFBQVFDLEdBQUcsQ0FBQ0MsZ0JBQWdCLEtBQUssS0FBSztZQUN6Q0MsSUFBQUEsb0JBQVksRUFBQ2Y7WUFDYjtRQUNEO1FBRUEsTUFBTSxFQUFFZ0IsV0FBVyxFQUFFLEdBQUcsTUFBTSxtRUFBQSxRQUFPO1FBQ3JDLElBQUk7WUFDSCxNQUFNQyxJQUFBQSxzQkFBVyxFQUFDakI7UUFDbkIsU0FBVTtZQUNUZ0I7UUFDRDtJQUNEO0lBRUQsT0FBT2xDO0FBQ1I7QUFHTyxlQUFlRCxVQUFVcUMsSUFBYztJQUM3QyxNQUFNdEMsZ0JBQWdCdUMsVUFBVSxDQUFDRCxNQUFNO1FBQUVFLE1BQU07SUFBTztBQUN2RDtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsUUFBUVYsUUFBUU0sSUFBSSxDQUFDLEVBQUU7SUFDN0IsSUFBSSxDQUFDSSxPQUFPO1FBQ1gsT0FBTztJQUNSO0lBQ0EsT0FBTyx3REFBb0JDLElBQUFBLHNCQUFhLEVBQUNDLElBQUFBLGlCQUFPLEVBQUNGLFFBQVFHLElBQUk7QUFDOUQ7QUFFQSxlQUFlQztJQUNkLElBQUk7UUFDSCxNQUFNOUMsZ0JBQWdCdUMsVUFBVSxDQUFDUCxRQUFRTSxJQUFJO0lBQzlDLEVBQUUsT0FBT1MsS0FBSztRQUNiLElBQUlBLGVBQWVDLHlCQUFjLEVBQUU7WUFDbENoQixRQUFRaUIsSUFBSSxDQUFDRixJQUFJRyxRQUFRO1FBQzFCO1FBQ0FDLFFBQVFDLEtBQUssQ0FBQ0w7UUFDZGYsUUFBUWlCLElBQUksQ0FBQztJQUNkO0lBQ0FqQixRQUFRaUIsSUFBSSxDQUFDakIsUUFBUWtCLFFBQVEsSUFBSTtBQUNsQztBQUVBLElBQUlULGNBQWM7SUFDakIsS0FBS0s7QUFDTiJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkNsaSB9IGZyb20gXCIuL3Byb2dyYW0uanNcIjtcblxudm9pZCBydW5DbGkoKTtcbiJdLCJuYW1lcyI6WyJydW5DbGkiXSwibWFwcGluZ3MiOiI7Ozs7O3lCQUN1QjtBQUV2QixLQUFLQSxJQUFBQSxlQUFNIn0=
@@ -18,9 +18,10 @@ class EnvFile {
18
18
  }
19
19
  files() {
20
20
  if (this._entries.size === 0) return [];
21
- const content = [
21
+ const body = [
22
22
  ...this._entries.entries()
23
- ].map(([k, v])=>`${k}=${v}`).join("\n") + "\n";
23
+ ].map(([k, v])=>`${k}=${v}`).join("\n");
24
+ const content = `${body}\n`;
24
25
  return [
25
26
  {
26
27
  filePath: ".env",
@@ -30,4 +31,4 @@ class EnvFile {
30
31
  }
31
32
  }
32
33
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Vudi1maWxlLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBY2N1bXVsYXRlcyBrZXk9dmFsdWUgcGFpcnMgYW5kIHJlbmRlcnMgdGhlbSBhcyBhIGAuZW52YCBmaWxlLlxuICpcbiAqIFJlZ2lzdGVyIG9uY2UgaW4gdGhlIHdvcmtzcGFjZTsgZmVhdHVyZXMgY2FsbCBgYWRkRW50cnlgIGR1cmluZyB0aGVpclxuICogc2NhZmZvbGQgcGhhc2UgdG8gY29udHJpYnV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoZSBmaW5hbCBmaWxlIGlzXG4gKiB3cml0dGVuIGF0IHJlbmRlciB0aW1lIHdoZW4gYHdvcmtzcGFjZS5zY2FmZm9sZCgpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5cdHB1YmxpYyBhZGRFbnRyeShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0aWYgKHRoaXMuX2VudHJpZXMuc2l6ZSA9PT0gMCkgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGNvbnRlbnQgPVxuXHRcdFx0Wy4uLnRoaXMuX2VudHJpZXMuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gYCR7a309JHt2fWApLmpvaW4oXCJcXG5cIikgKyBcIlxcblwiO1xuXHRcdHJldHVybiBbeyBmaWxlUGF0aDogXCIuZW52XCIsIGNvbnRlbnQgfV07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJFbnZGaWxlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIkVOVl9GSUxFIiwiX2VudHJpZXMiLCJNYXAiLCJhZGRFbnRyeSIsInZhbHVlIiwic2V0IiwiZmlsZXMiLCJzaXplIiwiY29udGVudCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJmaWxlUGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFVYUE7OztlQUFBQTs7O3VCQVZvQjtBQVUxQixNQUFNQTtJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsUUFBUSxDQUFDO0lBRS9CQyxXQUFXLElBQUlDLE1BQXNCO0lBRS9DQyxTQUFTTCxHQUFXLEVBQUVNLEtBQWEsRUFBUTtRQUNqRCxJQUFJLENBQUNILFFBQVEsQ0FBQ0ksR0FBRyxDQUFDUCxLQUFLTTtRQUN2QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxJQUFJLEtBQUssR0FBRyxPQUFPLEVBQUU7UUFDdkMsTUFBTUMsVUFDTDtlQUFJLElBQUksQ0FBQ1AsUUFBUSxDQUFDUSxPQUFPO1NBQUcsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsR0FBR0MsRUFBRSxHQUFLLEdBQUdELEVBQUUsQ0FBQyxFQUFFQyxHQUFHLEVBQUVDLElBQUksQ0FBQyxRQUFRO1FBQ3hFLE9BQU87WUFBQztnQkFBRUMsVUFBVTtnQkFBUU47WUFBUTtTQUFFO0lBQ3ZDO0FBQ0QifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Vudi1maWxlLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBY2N1bXVsYXRlcyBrZXk9dmFsdWUgcGFpcnMgYW5kIHJlbmRlcnMgdGhlbSBhcyBhIGAuZW52YCBmaWxlLlxuICpcbiAqIFJlZ2lzdGVyIG9uY2UgaW4gdGhlIHdvcmtzcGFjZTsgZmVhdHVyZXMgY2FsbCBgYWRkRW50cnlgIGR1cmluZyB0aGVpclxuICogc2NhZmZvbGQgcGhhc2UgdG8gY29udHJpYnV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoZSBmaW5hbCBmaWxlIGlzXG4gKiB3cml0dGVuIGF0IHJlbmRlciB0aW1lIHdoZW4gYHdvcmtzcGFjZS5zY2FmZm9sZCgpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5cdHB1YmxpYyBhZGRFbnRyeShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0aWYgKHRoaXMuX2VudHJpZXMuc2l6ZSA9PT0gMCkgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGJvZHkgPSBbLi4udGhpcy5fZW50cmllcy5lbnRyaWVzKCldLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0ke3Z9YCkuam9pbihcIlxcblwiKTtcblx0XHRjb25zdCBjb250ZW50ID0gYCR7Ym9keX1cXG5gO1xuXHRcdHJldHVybiBbeyBmaWxlUGF0aDogXCIuZW52XCIsIGNvbnRlbnQgfV07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJFbnZGaWxlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIkVOVl9GSUxFIiwiX2VudHJpZXMiLCJNYXAiLCJhZGRFbnRyeSIsInZhbHVlIiwic2V0IiwiZmlsZXMiLCJzaXplIiwiYm9keSIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJjb250ZW50IiwiZmlsZVBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWFBOzs7ZUFBQUE7Ozt1QkFWb0I7QUFVMUIsTUFBTUE7SUFDSUMsTUFBTUMsdUJBQWdCLENBQUNDLFFBQVEsQ0FBQztJQUUvQkMsV0FBVyxJQUFJQyxNQUFzQjtJQUUvQ0MsU0FBU0wsR0FBVyxFQUFFTSxLQUFhLEVBQVE7UUFDakQsSUFBSSxDQUFDSCxRQUFRLENBQUNJLEdBQUcsQ0FBQ1AsS0FBS007UUFDdkIsT0FBTyxJQUFJO0lBQ1o7SUFFT0UsUUFBc0I7UUFDNUIsSUFBSSxJQUFJLENBQUNMLFFBQVEsQ0FBQ00sSUFBSSxLQUFLLEdBQUcsT0FBTyxFQUFFO1FBQ3ZDLE1BQU1DLE9BQU87ZUFBSSxJQUFJLENBQUNQLFFBQVEsQ0FBQ1EsT0FBTztTQUFHLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQUNDLEdBQUdDLEVBQUUsR0FBSyxHQUFHRCxFQUFFLENBQUMsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7UUFDNUUsTUFBTUMsVUFBVSxHQUFHTixLQUFLLEVBQUUsQ0FBQztRQUMzQixPQUFPO1lBQUM7Z0JBQUVPLFVBQVU7Z0JBQVFEO1lBQVE7U0FBRTtJQUN2QztBQUNEIn0=
@@ -0,0 +1,104 @@
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 createProgram () {
13
+ return createProgram;
14
+ },
15
+ get runCli () {
16
+ return runCli;
17
+ }
18
+ });
19
+ const _commander = require("commander");
20
+ const _resolvetargetdir = require("./resolve-target-dir.js");
21
+ const _runner = require("./runner.js");
22
+ const _createapi = require("./webapi/create-api.js");
23
+ function _getRequireWildcardCache(nodeInterop) {
24
+ if (typeof WeakMap !== "function") return null;
25
+ var cacheBabelInterop = new WeakMap();
26
+ var cacheNodeInterop = new WeakMap();
27
+ return (_getRequireWildcardCache = function(nodeInterop) {
28
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
29
+ })(nodeInterop);
30
+ }
31
+ function _interop_require_wildcard(obj, nodeInterop) {
32
+ if (!nodeInterop && obj && obj.__esModule) {
33
+ return obj;
34
+ }
35
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
36
+ return {
37
+ default: obj
38
+ };
39
+ }
40
+ var cache = _getRequireWildcardCache(nodeInterop);
41
+ if (cache && cache.has(obj)) {
42
+ return cache.get(obj);
43
+ }
44
+ var newObj = {
45
+ __proto__: null
46
+ };
47
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
48
+ for(var key in obj){
49
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
50
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
51
+ if (desc && (desc.get || desc.set)) {
52
+ Object.defineProperty(newObj, key, desc);
53
+ } else {
54
+ newObj[key] = obj[key];
55
+ }
56
+ }
57
+ }
58
+ newObj.default = obj;
59
+ if (cache) {
60
+ cache.set(obj, newObj);
61
+ }
62
+ return newObj;
63
+ }
64
+ function createProgram() {
65
+ const program = new _commander.Command();
66
+ program.exitOverride();
67
+ program.name("decohere").description("Scaffold a new Decohere project").option("-d <directory>", "Target directory (default: current directory)", ".");
68
+ program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--database <provider>", "Database provider: none | postgres/typeorm").option("--auth <provider>", "Auth provider: none | auth0").option("--postman <provider>", "Postman provider: none | local | api").option("-y, --yes", "Install dependencies without prompting").option("--install <mode>", "Dependency install mode: ask | yes | no", "ask").action(async (directory, _opts, cmd)=>{
69
+ const opts = cmd.optsWithGlobals();
70
+ const installMode = String(opts.install ?? "ask").toLowerCase();
71
+ const normalized = {
72
+ d: (0, _resolvetargetdir.resolveTargetDir)(directory, typeof opts.d === "string" ? opts.d : undefined),
73
+ databaseProvider: opts.database,
74
+ authProvider: opts.auth,
75
+ postmanProvider: opts.postman,
76
+ installDependencies: opts.yes === true ? "yes" : installMode === "yes" || installMode === "no" ? installMode : undefined
77
+ };
78
+ if (process.env.DECOHERE_BUILDER !== "1") {
79
+ (0, _runner.runInBuilder)(normalized);
80
+ return;
81
+ }
82
+ const { closePrompt } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./domain/prompt.js")));
83
+ try {
84
+ await (0, _createapi.scaffoldApi)(normalized);
85
+ } finally{
86
+ closePrompt();
87
+ }
88
+ });
89
+ return program;
90
+ }
91
+ async function runCli(argv = process.argv) {
92
+ try {
93
+ await createProgram().parseAsync(argv);
94
+ } catch (err) {
95
+ if (err instanceof _commander.CommanderError) {
96
+ process.exit(err.exitCode);
97
+ }
98
+ console.error(err);
99
+ process.exit(1);
100
+ }
101
+ process.exit(process.exitCode ?? 0);
102
+ }
103
+
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcHJvZ3JhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kZXJFcnJvciB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJlc29sdmVUYXJnZXREaXIgfSBmcm9tIFwiLi9yZXNvbHZlLXRhcmdldC1kaXIuanNcIjtcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBBcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmltcG9ydCB7IHNjYWZmb2xkQXBpIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oKTogQ29tbWFuZCB7XG5cdGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXHRwcm9ncmFtLmV4aXRPdmVycmlkZSgpO1xuXHRwcm9ncmFtXG5cdFx0Lm5hbWUoXCJkZWNvaGVyZVwiKVxuXHRcdC5kZXNjcmlwdGlvbihcIlNjYWZmb2xkIGEgbmV3IERlY29oZXJlIHByb2plY3RcIilcblx0XHQub3B0aW9uKFwiLWQgPGRpcmVjdG9yeT5cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiBjdXJyZW50IGRpcmVjdG9yeSlcIiwgXCIuXCIpO1xuXG5cdHByb2dyYW1cblx0XHQuY29tbWFuZChcIndlYmFwaVwiKVxuXHRcdC5hcmd1bWVudChcIltkaXJlY3RvcnldXCIsIFwiVGFyZ2V0IGRpcmVjdG9yeSAoZGVmYXVsdDogLWQgb3IgY3VycmVudCBkaXJlY3RvcnkpXCIpXG5cdFx0Lm9wdGlvbihcIi0tZGF0YWJhc2UgPHByb3ZpZGVyPlwiLCBcIkRhdGFiYXNlIHByb3ZpZGVyOiBub25lIHwgcG9zdGdyZXMvdHlwZW9ybVwiKVxuXHRcdC5vcHRpb24oXCItLWF1dGggPHByb3ZpZGVyPlwiLCBcIkF1dGggcHJvdmlkZXI6IG5vbmUgfCBhdXRoMFwiKVxuXHRcdC5vcHRpb24oXCItLXBvc3RtYW4gPHByb3ZpZGVyPlwiLCBcIlBvc3RtYW4gcHJvdmlkZXI6IG5vbmUgfCBsb2NhbCB8IGFwaVwiKVxuXHRcdC5vcHRpb24oXCIteSwgLS15ZXNcIiwgXCJJbnN0YWxsIGRlcGVuZGVuY2llcyB3aXRob3V0IHByb21wdGluZ1wiKVxuXHRcdC5vcHRpb24oXCItLWluc3RhbGwgPG1vZGU+XCIsIFwiRGVwZW5kZW5jeSBpbnN0YWxsIG1vZGU6IGFzayB8IHllcyB8IG5vXCIsIFwiYXNrXCIpXG5cdFx0LmFjdGlvbihhc3luYyAoZGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIF9vcHRzOiB1bmtub3duLCBjbWQ6IENvbW1hbmQpID0+IHtcblx0XHRcdGNvbnN0IG9wdHMgPSBjbWQub3B0c1dpdGhHbG9iYWxzKCk7XG5cdFx0XHRjb25zdCBpbnN0YWxsTW9kZSA9IFN0cmluZyhvcHRzLmluc3RhbGwgPz8gXCJhc2tcIikudG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IG5vcm1hbGl6ZWQ6IEFwaU9wdGlvbnMgPSB7XG5cdFx0XHRcdGQ6IHJlc29sdmVUYXJnZXREaXIoZGlyZWN0b3J5LCB0eXBlb2Ygb3B0cy5kID09PSBcInN0cmluZ1wiID8gb3B0cy5kIDogdW5kZWZpbmVkKSxcblx0XHRcdFx0ZGF0YWJhc2VQcm92aWRlcjogb3B0cy5kYXRhYmFzZSxcblx0XHRcdFx0YXV0aFByb3ZpZGVyOiBvcHRzLmF1dGgsXG5cdFx0XHRcdHBvc3RtYW5Qcm92aWRlcjogb3B0cy5wb3N0bWFuLFxuXHRcdFx0XHRpbnN0YWxsRGVwZW5kZW5jaWVzOlxuXHRcdFx0XHRcdG9wdHMueWVzID09PSB0cnVlXG5cdFx0XHRcdFx0XHQ/IFwieWVzXCJcblx0XHRcdFx0XHRcdDogaW5zdGFsbE1vZGUgPT09IFwieWVzXCIgfHwgaW5zdGFsbE1vZGUgPT09IFwibm9cIlxuXHRcdFx0XHRcdFx0XHQ/IGluc3RhbGxNb2RlXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHByb2Nlc3MuZW52LkRFQ09IRVJFX0JVSUxERVIgIT09IFwiMVwiKSB7XG5cdFx0XHRcdHJ1bkluQnVpbGRlcihub3JtYWxpemVkKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB7IGNsb3NlUHJvbXB0IH0gPSBhd2FpdCBpbXBvcnQoXCIuL2RvbWFpbi9wcm9tcHQuanNcIik7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBzY2FmZm9sZEFwaShub3JtYWxpemVkKTtcblx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdGNsb3NlUHJvbXB0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5DbGkoYXJndjogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3YpOiBQcm9taXNlPHZvaWQ+IHtcblx0dHJ5IHtcblx0XHRhd2FpdCBjcmVhdGVQcm9ncmFtKCkucGFyc2VBc3luYyhhcmd2KTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKGVyciBpbnN0YW5jZW9mIENvbW1hbmRlckVycm9yKSB7XG5cdFx0XHRwcm9jZXNzLmV4aXQoZXJyLmV4aXRDb2RlKTtcblx0XHR9XG5cdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0fVxuXHRwcm9jZXNzLmV4aXQocHJvY2Vzcy5leGl0Q29kZSA/PyAwKTtcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVQcm9ncmFtIiwicnVuQ2xpIiwicHJvZ3JhbSIsIkNvbW1hbmQiLCJleGl0T3ZlcnJpZGUiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJvcHRpb24iLCJjb21tYW5kIiwiYXJndW1lbnQiLCJhY3Rpb24iLCJkaXJlY3RvcnkiLCJfb3B0cyIsImNtZCIsIm9wdHMiLCJvcHRzV2l0aEdsb2JhbHMiLCJpbnN0YWxsTW9kZSIsIlN0cmluZyIsImluc3RhbGwiLCJ0b0xvd2VyQ2FzZSIsIm5vcm1hbGl6ZWQiLCJkIiwicmVzb2x2ZVRhcmdldERpciIsInVuZGVmaW5lZCIsImRhdGFiYXNlUHJvdmlkZXIiLCJkYXRhYmFzZSIsImF1dGhQcm92aWRlciIsImF1dGgiLCJwb3N0bWFuUHJvdmlkZXIiLCJwb3N0bWFuIiwiaW5zdGFsbERlcGVuZGVuY2llcyIsInllcyIsInByb2Nlc3MiLCJlbnYiLCJERUNPSEVSRV9CVUlMREVSIiwicnVuSW5CdWlsZGVyIiwiY2xvc2VQcm9tcHQiLCJzY2FmZm9sZEFwaSIsImFyZ3YiLCJwYXJzZUFzeW5jIiwiZXJyIiwiQ29tbWFuZGVyRXJyb3IiLCJleGl0IiwiZXhpdENvZGUiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBTWdCQTtlQUFBQTs7UUFnRE1DO2VBQUFBOzs7MkJBdERrQjtrQ0FDUDt3QkFDSjsyQkFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLFNBQVNEO0lBQ2YsTUFBTUUsVUFBVSxJQUFJQyxrQkFBTztJQUMzQkQsUUFBUUUsWUFBWTtJQUNwQkYsUUFDRUcsSUFBSSxDQUFDLFlBQ0xDLFdBQVcsQ0FBQyxtQ0FDWkMsTUFBTSxDQUFDLGtCQUFrQixpREFBaUQ7SUFFNUVMLFFBQ0VNLE9BQU8sQ0FBQyxVQUNSQyxRQUFRLENBQUMsZUFBZSx1REFDeEJGLE1BQU0sQ0FBQyx5QkFBeUIsOENBQ2hDQSxNQUFNLENBQUMscUJBQXFCLCtCQUM1QkEsTUFBTSxDQUFDLHdCQUF3Qix3Q0FDL0JBLE1BQU0sQ0FBQyxhQUFhLDBDQUNwQkEsTUFBTSxDQUFDLG9CQUFvQiwyQ0FBMkMsT0FDdEVHLE1BQU0sQ0FBQyxPQUFPQyxXQUErQkMsT0FBZ0JDO1FBQzdELE1BQU1DLE9BQU9ELElBQUlFLGVBQWU7UUFDaEMsTUFBTUMsY0FBY0MsT0FBT0gsS0FBS0ksT0FBTyxJQUFJLE9BQU9DLFdBQVc7UUFDN0QsTUFBTUMsYUFBeUI7WUFDOUJDLEdBQUdDLElBQUFBLGtDQUFnQixFQUFDWCxXQUFXLE9BQU9HLEtBQUtPLENBQUMsS0FBSyxXQUFXUCxLQUFLTyxDQUFDLEdBQUdFO1lBQ3JFQyxrQkFBa0JWLEtBQUtXLFFBQVE7WUFDL0JDLGNBQWNaLEtBQUthLElBQUk7WUFDdkJDLGlCQUFpQmQsS0FBS2UsT0FBTztZQUM3QkMscUJBQ0NoQixLQUFLaUIsR0FBRyxLQUFLLE9BQ1YsUUFDQWYsZ0JBQWdCLFNBQVNBLGdCQUFnQixPQUN4Q0EsY0FDQU87UUFDTjtRQUVBLElBQUlTLFFBQVFDLEdBQUcsQ0FBQ0MsZ0JBQWdCLEtBQUssS0FBSztZQUN6Q0MsSUFBQUEsb0JBQVksRUFBQ2Y7WUFDYjtRQUNEO1FBRUEsTUFBTSxFQUFFZ0IsV0FBVyxFQUFFLEdBQUcsTUFBTSxtRUFBQSxRQUFPO1FBQ3JDLElBQUk7WUFDSCxNQUFNQyxJQUFBQSxzQkFBVyxFQUFDakI7UUFDbkIsU0FBVTtZQUNUZ0I7UUFDRDtJQUNEO0lBRUQsT0FBT2xDO0FBQ1I7QUFFTyxlQUFlRCxPQUFPcUMsT0FBaUJOLFFBQVFNLElBQUk7SUFDekQsSUFBSTtRQUNILE1BQU10QyxnQkFBZ0J1QyxVQUFVLENBQUNEO0lBQ2xDLEVBQUUsT0FBT0UsS0FBSztRQUNiLElBQUlBLGVBQWVDLHlCQUFjLEVBQUU7WUFDbENULFFBQVFVLElBQUksQ0FBQ0YsSUFBSUcsUUFBUTtRQUMxQjtRQUNBQyxRQUFRQyxLQUFLLENBQUNMO1FBQ2RSLFFBQVFVLElBQUksQ0FBQztJQUNkO0lBQ0FWLFFBQVFVLElBQUksQ0FBQ1YsUUFBUVcsUUFBUSxJQUFJO0FBQ2xDIn0=
package/es6/src/cli.js CHANGED
@@ -1,63 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { resolve } from "node:path";
3
- import { pathToFileURL } from "node:url";
4
- import { Command, CommanderError } from "commander";
5
- import { resolveTargetDir } from "./resolve-target-dir.js";
6
- import { runInBuilder } from "./runner.js";
7
- import { scaffoldApi } from "./webapi/create-api.js";
8
- export function createProgram() {
9
- const program = new Command();
10
- program.exitOverride();
11
- program.name("decohere").description("Scaffold a new Decohere project").option("-d <directory>", "Target directory (default: current directory)", ".");
12
- program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--database <provider>", "Database provider: none | postgres/typeorm").option("--auth <provider>", "Auth provider: none | auth0").option("--postman <provider>", "Postman provider: none | local | api").option("-y, --yes", "Install dependencies without prompting").option("--install <mode>", "Dependency install mode: ask | yes | no", "ask").action(async (directory, _opts, cmd)=>{
13
- const opts = cmd.optsWithGlobals();
14
- const installMode = String(opts.install ?? "ask").toLowerCase();
15
- const normalized = {
16
- d: resolveTargetDir(directory, typeof opts.d === "string" ? opts.d : undefined),
17
- databaseProvider: opts.database,
18
- authProvider: opts.auth,
19
- postmanProvider: opts.postman,
20
- installDependencies: opts.yes === true ? "yes" : installMode === "yes" || installMode === "no" ? installMode : undefined
21
- };
22
- if (process.env.DECOHERE_BUILDER !== "1") {
23
- runInBuilder(normalized);
24
- return;
25
- }
26
- const { closePrompt } = await import("./domain/prompt.js");
27
- try {
28
- await scaffoldApi(normalized);
29
- } finally{
30
- closePrompt();
31
- }
32
- });
33
- return program;
34
- }
35
- /** Parse argv as the published bin does (`from: "user"` = no node/script prefix). */ export async function runCreate(argv) {
36
- await createProgram().parseAsync(argv, {
37
- from: "user"
38
- });
39
- }
40
- function isCliEntry() {
41
- const entry = process.argv[1];
42
- if (!entry) {
43
- return false;
44
- }
45
- return import.meta.url === pathToFileURL(resolve(entry)).href;
46
- }
47
- async function main() {
48
- try {
49
- await createProgram().parseAsync(process.argv);
50
- } catch (err) {
51
- if (err instanceof CommanderError) {
52
- process.exit(err.exitCode);
53
- }
54
- console.error(err);
55
- process.exit(1);
56
- }
57
- process.exit(process.exitCode ?? 0);
58
- }
59
- if (isCliEntry()) {
60
- void main();
61
- }
2
+ import { runCli } from "./program.js";
3
+ void runCli();
62
4
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kZXJFcnJvciB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJlc29sdmVUYXJnZXREaXIgfSBmcm9tIFwiLi9yZXNvbHZlLXRhcmdldC1kaXIuanNcIjtcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBBcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmltcG9ydCB7IHNjYWZmb2xkQXBpIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oKTogQ29tbWFuZCB7XG5cdGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXHRwcm9ncmFtLmV4aXRPdmVycmlkZSgpO1xuXHRwcm9ncmFtXG5cdFx0Lm5hbWUoXCJkZWNvaGVyZVwiKVxuXHRcdC5kZXNjcmlwdGlvbihcIlNjYWZmb2xkIGEgbmV3IERlY29oZXJlIHByb2plY3RcIilcblx0XHQub3B0aW9uKFwiLWQgPGRpcmVjdG9yeT5cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiBjdXJyZW50IGRpcmVjdG9yeSlcIiwgXCIuXCIpO1xuXG5cdHByb2dyYW1cblx0XHQuY29tbWFuZChcIndlYmFwaVwiKVxuXHRcdC5hcmd1bWVudChcIltkaXJlY3RvcnldXCIsIFwiVGFyZ2V0IGRpcmVjdG9yeSAoZGVmYXVsdDogLWQgb3IgY3VycmVudCBkaXJlY3RvcnkpXCIpXG5cdFx0Lm9wdGlvbihcIi0tZGF0YWJhc2UgPHByb3ZpZGVyPlwiLCBcIkRhdGFiYXNlIHByb3ZpZGVyOiBub25lIHwgcG9zdGdyZXMvdHlwZW9ybVwiKVxuXHRcdC5vcHRpb24oXCItLWF1dGggPHByb3ZpZGVyPlwiLCBcIkF1dGggcHJvdmlkZXI6IG5vbmUgfCBhdXRoMFwiKVxuXHRcdC5vcHRpb24oXCItLXBvc3RtYW4gPHByb3ZpZGVyPlwiLCBcIlBvc3RtYW4gcHJvdmlkZXI6IG5vbmUgfCBsb2NhbCB8IGFwaVwiKVxuXHRcdC5vcHRpb24oXCIteSwgLS15ZXNcIiwgXCJJbnN0YWxsIGRlcGVuZGVuY2llcyB3aXRob3V0IHByb21wdGluZ1wiKVxuXHRcdC5vcHRpb24oXCItLWluc3RhbGwgPG1vZGU+XCIsIFwiRGVwZW5kZW5jeSBpbnN0YWxsIG1vZGU6IGFzayB8IHllcyB8IG5vXCIsIFwiYXNrXCIpXG5cdFx0LmFjdGlvbihhc3luYyAoZGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIF9vcHRzOiB1bmtub3duLCBjbWQ6IENvbW1hbmQpID0+IHtcblx0XHRcdGNvbnN0IG9wdHMgPSBjbWQub3B0c1dpdGhHbG9iYWxzKCk7XG5cdFx0XHRjb25zdCBpbnN0YWxsTW9kZSA9IFN0cmluZyhvcHRzLmluc3RhbGwgPz8gXCJhc2tcIikudG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IG5vcm1hbGl6ZWQ6IEFwaU9wdGlvbnMgPSB7XG5cdFx0XHRcdGQ6IHJlc29sdmVUYXJnZXREaXIoZGlyZWN0b3J5LCB0eXBlb2Ygb3B0cy5kID09PSBcInN0cmluZ1wiID8gb3B0cy5kIDogdW5kZWZpbmVkKSxcblx0XHRcdFx0ZGF0YWJhc2VQcm92aWRlcjogb3B0cy5kYXRhYmFzZSxcblx0XHRcdFx0YXV0aFByb3ZpZGVyOiBvcHRzLmF1dGgsXG5cdFx0XHRcdHBvc3RtYW5Qcm92aWRlcjogb3B0cy5wb3N0bWFuLFxuXHRcdFx0XHRpbnN0YWxsRGVwZW5kZW5jaWVzOlxuXHRcdFx0XHRcdG9wdHMueWVzID09PSB0cnVlXG5cdFx0XHRcdFx0XHQ/IFwieWVzXCJcblx0XHRcdFx0XHRcdDogaW5zdGFsbE1vZGUgPT09IFwieWVzXCIgfHwgaW5zdGFsbE1vZGUgPT09IFwibm9cIlxuXHRcdFx0XHRcdFx0XHQ/IGluc3RhbGxNb2RlXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHByb2Nlc3MuZW52LkRFQ09IRVJFX0JVSUxERVIgIT09IFwiMVwiKSB7XG5cdFx0XHRcdHJ1bkluQnVpbGRlcihub3JtYWxpemVkKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB7IGNsb3NlUHJvbXB0IH0gPSBhd2FpdCBpbXBvcnQoXCIuL2RvbWFpbi9wcm9tcHQuanNcIik7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBzY2FmZm9sZEFwaShub3JtYWxpemVkKTtcblx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdGNsb3NlUHJvbXB0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbi8qKiBQYXJzZSBhcmd2IGFzIHRoZSBwdWJsaXNoZWQgYmluIGRvZXMgKGBmcm9tOiBcInVzZXJcImAgPSBubyBub2RlL3NjcmlwdCBwcmVmaXgpLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNyZWF0ZShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuXHRhd2FpdCBjcmVhdGVQcm9ncmFtKCkucGFyc2VBc3luYyhhcmd2LCB7IGZyb206IFwidXNlclwiIH0pO1xufVxuXG5mdW5jdGlvbiBpc0NsaUVudHJ5KCk6IGJvb2xlYW4ge1xuXHRjb25zdCBlbnRyeSA9IHByb2Nlc3MuYXJndlsxXTtcblx0aWYgKCFlbnRyeSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gaW1wb3J0Lm1ldGEudXJsID09PSBwYXRoVG9GaWxlVVJMKHJlc29sdmUoZW50cnkpKS5ocmVmO1xufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuXHR0cnkge1xuXHRcdGF3YWl0IGNyZWF0ZVByb2dyYW0oKS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndik7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBDb21tYW5kZXJFcnJvcikge1xuXHRcdFx0cHJvY2Vzcy5leGl0KGVyci5leGl0Q29kZSk7XG5cdFx0fVxuXHRcdGNvbnNvbGUuZXJyb3IoZXJyKTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblx0cHJvY2Vzcy5leGl0KHByb2Nlc3MuZXhpdENvZGUgPz8gMCk7XG59XG5cbmlmIChpc0NsaUVudHJ5KCkpIHtcblx0dm9pZCBtYWluKCk7XG59XG4iXSwibmFtZXMiOlsicmVzb2x2ZSIsInBhdGhUb0ZpbGVVUkwiLCJDb21tYW5kIiwiQ29tbWFuZGVyRXJyb3IiLCJyZXNvbHZlVGFyZ2V0RGlyIiwicnVuSW5CdWlsZGVyIiwic2NhZmZvbGRBcGkiLCJjcmVhdGVQcm9ncmFtIiwicHJvZ3JhbSIsImV4aXRPdmVycmlkZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIm9wdGlvbiIsImNvbW1hbmQiLCJhcmd1bWVudCIsImFjdGlvbiIsImRpcmVjdG9yeSIsIl9vcHRzIiwiY21kIiwib3B0cyIsIm9wdHNXaXRoR2xvYmFscyIsImluc3RhbGxNb2RlIiwiU3RyaW5nIiwiaW5zdGFsbCIsInRvTG93ZXJDYXNlIiwibm9ybWFsaXplZCIsImQiLCJ1bmRlZmluZWQiLCJkYXRhYmFzZVByb3ZpZGVyIiwiZGF0YWJhc2UiLCJhdXRoUHJvdmlkZXIiLCJhdXRoIiwicG9zdG1hblByb3ZpZGVyIiwicG9zdG1hbiIsImluc3RhbGxEZXBlbmRlbmNpZXMiLCJ5ZXMiLCJwcm9jZXNzIiwiZW52IiwiREVDT0hFUkVfQlVJTERFUiIsImNsb3NlUHJvbXB0IiwicnVuQ3JlYXRlIiwiYXJndiIsInBhcnNlQXN5bmMiLCJmcm9tIiwiaXNDbGlFbnRyeSIsImVudHJ5IiwidXJsIiwiaHJlZiIsIm1haW4iLCJlcnIiLCJleGl0IiwiZXhpdENvZGUiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxhQUFhLFFBQVEsV0FBVztBQUN6QyxTQUFTQyxPQUFPLEVBQUVDLGNBQWMsUUFBUSxZQUFZO0FBQ3BELFNBQVNDLGdCQUFnQixRQUFRLDBCQUEwQjtBQUMzRCxTQUFTQyxZQUFZLFFBQVEsY0FBYztBQUUzQyxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBRXJELE9BQU8sU0FBU0M7SUFDZixNQUFNQyxVQUFVLElBQUlOO0lBQ3BCTSxRQUFRQyxZQUFZO0lBQ3BCRCxRQUNFRSxJQUFJLENBQUMsWUFDTEMsV0FBVyxDQUFDLG1DQUNaQyxNQUFNLENBQUMsa0JBQWtCLGlEQUFpRDtJQUU1RUosUUFDRUssT0FBTyxDQUFDLFVBQ1JDLFFBQVEsQ0FBQyxlQUFlLHVEQUN4QkYsTUFBTSxDQUFDLHlCQUF5Qiw4Q0FDaENBLE1BQU0sQ0FBQyxxQkFBcUIsK0JBQzVCQSxNQUFNLENBQUMsd0JBQXdCLHdDQUMvQkEsTUFBTSxDQUFDLGFBQWEsMENBQ3BCQSxNQUFNLENBQUMsb0JBQW9CLDJDQUEyQyxPQUN0RUcsTUFBTSxDQUFDLE9BQU9DLFdBQStCQyxPQUFnQkM7UUFDN0QsTUFBTUMsT0FBT0QsSUFBSUUsZUFBZTtRQUNoQyxNQUFNQyxjQUFjQyxPQUFPSCxLQUFLSSxPQUFPLElBQUksT0FBT0MsV0FBVztRQUM3RCxNQUFNQyxhQUF5QjtZQUM5QkMsR0FBR3RCLGlCQUFpQlksV0FBVyxPQUFPRyxLQUFLTyxDQUFDLEtBQUssV0FBV1AsS0FBS08sQ0FBQyxHQUFHQztZQUNyRUMsa0JBQWtCVCxLQUFLVSxRQUFRO1lBQy9CQyxjQUFjWCxLQUFLWSxJQUFJO1lBQ3ZCQyxpQkFBaUJiLEtBQUtjLE9BQU87WUFDN0JDLHFCQUNDZixLQUFLZ0IsR0FBRyxLQUFLLE9BQ1YsUUFDQWQsZ0JBQWdCLFNBQVNBLGdCQUFnQixPQUN4Q0EsY0FDQU07UUFDTjtRQUVBLElBQUlTLFFBQVFDLEdBQUcsQ0FBQ0MsZ0JBQWdCLEtBQUssS0FBSztZQUN6Q2pDLGFBQWFvQjtZQUNiO1FBQ0Q7UUFFQSxNQUFNLEVBQUVjLFdBQVcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDO1FBQ3JDLElBQUk7WUFDSCxNQUFNakMsWUFBWW1CO1FBQ25CLFNBQVU7WUFDVGM7UUFDRDtJQUNEO0lBRUQsT0FBTy9CO0FBQ1I7QUFFQSxtRkFBbUYsR0FDbkYsT0FBTyxlQUFlZ0MsVUFBVUMsSUFBYztJQUM3QyxNQUFNbEMsZ0JBQWdCbUMsVUFBVSxDQUFDRCxNQUFNO1FBQUVFLE1BQU07SUFBTztBQUN2RDtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsUUFBUVQsUUFBUUssSUFBSSxDQUFDLEVBQUU7SUFDN0IsSUFBSSxDQUFDSSxPQUFPO1FBQ1gsT0FBTztJQUNSO0lBQ0EsT0FBTyxZQUFZQyxHQUFHLEtBQUs3QyxjQUFjRCxRQUFRNkMsUUFBUUUsSUFBSTtBQUM5RDtBQUVBLGVBQWVDO0lBQ2QsSUFBSTtRQUNILE1BQU16QyxnQkFBZ0JtQyxVQUFVLENBQUNOLFFBQVFLLElBQUk7SUFDOUMsRUFBRSxPQUFPUSxLQUFLO1FBQ2IsSUFBSUEsZUFBZTlDLGdCQUFnQjtZQUNsQ2lDLFFBQVFjLElBQUksQ0FBQ0QsSUFBSUUsUUFBUTtRQUMxQjtRQUNBQyxRQUFRQyxLQUFLLENBQUNKO1FBQ2RiLFFBQVFjLElBQUksQ0FBQztJQUNkO0lBQ0FkLFFBQVFjLElBQUksQ0FBQ2QsUUFBUWUsUUFBUSxJQUFJO0FBQ2xDO0FBRUEsSUFBSVAsY0FBYztJQUNqQixLQUFLSTtBQUNOIn0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IHJ1bkNsaSB9IGZyb20gXCIuL3Byb2dyYW0uanNcIjtcblxudm9pZCBydW5DbGkoKTtcbiJdLCJuYW1lcyI6WyJydW5DbGkiXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxNQUFNLFFBQVEsZUFBZTtBQUV0QyxLQUFLQSJ9
@@ -14,9 +14,10 @@ import { WELL_KNOWN_FILES } from "./const.js";
14
14
  }
15
15
  files() {
16
16
  if (this._entries.size === 0) return [];
17
- const content = [
17
+ const body = [
18
18
  ...this._entries.entries()
19
- ].map(([k, v])=>`${k}=${v}`).join("\n") + "\n";
19
+ ].map(([k, v])=>`${k}=${v}`).join("\n");
20
+ const content = `${body}\n`;
20
21
  return [
21
22
  {
22
23
  filePath: ".env",
@@ -26,4 +27,4 @@ import { WELL_KNOWN_FILES } from "./const.js";
26
27
  }
27
28
  }
28
29
 
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Vudi1maWxlLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBY2N1bXVsYXRlcyBrZXk9dmFsdWUgcGFpcnMgYW5kIHJlbmRlcnMgdGhlbSBhcyBhIGAuZW52YCBmaWxlLlxuICpcbiAqIFJlZ2lzdGVyIG9uY2UgaW4gdGhlIHdvcmtzcGFjZTsgZmVhdHVyZXMgY2FsbCBgYWRkRW50cnlgIGR1cmluZyB0aGVpclxuICogc2NhZmZvbGQgcGhhc2UgdG8gY29udHJpYnV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoZSBmaW5hbCBmaWxlIGlzXG4gKiB3cml0dGVuIGF0IHJlbmRlciB0aW1lIHdoZW4gYHdvcmtzcGFjZS5zY2FmZm9sZCgpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5cdHB1YmxpYyBhZGRFbnRyeShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0aWYgKHRoaXMuX2VudHJpZXMuc2l6ZSA9PT0gMCkgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGNvbnRlbnQgPVxuXHRcdFx0Wy4uLnRoaXMuX2VudHJpZXMuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gYCR7a309JHt2fWApLmpvaW4oXCJcXG5cIikgKyBcIlxcblwiO1xuXHRcdHJldHVybiBbeyBmaWxlUGF0aDogXCIuZW52XCIsIGNvbnRlbnQgfV07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXRUxMX0tOT1dOX0ZJTEVTIiwiRW52RmlsZSIsImtleSIsIkVOVl9GSUxFIiwiX2VudHJpZXMiLCJNYXAiLCJhZGRFbnRyeSIsInZhbHVlIiwic2V0IiwiZmlsZXMiLCJzaXplIiwiY29udGVudCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJmaWxlUGF0aCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLFFBQVEsYUFBYTtBQUc5Qzs7Ozs7O0NBTUMsR0FDRCxPQUFPLE1BQU1DO0lBQ0lDLE1BQU1GLGlCQUFpQkcsUUFBUSxDQUFDO0lBRS9CQyxXQUFXLElBQUlDLE1BQXNCO0lBRS9DQyxTQUFTSixHQUFXLEVBQUVLLEtBQWEsRUFBUTtRQUNqRCxJQUFJLENBQUNILFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTixLQUFLSztRQUN2QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxJQUFJLEtBQUssR0FBRyxPQUFPLEVBQUU7UUFDdkMsTUFBTUMsVUFDTDtlQUFJLElBQUksQ0FBQ1AsUUFBUSxDQUFDUSxPQUFPO1NBQUcsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsR0FBR0MsRUFBRSxHQUFLLEdBQUdELEVBQUUsQ0FBQyxFQUFFQyxHQUFHLEVBQUVDLElBQUksQ0FBQyxRQUFRO1FBQ3hFLE9BQU87WUFBQztnQkFBRUMsVUFBVTtnQkFBUU47WUFBUTtTQUFFO0lBQ3ZDO0FBQ0QifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Vudi1maWxlLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBY2N1bXVsYXRlcyBrZXk9dmFsdWUgcGFpcnMgYW5kIHJlbmRlcnMgdGhlbSBhcyBhIGAuZW52YCBmaWxlLlxuICpcbiAqIFJlZ2lzdGVyIG9uY2UgaW4gdGhlIHdvcmtzcGFjZTsgZmVhdHVyZXMgY2FsbCBgYWRkRW50cnlgIGR1cmluZyB0aGVpclxuICogc2NhZmZvbGQgcGhhc2UgdG8gY29udHJpYnV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoZSBmaW5hbCBmaWxlIGlzXG4gKiB3cml0dGVuIGF0IHJlbmRlciB0aW1lIHdoZW4gYHdvcmtzcGFjZS5zY2FmZm9sZCgpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5cdHB1YmxpYyBhZGRFbnRyeShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0aWYgKHRoaXMuX2VudHJpZXMuc2l6ZSA9PT0gMCkgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGJvZHkgPSBbLi4udGhpcy5fZW50cmllcy5lbnRyaWVzKCldLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0ke3Z9YCkuam9pbihcIlxcblwiKTtcblx0XHRjb25zdCBjb250ZW50ID0gYCR7Ym9keX1cXG5gO1xuXHRcdHJldHVybiBbeyBmaWxlUGF0aDogXCIuZW52XCIsIGNvbnRlbnQgfV07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXRUxMX0tOT1dOX0ZJTEVTIiwiRW52RmlsZSIsImtleSIsIkVOVl9GSUxFIiwiX2VudHJpZXMiLCJNYXAiLCJhZGRFbnRyeSIsInZhbHVlIiwic2V0IiwiZmlsZXMiLCJzaXplIiwiYm9keSIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsImpvaW4iLCJjb250ZW50IiwiZmlsZVBhdGgiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFnQixRQUFRLGFBQWE7QUFHOUM7Ozs7OztDQU1DLEdBQ0QsT0FBTyxNQUFNQztJQUNJQyxNQUFNRixpQkFBaUJHLFFBQVEsQ0FBQztJQUUvQkMsV0FBVyxJQUFJQyxNQUFzQjtJQUUvQ0MsU0FBU0osR0FBVyxFQUFFSyxLQUFhLEVBQVE7UUFDakQsSUFBSSxDQUFDSCxRQUFRLENBQUNJLEdBQUcsQ0FBQ04sS0FBS0s7UUFDdkIsT0FBTyxJQUFJO0lBQ1o7SUFFT0UsUUFBc0I7UUFDNUIsSUFBSSxJQUFJLENBQUNMLFFBQVEsQ0FBQ00sSUFBSSxLQUFLLEdBQUcsT0FBTyxFQUFFO1FBQ3ZDLE1BQU1DLE9BQU87ZUFBSSxJQUFJLENBQUNQLFFBQVEsQ0FBQ1EsT0FBTztTQUFHLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQUNDLEdBQUdDLEVBQUUsR0FBSyxHQUFHRCxFQUFFLENBQUMsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7UUFDNUUsTUFBTUMsVUFBVSxHQUFHTixLQUFLLEVBQUUsQ0FBQztRQUMzQixPQUFPO1lBQUM7Z0JBQUVPLFVBQVU7Z0JBQVFEO1lBQVE7U0FBRTtJQUN2QztBQUNEIn0=
@@ -0,0 +1,45 @@
1
+ import { Command, CommanderError } from "commander";
2
+ import { resolveTargetDir } from "./resolve-target-dir.js";
3
+ import { runInBuilder } from "./runner.js";
4
+ import { scaffoldApi } from "./webapi/create-api.js";
5
+ export function createProgram() {
6
+ const program = new Command();
7
+ program.exitOverride();
8
+ program.name("decohere").description("Scaffold a new Decohere project").option("-d <directory>", "Target directory (default: current directory)", ".");
9
+ program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--database <provider>", "Database provider: none | postgres/typeorm").option("--auth <provider>", "Auth provider: none | auth0").option("--postman <provider>", "Postman provider: none | local | api").option("-y, --yes", "Install dependencies without prompting").option("--install <mode>", "Dependency install mode: ask | yes | no", "ask").action(async (directory, _opts, cmd)=>{
10
+ const opts = cmd.optsWithGlobals();
11
+ const installMode = String(opts.install ?? "ask").toLowerCase();
12
+ const normalized = {
13
+ d: resolveTargetDir(directory, typeof opts.d === "string" ? opts.d : undefined),
14
+ databaseProvider: opts.database,
15
+ authProvider: opts.auth,
16
+ postmanProvider: opts.postman,
17
+ installDependencies: opts.yes === true ? "yes" : installMode === "yes" || installMode === "no" ? installMode : undefined
18
+ };
19
+ if (process.env.DECOHERE_BUILDER !== "1") {
20
+ runInBuilder(normalized);
21
+ return;
22
+ }
23
+ const { closePrompt } = await import("./domain/prompt.js");
24
+ try {
25
+ await scaffoldApi(normalized);
26
+ } finally{
27
+ closePrompt();
28
+ }
29
+ });
30
+ return program;
31
+ }
32
+ export async function runCli(argv = process.argv) {
33
+ try {
34
+ await createProgram().parseAsync(argv);
35
+ } catch (err) {
36
+ if (err instanceof CommanderError) {
37
+ process.exit(err.exitCode);
38
+ }
39
+ console.error(err);
40
+ process.exit(1);
41
+ }
42
+ process.exit(process.exitCode ?? 0);
43
+ }
44
+
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcHJvZ3JhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kZXJFcnJvciB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJlc29sdmVUYXJnZXREaXIgfSBmcm9tIFwiLi9yZXNvbHZlLXRhcmdldC1kaXIuanNcIjtcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBBcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmltcG9ydCB7IHNjYWZmb2xkQXBpIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oKTogQ29tbWFuZCB7XG5cdGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXHRwcm9ncmFtLmV4aXRPdmVycmlkZSgpO1xuXHRwcm9ncmFtXG5cdFx0Lm5hbWUoXCJkZWNvaGVyZVwiKVxuXHRcdC5kZXNjcmlwdGlvbihcIlNjYWZmb2xkIGEgbmV3IERlY29oZXJlIHByb2plY3RcIilcblx0XHQub3B0aW9uKFwiLWQgPGRpcmVjdG9yeT5cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiBjdXJyZW50IGRpcmVjdG9yeSlcIiwgXCIuXCIpO1xuXG5cdHByb2dyYW1cblx0XHQuY29tbWFuZChcIndlYmFwaVwiKVxuXHRcdC5hcmd1bWVudChcIltkaXJlY3RvcnldXCIsIFwiVGFyZ2V0IGRpcmVjdG9yeSAoZGVmYXVsdDogLWQgb3IgY3VycmVudCBkaXJlY3RvcnkpXCIpXG5cdFx0Lm9wdGlvbihcIi0tZGF0YWJhc2UgPHByb3ZpZGVyPlwiLCBcIkRhdGFiYXNlIHByb3ZpZGVyOiBub25lIHwgcG9zdGdyZXMvdHlwZW9ybVwiKVxuXHRcdC5vcHRpb24oXCItLWF1dGggPHByb3ZpZGVyPlwiLCBcIkF1dGggcHJvdmlkZXI6IG5vbmUgfCBhdXRoMFwiKVxuXHRcdC5vcHRpb24oXCItLXBvc3RtYW4gPHByb3ZpZGVyPlwiLCBcIlBvc3RtYW4gcHJvdmlkZXI6IG5vbmUgfCBsb2NhbCB8IGFwaVwiKVxuXHRcdC5vcHRpb24oXCIteSwgLS15ZXNcIiwgXCJJbnN0YWxsIGRlcGVuZGVuY2llcyB3aXRob3V0IHByb21wdGluZ1wiKVxuXHRcdC5vcHRpb24oXCItLWluc3RhbGwgPG1vZGU+XCIsIFwiRGVwZW5kZW5jeSBpbnN0YWxsIG1vZGU6IGFzayB8IHllcyB8IG5vXCIsIFwiYXNrXCIpXG5cdFx0LmFjdGlvbihhc3luYyAoZGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIF9vcHRzOiB1bmtub3duLCBjbWQ6IENvbW1hbmQpID0+IHtcblx0XHRcdGNvbnN0IG9wdHMgPSBjbWQub3B0c1dpdGhHbG9iYWxzKCk7XG5cdFx0XHRjb25zdCBpbnN0YWxsTW9kZSA9IFN0cmluZyhvcHRzLmluc3RhbGwgPz8gXCJhc2tcIikudG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IG5vcm1hbGl6ZWQ6IEFwaU9wdGlvbnMgPSB7XG5cdFx0XHRcdGQ6IHJlc29sdmVUYXJnZXREaXIoZGlyZWN0b3J5LCB0eXBlb2Ygb3B0cy5kID09PSBcInN0cmluZ1wiID8gb3B0cy5kIDogdW5kZWZpbmVkKSxcblx0XHRcdFx0ZGF0YWJhc2VQcm92aWRlcjogb3B0cy5kYXRhYmFzZSxcblx0XHRcdFx0YXV0aFByb3ZpZGVyOiBvcHRzLmF1dGgsXG5cdFx0XHRcdHBvc3RtYW5Qcm92aWRlcjogb3B0cy5wb3N0bWFuLFxuXHRcdFx0XHRpbnN0YWxsRGVwZW5kZW5jaWVzOlxuXHRcdFx0XHRcdG9wdHMueWVzID09PSB0cnVlXG5cdFx0XHRcdFx0XHQ/IFwieWVzXCJcblx0XHRcdFx0XHRcdDogaW5zdGFsbE1vZGUgPT09IFwieWVzXCIgfHwgaW5zdGFsbE1vZGUgPT09IFwibm9cIlxuXHRcdFx0XHRcdFx0XHQ/IGluc3RhbGxNb2RlXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHByb2Nlc3MuZW52LkRFQ09IRVJFX0JVSUxERVIgIT09IFwiMVwiKSB7XG5cdFx0XHRcdHJ1bkluQnVpbGRlcihub3JtYWxpemVkKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB7IGNsb3NlUHJvbXB0IH0gPSBhd2FpdCBpbXBvcnQoXCIuL2RvbWFpbi9wcm9tcHQuanNcIik7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBzY2FmZm9sZEFwaShub3JtYWxpemVkKTtcblx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdGNsb3NlUHJvbXB0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5DbGkoYXJndjogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3YpOiBQcm9taXNlPHZvaWQ+IHtcblx0dHJ5IHtcblx0XHRhd2FpdCBjcmVhdGVQcm9ncmFtKCkucGFyc2VBc3luYyhhcmd2KTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKGVyciBpbnN0YW5jZW9mIENvbW1hbmRlckVycm9yKSB7XG5cdFx0XHRwcm9jZXNzLmV4aXQoZXJyLmV4aXRDb2RlKTtcblx0XHR9XG5cdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0fVxuXHRwcm9jZXNzLmV4aXQocHJvY2Vzcy5leGl0Q29kZSA/PyAwKTtcbn1cbiJdLCJuYW1lcyI6WyJDb21tYW5kIiwiQ29tbWFuZGVyRXJyb3IiLCJyZXNvbHZlVGFyZ2V0RGlyIiwicnVuSW5CdWlsZGVyIiwic2NhZmZvbGRBcGkiLCJjcmVhdGVQcm9ncmFtIiwicHJvZ3JhbSIsImV4aXRPdmVycmlkZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIm9wdGlvbiIsImNvbW1hbmQiLCJhcmd1bWVudCIsImFjdGlvbiIsImRpcmVjdG9yeSIsIl9vcHRzIiwiY21kIiwib3B0cyIsIm9wdHNXaXRoR2xvYmFscyIsImluc3RhbGxNb2RlIiwiU3RyaW5nIiwiaW5zdGFsbCIsInRvTG93ZXJDYXNlIiwibm9ybWFsaXplZCIsImQiLCJ1bmRlZmluZWQiLCJkYXRhYmFzZVByb3ZpZGVyIiwiZGF0YWJhc2UiLCJhdXRoUHJvdmlkZXIiLCJhdXRoIiwicG9zdG1hblByb3ZpZGVyIiwicG9zdG1hbiIsImluc3RhbGxEZXBlbmRlbmNpZXMiLCJ5ZXMiLCJwcm9jZXNzIiwiZW52IiwiREVDT0hFUkVfQlVJTERFUiIsImNsb3NlUHJvbXB0IiwicnVuQ2xpIiwiYXJndiIsInBhcnNlQXN5bmMiLCJlcnIiLCJleGl0IiwiZXhpdENvZGUiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sRUFBRUMsY0FBYyxRQUFRLFlBQVk7QUFDcEQsU0FBU0MsZ0JBQWdCLFFBQVEsMEJBQTBCO0FBQzNELFNBQVNDLFlBQVksUUFBUSxjQUFjO0FBRTNDLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFFckQsT0FBTyxTQUFTQztJQUNmLE1BQU1DLFVBQVUsSUFBSU47SUFDcEJNLFFBQVFDLFlBQVk7SUFDcEJELFFBQ0VFLElBQUksQ0FBQyxZQUNMQyxXQUFXLENBQUMsbUNBQ1pDLE1BQU0sQ0FBQyxrQkFBa0IsaURBQWlEO0lBRTVFSixRQUNFSyxPQUFPLENBQUMsVUFDUkMsUUFBUSxDQUFDLGVBQWUsdURBQ3hCRixNQUFNLENBQUMseUJBQXlCLDhDQUNoQ0EsTUFBTSxDQUFDLHFCQUFxQiwrQkFDNUJBLE1BQU0sQ0FBQyx3QkFBd0Isd0NBQy9CQSxNQUFNLENBQUMsYUFBYSwwQ0FDcEJBLE1BQU0sQ0FBQyxvQkFBb0IsMkNBQTJDLE9BQ3RFRyxNQUFNLENBQUMsT0FBT0MsV0FBK0JDLE9BQWdCQztRQUM3RCxNQUFNQyxPQUFPRCxJQUFJRSxlQUFlO1FBQ2hDLE1BQU1DLGNBQWNDLE9BQU9ILEtBQUtJLE9BQU8sSUFBSSxPQUFPQyxXQUFXO1FBQzdELE1BQU1DLGFBQXlCO1lBQzlCQyxHQUFHdEIsaUJBQWlCWSxXQUFXLE9BQU9HLEtBQUtPLENBQUMsS0FBSyxXQUFXUCxLQUFLTyxDQUFDLEdBQUdDO1lBQ3JFQyxrQkFBa0JULEtBQUtVLFFBQVE7WUFDL0JDLGNBQWNYLEtBQUtZLElBQUk7WUFDdkJDLGlCQUFpQmIsS0FBS2MsT0FBTztZQUM3QkMscUJBQ0NmLEtBQUtnQixHQUFHLEtBQUssT0FDVixRQUNBZCxnQkFBZ0IsU0FBU0EsZ0JBQWdCLE9BQ3hDQSxjQUNBTTtRQUNOO1FBRUEsSUFBSVMsUUFBUUMsR0FBRyxDQUFDQyxnQkFBZ0IsS0FBSyxLQUFLO1lBQ3pDakMsYUFBYW9CO1lBQ2I7UUFDRDtRQUVBLE1BQU0sRUFBRWMsV0FBVyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUM7UUFDckMsSUFBSTtZQUNILE1BQU1qQyxZQUFZbUI7UUFDbkIsU0FBVTtZQUNUYztRQUNEO0lBQ0Q7SUFFRCxPQUFPL0I7QUFDUjtBQUVBLE9BQU8sZUFBZWdDLE9BQU9DLE9BQWlCTCxRQUFRSyxJQUFJO0lBQ3pELElBQUk7UUFDSCxNQUFNbEMsZ0JBQWdCbUMsVUFBVSxDQUFDRDtJQUNsQyxFQUFFLE9BQU9FLEtBQUs7UUFDYixJQUFJQSxlQUFleEMsZ0JBQWdCO1lBQ2xDaUMsUUFBUVEsSUFBSSxDQUFDRCxJQUFJRSxRQUFRO1FBQzFCO1FBQ0FDLFFBQVFDLEtBQUssQ0FBQ0o7UUFDZFAsUUFBUVEsSUFBSSxDQUFDO0lBQ2Q7SUFDQVIsUUFBUVEsSUFBSSxDQUFDUixRQUFRUyxRQUFRLElBQUk7QUFDbEMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/create",
3
- "version": "0.0.1-dev.41",
3
+ "version": "0.0.1-dev.42",
4
4
  "description": "Scaffold a new Decohere project — build with Forge, serve with Flux",
5
5
  "keywords": [
6
6
  "decohere",
@@ -21,7 +21,7 @@
21
21
  "test": "echo \"Error: no test specified\" && exit 1"
22
22
  },
23
23
  "dependencies": {
24
- "@decohere/nexus": "0.0.1-dev.41",
24
+ "@decohere/nexus": "0.0.1-dev.42",
25
25
  "commander": "^13.1.0",
26
26
  "openapi-to-postmanv2": "^5.0.0"
27
27
  },
@@ -1,5 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
3
- export declare function createProgram(): Command;
4
- /** Parse argv as the published bin does (`from: "user"` = no node/script prefix). */
5
- export declare function runCreate(argv: string[]): Promise<void>;
2
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createProgram(): Command;
3
+ export declare function runCli(argv?: string[]): Promise<void>;