@spica/cli 0.18.16 → 0.18.18-pre
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/index.js +3516 -38
- package/package.json +56 -31
- package/index.d.ts +0 -2
- package/index.js.map +0 -1
- package/src/commands/asset/apply.d.ts +0 -2
- package/src/commands/asset/apply.js +0 -56
- package/src/commands/asset/apply.js.map +0 -1
- package/src/commands/asset/delete.d.ts +0 -2
- package/src/commands/asset/delete.js +0 -35
- package/src/commands/asset/delete.js.map +0 -1
- package/src/commands/bucket/orm.d.ts +0 -45
- package/src/commands/bucket/orm.js +0 -478
- package/src/commands/bucket/orm.js.map +0 -1
- package/src/commands/context/ls.d.ts +0 -2
- package/src/commands/context/ls.js +0 -23
- package/src/commands/context/ls.js.map +0 -1
- package/src/commands/context/remove.d.ts +0 -2
- package/src/commands/context/remove.js +0 -16
- package/src/commands/context/remove.js.map +0 -1
- package/src/commands/context/set.d.ts +0 -2
- package/src/commands/context/set.js +0 -39
- package/src/commands/context/set.js.map +0 -1
- package/src/commands/context/switch.d.ts +0 -2
- package/src/commands/context/switch.js +0 -22
- package/src/commands/context/switch.js.map +0 -1
- package/src/commands/function/orm.d.ts +0 -2
- package/src/commands/function/orm.js +0 -63
- package/src/commands/function/orm.js.map +0 -1
- package/src/commands/project/ls.d.ts +0 -2
- package/src/commands/project/ls.js +0 -55
- package/src/commands/project/ls.js.map +0 -1
- package/src/commands/project/remove.d.ts +0 -2
- package/src/commands/project/remove.js +0 -82
- package/src/commands/project/remove.js.map +0 -1
- package/src/commands/project/start.d.ts +0 -2
- package/src/commands/project/start.js +0 -443
- package/src/commands/project/start.js.map +0 -1
- package/src/commands/project/sync.d.ts +0 -201
- package/src/commands/project/sync.js +0 -785
- package/src/commands/project/sync.js.map +0 -1
- package/src/commands/project/upgrade.d.ts +0 -2
- package/src/commands/project/upgrade.js +0 -174
- package/src/commands/project/upgrade.js.map +0 -1
- package/src/compile.d.ts +0 -22
- package/src/compile.js +0 -115
- package/src/compile.js.map +0 -1
- package/src/config.d.ts +0 -9
- package/src/config.js +0 -53
- package/src/config.js.map +0 -1
- package/src/console.d.ts +0 -14
- package/src/console.js +0 -47
- package/src/console.js.map +0 -1
- package/src/context.d.ts +0 -17
- package/src/context.js +0 -54
- package/src/context.js.map +0 -1
- package/src/function/helpers.d.ts +0 -2
- package/src/function/helpers.js +0 -12
- package/src/function/helpers.js.map +0 -1
- package/src/function/index.d.ts +0 -2
- package/src/function/index.js +0 -3
- package/src/function/index.js.map +0 -1
- package/src/function/interface.d.ts +0 -28
- package/src/function/interface.js +0 -3
- package/src/function/interface.js.map +0 -1
- package/src/function/modifier.d.ts +0 -41
- package/src/function/modifier.js +0 -64
- package/src/function/modifier.js.map +0 -1
- package/src/function/triggers/http/index.d.ts +0 -7
- package/src/function/triggers/http/index.js +0 -8
- package/src/function/triggers/http/index.js.map +0 -1
- package/src/function/triggers/http/services/axios.d.ts +0 -46
- package/src/function/triggers/http/services/axios.js +0 -163
- package/src/function/triggers/http/services/axios.js.map +0 -1
- package/src/function/triggers/http/services/index.d.ts +0 -3
- package/src/function/triggers/http/services/index.js +0 -4
- package/src/function/triggers/http/services/index.js.map +0 -1
- package/src/function/triggers/http/transformer.d.ts +0 -16
- package/src/function/triggers/http/transformer.js +0 -49
- package/src/function/triggers/http/transformer.js.map +0 -1
- package/src/function/triggers/index.d.ts +0 -4
- package/src/function/triggers/index.js +0 -6
- package/src/function/triggers/index.js.map +0 -1
- package/src/http.d.ts +0 -11
- package/src/http.js +0 -30
- package/src/http.js.map +0 -1
- package/src/project.d.ts +0 -11
- package/src/project.js +0 -63
- package/src/project.js.map +0 -1
- package/src/range.d.ts +0 -1
- package/src/range.js +0 -13
- package/src/range.js.map +0 -1
- package/src/representative.d.ts +0 -13
- package/src/representative.js +0 -120
- package/src/representative.js.map +0 -1
- package/src/status.d.ts +0 -19
- package/src/status.js +0 -39
- package/src/status.js.map +0 -1
- package/src/validator.d.ts +0 -7
- package/src/validator.js +0 -52
- package/src/validator.js.map +0 -1
- package/tsconfig.app.tsbuildinfo +0 -1
|
@@ -1,478 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { context } from "../../context.js";
|
|
4
|
-
import { spin } from "../../console.js";
|
|
5
|
-
import { httpService } from "../../http.js";
|
|
6
|
-
async function orm({ options }) {
|
|
7
|
-
const PATH = options.path || "";
|
|
8
|
-
const DESTINATION = path.join(PATH, "bucket.ts");
|
|
9
|
-
const httpClient = await httpService.createFromCurrentCtx();
|
|
10
|
-
const { url } = await context.getCurrent();
|
|
11
|
-
await spin({
|
|
12
|
-
text: "Fetching buckets..",
|
|
13
|
-
op: async (spinner) => {
|
|
14
|
-
const buckets = await httpClient.get("/bucket");
|
|
15
|
-
const languages = await httpClient
|
|
16
|
-
.get("/preference/bucket")
|
|
17
|
-
.then(r => Object.keys(r.language.available));
|
|
18
|
-
spinner.text = "Building interface and method definitions..";
|
|
19
|
-
const warnings = [];
|
|
20
|
-
const content = Schema.createFileContent(buckets, languages, url, warnings);
|
|
21
|
-
spinner.text = "Writing to the destination..";
|
|
22
|
-
fs.writeFileSync(DESTINATION, content);
|
|
23
|
-
spinner.text = `Succesfully completed! File url is ${PATH ? DESTINATION : path.join(process.cwd(), "bucket.ts")}`;
|
|
24
|
-
if (warnings.length) {
|
|
25
|
-
spinner.warn(warnings.join());
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
export default function (program) {
|
|
31
|
-
return program
|
|
32
|
-
.command("bucket orm", "Create object relational mapping applied version of @spica-devkit/bucket")
|
|
33
|
-
.option("--path <path>", "Full URL of the destination folder that the file will be created into. The current directory will be used as default")
|
|
34
|
-
.action(orm);
|
|
35
|
-
}
|
|
36
|
-
export var Schema;
|
|
37
|
-
(function (Schema) {
|
|
38
|
-
function createFileContent(buckets, languages, apiurl, warnings) {
|
|
39
|
-
const languagesDefinition = `${languages.map(i => `'${i}'`).join("|")}`;
|
|
40
|
-
let lines = [];
|
|
41
|
-
lines.push("import * as Bucket from '../../../../api/src/function/packages/bucket/index.js';");
|
|
42
|
-
lines.push(`
|
|
43
|
-
/**
|
|
44
|
-
* Call this method before interacting with buckets.
|
|
45
|
-
* @param initOptions Initialize options to initialize the '@spica-devkit/bucket'.
|
|
46
|
-
*/
|
|
47
|
-
export function initialize(
|
|
48
|
-
...initOptions: Parameters<typeof Bucket.initialize>
|
|
49
|
-
) {
|
|
50
|
-
initOptions[0].publicUrl = '${apiurl}';
|
|
51
|
-
Bucket.initialize(...initOptions);
|
|
52
|
-
}`);
|
|
53
|
-
lines.push("\n\ntype Rest<T extends any[]> = ((...p: T) => void) extends ((p1: infer P1, ...rest: infer R) => void) ? R : never;");
|
|
54
|
-
lines.push("\ntype getArgs = Rest<Parameters<typeof Bucket.data.get>>;");
|
|
55
|
-
lines.push("\ntype getAllArgs = Rest<Parameters<typeof Bucket.data.getAll>>;");
|
|
56
|
-
lines.push("\ntype realtimeGetArgs = Rest<Parameters<typeof Bucket.data.realtime.get>>;");
|
|
57
|
-
lines.push("\ntype realtimeGetAllArgs = Rest<Parameters<typeof Bucket.data.realtime.getAll>>;");
|
|
58
|
-
lines.push("\ntype id = { _id: string };");
|
|
59
|
-
lines.push(`
|
|
60
|
-
|
|
61
|
-
type Find<Targets extends string[], Search extends string> = {
|
|
62
|
-
[K in keyof Targets]: Targets[K] extends \`\${Search}.$\{infer Rest}\`
|
|
63
|
-
? Targets[K]
|
|
64
|
-
: Targets[K] extends \`\${Search}\`
|
|
65
|
-
? Targets[K]
|
|
66
|
-
: never;
|
|
67
|
-
}[number];
|
|
68
|
-
|
|
69
|
-
type FindRest<T extends string[], S extends string> = {
|
|
70
|
-
[K in keyof T]: T[K] extends \`\${S}.$\{infer Rest}\`
|
|
71
|
-
? Rest
|
|
72
|
-
: never
|
|
73
|
-
}[number];
|
|
74
|
-
|
|
75
|
-
type ConvertEnumToSelection<T extends string[]> = T extends []
|
|
76
|
-
? []
|
|
77
|
-
: T extends (infer U)[]
|
|
78
|
-
? [U, ...U[]]
|
|
79
|
-
: [];
|
|
80
|
-
|
|
81
|
-
type Props<T> = {
|
|
82
|
-
[K in keyof T]: K;
|
|
83
|
-
}[keyof T];
|
|
84
|
-
|
|
85
|
-
type RemoveProps<TClass, TProps extends keyof TClass> = {
|
|
86
|
-
[K in keyof TClass as K extends TProps ? never : K]: TClass[K];
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
type AvailableLanguages = ${languagesDefinition}
|
|
90
|
-
|
|
91
|
-
`);
|
|
92
|
-
buckets = makeTitlesUnique(buckets, warnings);
|
|
93
|
-
for (const bucket of buckets) {
|
|
94
|
-
buildInterface(bucket, languages, lines);
|
|
95
|
-
}
|
|
96
|
-
lines = replaceRelations(buckets, lines);
|
|
97
|
-
lines = addCrud(lines, buckets, languages);
|
|
98
|
-
return lines.join("");
|
|
99
|
-
}
|
|
100
|
-
Schema.createFileContent = createFileContent;
|
|
101
|
-
function addCrud(lines, buckets, languages) {
|
|
102
|
-
const crud = `
|
|
103
|
-
class CRUD<Scheme,Paginate extends boolean = false> {
|
|
104
|
-
protected options: {
|
|
105
|
-
headers: {
|
|
106
|
-
'accept-language'?: string;
|
|
107
|
-
};
|
|
108
|
-
queryParams: {
|
|
109
|
-
limit?: number;
|
|
110
|
-
skip?: number;
|
|
111
|
-
sort?: {
|
|
112
|
-
[T in keyof Scheme]: -1 | 1;
|
|
113
|
-
};
|
|
114
|
-
paginate?: boolean;
|
|
115
|
-
|
|
116
|
-
relation?: string[];
|
|
117
|
-
localize?: boolean;
|
|
118
|
-
filter?: any;
|
|
119
|
-
};
|
|
120
|
-
} = {
|
|
121
|
-
headers: {},
|
|
122
|
-
queryParams: {},
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
constructor(
|
|
126
|
-
protected bucketId: string,
|
|
127
|
-
protected bdService: typeof Bucket.data,
|
|
128
|
-
protected relationalFields: string[]
|
|
129
|
-
) {}
|
|
130
|
-
|
|
131
|
-
private normalizeRelations(document: any) {
|
|
132
|
-
this.relationalFields.forEach((field) => {
|
|
133
|
-
if (typeof document[field] == 'object' && document[field] !== null) {
|
|
134
|
-
document[field] = Array.isArray(document[field])
|
|
135
|
-
? document[field].map((v: any) => v._id || v)
|
|
136
|
-
: document[field]._id;
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
return document;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
private buildOptions(options: any) {
|
|
143
|
-
options = options ? options : this.options;
|
|
144
|
-
this.options = {
|
|
145
|
-
headers: {},
|
|
146
|
-
queryParams: {},
|
|
147
|
-
};
|
|
148
|
-
return options;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
get(...args: getArgs) {
|
|
152
|
-
args[1] = this.buildOptions(args[1]);
|
|
153
|
-
return this.bdService.get<Scheme & id>(this.bucketId, ...args);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
getAll(
|
|
157
|
-
...args: getAllArgs
|
|
158
|
-
): Paginate extends true
|
|
159
|
-
? Promise<Bucket.IndexResult<Scheme>>
|
|
160
|
-
: Promise<Scheme[]> {
|
|
161
|
-
args[0] = this.buildOptions(args[0]);
|
|
162
|
-
return this.bdService.getAll<Scheme & id>(
|
|
163
|
-
this.bucketId,
|
|
164
|
-
...args
|
|
165
|
-
) as Paginate extends true
|
|
166
|
-
? Promise<Bucket.IndexResult<Scheme>>
|
|
167
|
-
: Promise<Scheme[]>;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
insert(document: Omit<Scheme, '_id'>) {
|
|
171
|
-
document = this.normalizeRelations(document);
|
|
172
|
-
return this.bdService.insert(this.bucketId, document);
|
|
173
|
-
}
|
|
174
|
-
update(document: Scheme & id) {
|
|
175
|
-
document = this.normalizeRelations(document);
|
|
176
|
-
return this.bdService.update(this.bucketId, document._id, document);
|
|
177
|
-
}
|
|
178
|
-
patch(document: Partial<Scheme> & id) {
|
|
179
|
-
document = this.normalizeRelations(document);
|
|
180
|
-
return this.bdService.patch(this.bucketId, document._id, document);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
remove(documentId: string) {
|
|
184
|
-
return this.bdService.remove(this.bucketId, documentId);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
realtime = {
|
|
188
|
-
get: (...args: realtimeGetArgs) => {
|
|
189
|
-
return this.bdService.realtime.get<Scheme & id>(
|
|
190
|
-
this.bucketId,
|
|
191
|
-
...args
|
|
192
|
-
);
|
|
193
|
-
},
|
|
194
|
-
getAll: (...args: realtimeGetAllArgs) => {
|
|
195
|
-
return this.bdService.realtime.getAll<Scheme & id>(
|
|
196
|
-
this.bucketId,
|
|
197
|
-
...args
|
|
198
|
-
);
|
|
199
|
-
},
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
class Cursor<Scheme,Paginate extends boolean = false> extends CRUD<Scheme,Paginate>{
|
|
204
|
-
limit(limit: number): any {
|
|
205
|
-
this.options.queryParams.limit = limit;
|
|
206
|
-
return this;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
skip(skip: number): any {
|
|
210
|
-
this.options.queryParams.skip = skip;
|
|
211
|
-
return this;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
sort(sort: { [T in keyof Scheme]: -1 | 1 }): any {
|
|
215
|
-
this.options.queryParams.sort = sort;
|
|
216
|
-
return this;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
filter(filter: any): any {
|
|
220
|
-
this.options.queryParams.filter = filter;
|
|
221
|
-
return this;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
translate(language: AvailableLanguages): any {
|
|
225
|
-
this.options.headers['accept-language'] = language;
|
|
226
|
-
return this;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
paginate(): any {
|
|
230
|
-
this.options.queryParams.paginate = true;
|
|
231
|
-
return this;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
nonLocalize(): any {
|
|
235
|
-
this.options.queryParams.localize = false;
|
|
236
|
-
return this;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
resolveRelations(relation:any): any {
|
|
240
|
-
this.options.queryParams.relation = relation;
|
|
241
|
-
return this;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
`;
|
|
245
|
-
lines.push("\n");
|
|
246
|
-
lines.push(crud);
|
|
247
|
-
for (let bucket of buckets) {
|
|
248
|
-
const property = prepareNamespace(bucket.title);
|
|
249
|
-
const interfaceName = prepareInterfaceTitle(bucket.title);
|
|
250
|
-
const bucketId = bucket._id;
|
|
251
|
-
const bdService = "Bucket.data";
|
|
252
|
-
const relationalFields = getRelationFields(bucket.properties);
|
|
253
|
-
const relationalFieldsDefinition = `[${relationalFields.map(i => `'${i}'`).join(",")}]`;
|
|
254
|
-
const resolveRelationEnums = getResolveRelationEnums(bucket._id, buckets);
|
|
255
|
-
const resolveRelationEnumsDefinition = resolveRelationEnums.length
|
|
256
|
-
? `(${resolveRelationEnums.map(i => `'${i}'`).join("|")})[]`
|
|
257
|
-
: "[]";
|
|
258
|
-
const crudDefinition = `
|
|
259
|
-
const ${interfaceName}RelationFields: string[] = ${relationalFieldsDefinition}
|
|
260
|
-
type ${interfaceName}RelationEnum = ${resolveRelationEnumsDefinition}
|
|
261
|
-
type ${interfaceName}RelationSelection = ConvertEnumToSelection<${interfaceName}RelationEnum>
|
|
262
|
-
type ${interfaceName}CursorMethods<
|
|
263
|
-
R extends string[] = [],
|
|
264
|
-
P extends boolean = false,
|
|
265
|
-
L extends boolean = true
|
|
266
|
-
> = RemoveProps<
|
|
267
|
-
${interfaceName}Cursor<R, P, L>,
|
|
268
|
-
Exclude<Props<CRUD<${interfaceName}<R, L>, P>>, 'get' | 'getAll'>
|
|
269
|
-
>;
|
|
270
|
-
|
|
271
|
-
class ${interfaceName}Cursor<R extends string[] = [], P extends boolean = false, L extends boolean = true> extends Cursor<${interfaceName}<R,L>,P>{
|
|
272
|
-
|
|
273
|
-
override resolveRelations<Selecteds extends ${interfaceName}RelationSelection>(
|
|
274
|
-
relations: Selecteds
|
|
275
|
-
): ${interfaceName}CursorMethods<Selecteds, P, L> {
|
|
276
|
-
return super.resolveRelations(relations);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
override nonLocalize(): ${interfaceName}CursorMethods<R, P, false> {
|
|
280
|
-
return super.nonLocalize();
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
override limit(limit: number): ${interfaceName}CursorMethods<R, P, L> {
|
|
284
|
-
return super.limit(limit);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
override skip(skip: number): ${interfaceName}CursorMethods<R, P, L> {
|
|
288
|
-
return super.skip(skip);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
override sort(sort: {
|
|
292
|
-
[T in keyof ${interfaceName}]: -1 | 1;
|
|
293
|
-
}): ${interfaceName}CursorMethods<R, P, L> {
|
|
294
|
-
return super.sort(sort);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
override filter(filter: any): ${interfaceName}CursorMethods<R, P, L> {
|
|
298
|
-
return super.filter(filter);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
override translate(
|
|
302
|
-
language: AvailableLanguages
|
|
303
|
-
): ${interfaceName}CursorMethods<R, P, L> {
|
|
304
|
-
return super.translate(language);
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
override paginate(): ${interfaceName}CursorMethods<R, true, L> {
|
|
308
|
-
return super.paginate();
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
`;
|
|
313
|
-
lines.push(crudDefinition);
|
|
314
|
-
const definition = `
|
|
315
|
-
export const ${property} = new ${interfaceName}Cursor('${bucketId}',${bdService},${interfaceName}RelationFields)
|
|
316
|
-
`;
|
|
317
|
-
lines.push(definition);
|
|
318
|
-
}
|
|
319
|
-
return lines;
|
|
320
|
-
}
|
|
321
|
-
function buildInterface(schema, languages, lines) {
|
|
322
|
-
const name = prepareInterfaceTitle(schema.title);
|
|
323
|
-
lines.push(`\n\nexport interface ${name}<Relations extends string[] = [], Localize extends boolean = true>{`);
|
|
324
|
-
lines.push(`\n _id?: string;`);
|
|
325
|
-
buildProperties(schema.properties, languages, schema.required || [], "bucket", lines);
|
|
326
|
-
lines.push("\n}");
|
|
327
|
-
}
|
|
328
|
-
function prepareInterfaceTitle(str) {
|
|
329
|
-
str = replaceNonWords(str);
|
|
330
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
331
|
-
}
|
|
332
|
-
function replaceRelations(buckets, lines) {
|
|
333
|
-
for (const bucket of buckets) {
|
|
334
|
-
const target = `<${bucket._id}>`;
|
|
335
|
-
lines = lines.map(line => {
|
|
336
|
-
if (line.includes(target)) {
|
|
337
|
-
return line.replace(target, prepareInterfaceTitle(bucket.title));
|
|
338
|
-
}
|
|
339
|
-
return line;
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
return lines;
|
|
343
|
-
}
|
|
344
|
-
})(Schema || (Schema = {}));
|
|
345
|
-
function buildProperties(props, languages, reqs, bucketOrObject, lines) {
|
|
346
|
-
if (bucketOrObject == "object") {
|
|
347
|
-
lines.push("{");
|
|
348
|
-
}
|
|
349
|
-
for (const [key, value] of Object.entries(props)) {
|
|
350
|
-
const reqFlag = !reqs.includes(key) ? "?" : "";
|
|
351
|
-
lines.push(`\n ${key + reqFlag}: `);
|
|
352
|
-
buildPropDef(key, value, languages, lines);
|
|
353
|
-
lines.push(";");
|
|
354
|
-
}
|
|
355
|
-
if (bucketOrObject == "object") {
|
|
356
|
-
lines.push("}");
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
function buildArray(key, def, languages, lines) {
|
|
360
|
-
buildPropDef(key, def, languages, lines);
|
|
361
|
-
lines.push("[]");
|
|
362
|
-
}
|
|
363
|
-
function buildPropDef(key, prop, languages, lines) {
|
|
364
|
-
if (prop.enum) {
|
|
365
|
-
lines.push("(");
|
|
366
|
-
lines.push(prop.enum.map(v => (prop.type == "string" ? `'${v.replace(/'/g, "\\'")}'` : v)).join("|"));
|
|
367
|
-
lines.push(")");
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
switch (prop.type) {
|
|
371
|
-
case "string":
|
|
372
|
-
case "textarea":
|
|
373
|
-
case "color":
|
|
374
|
-
case "richtext":
|
|
375
|
-
case "storage":
|
|
376
|
-
let def = "string";
|
|
377
|
-
if (prop.options && prop.options.translate) {
|
|
378
|
-
let nonLocalizedType = {};
|
|
379
|
-
languages.forEach(l => (nonLocalizedType[l] = "string"));
|
|
380
|
-
nonLocalizedType = JSON.stringify(nonLocalizedType);
|
|
381
|
-
def = `Localize extends true ? string : ${nonLocalizedType}`;
|
|
382
|
-
}
|
|
383
|
-
lines.push(def);
|
|
384
|
-
break;
|
|
385
|
-
case "number":
|
|
386
|
-
lines.push("number");
|
|
387
|
-
break;
|
|
388
|
-
case "date":
|
|
389
|
-
lines.push("Date | string");
|
|
390
|
-
break;
|
|
391
|
-
case "boolean":
|
|
392
|
-
lines.push("boolean");
|
|
393
|
-
break;
|
|
394
|
-
case "object":
|
|
395
|
-
buildProperties(prop.properties, prop.required || [], languages, "object", lines);
|
|
396
|
-
break;
|
|
397
|
-
case "array":
|
|
398
|
-
case "multiselect":
|
|
399
|
-
buildArray(key, prop.items, languages, lines);
|
|
400
|
-
break;
|
|
401
|
-
case "relation":
|
|
402
|
-
const suffix = prop.relationType == "onetomany" ? "[]" : "";
|
|
403
|
-
const definition = `Find<Relations,"${key}">[] extends never[] ? string${suffix} : (<${prop.bucketId}><FindRest<Relations,"${key}">[]>&id)${suffix}`;
|
|
404
|
-
lines.push(definition);
|
|
405
|
-
break;
|
|
406
|
-
case "location":
|
|
407
|
-
lines.push(`{ type: "Point", coordinates: [number,number]}`);
|
|
408
|
-
break;
|
|
409
|
-
default:
|
|
410
|
-
lines.push("any");
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
function prepareNamespace(str) {
|
|
415
|
-
str = replaceNonWords(str);
|
|
416
|
-
str = str.toLowerCase();
|
|
417
|
-
if (str.match(/^[0-9]/)) {
|
|
418
|
-
str = "_" + str;
|
|
419
|
-
}
|
|
420
|
-
return str;
|
|
421
|
-
}
|
|
422
|
-
function replaceNonWords(str) {
|
|
423
|
-
return str.replace(/[^a-zA-Z0-9]/g, "_");
|
|
424
|
-
}
|
|
425
|
-
function getRelationFields(properties) {
|
|
426
|
-
const fields = [];
|
|
427
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
428
|
-
if (value.type == "relation") {
|
|
429
|
-
fields.push(key);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
return fields;
|
|
433
|
-
}
|
|
434
|
-
function makeTitlesUnique(buckets, warnings) {
|
|
435
|
-
const titles = [];
|
|
436
|
-
for (const bucket of buckets) {
|
|
437
|
-
const title = bucket.title;
|
|
438
|
-
const count = titles.filter(t => t == title).length;
|
|
439
|
-
if (count >= 1) {
|
|
440
|
-
warnings.push(`It seems there is more than one bucket that has the title '${bucket.title}'.
|
|
441
|
-
Number suffix will be added but should use unique titles for the best practice.`);
|
|
442
|
-
bucket.title += count + 1;
|
|
443
|
-
}
|
|
444
|
-
titles.push(title);
|
|
445
|
-
}
|
|
446
|
-
return buckets;
|
|
447
|
-
}
|
|
448
|
-
function getResolveRelationEnums(id, buckets) {
|
|
449
|
-
const enums = [];
|
|
450
|
-
const maxDepth = 5;
|
|
451
|
-
const _getResolveRelationEnums = (_bucket, prefix) => {
|
|
452
|
-
const hasRelation = Object.values(_bucket.properties).some(v => v.type == "relation");
|
|
453
|
-
if (!hasRelation) {
|
|
454
|
-
if (prefix && !enums.includes(prefix)) {
|
|
455
|
-
enums.push(prefix);
|
|
456
|
-
}
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
Object.entries(_bucket.properties).forEach(([key, value]) => {
|
|
460
|
-
if (value.type == "relation") {
|
|
461
|
-
const paths = prefix ? `${prefix}.${key}` : key;
|
|
462
|
-
const isMaxLengthExceeded = paths.split(".").length > maxDepth;
|
|
463
|
-
if (isMaxLengthExceeded) {
|
|
464
|
-
return;
|
|
465
|
-
}
|
|
466
|
-
if (!enums.includes(paths)) {
|
|
467
|
-
enums.push(paths);
|
|
468
|
-
}
|
|
469
|
-
const relatedBuckets = buckets.filter(b => b._id == value.bucketId);
|
|
470
|
-
relatedBuckets.forEach(b => _getResolveRelationEnums(b, paths));
|
|
471
|
-
}
|
|
472
|
-
});
|
|
473
|
-
};
|
|
474
|
-
const targetBucket = buckets.find(b => b._id == id);
|
|
475
|
-
_getResolveRelationEnums(targetBucket);
|
|
476
|
-
return enums;
|
|
477
|
-
}
|
|
478
|
-
//# sourceMappingURL=orm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/bucket/orm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { context } from "../../context.js";
|
|
2
|
-
import { config } from "../../config.js";
|
|
3
|
-
async function listContexts() {
|
|
4
|
-
const currentContext = await config.get().catch(e => {
|
|
5
|
-
console.warn(e.message);
|
|
6
|
-
return { context: undefined };
|
|
7
|
-
});
|
|
8
|
-
const contexts = context.list().map(ctx => {
|
|
9
|
-
let authorization = new Array(ctx.authorization.length).fill("*").slice(0, 10).join(" ");
|
|
10
|
-
if (ctx.name == currentContext.context) {
|
|
11
|
-
authorization = authorization + " (selected)";
|
|
12
|
-
}
|
|
13
|
-
return {
|
|
14
|
-
...ctx,
|
|
15
|
-
authorization
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
console.table(contexts, ["name", "url", "authorization"]);
|
|
19
|
-
}
|
|
20
|
-
export default function (program) {
|
|
21
|
-
return program.command("context ls", "List contexts").action(listContexts);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=ls.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/context/ls.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,KAAK,UAAU,YAAY;IACzB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,IAAI,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,IAAI,GAAG,CAAC,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YACvC,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;QAClD,CAAC;QAED,OAAO;YACL,GAAG,GAAG;YACN,aAAa;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,OAAO,WAAW,OAAgB;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { context } from "../../context.js";
|
|
2
|
-
async function removeContext({ args }) {
|
|
3
|
-
const name = args.name;
|
|
4
|
-
if (!context.has(name)) {
|
|
5
|
-
return console.error(`Context "${name}" does not exist.`);
|
|
6
|
-
}
|
|
7
|
-
context.remove(name);
|
|
8
|
-
console.info(`Context "${name}" has been deleted.`);
|
|
9
|
-
}
|
|
10
|
-
export default function (program) {
|
|
11
|
-
return program
|
|
12
|
-
.command("context remove", "Remove context")
|
|
13
|
-
.argument("<name>", "Name of the context.")
|
|
14
|
-
.action(removeContext);
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=remove.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/context/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,KAAK,UAAU,aAAa,CAAC,EAAC,IAAI,EAAmB;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,OAAO,WAAW,OAAgB;IACvC,OAAO,OAAO;SACX,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SAC3C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SAC1C,MAAM,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { context } from "../../context.js";
|
|
3
|
-
async function addContext({ options }) {
|
|
4
|
-
const name = options.name;
|
|
5
|
-
const apikey = options.apikey;
|
|
6
|
-
const url = options.url;
|
|
7
|
-
const rest = axios.create({
|
|
8
|
-
baseURL: url,
|
|
9
|
-
headers: {
|
|
10
|
-
Authorization: `APIKEY ${apikey}`
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
try {
|
|
14
|
-
await rest.get("/passport/identity/statements");
|
|
15
|
-
const exists = context.has(name);
|
|
16
|
-
context.set(name, { url, authorization: `APIKEY ${apikey}` });
|
|
17
|
-
console.info(`Context "${name}" is successfully ${exists ? "set" : "added"}.`);
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
if (error.response) {
|
|
21
|
-
console.error(`Error from server (${error.response.statusText}): ${error.response.data.message}`);
|
|
22
|
-
}
|
|
23
|
-
else if (error.request) {
|
|
24
|
-
console.error(`Error (${error.code}): Something has happened while connecting, ${error.message}`);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
console.error(`Error: ${error.message}`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export default function (program) {
|
|
32
|
-
return program
|
|
33
|
-
.command("context set", "Set context")
|
|
34
|
-
.option("--name <name>", "Name of the context.")
|
|
35
|
-
.option("--url <url>", "Url of the API.", { required: true })
|
|
36
|
-
.option("-a <apikey>, --apikey <apikey>", "Authorize via an API Key.", { required: true })
|
|
37
|
-
.action(addContext);
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=set.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/context/set.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,KAAK,UAAU,UAAU,CAAC,EAAC,OAAO,EAAmB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAc,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAgB,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAa,CAAC;IAElC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;SAClC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,qBAAqB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CACX,sBAAsB,KAAK,CAAC,QAAQ,CAAC,UAAU,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CACnF,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CACX,UAAU,KAAK,CAAC,IAAI,+CAA+C,KAAK,CAAC,OAAO,EAAE,CACnF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,WAAW,OAAgB;IACvC,OAAO,OAAO;SACX,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SAC1D,MAAM,CAAC,gCAAgC,EAAE,2BAA2B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SACvF,MAAM,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { context } from "../../context.js";
|
|
2
|
-
import { config } from "../../config.js";
|
|
3
|
-
async function switchContext({ args }) {
|
|
4
|
-
const name = args.name;
|
|
5
|
-
if (!context.has(name)) {
|
|
6
|
-
console.error(`Could not found the context "${name}". You can add it by running; `);
|
|
7
|
-
console.log("");
|
|
8
|
-
console.log(`$ spica context add --name=${name} --url=URL_HERE --apikey=APIKEY_HERE`);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
await config.set({
|
|
12
|
-
context: name
|
|
13
|
-
});
|
|
14
|
-
console.info(`Context has been changed to "${name}".`);
|
|
15
|
-
}
|
|
16
|
-
export default function (program) {
|
|
17
|
-
return program
|
|
18
|
-
.command("context switch", "Switch context")
|
|
19
|
-
.argument("<name>", "Name of the context.")
|
|
20
|
-
.action(switchContext);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=switch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../../../../apps/cli/src/commands/context/switch.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,KAAK,UAAU,aAAa,CAAC,EAAC,IAAI,EAAmB;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;IAEjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,gCAAgC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,sCAAsC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,CAAC,GAAG,CAAC;QACf,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,OAAO,WAAW,OAAgB;IACvC,OAAO,OAAO;SACX,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SAC3C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SAC1C,MAAM,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC"}
|