stepzen 0.27.0-beta.0 → 0.27.0-beta.2

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
@@ -30,7 +30,7 @@ $ npm install -g stepzen
30
30
  $ stepzen COMMAND
31
31
  running command...
32
32
  $ stepzen (-v|--version|version)
33
- stepzen/0.27.0-beta.0 linux-x64 node-v14.21.2
33
+ stepzen/0.27.0-beta.2 linux-x64 node-v14.21.2
34
34
  $ stepzen --help [COMMAND]
35
35
  USAGE
36
36
  $ stepzen COMMAND
@@ -148,6 +148,11 @@ USAGE
148
148
  [--db-database=DB-DATABASE] [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA]
149
149
  $ stepzen import postgresql://[USER:PASSWORD@]HOST[:PORT][/DATABASE] [--db-link-types] [--db-include=DB-INCLUDE]
150
150
  [--db-schema=DB-SCHEMA]
151
+ $ stepzen import snowflake [--db-user=DB-USER] [--db-password=DB-PASSWORD] [--db-database=DB-DATABASE]
152
+ [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA] [--snowflake-account-id=SNOWFLAKE-ACCOUNT-ID]
153
+ [--snowflake-warehouse=SNOWFLAKE-WAREHOUSE]
154
+ $ stepzen import snowflake://[USER[:PASSWORD]@]ACCOUNT_IDENTIFIER[/DATABASE][?schema=<SCHEMA>[&warehouse=<WAREHOUSE>]]
155
+ [--db-link-types] [--db-include=DB-INCLUDE]
151
156
 
152
157
  OPTIONS
153
158
  -H, --header=header
@@ -161,26 +166,36 @@ OPTIONS
161
166
  Show CLI help
162
167
 
163
168
  --db-database=db-database
164
- [mysql, postgresql] Name of database to import
169
+ [mysql, postgresql, snowflake] Name of database to import
165
170
 
166
171
  --db-host=db-host
167
172
  [mysql, postgresql] Database host and optional port (as HOST[:PORT])
168
173
 
169
174
  --db-include=tables-only|views-only|tables-and-views
170
- [mysql, postgresql] Should the generated GraphQL schema be based only on database views, only on tables or on both
175
+ [mysql, postgresql, snowflake] Should the generated GraphQL schema be based only on database views, only on tables
176
+ or on both
171
177
 
172
178
  --db-link-types
