@appsemble/cli 0.35.20 → 0.36.1
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 +3 -3
- package/commands/organization/create.d.ts +2 -1
- package/commands/organization/create.js +5 -1
- package/commands/organization/update.d.ts +2 -1
- package/commands/organization/update.js +5 -1
- package/commands/organization/upsert.d.ts +2 -1
- package/commands/organization/upsert.js +5 -1
- package/lib/app.d.ts +12 -0
- package/lib/app.js +10 -1
- package/lib/organization.d.ts +4 -3
- package/lib/organization.js +13 -3
- package/lib/serverImport.js +3 -2
- package/package.json +17 -12
- package/server/db/methods.js +2 -0
- package/server/options/getBlockAsset.js +1 -1
- package/templates/apps/empty/app-definition.yaml +2 -2
- package/templates/blocks/mini-jsx/package.json +1 -1
- package/templates/blocks/preact/package.json +2 -2
- package/templates/blocks/vanilla/package.json +1 -1
- package/vitest.setup.js +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
#  Appsemble CLI
|
|
2
2
|
|
|
3
3
|
> Manage apps and blocks from the command line.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@appsemble/cli)
|
|
6
|
-
[](https://gitlab.com/appsemble/appsemble/-/releases/0.36.1)
|
|
7
7
|
[](https://prettier.io)
|
|
8
8
|
|
|
9
9
|
## Table of Contents
|
|
@@ -323,5 +323,5 @@ appsemble run-cronjobs --interval 30
|
|
|
323
323
|
|
|
324
324
|
## License
|
|
325
325
|
|
|
326
|
-
[LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.
|
|
326
|
+
[LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.36.1/LICENSE.md) ©
|
|
327
327
|
[Appsemble](https://appsemble.com)
|
|
@@ -15,9 +15,10 @@ interface CreateOrganizationArguments extends BaseArguments {
|
|
|
15
15
|
zipCode: string;
|
|
16
16
|
countryCode: string;
|
|
17
17
|
invoiceReference: string;
|
|
18
|
+
locale: string;
|
|
18
19
|
}
|
|
19
20
|
export declare const command = "create <id>";
|
|
20
21
|
export declare const description = "Register a new organization. You will be the owner of the new organization.";
|
|
21
22
|
export declare function builder(yargs: Argv): Argv<any>;
|
|
22
|
-
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }: CreateOrganizationArguments): Promise<void>;
|
|
23
|
+
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }: CreateOrganizationArguments): Promise<void>;
|
|
23
24
|
export {};
|
|
@@ -44,14 +44,18 @@ export function builder(yargs) {
|
|
|
44
44
|
})
|
|
45
45
|
.option('invoiceReference', {
|
|
46
46
|
describe: 'Optional reference the organization can set to appear on the invoice.',
|
|
47
|
+
})
|
|
48
|
+
.option('locale', {
|
|
49
|
+
describe: 'Locale of the organization in which subscription emails will be delivered.',
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
52
|
+
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
50
53
|
await authenticate(remote, 'organizations:write', clientCredentials);
|
|
51
54
|
await createOrganization({
|
|
52
55
|
description: desc,
|
|
53
56
|
email,
|
|
54
57
|
invoiceReference,
|
|
58
|
+
locale,
|
|
55
59
|
icon,
|
|
56
60
|
id,
|
|
57
61
|
name,
|
|
@@ -15,9 +15,10 @@ interface UpdateOrganizationArguments extends BaseArguments {
|
|
|
15
15
|
zipCode: string;
|
|
16
16
|
countryCode: string;
|
|
17
17
|
invoiceReference: string;
|
|
18
|
+
locale: string;
|
|
18
19
|
}
|
|
19
20
|
export declare const command = "update <id>";
|
|
20
21
|
export declare const description = "Update an existing organization. You must be an owner of the organization.";
|
|
21
22
|
export declare function builder(yargs: Argv): Argv<any>;
|
|
22
|
-
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }: UpdateOrganizationArguments): Promise<void>;
|
|
23
|
+
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }: UpdateOrganizationArguments): Promise<void>;
|
|
23
24
|
export {};
|
|
@@ -44,14 +44,18 @@ export function builder(yargs) {
|
|
|
44
44
|
})
|
|
45
45
|
.option('invoiceReference', {
|
|
46
46
|
describe: 'Optional reference the organization can set to appear on the invoice.',
|
|
47
|
+
})
|
|
48
|
+
.option('locale', {
|
|
49
|
+
describe: 'Locale of the organization in which subscription emails will be delivered.',
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
52
|
+
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
50
53
|
await authenticate(remote, 'organizations:write', clientCredentials);
|
|
51
54
|
await updateOrganization({
|
|
52
55
|
description: desc,
|
|
53
56
|
email,
|
|
54
57
|
invoiceReference,
|
|
58
|
+
locale,
|
|
55
59
|
icon,
|
|
56
60
|
id,
|
|
57
61
|
name,
|
|
@@ -15,9 +15,10 @@ interface UpsertOrganizationArguments extends BaseArguments {
|
|
|
15
15
|
zipCode: string;
|
|
16
16
|
countryCode: string;
|
|
17
17
|
invoiceReference: string;
|
|
18
|
+
locale: string;
|
|
18
19
|
}
|
|
19
20
|
export declare const command = "upsert <id>";
|
|
20
21
|
export declare const description = "Create a new organization for the given id or update if there exists one already.";
|
|
21
22
|
export declare function builder(yargs: Argv): Argv<any>;
|
|
22
|
-
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }: UpsertOrganizationArguments): Promise<void>;
|
|
23
|
+
export declare function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }: UpsertOrganizationArguments): Promise<void>;
|
|
23
24
|
export {};
|
|
@@ -44,14 +44,18 @@ export function builder(yargs) {
|
|
|
44
44
|
})
|
|
45
45
|
.option('invoiceReference', {
|
|
46
46
|
describe: 'Optional reference the organization can set to appear on the invoice.',
|
|
47
|
+
})
|
|
48
|
+
.option('locale', {
|
|
49
|
+
describe: 'Locale of the organization in which subscription emails will be delivered.',
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
52
|
+
export async function handler({ city, clientCredentials, countryCode, description: desc, email, houseNumber, icon, id, invoiceReference, locale, name, remote, streetName, vatIdNumber, website, zipCode, }) {
|
|
50
53
|
await authenticate(remote, 'organizations:write', clientCredentials);
|
|
51
54
|
await upsertOrganization({
|
|
52
55
|
description: desc,
|
|
53
56
|
email,
|
|
54
57
|
invoiceReference,
|
|
58
|
+
locale,
|
|
55
59
|
icon,
|
|
56
60
|
id,
|
|
57
61
|
name,
|
package/lib/app.d.ts
CHANGED
|
@@ -120,6 +120,10 @@ interface PublishAppParams {
|
|
|
120
120
|
* Whether to publish seed members from `members/index.json` after publishing the app.
|
|
121
121
|
*/
|
|
122
122
|
members?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Whether sending emails should be skipped for the group invites,
|
|
125
|
+
*/
|
|
126
|
+
skipGroupInvites?: boolean;
|
|
123
127
|
/**
|
|
124
128
|
* Languages officially supported by the app
|
|
125
129
|
*/
|
|
@@ -229,6 +233,10 @@ interface UpdateAppParams {
|
|
|
229
233
|
* Whether to publish seed members from `members/index.json` after publishing the app.
|
|
230
234
|
*/
|
|
231
235
|
members?: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Whether sending emails should be skipped for the group invites.
|
|
238
|
+
*/
|
|
239
|
+
skipGroupInvites?: boolean;
|
|
232
240
|
/**
|
|
233
241
|
* Languages officially supported by the app
|
|
234
242
|
*/
|
|
@@ -357,6 +365,10 @@ interface PatchAppParams {
|
|
|
357
365
|
* Languages officially supported by the app
|
|
358
366
|
*/
|
|
359
367
|
supportedLanguages?: string[];
|
|
368
|
+
/**
|
|
369
|
+
* Whether sending emails should be skipped for the group invites.
|
|
370
|
+
*/
|
|
371
|
+
skipGroupInvites?: boolean;
|
|
360
372
|
/**
|
|
361
373
|
* Whether the Appsemble OAuth2 login method should be shown.
|
|
362
374
|
*/
|
package/lib/app.js
CHANGED
|
@@ -819,6 +819,7 @@ export async function publishApp({ clientCredentials, context, dryRun, modifyCon
|
|
|
819
819
|
const dbHost = appsembleContext.dbHost ?? options.dbHost;
|
|
820
820
|
const dbPort = appsembleContext.dbPort ?? options.dbPort;
|
|
821
821
|
const dbUser = appsembleContext.dbUser ?? options.dbUser;
|
|
822
|
+
const skipGroupInvites = appsembleContext.skipGroupInvites ?? options.skipGroupInvites ?? false;
|
|
822
823
|
const { dbPassword } = options;
|
|
823
824
|
logger.verbose(`App remote: ${remote}`);
|
|
824
825
|
logger.verbose(`App organization: ${organizationId}`);
|
|
@@ -834,6 +835,7 @@ export async function publishApp({ clientCredentials, context, dryRun, modifyCon
|
|
|
834
835
|
formData.append('visibility', visibility);
|
|
835
836
|
formData.append('iconBackground', iconBackground);
|
|
836
837
|
formData.append('locked', appLock);
|
|
838
|
+
formData.append('skipGroupInvites', String(skipGroupInvites));
|
|
837
839
|
if (dbName) {
|
|
838
840
|
formData.append('dbName', dbName);
|
|
839
841
|
}
|
|
@@ -942,7 +944,6 @@ export async function publishApp({ clientCredentials, context, dryRun, modifyCon
|
|
|
942
944
|
logger.info(`Successfully published app ${data.definition.name}! 🙌`);
|
|
943
945
|
logger.info(`App URL: ${protocol}//${data.path}.${data.OrganizationId}.${host}`);
|
|
944
946
|
logger.info(`App store page: ${new URL(`/apps/${data.id}`, remote)}`);
|
|
945
|
-
// eslint-disable-next-line max-len
|
|
946
947
|
// @ts-expect-error 2454 Variable used before it was assigned, 2538 Undefined cannot be used as an index type
|
|
947
948
|
const rcCollections = rc?.context?.[context]?.collections;
|
|
948
949
|
if (Array.isArray(rcCollections)) {
|
|
@@ -1024,6 +1025,7 @@ export async function updateApp({ clientCredentials, context, force, path, ...op
|
|
|
1024
1025
|
const msClarityId = appsembleContext.msClarityId ?? options.msClarityId;
|
|
1025
1026
|
const resources = appsembleContext.resources ?? options.resources;
|
|
1026
1027
|
const members = appsembleContext.members ?? options.members;
|
|
1028
|
+
const skipGroupInvites = appsembleContext.skipGroupInvites ?? options.skipGroupInvites;
|
|
1027
1029
|
const supportedLanguages = appsembleContext.supportedLanguages ?? options.supportedLanguages;
|
|
1028
1030
|
const assets = appsembleContext.assets ?? options.assets;
|
|
1029
1031
|
const { appLock } = appsembleContext;
|
|
@@ -1069,6 +1071,9 @@ export async function updateApp({ clientCredentials, context, force, path, ...op
|
|
|
1069
1071
|
logger.info(`Using icon from ${realIcon.path ?? 'stdin'}`);
|
|
1070
1072
|
formData.append('icon', realIcon);
|
|
1071
1073
|
}
|
|
1074
|
+
if (skipGroupInvites !== undefined) {
|
|
1075
|
+
formData.append('skipGroupInvites', String(skipGroupInvites));
|
|
1076
|
+
}
|
|
1072
1077
|
if (maskableIcon) {
|
|
1073
1078
|
const realIcon = typeof maskableIcon === 'string' ? createReadStream(maskableIcon) : maskableIcon;
|
|
1074
1079
|
logger.info(`Using maskable icon from ${realIcon.path ?? 'stdin'}`);
|
|
@@ -1164,6 +1169,10 @@ export async function patchApp({ id, remote, ...options }) {
|
|
|
1164
1169
|
logger.info(`Setting app path to ${options.path}`);
|
|
1165
1170
|
formData.append('path', options.path);
|
|
1166
1171
|
}
|
|
1172
|
+
if (options.skipGroupInvites !== undefined) {
|
|
1173
|
+
logger.info(`Setting skipGroupInvites to ${options.skipGroupInvites}`);
|
|
1174
|
+
formData.append('skipGroupInvites', String(options.skipGroupInvites));
|
|
1175
|
+
}
|
|
1167
1176
|
if (options.force !== undefined) {
|
|
1168
1177
|
formData.append('force', String(options.force));
|
|
1169
1178
|
}
|
package/lib/organization.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ interface OrganizationArguments {
|
|
|
5
5
|
id: string;
|
|
6
6
|
icon: ReadStream;
|
|
7
7
|
name: string;
|
|
8
|
+
locale: string;
|
|
8
9
|
website: string;
|
|
9
10
|
vatIdNumber: string | null;
|
|
10
11
|
streetName: string | null;
|
|
@@ -14,7 +15,7 @@ interface OrganizationArguments {
|
|
|
14
15
|
countryCode: string | null;
|
|
15
16
|
invoiceReference: string | null;
|
|
16
17
|
}
|
|
17
|
-
export declare function createOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
18
|
-
export declare function updateOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
19
|
-
export declare function upsertOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
18
|
+
export declare function createOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
19
|
+
export declare function updateOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
20
|
+
export declare function upsertOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }: OrganizationArguments): Promise<void>;
|
|
20
21
|
export {};
|
package/lib/organization.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logger } from '@appsemble/node-utils';
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import FormData from 'form-data';
|
|
4
|
-
export async function createOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
4
|
+
export async function createOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
5
5
|
const formData = new FormData();
|
|
6
6
|
formData.append('id', id);
|
|
7
7
|
if (description) {
|
|
@@ -52,6 +52,10 @@ export async function createOrganization({ city, countryCode, description, email
|
|
|
52
52
|
logger.info(`Setting invoice reference name to ${invoiceReference}`);
|
|
53
53
|
formData.append('invoiceReference', invoiceReference);
|
|
54
54
|
}
|
|
55
|
+
if (locale) {
|
|
56
|
+
logger.info(`Setting locale to ${locale}`);
|
|
57
|
+
formData.append('locale', locale);
|
|
58
|
+
}
|
|
55
59
|
logger.info(`Creating organization ${id}${name ? ` (${name})` : ''}`);
|
|
56
60
|
try {
|
|
57
61
|
await axios.post('/api/organizations', formData);
|
|
@@ -62,7 +66,7 @@ export async function createOrganization({ city, countryCode, description, email
|
|
|
62
66
|
throw error;
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
|
-
export async function updateOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
69
|
+
export async function updateOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
66
70
|
logger.info(`Updating organization ${id}${name ? ` (${name})` : ''}`);
|
|
67
71
|
const formData = new FormData();
|
|
68
72
|
if (description) {
|
|
@@ -113,6 +117,10 @@ export async function updateOrganization({ city, countryCode, description, email
|
|
|
113
117
|
logger.info(`Setting invoice reference name to ${invoiceReference}`);
|
|
114
118
|
formData.append('invoiceReference', invoiceReference);
|
|
115
119
|
}
|
|
120
|
+
if (locale) {
|
|
121
|
+
logger.info(`Setting locale to ${locale}`);
|
|
122
|
+
formData.append('locale', locale);
|
|
123
|
+
}
|
|
116
124
|
try {
|
|
117
125
|
await axios.patch(`/api/organizations/${id}`, formData);
|
|
118
126
|
logger.info(`Successfully updated organization ${id}${name ? ` (${name})` : ''}`);
|
|
@@ -122,7 +130,7 @@ export async function updateOrganization({ city, countryCode, description, email
|
|
|
122
130
|
throw error;
|
|
123
131
|
}
|
|
124
132
|
}
|
|
125
|
-
export async function upsertOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
133
|
+
export async function upsertOrganization({ city, countryCode, description, email, houseNumber, icon, id, invoiceReference, locale, name, streetName, vatIdNumber, website, zipCode, }) {
|
|
126
134
|
try {
|
|
127
135
|
await axios.get(`/api/organizations/${id}`);
|
|
128
136
|
await updateOrganization({
|
|
@@ -130,6 +138,7 @@ export async function upsertOrganization({ city, countryCode, description, email
|
|
|
130
138
|
email,
|
|
131
139
|
icon,
|
|
132
140
|
id,
|
|
141
|
+
locale,
|
|
133
142
|
name,
|
|
134
143
|
website,
|
|
135
144
|
vatIdNumber,
|
|
@@ -148,6 +157,7 @@ export async function upsertOrganization({ city, countryCode, description, email
|
|
|
148
157
|
email,
|
|
149
158
|
icon,
|
|
150
159
|
id,
|
|
160
|
+
locale,
|
|
151
161
|
name,
|
|
152
162
|
website,
|
|
153
163
|
vatIdNumber,
|
package/lib/serverImport.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AppsembleError } from '@appsemble/node-utils';
|
|
2
2
|
import { has } from '@appsemble/utils';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
3
4
|
const PROMPT = process.platform === 'win32' ? '>' : '$';
|
|
4
5
|
const COMMAND = /yarn/.test(process.env.npm_execpath ?? '')
|
|
5
6
|
? 'yarn add --dev --ignore-workspace-root-check'
|
|
@@ -16,7 +17,7 @@ ${PROMPT} ${COMMAND} @appsemble/server
|
|
|
16
17
|
*/
|
|
17
18
|
export async function serverImport(...members) {
|
|
18
19
|
try {
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
20
21
|
// @ts-ignore Because the the server isn’t built and published, an error is expected here at
|
|
21
22
|
// build time, but while type checking.
|
|
22
23
|
const mod = await import('@appsemble/server');
|
|
@@ -29,7 +30,7 @@ export async function serverImport(...members) {
|
|
|
29
30
|
}
|
|
30
31
|
catch (error) {
|
|
31
32
|
if (error.code !== 'MODULE_NOT_FOUND' ||
|
|
32
|
-
error.requireStack?.[0] !==
|
|
33
|
+
error.requireStack?.[0] !== fileURLToPath(import.meta.url)) {
|
|
33
34
|
throw error;
|
|
34
35
|
}
|
|
35
36
|
throw new AppsembleError(INSTALL_MESSAGE);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appsemble/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.1",
|
|
4
4
|
"description": "The CLI for developing with Appsemble apps and blocks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"app",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"test": "vitest"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@appsemble/node-utils": "0.
|
|
48
|
-
"@appsemble/types": "0.
|
|
49
|
-
"@appsemble/lang-sdk": "0.
|
|
50
|
-
"@appsemble/utils": "0.
|
|
47
|
+
"@appsemble/node-utils": "0.36.1",
|
|
48
|
+
"@appsemble/types": "0.36.1",
|
|
49
|
+
"@appsemble/lang-sdk": "0.36.1",
|
|
50
|
+
"@appsemble/utils": "0.36.1",
|
|
51
51
|
"@fortawesome/fontawesome-common-types": "^6.0.0",
|
|
52
52
|
"@koa/cors": "^5.0.0",
|
|
53
53
|
"@odata/parser": "^0.2.0",
|
|
@@ -69,8 +69,6 @@
|
|
|
69
69
|
"koas-core": "^0.7.0",
|
|
70
70
|
"koas-operations": "^0.7.0",
|
|
71
71
|
"koas-status-code": "^0.7.0",
|
|
72
|
-
"language-tags": "^1.0.0",
|
|
73
|
-
"lodash-es": "^4.0.0",
|
|
74
72
|
"mime-types": "^2.0.0",
|
|
75
73
|
"node-json-db": "^2.0.0",
|
|
76
74
|
"normalize-path": "^3.0.0",
|
|
@@ -85,25 +83,32 @@
|
|
|
85
83
|
"sharp": "^0.32.0",
|
|
86
84
|
"ts-json-schema-generator": "^1.0.0",
|
|
87
85
|
"type-fest": "^4.0.0",
|
|
86
|
+
"url": "0.11.4",
|
|
88
87
|
"webpack": "^5.0.0",
|
|
89
88
|
"yaml": "^2.0.0",
|
|
90
89
|
"yargs": "^17.0.0"
|
|
91
90
|
},
|
|
92
91
|
"devDependencies": {
|
|
93
|
-
"@appsemble/types": "0.
|
|
94
|
-
"@appsemble/server": "0.
|
|
95
|
-
"bcrypt": "5.1.1",
|
|
92
|
+
"@appsemble/types": "0.36.1",
|
|
93
|
+
"@appsemble/server": "0.36.1",
|
|
96
94
|
"axios-test-instance": "7.0.0",
|
|
95
|
+
"bcrypt": "5.1.1",
|
|
96
|
+
"default-browser": "5.4.0",
|
|
97
|
+
"is-inside-container": "1.0.0",
|
|
98
|
+
"titleize": "4.0.0",
|
|
99
|
+
"yoctocolors-cjs": "2.1.3",
|
|
100
|
+
"@inquirer/figures": "2.0.2",
|
|
97
101
|
"@types/concat-stream": "2.0.3",
|
|
98
102
|
"@types/inquirer": "9.0.7",
|
|
99
103
|
"@types/koa__cors": "5.0.0",
|
|
104
|
+
"@types/koa-compress": "4.0.6",
|
|
105
|
+
"@types/koa-range": "0.3.5",
|
|
100
106
|
"@types/normalize-path": "3.0.2",
|
|
101
107
|
"@types/postcss-import": "14.0.3",
|
|
102
108
|
"@types/postcss-url": "10.0.4",
|
|
103
109
|
"concat-stream": "2.0.0",
|
|
104
110
|
"vitest": "2.1.9",
|
|
105
|
-
"sequelize": "6.37.7"
|
|
106
|
-
"minio": "8.0.6"
|
|
111
|
+
"sequelize": "6.37.7"
|
|
107
112
|
},
|
|
108
113
|
"optionalDependencies": {
|
|
109
114
|
"keytar": "^7.0.0"
|
package/server/db/methods.js
CHANGED
|
@@ -10,7 +10,9 @@ let appName = 'app';
|
|
|
10
10
|
export function setAppName(name) {
|
|
11
11
|
appName = name;
|
|
12
12
|
}
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
14
|
const comparators = ['gt', 'gte', 'lt', 'lte', 'eq', 'ne'];
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
16
|
const expressions = ['and', 'or'];
|
|
15
17
|
function parseValue(value) {
|
|
16
18
|
const toNumber = Number(value);
|
|
@@ -6,7 +6,7 @@ import globalCacheDir from 'global-cache-dir';
|
|
|
6
6
|
import { lookup } from 'mime-types';
|
|
7
7
|
export async function getBlockAsset({ context, filename, name, version, }) {
|
|
8
8
|
const { blockConfigs } = context;
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
10
|
// @ts-ignore 2488 [...] | undefined must have a '[Symbol.iterator]()'
|
|
11
11
|
const [organisation, blockName] = parseBlockName(name);
|
|
12
12
|
if (existsSync(join(process.cwd(), 'blocks', blockName))) {
|
|
@@ -6,7 +6,7 @@ pages:
|
|
|
6
6
|
- name: Example Page A
|
|
7
7
|
blocks:
|
|
8
8
|
- type: action-button
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.36.1
|
|
10
10
|
parameters:
|
|
11
11
|
icon: arrow-right
|
|
12
12
|
actions:
|
|
@@ -17,7 +17,7 @@ pages:
|
|
|
17
17
|
- name: Example Page B
|
|
18
18
|
blocks:
|
|
19
19
|
- type: action-button
|
|
20
|
-
version: 0.
|
|
20
|
+
version: 0.36.1
|
|
21
21
|
parameters:
|
|
22
22
|
icon: arrow-left
|
|
23
23
|
actions:
|
package/vitest.setup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { clearAllS3Buckets, CREDENTIALS_ENV_VAR, initS3Client, setFixtureBase, setLogLevel, } from '@appsemble/node-utils';
|
|
3
3
|
import { getRootDB, models, setupTestDatabase } from '@appsemble/server';
|
|
4
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
|
+
// eslint-disable-next-line import-x/no-extraneous-dependencies
|
|
5
5
|
import { afterAll, afterEach, beforeAll, beforeEach, vi } from 'vitest';
|
|
6
6
|
setFixtureBase(import.meta);
|
|
7
7
|
delete process.env[CREDENTIALS_ENV_VAR];
|