@mbehenri/openmrs-esm-opentms-meet-app 1.0.1 → 1.0.2

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.
Files changed (100) hide show
  1. package/.eslintrc +1 -1
  2. package/.husky/pre-commit +2 -2
  3. package/.husky/pre-push +0 -0
  4. package/.turbo.json +1 -1
  5. package/README.md +25 -14
  6. package/__mocks__/react-i18next.js +9 -14
  7. package/dist/147.js +1 -0
  8. package/dist/147.js.map +1 -0
  9. package/dist/184.js +2 -0
  10. package/dist/184.js.LICENSE.txt +14 -0
  11. package/dist/184.js.map +1 -0
  12. package/dist/197.js +1 -0
  13. package/dist/23.js +1 -0
  14. package/dist/23.js.map +1 -0
  15. package/dist/26.js +1 -0
  16. package/dist/26.js.map +1 -0
  17. package/dist/282.js +2 -0
  18. package/dist/282.js.LICENSE.txt +32 -0
  19. package/dist/282.js.map +1 -0
  20. package/dist/300.js +1 -0
  21. package/dist/335.js +1 -0
  22. package/dist/353.js +1 -0
  23. package/dist/353.js.map +1 -0
  24. package/dist/471.js +1 -0
  25. package/dist/471.js.map +1 -0
  26. package/dist/509.js +2 -0
  27. package/dist/509.js.LICENSE.txt +54 -0
  28. package/dist/509.js.map +1 -0
  29. package/dist/51.js +1 -0
  30. package/dist/51.js.map +1 -0
  31. package/dist/540.js +2 -0
  32. package/dist/540.js.LICENSE.txt +9 -0
  33. package/dist/540.js.map +1 -0
  34. package/dist/55.js +1 -0
  35. package/dist/652.js +1 -0
  36. package/dist/739.js +1 -0
  37. package/dist/739.js.map +1 -0
  38. package/dist/740.js +1 -0
  39. package/dist/740.js.map +1 -0
  40. package/dist/852.js +1 -0
  41. package/dist/852.js.map +1 -0
  42. package/dist/897.js +2 -0
  43. package/dist/897.js.LICENSE.txt +24 -0
  44. package/dist/897.js.map +1 -0
  45. package/dist/91.js +1 -0
  46. package/dist/91.js.map +1 -0
  47. package/dist/961.js +2 -0
  48. package/dist/961.js.LICENSE.txt +19 -0
  49. package/dist/961.js.map +1 -0
  50. package/dist/99.js +1 -0
  51. package/dist/b8b28cec32e885bb.png +0 -0
  52. package/dist/main.js +1 -0
  53. package/dist/main.js.map +1 -0
  54. package/dist/openmrs-esm-opentms-meet-app.js +1 -0
  55. package/dist/openmrs-esm-opentms-meet-app.js.buildmanifest.json +678 -0
  56. package/dist/openmrs-esm-opentms-meet-app.js.map +1 -0
  57. package/dist/routes.json +1 -0
  58. package/e2e/core/global-setup.ts +8 -8
  59. package/e2e/core/index.ts +1 -1
  60. package/e2e/core/test.ts +3 -3
  61. package/e2e/fixtures/api.ts +2 -9
  62. package/e2e/fixtures/index.ts +1 -1
  63. package/e2e/pages/index.ts +1 -1
  64. package/e2e/pages/root-page.ts +32 -0
  65. package/e2e/specs/template-app.spec.ts +23 -0
  66. package/e2e/support/github/Dockerfile +1 -1
  67. package/e2e/support/github/docker-compose.yml +2 -2
  68. package/e2e/support/github/run-e2e-docker-env.sh +13 -25
  69. package/jest.config.js +19 -17
  70. package/package.json +44 -45
  71. package/playwright.config.ts +9 -11
  72. package/prettier.config.js +8 -0
  73. package/src/components/Appointment/index.scss +1 -1
  74. package/src/components/Demand/tab.scss +1 -1
  75. package/src/components/EmptyLayout/index.scss +1 -1
  76. package/src/config-schema.ts +5 -5
  77. package/src/extensions/AppointmentTabExt.tsx +17 -0
  78. package/src/{Extensions → extensions}/DemandTabExt.tsx +2 -2
  79. package/src/{Extensions → extensions}/MeetIframeExt.tsx +2 -2
  80. package/src/{Extensions → extensions}/ValidateDemandFormExt.tsx +5 -6
  81. package/src/index.ts +10 -30
  82. package/src/pages/home/home.component.tsx +2 -2
  83. package/src/root.component.tsx +8 -19
  84. package/src/root.scss +5 -5
  85. package/src/root.test.tsx +9 -14
  86. package/src/routes.json +6 -11
  87. package/{i18next-parser.config.js → tools/i18next-parser.config.js} +19 -19
  88. package/tools/setup-tests.ts +1 -0
  89. package/tools/update-openmrs-deps.mjs +43 -0
  90. package/translations/am.json +24 -0
  91. package/translations/en.json +24 -1
  92. package/tsconfig.json +1 -1
  93. package/webpack.config.js +1 -1
  94. package/.yarn/install-state.gz +0 -0
  95. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  96. package/.yarn/releases/yarn-3.6.1.cjs +0 -874
  97. package/.yarnrc.yml +0 -9
  98. package/e2e/pages/home-page.ts +0 -9
  99. package/e2e/specs/sample-test.spec.ts +0 -11
  100. package/src/Extensions/AppointmentTabExt.tsx +0 -23
