stepzen 0.16.0 → 0.17.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,7 +29,7 @@ $ npm install -g stepzen
29
29
  $ stepzen COMMAND
30
30
  running command...
31
31
  $ stepzen (-v|--version|version)
32
- stepzen/0.16.0 darwin-x64 node-v14.19.1
32
+ stepzen/0.17.0-beta.0 darwin-x64 node-v14.19.1
33
33
  $ stepzen --help [COMMAND]
34
34
  USAGE
35
35
  $ stepzen COMMAND
@@ -123,7 +123,11 @@ OPTIONS
123
123
  --header-param 'Authorization: apikey $apikey'
124
124
 
125
125
  --name=name
126
- subfolder inside the workspace folder to save the imported schema files, defaults to the imported schema name
126
+ Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported
127
+ schema.
128
+
129
+ --overwrite
130
+ Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.
127
131
 
128
132
  --path-params=path-params
129
133
  [curl] specifies path parameters in the URL path. Can be formed by taking the original path and replacing the
@@ -1,5 +1,6 @@
1
1
  import { flags } from '@oclif/command';
2
2
  import ZenCommand from '../shared/zen-command';
3
+ import { Workspace } from '../shared/types';
3
4
  export default class Import extends ZenCommand {
4
5
  static description: string;
5
6
  static curlFlags: {
@@ -56,6 +57,7 @@ export default class Import extends ZenCommand {
56
57
  help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
57
58
  silent: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
58
59
  name: flags.IOptionFlag<string | undefined>;
60
+ overwrite: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
59
61
  'non-interactive': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
60
62
  };
61
63
  static args: {
@@ -64,6 +66,7 @@ export default class Import extends ZenCommand {
64
66
  }[];
65
67
  static strict: boolean;
66
68
  run(): Promise<void>;
69
+ ensureOnConflictBehavior(workspace: Workspace, schema: string, flags: ReturnType<Import['parseWorkaround']>['flags']): Promise<"overwrite" | "append">;
67
70
  warnAboutIgnoredFlags: (schema: string, usedFlags: {
68
71
  [key: string]: any;
69
72
  }) => void;
@@ -82,6 +85,7 @@ export default class Import extends ZenCommand {
82
85
  help: void;
83
86
  silent: boolean;
84
87
  name: string | undefined;
88
+ overwrite: boolean;
85
89
  'non-interactive': boolean;
86
90
  }, {
87
91
  [name: string]: any;
@@ -3,6 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const chalk = require("chalk");
5
5
  const fs = require("fs-extra");
6
+ const path = require("path");
7
+ const inquirer = require("inquirer");
6
8
  const command_1 = require("@oclif/command");
7
9
  const errors_1 = require("@oclif/errors");
8
10
  const transpiler_1 = require("@stepzen/transpiler");
@@ -55,6 +57,8 @@ class Import extends zen_command_1.default {
55
57
  throw new errors_1.CLIError(`Could not create a StepZen workspace in the ${flags.dir ? directory : 'current'} directory.\n` + error.message);
56
58
  }
57
59
  }
60
+ // Make sure that the onConflict behaviour is defined and feasible
61
+ const onConflict = await this.ensureOnConflictBehavior(workspace, schema, flags);
58
62
  this.warnAboutIgnoredFlags(schema, flags);
59
63
  // Select an import execution flow:
60
64
  // - v1 with `stepzen/engines` and cloud function
@@ -71,6 +75,7 @@ class Import extends zen_command_1.default {
71
75
  const fixedOptions = {
72
76
  name: flags.name,
73
77
  source: workspace.schema,
78
+ onConflict,
74
79
  };
75
80
  const editableOptions = {
76
81
  queryName: flags['query-name'],
@@ -132,7 +137,13 @@ class Import extends zen_command_1.default {
132
137
  preAnswered = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, asKeyValue('host', flags['db-host'])), asKeyValue('user', flags['db-user'])), asKeyValue('password', flags['db-password'])), asKeyValue('database', flags['db-database'])), asKeyValue('schema', flags['db-schema']));
133
138
  }
134
139
  // Let's go!
135
- result = await generate_1.default(schema, flags.name, workspace.schema, preAnswered);
140
+ result = await generate_1.default({
141
+ schema,
142
+ name: flags.name,
143
+ onConflict,
144
+ source: workspace.schema,
145
+ preAnswered,
146
+ });
136
147
  // Validate
