@appsemble/node-utils 0.32.1-test.16 → 0.32.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.32.1-test.16/config/assets/logo.svg) Appsemble Node Utilities
1
+ # ![](https://gitlab.com/appsemble/appsemble/-/raw/0.32.1/config/assets/logo.svg) Appsemble Node Utilities
2
2
 
3
3
  > NodeJS utilities used by Appsemble internally.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@appsemble/node-utils)](https://www.npmjs.com/package/@appsemble/node-utils)
6
- [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.32.1-test.16/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.32.1-test.16)
6
+ [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.32.1/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.32.1)
7
7
  [![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io)
8
8
 
9
9
  ## Table of Contents
@@ -26,5 +26,5 @@ compatibility is not guaranteed.
26
26
 
27
27
  ## License
28
28
 
29
- [LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.32.1-test.16/LICENSE.md) ©
29
+ [LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.32.1/LICENSE.md) ©
30
30
  [Appsemble](https://appsemble.com)
@@ -15,7 +15,11 @@ export async function getMessagesUtil(ctx, language, appId, merge, { getApp, get
15
15
  assertKoaCondition(app != null, ctx, 404, 'App not found');
16
16
  const blockPrefixes = [];
17
17
  const blockQuery = [];
18
- const appMessages = await getAppMessages({ context: ctx, app, language });
18
+ const blockMessageKeys = new Set();
19
+ const extractedMessages = Object.keys(extractAppMessages(app.definition, (block) => {
20
+ blockMessageKeys.add(`${block.type.startsWith('@') ? block.type : `@appsemble/${block.type}`}-${block.version}`);
21
+ }).app);
22
+ const appMessages = (await getAppMessages({ context: ctx, app, language })).filter((item) => Object.keys(item.messages.app ?? {}).filter((key) => !(key in extractedMessages)));
19
23
  const coreMessages = await getAppsembleMessages(lang, baseLang);
20
24
  const messages = {
21
25
  core: Object.fromEntries(Object.entries(coreMessages).filter(([key]) => key.startsWith('app') || key.startsWith('react-components') || key.startsWith('server'))),
@@ -33,8 +37,31 @@ export async function getMessagesUtil(ctx, language, appId, merge, { getApp, get
33
37
  lang !== (app.definition.defaultLanguage || defaultLocale)) {
34
38
  throwKoaError(ctx, 404, `Language “${language}” could not be found`);
35
39
  }
36
- const baseLanguageMessages = override === 'true' ? appMessages.find((m) => m.language === baseLang) : undefined;
37
- const languageMessages = override === 'true' ? appMessages.find((m) => m.language === lang) : undefined;
40
+ const filteredMessages = appMessages.map((message) => {
41
+ // Create a shallow copy of the message to avoid mutating the original
42
+ const newMessage = message;
43
+ const filteredBlocks = {};
44
+ const blockKeys = Object.keys(newMessage.messages.blocks ?? {});
45
+ for (const key of blockKeys) {
46
+ const block = newMessage.messages.blocks[key];
47
+ const filteredBlock = {};
48
+ const versionKeys = Object.keys(block);
49
+ for (const version of versionKeys) {
50
+ const combinedKey = `${key}-${version}`;
51
+ if (blockMessageKeys.has(combinedKey)) {
52
+ filteredBlock[version] = block[version];
53
+ }
54
+ }
55
+ if (Object.keys(filteredBlock).length > 0) {
56
+ filteredBlocks[key] = filteredBlock;
57
+ }
58
+ }
59
+ // Assign the filtered blocks back to the new message
60
+ newMessage.messages.blocks = filteredBlocks;
61
+ return newMessage;
62
+ });
63
+ const baseLanguageMessages = override === 'true' ? filteredMessages.find((m) => m.language === baseLang) : undefined;
64
+ const languageMessages = override === 'true' ? filteredMessages.find((m) => m.language === lang) : undefined;
38
65
  for (const block of blockMessages) {
39
66
  const { name } = block;
40
67
  const defaultMessages = block.messages?.[defaultLocale];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appsemble/node-utils",
3
- "version": "0.32.1-test.16",
3
+ "version": "0.32.1",
4
4
  "description": "NodeJS utilities used by Appsemble internally.",
5
5
  "keywords": [
6
6
  "app",
@@ -40,8 +40,8 @@
40
40
  "test": "vitest"
41
41
  },
42
42
  "dependencies": {
43
- "@appsemble/types": "0.32.1-test.16",
44
- "@appsemble/utils": "0.32.1-test.16",
43
+ "@appsemble/types": "0.32.1",
44
+ "@appsemble/utils": "0.32.1",
45
45
  "@formatjs/fast-memoize": "^2.0.0",
46
46
  "@fortawesome/fontawesome-free": "^6.0.0",
47
47
  "@kubernetes/client-node": "^0.22.2",