package/src/index.ts CHANGED
@@ -4,22 +4,13 @@
4
4
  * connects the app shell to the React application(s) that make up this
5
5
  * microfrontend.
6
6
  */
7
- import {
8
- getAsyncLifecycle,
9
- defineConfigSchema,
10
- getSyncLifecycle,
11
- } from "@openmrs/esm-framework";
12
- import { configSchema } from "./config-schema";
13
- import Root from "./root.component";
14
- import DemandTabExt from "./Extensions/DemandTabExt";
15
- import AppointmentTabExt from "./Extensions/AppointmentTabExt";
16
- import MeetIframeExt from "./Extensions/MeetIframeExt";
17
- import { ValidateDemandFormExt } from "./Extensions/ValidateDemandFormExt";
7
+ import { getAsyncLifecycle, defineConfigSchema, getSyncLifecycle } from '@openmrs/esm-framework';
8
+ import { configSchema } from './config-schema';
18
9
 
19
- const moduleName = "@openmrs/esm-opencare-app";
10
+ const moduleName = '@mbehenri/openmrs-esm-opentms-meet-app';
20
11
 
21
12
  const options = {
22
- featureName: "opencare",
13
+ featureName: 'opentms',
23
14
  moduleName,
24
15
  };
25
16
 
@@ -28,12 +19,7 @@ const options = {
28
19
  * are JSON files in the directory `../translations` (which you should
29
20
  * see in the directory structure).
30
21
  */
31
- export const importTranslation = require.context(
32
- "../translations",
33
- false,
34
- /.json$/,
35
- "lazy"
36
- );
22
+ export const importTranslation = require.context('../translations', false, /.json$/, 'lazy');
37
23
 
38
24
  /**
39
25
  * This function performs any setup that should happen at microfrontend
@@ -56,15 +42,9 @@ export function startupApp() {
56
42
  options
57
43
  ); */
58
44
 
59
- export const root = getSyncLifecycle(Root, options);
45
+ export const root = getAsyncLifecycle(() => import('./root.component'), options);
60
46
 
61
- export const demandtab = getSyncLifecycle(DemandTabExt, options);
62
-
63
- export const appointmenttab = getSyncLifecycle(AppointmentTabExt, options);
64
-
65
- export const meetiframe = getSyncLifecycle(MeetIframeExt, options);
66
-
67
- export const validatedemandform = getSyncLifecycle(
68
- ValidateDemandFormExt,
69
- options
70
- );
47
+ export const demandtab = getAsyncLifecycle(() => import('./extensions/DemandTabExt'), options);
48
+ export const appointmenttab = getAsyncLifecycle(() => import('./extensions/AppointmentTabExt'), options);
49
+ export const meetiframe = getAsyncLifecycle(() => import('./extensions/MeetIframeExt'), options);
50
+ export const validatedemandform = getAsyncLifecycle(() => import('./extensions/ValidateDemandFormExt'), options);
@@ -1,5 +1,5 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
 
3
3
  export function Home() {
4
- return <h3> Welcome to opencare app </h3>;
4
+ return <h3> Welcome to opentms app </h3>;
5
5
  }
@@ -8,38 +8,27 @@
8
8
  * https://openmrs.github.io/openmrs-esm-core/#/main/config
9
9
  */
10
10
 
11
- import React, { useEffect } from "react";
12
- import { BrowserRouter, Route, Routes } from "react-router-dom";
13
- import { Home } from "./pages/home/home.component";
14
- import { useConfig } from "@openmrs/esm-framework";
15
- import env from "./repositories/env";
11
+ import React, { useEffect } from 'react';
12
+ // import { BrowserRouter, Route, Routes } from 'react-router-dom';
13
+ import { Home } from './pages/home/home.component';
14
+ import { useConfig } from '@openmrs/esm-framework';
15
+ import env from './repositories/env';
16
16
  // import { useTranslation } from "react-i18next";
17
17
  //import styles from "./root.scss";
18
18
 
19
19
  const Root: React.FC = () => {
20
- // const { t } = useTranslation();
21
- //const basename = window.getOpenmrsSpaBase() + "home/opencare";
22
- const basename = window.getOpenmrsSpaBase() + "opencare";
23
-
24
20
  //recupération de la configuration
25
21
  const conf = useConfig();
26
22
 
27
23
  // update env variable
28
24
  useEffect(() => {
29
- env.API_SECURE = conf["API_SECURE"];
30
- env.API_BASE_URL = conf["API_BASE_URL"];
25
+ env.API_SECURE = conf['API_SECURE'];
26
+ env.API_BASE_URL = conf['API_BASE_URL'];
31
27
  // eslint-disable-next-line @typescript-eslint/no-empty-function
32
28
  return () => {};
33
29
  }, [conf]);
34
30
 
35
- return (
36
- <BrowserRouter basename={basename}>
37
- <Routes>
38
- {/* Route de la page d'acceuil */}
39
- <Route path="/home" element={<Home />} />
40
- </Routes>
41
- </BrowserRouter>
42
- );
31
+ return <Home />;
43
32
  };
44
33
 
45
34
  export default Root;
package/src/root.scss CHANGED
@@ -1,15 +1,15 @@
1
- @use '@carbon/styles/scss/spacing';
2
- @use '@carbon/styles/scss/type';
1
+ @use '@carbon/layout';
2
+ @use '@carbon/type';
3
3
 
4
4
  .container {
5
- padding: spacing.$spacing-07;
5
+ padding: layout.$spacing-07;
6
6
  }
7
7
 
8
8
  .welcome {
9
9
  @include type.type-style('heading-04');
10
- margin: spacing.$spacing-05 0;
10
+ margin: layout.$spacing-05 0;
11
11
  }
12
12
 
13
13
  .explainer {
14
- margin-bottom: 2rem;
14
+ margin-bottom: layout.$spacing-07;
15
15
  }
package/src/root.test.tsx CHANGED
@@ -21,11 +21,11 @@
21
21
  * Kent C. Dodds is the inventor of `@testing-library`:
22
22
  * https://testing-library.com/docs/guiding-principles
23
23
  */
24
- import React from "react";
25
- import { render, screen } from "@testing-library/react";
26
- import { useConfig } from "@openmrs/esm-framework";
27
- import { type Config } from "./config-schema";
28
- import Root from "./root.component";
24
+ import React from 'react';
25
+ import { render, screen } from '@testing-library/react';
26
+ import { useConfig } from '@openmrs/esm-framework';
27
+ import { type Config } from './config-schema';
28
+ import Root from './root.component';
29
29
 
30
30
  /**
31
31
  * This is an idiomatic way of dealing with mocked files. Note that
@@ -34,18 +34,13 @@ import Root from "./root.component";
34
34
  * mock file. This line just tells TypeScript that the object is, in
35
35
  * fact, a mock, and so will have methods like `mockReturnValue`.
36
36
  */
37
- const mockUseConfig = useConfig as jest.Mock;
37
+ const mockUseConfig = jest.mocked(useConfig<Config>);
38
38
 
39
- it("renders a landing page for the opencare app", () => {
40
- const config: Config = {
41
- API_SECURE: "Admin123",
42
- API_BASE_URL: "admin",
43
- };
39
+ it('renders a landing page for the opentms app', () => {
40
+ const config: Config = { API_BASE_URL: 'http://localhost:8080', API_SECURE: '*******************' };
44
41
  mockUseConfig.mockReturnValue(config);
45
42
 
46
43
  render(<Root />);
47
44
 
48
- expect(
49
- screen.getByRole("heading", { name: /welcome to the o3 opencare app/i })
50
- ).toBeInTheDocument();
45
+ expect(screen.getByRole('heading', { name: /Welcome to opentms app/i })).toBeInTheDocument();
51
46
  });
package/src/routes.json CHANGED
@@ -7,22 +7,17 @@
7
7
  "extensions": [
8
8
  {
9
9
  "component": "demandtab",
10
- "name": "opencare-demand-tab",
11
- "slot": "homepage-widgets-slot"
10
+ "name": "opentms-demand-tab",
11
+ "slot": "service-queues-dashboard-slot"
12
12
  },
13
13
  {
14
14
  "component": "appointmenttab",
15
- "name": "opencare-appointment-tab",
15
+ "name": "opentms-appointment-tab",
16
16
  "slot": "patient-chart-appointments-dashboard-slot"
17
17
  },
18
- {
19
- "component": "root",
20
- "name": "opencare-dashboard",
21
- "slot": "opencare-dashboard-slot"
22
- },
23
18
  {
24
19
  "component": "meetiframe",
25
- "name": "opencare-meet-iframe",
20
+ "name": "opentms-meet-iframe",
26
21
  "meta": {
27
22
  "title": {
28
23
  "key": "meetWorkspace",
@@ -32,13 +27,13 @@
32
27
  },
33
28
  {
34
29
  "component": "validatedemandform",
35
- "name": "opencare-validate-demand-form"
30
+ "name": "opentms-validate-demand-form"
36
31
  }
37
32
  ],
38
33
  "pages": [
39
34
  {
40
35
  "component": "root",
41
- "route": "opencare"
36
+ "route": "root"
42
37
  }
43
38
  ]
44
39
  }
@@ -1,14 +1,14 @@
1
1
  module.exports = {
2
- contextSeparator: "_",
2
+ contextSeparator: '_',
3
3
  // Key separator used in your translation keys
4
4
 
5
5
  createOldCatalogs: false,
6
6
  // Save the \_old files
7
7
 
8
- defaultNamespace: "translations",
8
+ defaultNamespace: 'translations',
9
9
  // Default namespace used in your i18next config
10
10
 
11
- defaultValue: "",
11
+ defaultValue: '',
12
12
  // Default value to give to empty keys
13
13
  // You may also specify a function accepting the locale, namespace, and key as arguments
14
14
 
@@ -18,43 +18,43 @@ module.exports = {
18
18
  keepRemoved: false,
19
19
  // Keep keys from the catalog that are no longer in code
20
20
 
21
- keySeparator: ".",
21
+ keySeparator: '.',
22
22
  // Key separator used in your translation keys
23
23
  // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
24
24
 
25
25
  // see below for more details
26
26
  lexers: {
27
- hbs: ["HandlebarsLexer"],
28
- handlebars: ["HandlebarsLexer"],
27
+ hbs: ['HandlebarsLexer'],
28
+ handlebars: ['HandlebarsLexer'],
29
29
 
30
- htm: ["HTMLLexer"],
31
- html: ["HTMLLexer"],
30
+ htm: ['HTMLLexer'],
31
+ html: ['HTMLLexer'],
32
32
 
33
- mjs: ["JavascriptLexer"],
34
- js: ["JavascriptLexer"], // if you're writing jsx inside .js files, change this to JsxLexer
35
- ts: ["JavascriptLexer"],
36
- jsx: ["JsxLexer"],
37
- tsx: ["JsxLexer"],
33
+ mjs: ['JavascriptLexer'],
34
+ js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer
35
+ ts: ['JavascriptLexer'],
36
+ jsx: ['JsxLexer'],
37
+ tsx: ['JsxLexer'],
38
38
 
39
- default: ["JavascriptLexer"],
39
+ default: ['JavascriptLexer'],
40
40
  },
41
41
 
42
- lineEnding: "auto",
42
+ lineEnding: 'auto',
43
43
  // Control the line ending. See options at https://github.com/ryanve/eol
44
44
 
45
- locales: ["en"],
45
+ locales: ['en'],
46
46
  // An array of the locales in your applications
47
47
 
48
- namespaceSeparator: ":",
48
+ namespaceSeparator: ':',
49
49
  // Namespace separator used in your translation keys
50
50
  // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
51
51
 
52
- output: "$NAMESPACE/$LOCALE.json",
52
+ output: '$NAMESPACE/$LOCALE.json',
53
53
  // Supports $LOCALE and $NAMESPACE injection
54
54
  // Supports JSON (.json) and YAML (.yml) file formats
55
55
  // Where to write the locale files relative to process.cwd()
56
56
 
57
- pluralSeparator: "_",
57
+ pluralSeparator: '_',
58
58
  // Plural separator used in your translation keys
59
59
  // If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys.
60
60
 
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,43 @@
1
+ import { execSync } from 'node:child_process';
2
+
3
+ try {
4
+ // NB for other places use '@openmrs/*@next'; here we want to ignore patient-common-lib
5
+ execSync(`yarn up --fixed '@openmrs/*@next' 'openmrs@next'`, {
6
+ stdio: ['ignore', 'inherit', 'inherit'],
7
+ windowsHide: true,
8
+ });
9
+ } catch (error) {
10
+ console.error(`Error while updating dependencies: ${error.message ?? error}`);
11
+ process.exit(1);
12
+ }
13
+
14
+ try {
15
+ execSync(`yarn dedupe`, {
16
+ stdio: ['ignore', 'inherit', 'inherit'],
17
+ windowsHide: true,
18
+ });
19
+ } catch (error) {
20
+ console.error(`Error while deduplicating dependencies: ${error.message ?? error}`);
21
+ process.exit(1);
22
+ }
23
+
24
+ try {
25
+ execSync(`git diff-index --quiet HEAD --`, {
26
+ stdio: 'ignore',
27
+ windowsHide: true,
28
+ });
29
+ process.exit(0);
30
+ } catch (error) {
31
+ // git diff-index --quite HEAD --
32
+ // exits with status 1 if there are changes; we only need to run yarn verify if there are changes
33
+ }
34
+
35
+ try {
36
+ execSync(`yarn verify`, {
37
+ stdio: ['ignore', 'inherit', 'inherit'],
38
+ windowsHide: true,
39
+ });
40
+ } catch (error) {
41
+ console.error(`Error while running yarn verify: ${error.message ?? error}. Updates require manual intervention.`);
42
+ process.exit(1);
43
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "የማዋቀር ስርዓት",
4
+ "configSystemExplainer": "ከዚህ በታች የሚታየው ሰላምታ የሚመራው በማዋቀር ስርዓቱ ነው። የማዋቀር ባህሪያቱን ለመቀየር በአሳሹ ውስጥ ያለውን የስፓነር አዶ ጠቅ ያድርጉ የአስፈፃሚ መሳሪያዎች ፓነልን ለመሳብ። በመቀጠል በ <4>የፍለጋ ውቅረት</4> ግቤት ውስጥ <2>አብነት</2>ን ይተይቡ። ይህ ለዚህ ሞጁል ተዛማጅ የሆኑትን ብቻ ለማሳየት የማዋቀሪያ ባህሪያትን ማጣራት አለበት. በUI ውስጥ የሚንፀባረቁትን ለውጦች ለማየት የእነዚህን ንብረቶች እሴቶች መለወጥ እና <6>አስቀምጥ</6>ን ጠቅ ማድረግ ይችላሉ",
5
+ "connect": "ተገናኝ",
6
+ "connectExplainer": "ከማህበረሰቡ ጋር ይገናኙ",
7
+ "dataFetching": "ውሂብ ማምጣት",
8
+ "designDocs": "የንድፍ መመሪያ",
9
+ "designDocsExplainer": "የ O3 ንድፍ ሰነድ ያንብቡ",
10
+ "explainer": "የሚከተሉት ምሳሌዎች የ O3 ማዕቀፍ አንዳንድ ቁልፍ ባህሪያትን ያሳያሉ",
11
+ "extensionExplainer": "አንዳንድ ባለቀለም ሳጥኖች እዚህ አሉ። በአንድ ማስገቢያ ውስጥ እንደ ቅጥያ ስለተያያዙ፣ አስተዳዳሪው ውቅረትን ተጠቅሞ የሚታዩትን ሳጥኖች መለወጥ ይችላል። እነዚህ ሳጥኖች በዚህ ሞጁል ውስጥ ይገለጻሉ, ነገር ግን በተለየ ሞጁል ውስጥ ቢሆኑም እንኳ ከዚህ ማስገቢያ ጋር ማያያዝ ይችላሉ",
12
+ "extensionSystem": "የኤክስቴንሽን ስርዓት",
13
+ "formalGreeting": "ሀሎ",
14
+ "frontendDocs": "የፊት-መጨረሻ መመሪያ",
15
+ "getPatient": "የተሰየመ ታካሚ ያግኙ",
16
+ "getStarted": "እንጀምር",
17
+ "getStartedExplainer": "ከዚህ አብነት የፊት ለፊት ሞጁል ይፍጠሩ",
18
+ "learnExplainer": "የ O3 ማዕቀፍን እንዴት መጠቀም እንደሚችሉ ይወቁ",
19
+ "loading": "በመጫን ላይ",
20
+ "patientGetterExplainer": "በሽተኛውን ከኤፒአይ ለማውጣት ከታች ያለውን አዝራር ጠቅ ያድርጉ",
21
+ "resources": "መርጃዎች",
22
+ "usefulLinks": "ከዚህ በታች ወደ ጠቃሚ ሀብቶች አንዳንድ አገናኞች አሉ",
23
+ "welcomeText": "ወደ O3 አብነት መተግበሪያ እንኳን በደህና መጡ"
24
+ }
@@ -1 +1,24 @@
1
- {}
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "Configuration system",
4
+ "configSystemExplainer": "The greeting shown below is driven by the configuration system. To change the configuration properties, click the spanner icon in the navbar to pull up the Implementer Tools panel. Then, type <2>template</2> into the <4>Search configuration</4> input. This should filter the configuration properties to show only those that are relevant to this module. You can change the values of these properties and click <6>Save</6> to see the changes reflected in the UI",
5
+ "connect": "Connect",
6
+ "connectExplainer": "Get in touch with the community",
7
+ "dataFetching": "Data fetching",
8
+ "designDocs": "Design docs",
9
+ "designDocsExplainer": "Read the O3 design documentation",
10
+ "explainer": "The following examples demonstrate some key features of the O3 framework",
11
+ "extensionExplainer": "Here are some colored boxes. Because they are attached as extensions within a slot, an admin can change what boxes are shown using configuration. These boxes happen to be defined in this module, but they could attach to this slot even if they were in a different module",
12
+ "extensionSystem": "Extension system",
13
+ "formalGreeting": "hello",
14
+ "frontendDocs": "Frontend docs",
15
+ "getPatient": "Get a patient named",
16
+ "getStarted": "Get started",
17
+ "getStartedExplainer": "Create a frontend module from this template",
18
+ "learnExplainer": "Learn how to use the O3 framework",
19
+ "loading": "Loading",
20
+ "patientGetterExplainer": "Try clicking the button below to fetch a patient from the backend",
21
+ "resources": "Resources",
22
+ "usefulLinks": "Below are some links to useful resources",
23
+ "welcomeText": "Welcome to the O3 Template app"
24
+ }
package/tsconfig.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "es2016.array.include",
16
16
  "es2018",
17
17
  "es2020",
18
- "es2022"
18
+ "es2022",
19
19
  ],
20
20
  "resolveJsonModule": true,
21
21
  "noEmit": true,
package/webpack.config.js CHANGED
@@ -1 +1 @@
1
- module.exports = require("openmrs/default-webpack-config");
1
+ module.exports = require('openmrs/default-webpack-config');
Binary file