173
- [mysql, postgresql] Automatically link types based on foreign key relationships using @materializer
179
+ [mysql, postgresql, snowflake] Automatically link types based on foreign key relationships using @materializer
174
180
  (https://stepzen.com/docs/features/linking-types)
175
181
 
176
182
  --db-password=db-password
177
- [mysql, postgresql] Database password
183
+ [mysql, postgresql, snowflake] Database password
178
184
 
179
185
  --db-schema=db-schema
180
- [postgresql] PostgreSQL schema to import tables from (default: public)
186
+ [postgresql, snowflake] Database schema to import tables from (default: public)
187
+
188
+ --db-use-deprecated-2022-naming
189
+ [mysql, postgresql] Use the deprecated pre-2023 naming convention in the generated GraphQL schema:
190
+ - the generated type and property names are auto-capitalized into PascalCase
191
+ - the generated field names use the getCustomer and getCustomerList style.
192
+
193
+ On the other hand, when using the default naming convention:
194
+ - the generated type and property names match exactly the DB table and column names
195
+ - the generated field names use the customer and customerList style.
181
196
 
182
197
  --db-user=db-user
183
- [mysql, postgresql] Database user name
198
+ [mysql, postgresql, snowflake] Database user name
184
199
 
185
200
  --dir=dir
186
201
  Working directory
@@ -210,11 +225,18 @@ OPTIONS
210
225
  [curl, graphql] Prefix to add to every type in the generated schema
211
226
 
212
227
  --query-name=query-name
213
- [curl] Property name to add to the Query type as a way to access the imported endpoint
228
+ [curl] [curl] Property name to add to the Query type as a way to access the imported endpoint
214
229
 
215
230
  --query-type=query-type
216
231
  [curl] Name for the type returned by the curl request in the generated schema. The name specified by --query-type is
217
232
  not prefixed by --prefix if both flags are present.
233
+
234
+ --snowflake-account-id=snowflake-account-id
235
+ [snowflake] Snowflake account identifier in the orgname-accountname format. For more information, see the Snowflake
236
+ documentation at https://docs.snowflake.com/en/user-guide/admin-account-identifier.html.
237
+
238
+ --snowflake-warehouse=snowflake-warehouse
239
+ [snowflake] Snowflake warehouse
218
240
  ```
219
241
 
220
242
  ## `stepzen init`
@@ -1,127 +1,122 @@
1
- /// <reference types="lodash" />
2
- import { flags } from '@oclif/command';
1
+ import * as Parser from '@oclif/parser';
2
+ import { IOptionFlag, IBooleanFlag } from '@oclif/parser/lib/flags';
3
3
  import type { CommonImportOptions } from '../generate';
4
4
  import ZenCommand from '../shared/zen-command';
5
- import { Sql2SdlOptions } from '../generate/sql2sdl';
5
+ import { DBType, DBIntrospectionOptions } from '../generate/sql2sdl';
6
6
  import { HeaderInput } from '../shared/header';
7
7
  import { Workspace, Flags } from '../shared/types';
8
+ export declare type DataSourceType = 'curl' | 'graphql' | 'postgresql' | 'mysql' | 'snowflake';
9
+ declare type IOptionFlagWithDataSource<T> = IOptionFlag<T> & {
10
+ dataSources?: DataSourceType[];
11
+ };
12
+ declare type IBooleanFlagWithDataSource<T> = IBooleanFlag<T> & {
13
+ dataSources?: DataSourceType[];
14
+ };
15
+ declare type DefinitionWithDataSource<T> = {
16
+ (options: {
17
+ multiple: true;
18
+ } & Partial<IOptionFlagWithDataSource<T[]>>): IOptionFlagWithDataSource<T[]>;
19
+ (options: ({
20
+ required: true;
21
+ } | {
22
+ default: Parser.flags.Default<T>;
23
+ }) & Partial<IOptionFlagWithDataSource<T>>): IOptionFlagWithDataSource<T>;
24
+ (options?: Partial<IOptionFlagWithDataSource<T>>): IOptionFlagWithDataSource<T | undefined>;
25
+ };
26
+ declare const flags: {
27
+ string: DefinitionWithDataSource<string>;
28
+ boolean: <T = boolean>(options?: Partial<IBooleanFlagWithDataSource<T>>) => IBooleanFlagWithDataSource<T>;
29
+ };
8
30
  export default class Import extends ZenCommand {
9
31
  static description: string;
10
- static commonIntrospectionFlags: {
11
- prefix: flags.IOptionFlag<string | undefined>;
12
- header: flags.IOptionFlag<string[]>;
13
- 'header-param': flags.IOptionFlag<string[]>;
14
- };
15
- static curlFlags: {
16
- 'query-name': flags.IOptionFlag<string | undefined>;
17
- 'query-type': flags.IOptionFlag<string | undefined>;
18
- 'path-params': flags.IOptionFlag<string | undefined>;
19
- };
20
- static sqlFlags: {
21
- 'db-host': flags.IOptionFlag<string | undefined>;
22
- 'db-user': flags.IOptionFlag<string | undefined>;
23
- 'db-password': flags.IOptionFlag<string | undefined>;
24
- 'db-database': flags.IOptionFlag<string | undefined>;
25
- 'db-link-types': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
26
- 'db-include': flags.IOptionFlag<string | undefined>;
27
- };
28
- static postgresqlFlags: {
29
- 'db-schema': flags.IOptionFlag<string | undefined>;
30
- };
31
- static flagsForSources: ({
32
- flags: {
33
- prefix: flags.IOptionFlag<string | undefined>;
34
- header: flags.IOptionFlag<string[]>;
35
- 'header-param': flags.IOptionFlag<string[]>;
36
- };
37
- sources: string[];
38
- } | {
39
- flags: {
40
- 'query-name': flags.IOptionFlag<string | undefined>;
41
- 'query-type': flags.IOptionFlag<string | undefined>;
42
- 'path-params': flags.IOptionFlag<string | undefined>;
43
- };
44
- sources: string[];
45
- } | {
46
- flags: {
47
- 'db-host': flags.IOptionFlag<string | undefined>;
48
- 'db-user': flags.IOptionFlag<string | undefined>;
49
- 'db-password': flags.IOptionFlag<string | undefined>;
50
- 'db-database': flags.IOptionFlag<string | undefined>;
51
- 'db-link-types': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
52
- 'db-include': flags.IOptionFlag<string | undefined>;
53
- };
54
- sources: string[];
55
- } | {
56
- flags: {
57
- 'db-schema': flags.IOptionFlag<string | undefined>;
58
- };
59
- sources: string[];
60
- })[];
61
- static flagHelpForSource: (source: string, exclude?: string[]) => string;
62
- static usage: string[];
63
32
  static flags: {
64
- 'db-schema': flags.IOptionFlag<string | undefined>;
65
- 'db-host': flags.IOptionFlag<string | undefined>;
66
- 'db-user': flags.IOptionFlag<string | undefined>;
67
- 'db-password': flags.IOptionFlag<string | undefined>;
68
- 'db-database': flags.IOptionFlag<string | undefined>;
69
- 'db-link-types': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
70
- 'db-include': flags.IOptionFlag<string | undefined>;
71
- 'query-name': flags.IOptionFlag<string | undefined>;
72
- 'query-type': flags.IOptionFlag<string | undefined>;
73
- 'path-params': flags.IOptionFlag<string | undefined>;
74
- prefix: flags.IOptionFlag<string | undefined>;
75
- header: flags.IOptionFlag<string[]>;
76
- 'header-param': flags.IOptionFlag<string[]>;
77
- dir: flags.IOptionFlag<string | undefined>;
78
- silent: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
79
- name: flags.IOptionFlag<string | undefined>;
80
- overwrite: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
81
- help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
82
- 'non-interactive': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
33
+ dir: IOptionFlagWithDataSource<string | undefined>;
34
+ silent: IBooleanFlagWithDataSource<boolean>;
35
+ name: IOptionFlagWithDataSource<string | undefined>;
36
+ overwrite: IBooleanFlagWithDataSource<boolean>;
37
+ prefix: IOptionFlagWithDataSource<string | undefined>;
38
+ header: IOptionFlagWithDataSource<string[]>;
39
+ 'header-param': IOptionFlagWithDataSource<string[]>;
40
+ 'query-name': IOptionFlagWithDataSource<string | undefined>;
41
+ 'query-type': IOptionFlagWithDataSource<string | undefined>;
42
+ 'path-params': IOptionFlagWithDataSource<string | undefined>;
43
+ 'db-host': IOptionFlagWithDataSource<string | undefined>;
44
+ 'db-user': IOptionFlagWithDataSource<string | undefined>;
45
+ 'db-password': IOptionFlagWithDataSource<string | undefined>;
46
+ 'db-database': IOptionFlagWithDataSource<string | undefined>;
47
+ 'db-link-types': IBooleanFlagWithDataSource<boolean>;
48
+ 'db-include': IOptionFlagWithDataSource<string | undefined>;
49
+ 'db-schema': IOptionFlagWithDataSource<string | undefined>;
50
+ 'db-use-deprecated-2022-naming': IBooleanFlagWithDataSource<boolean>;
51
+ 'snowflake-account-id': IOptionFlagWithDataSource<string | undefined>;
52
+ 'snowflake-warehouse': IOptionFlagWithDataSource<string | undefined>;
53
+ help: Parser.flags.IBooleanFlag<void>;
54
+ 'non-interactive': Parser.flags.IBooleanFlag<boolean>;
83
55
  };
84
56
  static args: {
85
57
  name: string;
86
58
  required: boolean;
87
59
  }[];
60
+ static flagHelpForSource: (source: DataSourceType, exclude?: Array<keyof typeof Import.flags>) => string;
61
+ static usage: string[];
88
62
  static strict: boolean;
89
63
  run(): Promise<void>;
90
64
  importCurl(argv: string[], flags: Flags<typeof Import>, commonOptions: CommonImportOptions): Promise<string>;
91
65
  importGraphQL(argv: string[], flags: Flags<typeof Import>, commonOptions: CommonImportOptions): Promise<string>;
92
- importSql(source: 'mysql' | 'postgresql', dsn: string | undefined, flags: Flags<typeof Import>, fixedOptions: CommonImportOptions): Promise<string>;
66
+ importSql(source: DBType, dsn: string | undefined, flags: Flags<typeof Import>, fixedOptions: CommonImportOptions): Promise<string>;
93
67
  ensureOnConflictBehavior(workspace: Workspace, source: string, flags: ReturnType<Import['parseWorkaround']>['flags']): Promise<"overwrite" | "append">;
94
- warnAboutIgnoredFlags(source: string, usedFlags: {
95
- [key: string]: any;
96
- }): void;
97
- parseWorkaround(): import("@oclif/parser").Output<{
98
- 'db-schema': string | undefined;
68
+ warnAboutIgnoredFlags(source: string, usedFlags: Flags<typeof Import>): void;
69
+ parseWorkaround(): Parser.Output<{
70
+ dir: string | undefined;
71
+ silent: boolean;
72
+ name: string | undefined;
73
+ overwrite: boolean;
74
+ prefix: string | undefined;
75
+ header: string[];
76
+ 'header-param': string[];
77
+ 'query-name': string | undefined;
78
+ 'query-type': string | undefined;
79
+ 'path-params': string | undefined;
99
80
  'db-host': string | undefined;
100
81
  'db-user': string | undefined;
101
82
  'db-password': string | undefined;
102
83
  'db-database': string | undefined;
103
84
  'db-link-types': boolean;
104
85
  'db-include': string | undefined;
105
- 'query-name': string | undefined;
106
- 'query-type': string | undefined;
107
- 'path-params': string | undefined;
108
- prefix: string | undefined;
109
- header: string[];
110
- 'header-param': string[];
111
- dir: string | undefined;
112
- silent: boolean;
113
- name: string | undefined;
114
- overwrite: boolean;
86
+ 'db-schema': string | undefined;
87
+ 'db-use-deprecated-2022-naming': boolean;
88
+ 'snowflake-account-id': string | undefined;
89
+ 'snowflake-warehouse': string | undefined;
115
90
  help: void;
116
91
  'non-interactive': boolean;
117
92
  }, {
118
93
  [name: string]: any;
119
94
  }>;
120
95
  parseHeaderFlags(headerFlagValues?: string[], headerParamFlagValues?: string[]): HeaderInput[];
121
- getSqlOptionsFromFlags(flags: Flags<typeof Import>): Partial<Sql2SdlOptions>;
122
- getSqlOptionsFromDSN(possibleDsn: string): import("lodash").Dictionary<string | undefined>;
96
+ getSqlOptionsFromFlags(flags: Flags<typeof Import>): {
97
+ host: string | undefined;
98
+ user: string | undefined;
99
+ password: string | undefined;
100
+ database: string | undefined;
101
+ linkTypes: boolean;
102
+ schema: string | undefined;
103
+ include: "tables-only" | "views-only" | "tables-and-views" | undefined;
104
+ introspectionOptions: DBIntrospectionOptions;
105
+ accountId: string | undefined;
106
+ warehouse: string | undefined;
107
+ };
108
+ getSqlOptionsFromDSN(possibleDsn: string): {
109
+ host: string | undefined;
110
+ accountId: string | undefined;
111
+ user: string | undefined;
112
+ password: string | undefined;
113
+ database: string | undefined;
114
+ schema: string | undefined;
115
+ warehouse: string | undefined;
116
+ };
123
117
  runImportAndExitOnError(importFn: () => Promise<{
124
118
  error: string;
125
119
  } | any>, ctaOnError?: string): Promise<any>;
126
120
  }
121
+ export {};
127
122
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":";AAKA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAA;AAOpC,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAepD,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAM9C,OAAO,EAAkB,cAAc,EAAU,MAAM,qBAAqB,CAAA;AAK5E,OAAO,EAAS,WAAW,EAAc,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAA;AAGhD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAC5C,MAAM,CAAC,WAAW,SACqE;IAEvF,MAAM,CAAC,wBAAwB;;;;MA+B9B;IAED,MAAM,CAAC,SAAS;;;;MA0Bf;IAED,MAAM,CAAC,QAAQ;;;;;;;MA0Bd;IAED,MAAM,CAAC,eAAe;;MAKrB;IAED,MAAM,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAKrB;IAED,MAAM,CAAC,iBAAiB,WAAY,MAAM,YAAY,MAAM,EAAE,YAWhD;IAEd,MAAM,CAAC,KAAK,WAaX;IAED,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;MAoBX;IAED,MAAM,CAAC,IAAI;;;QAKV;IAGD,MAAM,CAAC,MAAM,UAAQ;IAEf,GAAG;IA4EH,UAAU,CACd,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,MAAM,CAAC;IA0EZ,aAAa,CACjB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,MAAM,CAAC;IAuCZ,SAAS,CACb,MAAM,EAAE,OAAO,GAAG,YAAY,EAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAC3B,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,MAAM,CAAC;IA6CZ,wBAAwB,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;IAmEvD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAsBrE,eAAe;;;;;;;;;;;;;;;;;;;;;;;IA4Cf,gBAAgB,CACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAC/B,WAAW,EAAE;IAuBhB,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC;IAmBlD,oBAAoB,CAAC,WAAW,EAAE,MAAM;IAgBlC,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,GAAG,GAAG,CAAC,EAC9C,UAAU,SAAK;CA+DlB"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}