appwrite-cli 1.2.1 → 2.0.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 +4 -4
- package/docs/examples/account/create.md +1 -1
- package/docs/examples/account/update-password.md +1 -1
- package/docs/examples/console/variables.md +1 -0
- package/docs/examples/databases/create-relationship-attribute.md +9 -0
- package/docs/examples/databases/get-document.md +2 -1
- package/docs/examples/databases/update-boolean-attribute.md +6 -0
- package/docs/examples/databases/update-datetime-attribute.md +6 -0
- package/docs/examples/databases/update-email-attribute.md +6 -0
- package/docs/examples/databases/update-enum-attribute.md +7 -0
- package/docs/examples/databases/update-float-attribute.md +8 -0
- package/docs/examples/databases/update-integer-attribute.md +8 -0
- package/docs/examples/databases/update-ip-attribute.md +6 -0
- package/docs/examples/databases/update-relationship-attribute.md +5 -0
- package/docs/examples/databases/update-string-attribute.md +6 -0
- package/docs/examples/databases/update-url-attribute.md +6 -0
- package/docs/examples/functions/create.md +1 -1
- package/docs/examples/functions/update.md +1 -1
- package/docs/examples/projects/update-auth-password-dictionary.md +3 -0
- package/docs/examples/projects/update-auth-password-history.md +3 -0
- package/docs/examples/teams/create-membership.md +3 -1
- package/docs/examples/teams/get-prefs.md +2 -0
- package/docs/examples/teams/{update.md → update-name.md} +1 -1
- package/docs/examples/teams/update-prefs.md +3 -0
- package/docs/examples/users/update-password.md +1 -1
- package/index.js +2 -0
- package/install.ps1 +2 -2
- package/install.sh +1 -1
- package/lib/client.js +7 -7
- package/lib/commands/account.js +40 -7
- package/lib/commands/console.js +44 -0
- package/lib/commands/databases.js +727 -103
- package/lib/commands/deploy.js +270 -146
- package/lib/commands/functions.js +35 -9
- package/lib/commands/generic.js +6 -3
- package/lib/commands/init.js +215 -179
- package/lib/commands/projects.js +139 -5
- package/lib/commands/storage.js +37 -9
- package/lib/commands/teams.js +102 -16
- package/lib/commands/users.js +51 -2
- package/lib/config.js +84 -6
- package/lib/parser.js +6 -2
- package/lib/questions.js +307 -280
- package/package.json +1 -1
- package/docs/examples/account/get-logs.md +0 -2
- package/docs/examples/account/get-sessions.md +0 -1
- package/docs/examples/functions/retry-build.md +0 -4
- package/docs/examples/locale/get-continents.md +0 -1
- package/docs/examples/locale/get-countries-e-u.md +0 -1
- package/docs/examples/locale/get-countries-phones.md +0 -1
- package/docs/examples/locale/get-countries.md +0 -1
- package/docs/examples/locale/get-currencies.md +0 -1
- package/docs/examples/locale/get-languages.md +0 -1
- package/docs/examples/teams/get-memberships.md +0 -4
- package/docs/examples/users/get-logs.md +0 -3
- package/docs/examples/users/get-memberships.md +0 -2
- package/docs/examples/users/get-sessions.md +0 -2
package/lib/questions.js
CHANGED
|
@@ -5,334 +5,361 @@ const { databasesList } = require('./commands/databases');
|
|
|
5
5
|
const JSONbig = require("json-bigint")({ storeAsString: false });
|
|
6
6
|
|
|
7
7
|
const getIgnores = (runtime) => {
|
|
8
|
-
|
|
8
|
+
const languge = runtime.split('-')[0];
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
10
|
+
switch (languge) {
|
|
11
|
+
case 'cpp':
|
|
12
|
+
return ['build', 'CMakeFiles', 'CMakeCaches.txt'];
|
|
13
|
+
case 'dart':
|
|
14
|
+
return ['.packages', '.dart_tool'];
|
|
15
|
+
case 'deno':
|
|
16
|
+
return [];
|
|
17
|
+
case 'dotnet':
|
|
18
|
+
return ['bin', 'obj', '.nuget'];
|
|
19
|
+
case 'java':
|
|
20
|
+
case 'kotlin':
|
|
21
|
+
return ['build'];
|
|
22
|
+
case 'node':
|
|
23
|
+
return ['node_modules', '.npm'];
|
|
24
|
+
case 'php':
|
|
25
|
+
return ['vendor'];
|
|
26
|
+
case 'python':
|
|
27
|
+
return ['__pypackages__'];
|
|
28
|
+
case 'ruby':
|
|
29
|
+
return ['vendor'];
|
|
30
|
+
case 'rust':
|
|
31
|
+
return ['target', 'debug', '*.rs.bk', '*.pdb'];
|
|
32
|
+
case 'swift':
|
|
33
|
+
return ['.build', '.swiftpm'];
|
|
34
|
+
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
return undefined;
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
const getEntrypoint = (runtime) => {
|
|
40
|
-
|
|
40
|
+
const languge = runtime.split('-')[0];
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
42
|
+
switch (languge) {
|
|
43
|
+
case 'dart':
|
|
44
|
+
return 'lib/main.dart';
|
|
45
|
+
case 'deno':
|
|
46
|
+
return 'src/mod.ts';
|
|
47
|
+
case 'node':
|
|
48
|
+
return 'src/index.js';
|
|
49
|
+
case 'php':
|
|
50
|
+
return 'src/index.php';
|
|
51
|
+
case 'python':
|
|
52
|
+
return 'src/index.py';
|
|
53
|
+
case 'ruby':
|
|
54
|
+
return 'src/index.rb';
|
|
55
|
+
case 'rust':
|
|
56
|
+
return 'main.rs';
|
|
57
|
+
case 'swift':
|
|
58
|
+
return 'Sources/swift-5.5/main.swift';
|
|
59
|
+
case 'cpp':
|
|
60
|
+
return 'src/index.cc';
|
|
61
|
+
case 'dotnet':
|
|
62
|
+
return 'src/Index.cs';
|
|
63
|
+
case 'java':
|
|
64
|
+
return 'src/Index.java';
|
|
65
|
+
case 'kotlin':
|
|
66
|
+
return 'src/Index.kt';
|
|
67
|
+
}
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
return undefined;
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
const questionsInitProject = [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
type: "list",
|
|
84
|
-
name: "start",
|
|
85
|
-
when(answers) {
|
|
86
|
-
if (answers.override == undefined) {
|
|
87
|
-
return true
|
|
88
|
-
}
|
|
89
|
-
return answers.override;
|
|
73
|
+
{
|
|
74
|
+
type: "confirm",
|
|
75
|
+
name: "override",
|
|
76
|
+
message:
|
|
77
|
+
`An Appwrite project ( ${localConfig.getProject()['projectName']} ) is already associated with the current directory. Would you like to override`,
|
|
78
|
+
when() {
|
|
79
|
+
return Object.keys(localConfig.getProject()).length !== 0;
|
|
80
|
+
}
|
|
90
81
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
82
|
+
{
|
|
83
|
+
type: "list",
|
|
84
|
+
name: "start",
|
|
85
|
+
when(answers) {
|
|
86
|
+
if (answers.override == undefined) {
|
|
87
|
+
return true
|
|
88
|
+
}
|
|
89
|
+
return answers.override;
|
|
90
|
+
},
|
|
91
|
+
message: "How would you like to start?",
|
|
92
|
+
choices: [
|
|
93
|
+
{
|
|
94
|
+
name: "Create a new Appwrite project",
|
|
95
|
+
value: "new",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "Link this directory to an existing Appwrite project",
|
|
99
|
+
value: "existing",
|
|
100
|
+
},
|
|
101
|
+
],
|
|
110
102
|
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
{
|
|
104
|
+
type: "input",
|
|
105
|
+
name: "project",
|
|
106
|
+
message: "What would you like to name your project?",
|
|
107
|
+
default: "My Awesome Project",
|
|
108
|
+
when(answers) {
|
|
109
|
+
return answers.start == "new";
|
|
110
|
+
},
|
|
119
111
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
112
|
+
{
|
|
113
|
+
type: "input",
|
|
114
|
+
name: "id",
|
|
115
|
+
message: "What ID would you like to have for your project?",
|
|
116
|
+
default: "unique()",
|
|
117
|
+
when(answers) {
|
|
118
|
+
return answers.start == "new";
|
|
119
|
+
},
|
|
127
120
|
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
121
|
+
{
|
|
122
|
+
type: "list",
|
|
123
|
+
name: "project",
|
|
124
|
+
message: "Choose your Appwrite project.",
|
|
125
|
+
when(answers) {
|
|
126
|
+
return answers.start == "existing";
|
|
127
|
+
},
|
|
128
|
+
choices: async () => {
|
|
129
|
+
let response = await projectsList({
|
|
130
|
+
parseOutput: false
|
|
131
|
+
})
|
|
132
|
+
let projects = response["projects"]
|
|
133
|
+
let choices = projects.map((project, idx) => {
|
|
134
|
+
return {
|
|
135
|
+
name: `${project.name} (${project['$id']})`,
|
|
136
|
+
value: {
|
|
137
|
+
name: project.name,
|
|
138
|
+
id: project['$id']
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
if (choices.length == 0) {
|
|
144
|
+
throw new Error("No projects found. Please create a new project.")
|
|
145
|
+
}
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
return choices;
|
|
148
|
+
}
|
|
148
149
|
}
|
|
149
|
-
}
|
|
150
150
|
];
|
|
151
151
|
|
|
152
152
|
const questionsInitFunction = [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
153
|
+
{
|
|
154
|
+
type: "input",
|
|
155
|
+
name: "name",
|
|
156
|
+
message: "What would you like to name your function?",
|
|
157
|
+
default: "My Awesome Function"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "input",
|
|
161
|
+
name: "id",
|
|
162
|
+
message: "What ID would you like to have for your function?",
|
|
163
|
+
default: "unique()"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: "list",
|
|
167
|
+
name: "runtime",
|
|
168
|
+
message: "What runtime would you like to use?",
|
|
169
|
+
choices: async () => {
|
|
170
|
+
let response = await functionsListRuntimes({
|
|
171
|
+
parseOutput: false
|
|
172
|
+
})
|
|
173
|
+
let runtimes = response["runtimes"]
|
|
174
|
+
let choices = runtimes.map((runtime, idx) => {
|
|
175
|
+
return {
|
|
176
|
+
name: `${runtime.name} (${runtime['$id']})`,
|
|
177
|
+
value: { id: runtime['$id'], entrypoint: getEntrypoint(runtime['$id']), ignore: getIgnores(runtime['$id']) },
|
|
178
|
+
}
|
|
179
|
+
})
|
|
180
|
+
return choices;
|
|
178
181
|
}
|
|
179
|
-
})
|
|
180
|
-
return choices;
|
|
181
182
|
}
|
|
182
|
-
}
|
|
183
183
|
];
|
|
184
184
|
|
|
185
185
|
const questionsInitCollection = [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
186
|
+
{
|
|
187
|
+
type: "checkbox",
|
|
188
|
+
name: "databases",
|
|
189
|
+
message: "From which database would you like to init collections?",
|
|
190
|
+
choices: async () => {
|
|
191
|
+
let response = await databasesList({
|
|
192
|
+
parseOutput: false
|
|
193
|
+
})
|
|
194
|
+
let databases = response["databases"]
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
if (databases.length <= 0) {
|
|
197
|
+
throw new Error("No databases found. Please create one in project console.")
|
|
198
|
+
}
|
|
199
|
+
let choices = databases.map((database, idx) => {
|
|
200
|
+
return {
|
|
201
|
+
name: `${database.name} (${database.$id})`,
|
|
202
|
+
value: database.$id
|
|
203
|
+
}
|
|
204
|
+
})
|
|
205
|
+
return choices;
|
|
203
206
|
}
|
|
204
|
-
})
|
|
205
|
-
return choices;
|
|
206
207
|
}
|
|
207
|
-
}
|
|
208
208
|
];
|
|
209
209
|
|
|
210
210
|
const questionsLogin = [
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
211
|
+
{
|
|
212
|
+
type: "input",
|
|
213
|
+
name: "email",
|
|
214
|
+
message: "Enter your email",
|
|
215
|
+
validate(value) {
|
|
216
|
+
if (!value) {
|
|
217
|
+
return "Please enter your email";
|
|
218
|
+
}
|
|
219
|
+
return true;
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
type: "password",
|
|
224
|
+
name: "password",
|
|
225
|
+
message: "Enter your password",
|
|
226
|
+
mask: "*",
|
|
227
|
+
validate(value) {
|
|
228
|
+
if (!value) {
|
|
229
|
+
return "Please enter your password";
|
|
230
|
+
}
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
220
233
|
},
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
type: "password",
|
|
224
|
-
name: "password",
|
|
225
|
-
message: "Enter your password",
|
|
226
|
-
mask: "*",
|
|
227
|
-
validate(value) {
|
|
228
|
-
if (!value) {
|
|
229
|
-
return "Please enter your password";
|
|
230
|
-
}
|
|
231
|
-
return true;
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
234
|
];
|
|
235
235
|
|
|
236
236
|
const questionsDeployFunctions = [
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
237
|
+
{
|
|
238
|
+
type: "checkbox",
|
|
239
|
+
name: "functions",
|
|
240
|
+
message: "Which functions would you like to deploy?",
|
|
241
|
+
choices: () => {
|
|
242
|
+
let functions = localConfig.getFunctions();
|
|
243
|
+
if (functions.length === 0) {
|
|
244
|
+
throw new Error("No functions found in the current directory.");
|
|
245
|
+
}
|
|
246
|
+
let choices = functions.map((func, idx) => {
|
|
247
|
+
return {
|
|
248
|
+
name: `${func.name} (${func.$id})`,
|
|
249
|
+
value: func.$id
|
|
250
|
+
}
|
|
251
|
+
})
|
|
252
|
+
return choices;
|
|
250
253
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
name: "override",
|
|
258
|
-
message: 'Are you sure you want to override this function\'s variables? This can lead to loss of secrets! Type "YES" to confirm.'
|
|
259
|
-
},
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
type: "input",
|
|
257
|
+
name: "override",
|
|
258
|
+
message: 'Are you sure you want to override this function\'s variables? This can lead to loss of secrets! Type "YES" to confirm.'
|
|
259
|
+
},
|
|
260
260
|
]
|
|
261
261
|
|
|
262
262
|
const questionsDeployCollections = [
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
263
|
+
{
|
|
264
|
+
type: "checkbox",
|
|
265
|
+
name: "collections",
|
|
266
|
+
message: "Which collections would you like to deploy?",
|
|
267
|
+
choices: () => {
|
|
268
|
+
let collections = localConfig.getCollections();
|
|
269
|
+
if (collections.length === 0) {
|
|
270
|
+
throw new Error("No collections found in the current directory. Run `appwrite init collection` to fetch all your collections.");
|
|
271
|
+
}
|
|
272
|
+
let choices = collections.map((collection, idx) => {
|
|
273
|
+
return {
|
|
274
|
+
name: `${collection.name} (${collection['databaseId']} - ${collection['$id']})`,
|
|
275
|
+
value: `${collection['databaseId']}|${collection['$id']}`
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
return choices;
|
|
276
279
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
type: "input",
|
|
283
|
+
name: "override",
|
|
284
|
+
message: 'Are you sure you want to override this collection? This can lead to loss of data! Type "YES" to confirm.'
|
|
285
|
+
},
|
|
286
|
+
]
|
|
287
|
+
|
|
288
|
+
const questionsDeployBuckets = [
|
|
289
|
+
{
|
|
290
|
+
type: "checkbox",
|
|
291
|
+
name: "buckets",
|
|
292
|
+
message: "Which buckets would you like to deploy?",
|
|
293
|
+
choices: () => {
|
|
294
|
+
let buckets = localConfig.getBuckets();
|
|
295
|
+
if (buckets.length === 0) {
|
|
296
|
+
throw new Error("No buckets found in the current directory. Run `appwrite init bucket` to fetch all your buckets.");
|
|
297
|
+
}
|
|
298
|
+
let choices = buckets.map((bucket, idx) => {
|
|
299
|
+
return {
|
|
300
|
+
name: `${bucket.name} (${bucket['$id']})`,
|
|
301
|
+
value: bucket.$id
|
|
302
|
+
}
|
|
303
|
+
})
|
|
304
|
+
return choices;
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
type: "input",
|
|
309
|
+
name: "override",
|
|
310
|
+
message: 'Are you sure you want to override this bucket? This can lead to loss of data! Type "YES" to confirm.'
|
|
311
|
+
},
|
|
286
312
|
]
|
|
287
313
|
|
|
288
314
|
const questionsGetEntrypoint = [
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
315
|
+
{
|
|
316
|
+
type: "input",
|
|
317
|
+
name: "entrypoint",
|
|
318
|
+
message: "Enter the entrypoint",
|
|
319
|
+
default: null,
|
|
320
|
+
validate(value) {
|
|
321
|
+
if (!value) {
|
|
322
|
+
return "Please enter your enrtypoint";
|
|
323
|
+
}
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
},
|
|
301
327
|
]
|
|
302
328
|
|
|
303
329
|
const questionsDeployTeams = [
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
330
|
+
{
|
|
331
|
+
type: "checkbox",
|
|
332
|
+
name: "teams",
|
|
333
|
+
message: "Which teams would you like to deploy?",
|
|
334
|
+
choices: () => {
|
|
335
|
+
let teams = localConfig.getTeams();
|
|
336
|
+
if (teams.length === 0) {
|
|
337
|
+
throw new Error("No teams found in the current directory. Run `appwrite init team` to fetch all your teams.");
|
|
338
|
+
}
|
|
339
|
+
let choices = teams.map((team, idx) => {
|
|
340
|
+
return {
|
|
341
|
+
name: `${team.name} (${team['$id']})`,
|
|
342
|
+
value: team.$id
|
|
343
|
+
}
|
|
344
|
+
})
|
|
345
|
+
return choices;
|
|
317
346
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
name: "override",
|
|
325
|
-
message: 'Are you sure you want to override this team? This can lead to loss of data! Type "YES" to confirm.'
|
|
326
|
-
},
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
type: "input",
|
|
350
|
+
name: "override",
|
|
351
|
+
message: 'Are you sure you want to override this team? This can lead to loss of data! Type "YES" to confirm.'
|
|
352
|
+
},
|
|
327
353
|
]
|
|
328
354
|
|
|
329
355
|
module.exports = {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
356
|
+
questionsInitProject,
|
|
357
|
+
questionsLogin,
|
|
358
|
+
questionsInitFunction,
|
|
359
|
+
questionsInitCollection,
|
|
360
|
+
questionsDeployFunctions,
|
|
361
|
+
questionsDeployCollections,
|
|
362
|
+
questionsDeployBuckets,
|
|
363
|
+
questionsDeployTeams,
|
|
364
|
+
questionsGetEntrypoint
|
|
338
365
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "appwrite-cli",
|
|
3
3
|
"homepage": "https://appwrite.io/support",
|
|
4
4
|
"description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "2.0.0",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"bin": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
appwrite account getSessions
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
appwrite locale getContinents
|