137
148
  await transpiler_1.validate(result, {
138
149
  extensions: await utils_1.getStepZenExtensions(),
@@ -144,6 +155,47 @@ class Import extends zen_command_1.default {
144
155
  // Nice message
145
156
  this.log(chalk.green(`Successfully imported schema ${chalk.bold(schema)} from StepZen`));
146
157
  }
158
+ async ensureOnConflictBehavior(workspace, schema, flags) {
159
+ const name = flags.name || schema;
160
+ const hasConflict = fs.existsSync(path.join(workspace.schema, name));
161
+ if (!hasConflict) {
162
+ return 'append';
163
+ }
164
+ // No `--name` is given (i.e. naming is automatic)
165
+ // Using the default name is going to lead to a conflict, and it should
166
+ // be resolved by inventing a new unique name for the new schema.
167
+ if (!flags.name) {
168
+ return 'append';
169
+ }
170
+ // `--name` is given and (i.e. naming is namaged by the user)
171
+ // There is a naming conflict.
172
+ // The user has explicitly asked to overwrite the existing schema.
173
+ if (flags.overwrite) {
174
+ return 'overwrite';
175
+ }
176
+ // `--name` is given and (i.e. naming is namaged by the user)
177
+ // There is a naming conflict.
178
+ // The user has NOT given an explicit permission to overwrite the existing
179
+ // schema.
180
+ // In an interactive mode the CLI asks them for a confirmation.
181
+ // In a non-interactive mode the CLI throws an error.
182
+ if (flags['non-interactive']) {
183
+ throw new errors_1.CLIError(`A schema named ${chalk.bold(flags.name)} already exists in this workspace. Add an ${chalk.bold('--overwrite')} flag to overwrite it.`);
184
+ }
185
+ this.log(`A schema named ${chalk.bold(flags.name)} already exists in this workspace. Would you like to overwrite it?`);
186
+ const answers = await inquirer.prompt([
187
+ {
188
+ name: 'overwrite',
189
+ type: 'confirm',
190
+ default: false,
191
+ message: `Overwrite ${flags.name}?`,
192
+ },
193
+ ]);
194
+ if (answers.overwrite) {
195
+ return 'overwrite';
196
+ }
197
+ this.exit();
198
+ }
147
199
  // Correct the value for the 'header-param' flag to work around the oclif's
148
200
  // parser issue with multi-value flags: https://github.com/oclif/oclif/issues/261
149
201
  parseWorkaround() {
@@ -242,8 +294,12 @@ Import.flagsForSchemas = [
242
294
  { flags: Import.postgresqlFlags, schemas: ['postgresql'] },
243
295
  ];
244
296
  Import.flags = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, zen_command_1.default.flags), { dir: command_1.flags.string({ description: 'working directory' }), help: command_1.flags.help({ char: 'h' }), silent: command_1.flags.boolean({ hidden: true }), name: command_1.flags.string({
245
- description: 'subfolder inside the workspace folder to save the imported' +
246
- ' schema files, defaults to the imported schema name',
297
+ description: 'Subfolder inside the workspace folder to save the imported' +
298
+ ' schema files to. Defaults to the name of the imported schema.',
299
+ }), overwrite: command_1.flags.boolean({
300
+ description: 'Overwrite any existing schema with the same name. Cannot be used' +
301
+ ' without also providing a --name flag.',
302
+ dependsOn: ['name'],
247
303
  }) }), Import.curlFlags), Import.sqlFlags), Import.postgresqlFlags);
