@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 CHANGED
@@ -1,9 +1,9 @@
1
- # ![](https://gitlab.com/appsemble/appsemble/-/raw/0.35.20/config/assets/logo.svg) Appsemble CLI
1
+ # ![](https://gitlab.com/appsemble/appsemble/-/raw/0.36.1/config/assets/logo.svg) Appsemble CLI
2
2
 
3
3
  > Manage apps and blocks from the command line.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@appsemble/cli)](https://www.npmjs.com/package/@appsemble/cli)
6
- [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.35.20/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.35.20)
6
+ [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.36.1/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.36.1)
7
7
  [![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](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.35.20/LICENSE.md) ©
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
  }
@@ -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 {};
@@ -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,
@@ -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/prefer-ts-expect-error
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] !== __filename) {
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.35.20",
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.35.20",
48
- "@appsemble/types": "0.35.20",
49
- "@appsemble/lang-sdk": "0.35.20",
50
- "@appsemble/utils": "0.35.20",
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.35.20",
94
- "@appsemble/server": "0.35.20",
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"
@@ -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/prefer-ts-expect-error
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.35.20
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.35.20
20
+ version: 0.36.1
21
21
  parameters:
22
22
  icon: arrow-left
23
23
  actions:
@@ -5,7 +5,7 @@
5
5
  "*.css"
6
6
  ],
7
7
  "dependencies": {
8
- "@appsemble/sdk": "0.35.20",
8
+ "@appsemble/sdk": "0.36.1",
9
9
  "mini-jsx": "^4.0.0"
10
10
  }
11
11
  }
@@ -5,8 +5,8 @@
5
5
  "*.css"
6
6
  ],
7
7
  "dependencies": {
8
- "@appsemble/preact": "0.35.20",
9
- "@appsemble/sdk": "0.35.20",
8
+ "@appsemble/preact": "0.36.1",
9
+ "@appsemble/sdk": "0.36.1",
10
10
  "preact": "^10.0.0"
11
11
  }
12
12
  }
@@ -5,6 +5,6 @@
5
5
  "*.css"
6
6
  ],
7
7
  "dependencies": {
8
- "@appsemble/sdk": "0.35.20"
8
+ "@appsemble/sdk": "0.36.1"
9
9
  }
10
10
  }
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];