248
304
  Import.args = [
249
305
  {
@@ -28,6 +28,7 @@ export declare type Curl2SdlOptions = {
28
28
  typePrefix?: string;
29
29
  pathParams: readonly PathParam[];
30
30
  headers: readonly HeaderInput[];
31
+ onConflict: 'overwrite' | 'append';
31
32
  };
32
33
  export declare type EditableCurl2SdlOptions = Pick<Curl2SdlOptions, 'curlArgs' | 'queryName' | 'rootType' | 'typePrefix' | 'pathParams'>;
33
34
  export declare type CurlAnswers = {
@@ -65,7 +66,7 @@ export declare const compileParameterList: (headers: HeaderInput[], pathParams:
65
66
  */
66
67
  export declare const makeDuplicateParamsMessage: (headers: HeaderInput[], pathParams: PathParam[], url: string) => string | null;
67
68
  export declare const askCurlQuestions: (defaultAnswers?: Partial<CurlAnswers>) => Promise<EditableCurl2SdlOptions>;
68
- export declare const curl2sdl: ({ curlArgs, name, source, queryName, rootType, typePrefix, pathParams, headers, }: Curl2SdlOptions) => Promise<{
69
+ export declare const curl2sdl: ({ curlArgs, name, source, queryName, rootType, typePrefix, pathParams, headers, onConflict, }: Curl2SdlOptions) => Promise<{
69
70
  error: string;
70
71
  } | {
71
72
  outPath: string;
@@ -151,7 +151,7 @@ exports.askCurlQuestions = async (defaultAnswers = {}) => {
151
151
  pathParams: parsedPathParamsOrError,
152
152
  };
153
153
  };
154
- exports.curl2sdl = async ({ curlArgs, name, source, queryName, rootType, typePrefix, pathParams, headers, }) => {
154
+ exports.curl2sdl = async ({ curlArgs, name, source, queryName, rootType, typePrefix, pathParams, headers, onConflict, }) => {
155
155
  let json;
156
156
  try {
157
157
  const url = `${constants_1.STEPZEN_JSON2SDL_SERVER_URL}/api/graphql`;
@@ -252,6 +252,7 @@ exports.curl2sdl = async ({ curlArgs, name, source, queryName, rootType, typePre
252
252
  output: null,
253
253
  silent: true,
254
254
  mergeTypes: false,
255
+ onConflict,
255
256
  });
256
257
  return { outPath: result };
257
258
  };
@@ -11,4 +11,3 @@ export declare const getSchema: (arg: string) => string;
11
11
  export declare const getTemplates: () => Promise<string>;
12
12
  export declare const askGeneratorQuestions: (id: string, settings: any, state: any) => Promise<any>;
13
13
  export declare const askTemplateQuestions: (id: string, settings: any, state: any) => Promise<any>;
14
- export declare const mergeFiles: (name: string, source: string, files: string, answers: any) => Promise<string>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // Copyright (c) 2020,2021,2022, StepZen, Inc.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.mergeFiles = exports.askTemplateQuestions = exports.askGeneratorQuestions = exports.getTemplates = exports.getSchema = exports.getConfiguration = exports.createGeneratorFiles = void 0;
4
+ exports.askTemplateQuestions = exports.askGeneratorQuestions = exports.getTemplates = exports.getSchema = exports.getConfiguration = exports.createGeneratorFiles = void 0;
5
5
  const errors_1 = require("@oclif/errors");
6
6
  const chalk = require("chalk");
7
7
  const debug = require("debug");
@@ -12,7 +12,6 @@ const lodash_1 = require("lodash");
12
12
  const os = require("os");
13
13
  const path = require("path");
14
14
  const shell = require("shelljs");
15
- const transpiler = require("@stepzen/transpiler");
16
15
  const constants_1 = require("../shared/constants");
17
16
  const errors_2 = require("../shared/errors");
18
17
  const { version } = require('../../package.json');
@@ -160,14 +159,3 @@ exports.askTemplateQuestions = async (id, settings, state) => {
160
159
  const answers = await inquirer.prompt(questions);
161
160
  return Object.assign(Object.assign({}, state), answers);
162
161
  };
163
- exports.mergeFiles = async (name, source, files, answers) => {
164
- const output = await transpiler.merge(source, {
165
- name: name,
166
- source: files,
167
- }, {
168
- answers,
169
- silent: true,
170
- output: null,
171
- });
172
- return output;
173
- };
@@ -1,4 +1,11 @@
1
- declare const _default: (schema: string, name: string | undefined, source: string, preAnswered?: {
2
- [question: string]: string;
3
- }) => Promise<string>;
1
+ export declare type GenerateOptions = {
2
+ schema: string;
3
+ name?: string;
4
+ onConflict: 'overwrite' | 'append';
5
+ source: string;
6
+ preAnswered?: {
7
+ [question: string]: string;
8
+ };
9
+ };
10
+ declare const _default: ({ schema, name, onConflict, source, preAnswered, }: GenerateOptions) => Promise<string>;
4
11
  export default _default;
@@ -6,8 +6,9 @@ const core_1 = require("@oclif/core");
6
6
  const fs = require("fs-extra");
7
7
  const lodash = require("lodash");
8
8
  const path = require("path");
9
+ const transpiler = require("@stepzen/transpiler");
9
10
  const helpers_1 = require("./helpers");
10
- exports.default = async (schema, name, source, preAnswered = {}) => {
11
+ exports.default = async ({ schema, name, onConflict, source, preAnswered = {}, }) => {
11
12
  var _a, _b;
12
13
  // Store the generator
13
14
  let generator;
@@ -82,7 +83,15 @@ exports.default = async (schema, name, source, preAnswered = {}) => {
82
83
  // if (generator.type === 'template')
83
84
  files = path.join(templates, schema);
84
85
  }
85
- const output = await helpers_1.mergeFiles(name || schema, source, files, answers);
86
+ const output = await transpiler.merge(source, {
87
+ name: name || schema,
88
+ source: files,
89
+ }, {
90
+ answers,
91
+ silent: true,
92
+ output: null,
93
+ onConflict,
94
+ });
86
95
  core_1.CliUx.ux.action.stop();
87
96
  // Housekeeping
88
97
  cleanUp();
@@ -1 +1 @@
1
- {"version":"0.16.0","commands":{"deploy":{"id":"deploy","description":"deploy to stepzen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"configurationsets":{"name":"configurationsets","type":"option","description":"Configurationsets to use","default":""},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"schema":{"name":"schema","type":"option","description":"Schema to use","required":true},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"destination","description":"destination","required":true}]},"import":{"id":"import","description":"import a schema for an external data source or a API endpoint to your GraphQL API","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"working directory"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"silent":{"name":"silent","type":"boolean","hidden":true,"allowNo":false},"name":{"name":"name","type":"option","description":"subfolder inside the workspace folder to save the imported schema files, defaults to the imported schema name"},"prefix":{"name":"prefix","type":"option","description":"[curl] prefix to add every type in the generated schema."},"query-name":{"name":"query-name","type":"option","description":"[curl] property name to add to the Query type as a way to access the imported cURL endpoint."},"query-type":{"name":"query-type","type":"option","description":"[curl] name for the type returned by the cURL endpoint in the generated schema. The name specified by --query-type is not prefixed by --prefix if both flags are present."},"path-params":{"name":"path-params","type":"option","description":"[curl] specifies path parameters in the URL path. Can be formed by taking the original path and replacing the variable segments with $paramName placeholders.\n\nExample:\nstepzen import curl https://example.com/users/jane/posts/12 --path-params '/users/$userId/posts/$postId'"},"header-param":{"name":"header-param","type":"option","description":"[curl] specifies a parameter in a header value. Can be formed by taking a -H, --header flag and replacing the variable part of the header value with a $paramName placeholder. Repeat this flag once for each header with a parameter.\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\" \\\n\t--header-param 'Authorization: apikey $apikey'"},"db-host":{"name":"db-host","type":"option","description":"[mysql, postgresql] database host"},"db-user":{"name":"db-user","type":"option","description":"[mysql, postgresql] database user name"},"db-password":{"name":"db-password","type":"option","description":"[mysql, postgresql] database password"},"db-database":{"name":"db-database","type":"option","description":"[mysql, postgresql] name of database to import"},"db-schema":{"name":"db-schema","type":"option","description":"[postgresql] database schema"}},"args":[{"name":"schema","required":true}]},"init":{"id":"init","description":"stepzen init","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"endpoint":{"name":"endpoint","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"yes":{"name":"yes","type":"boolean","hidden":true,"allowNo":false}},"args":[{"name":"directory","hidden":true}]},"lint":{"id":"lint","description":"StepZen lint","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"list":{"id":"list","description":"list your items","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[{"name":"type","description":"type","required":true,"options":["configurationsets","schemas"]}]},"login":{"id":"login","description":"log in to StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"account":{"name":"account","type":"option","char":"a","hidden":true},"adminkey":{"name":"adminkey","type":"option","char":"k","hidden":true},"public":{"name":"public","type":"boolean","description":"Create a public anonymous StepZen account and use it. This is handy for trying StepZen out, but it not suitable for handling private data as all endpoints created with a public account will be public.","allowNo":false},"config":{"name":"config","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"logout":{"id":"logout","description":"log out of StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"start":{"id":"start","description":"upload and deploy your schema","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"working directory"},"endpoint":{"name":"endpoint","type":"option","description":"Override workspace endpoint"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"no-console":{"name":"no-console","type":"boolean","hidden":true,"allowNo":false},"no-dashboard":{"name":"no-dashboard","type":"boolean","hidden":true,"allowNo":false},"no-init":{"name":"no-init","type":"boolean","hidden":true,"allowNo":false},"no-server":{"name":"no-server","type":"boolean","hidden":true,"allowNo":false},"no-validate":{"name":"no-validate","type":"boolean","hidden":true,"allowNo":false},"no-watcher":{"name":"no-watcher","type":"boolean","hidden":true,"allowNo":false},"port":{"name":"port","type":"option","default":5001}},"args":[]},"transpile":{"id":"transpile","description":"transpile a graphql schema","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"config":{"name":"config","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"hide-output":{"name":"hide-output","type":"boolean","hidden":true,"allowNo":false},"inspect":{"name":"inspect","type":"boolean","char":"i","hidden":true,"allowNo":false},"inspect-after":{"name":"inspect-after","type":"boolean","hidden":true,"allowNo":false},"output-configuration":{"name":"output-configuration","type":"boolean","allowNo":false},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"folder","required":true}]},"upload":{"id":"upload","description":"upload to StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"A directory to upload"},"file":{"name":"file","type":"option","description":"A file to upload"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"type","description":"type","required":true,"options":["configurationset","schema"]},{"name":"destination","description":"destination","required":true}]},"validate":{"id":"validate","description":"validate a graphql schema","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[{"name":"folder","required":true}]},"whoami":{"id":"whoami","description":"display your credentials with StepZen whoami","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"showkeys":{"name":"showkeys","type":"boolean","allowNo":false},"apikey":{"name":"apikey","type":"boolean","allowNo":false},"adminkey":{"name":"adminkey","type":"boolean","allowNo":false}},"args":[]}}}
1
+ {"version":"0.17.0-beta.0","commands":{"deploy":{"id":"deploy","description":"deploy to stepzen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"configurationsets":{"name":"configurationsets","type":"option","description":"Configurationsets to use","default":""},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"schema":{"name":"schema","type":"option","description":"Schema to use","required":true},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"destination","description":"destination","required":true}]},"import":{"id":"import","description":"import a schema for an external data source or a API endpoint to your GraphQL API","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"working directory"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"silent":{"name":"silent","type":"boolean","hidden":true,"allowNo":false},"name":{"name":"name","type":"option","description":"Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema."},"overwrite":{"name":"overwrite","type":"boolean","description":"Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.","allowNo":false},"prefix":{"name":"prefix","type":"option","description":"[curl] prefix to add every type in the generated schema."},"query-name":{"name":"query-name","type":"option","description":"[curl] property name to add to the Query type as a way to access the imported cURL endpoint."},"query-type":{"name":"query-type","type":"option","description":"[curl] name for the type returned by the cURL endpoint in the generated schema. The name specified by --query-type is not prefixed by --prefix if both flags are present."},"path-params":{"name":"path-params","type":"option","description":"[curl] specifies path parameters in the URL path. Can be formed by taking the original path and replacing the variable segments with $paramName placeholders.\n\nExample:\nstepzen import curl https://example.com/users/jane/posts/12 --path-params '/users/$userId/posts/$postId'"},"header-param":{"name":"header-param","type":"option","description":"[curl] specifies a parameter in a header value. Can be formed by taking a -H, --header flag and replacing the variable part of the header value with a $paramName placeholder. Repeat this flag once for each header with a parameter.\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\" \\\n\t--header-param 'Authorization: apikey $apikey'"},"db-host":{"name":"db-host","type":"option","description":"[mysql, postgresql] database host"},"db-user":{"name":"db-user","type":"option","description":"[mysql, postgresql] database user name"},"db-password":{"name":"db-password","type":"option","description":"[mysql, postgresql] database password"},"db-database":{"name":"db-database","type":"option","description":"[mysql, postgresql] name of database to import"},"db-schema":{"name":"db-schema","type":"option","description":"[postgresql] database schema"}},"args":[{"name":"schema","required":true}]},"init":{"id":"init","description":"stepzen init","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"endpoint":{"name":"endpoint","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"yes":{"name":"yes","type":"boolean","hidden":true,"allowNo":false}},"args":[{"name":"directory","hidden":true}]},"lint":{"id":"lint","description":"StepZen lint","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"list":{"id":"list","description":"list your items","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[{"name":"type","description":"type","required":true,"options":["configurationsets","schemas"]}]},"login":{"id":"login","description":"log in to StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"account":{"name":"account","type":"option","char":"a","hidden":true},"adminkey":{"name":"adminkey","type":"option","char":"k","hidden":true},"public":{"name":"public","type":"boolean","description":"Create a public anonymous StepZen account and use it. This is handy for trying StepZen out, but it not suitable for handling private data as all endpoints created with a public account will be public.","allowNo":false},"config":{"name":"config","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"logout":{"id":"logout","description":"log out of StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[]},"start":{"id":"start","description":"upload and deploy your schema","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"working directory"},"endpoint":{"name":"endpoint","type":"option","description":"Override workspace endpoint"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"no-console":{"name":"no-console","type":"boolean","hidden":true,"allowNo":false},"no-dashboard":{"name":"no-dashboard","type":"boolean","hidden":true,"allowNo":false},"no-init":{"name":"no-init","type":"boolean","hidden":true,"allowNo":false},"no-server":{"name":"no-server","type":"boolean","hidden":true,"allowNo":false},"no-validate":{"name":"no-validate","type":"boolean","hidden":true,"allowNo":false},"no-watcher":{"name":"no-watcher","type":"boolean","hidden":true,"allowNo":false},"port":{"name":"port","type":"option","default":5001}},"args":[]},"transpile":{"id":"transpile","description":"transpile a graphql schema","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"config":{"name":"config","type":"option","hidden":true},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"hide-output":{"name":"hide-output","type":"boolean","hidden":true,"allowNo":false},"inspect":{"name":"inspect","type":"boolean","char":"i","hidden":true,"allowNo":false},"inspect-after":{"name":"inspect-after","type":"boolean","hidden":true,"allowNo":false},"output-configuration":{"name":"output-configuration","type":"boolean","allowNo":false},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"folder","required":true}]},"upload":{"id":"upload","description":"upload to StepZen","pluginName":"stepzen","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"dir":{"name":"dir","type":"option","description":"A directory to upload"},"file":{"name":"file","type":"option","description":"A file to upload"},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"silent":{"name":"silent","type":"boolean","allowNo":false}},"args":[{"name":"type","description":"type","required":true,"options":["configurationset","schema"]},{"name":"destination","description":"destination","required":true}]},"validate":{"id":"validate","description":"validate a graphql schema","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false}},"args":[{"name":"folder","required":true}]},"whoami":{"id":"whoami","description":"display your credentials with StepZen whoami","pluginName":"stepzen","pluginType":"core","hidden":true,"aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"disable all interactive prompts","hidden":true,"allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"showkeys":{"name":"showkeys","type":"boolean","allowNo":false},"apikey":{"name":"apikey","type":"boolean","allowNo":false},"adminkey":{"name":"adminkey","type":"boolean","allowNo":false}},"args":[]}}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stepzen",
3
3
  "description": "The StepZen CLI",
4
- "version": "0.16.0",
4
+ "version": "0.17.0-beta.0",
5
5
  "license": "MIT",
6
6
  "author": "Darren Waddell <darren@stepzen.com>",
7
7
  "contributors": [
@@ -32,8 +32,8 @@
32
32
  "@oclif/errors": "1.3.5",
33
33
  "@oclif/plugin-help": "^5.1.12",
34
34
  "@stepzen/dashboard": "0.2.0",
35
- "@stepzen/sdk": "0.11.2",
36
- "@stepzen/transpiler": "0.0.39",
35
+ "@stepzen/sdk": "0.11.3",
36
+ "@stepzen/transpiler": "0.2.0",
37
37
  "chalk": "^4.1.1",
38
38
  "chokidar": "^3.5.2",
39
39
  "compare-versions": "^3.6.0",