@thinkwise/testwise 0.2.0-beta.3 → 0.2.5

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 (136) hide show
  1. package/Testwise.ts +8 -7
  2. package/artifact-builder/ArtifactManager.ts +0 -1
  3. package/artifact-builder/InterfaceGenerator.ts +73 -83
  4. package/artifact-builder/ModelDataBuilder.ts +74 -86
  5. package/artifact-builder/ModelDataRefiner.ts +18 -13
  6. package/artifact-builder/SchemaGenerator.ts +1 -4
  7. package/artifact-builder/ScreenInterfaceRefiner.ts +0 -5
  8. package/artifact-builder/SelectorBuilder.ts +8 -1
  9. package/artifact-builder/SubjectComponentGenerator.ts +77 -7
  10. package/artifact-builder/SubjectGenerator.ts +3 -3
  11. package/artifact-builder/SubjectRegistration.ts +69 -61
  12. package/artifact-builder/helpers/DataRetriever.ts +6 -3
  13. package/artifact-builder/helpers/NamingHandler.ts +28 -20
  14. package/artifact-builder/helpers/Stopwatch.ts +13 -0
  15. package/artifact-builder/helpers/index.ts +1 -0
  16. package/components/BaseComponentObjects.ts +4 -1
  17. package/components/action-bar/ActionBar.ts +3 -3
  18. package/components/grid/Grid.ts +18 -21
  19. package/components/tab/BaseTab.ts +2 -2
  20. package/components/tab/BaseTabObjects.ts +1 -1
  21. package/components/tab/DetailTabPage.ts +2 -2
  22. package/components/tab/Tab.ts +4 -4
  23. package/controls/LookupDropdown.ts +7 -2
  24. package/dist/Testwise.d.ts +1 -0
  25. package/dist/Testwise.js +15 -6
  26. package/dist/Testwise.js.map +1 -1
  27. package/dist/artifact-builder/ArtifactManager.js.map +1 -1
  28. package/dist/artifact-builder/InterfaceGenerator.d.ts +1 -1
  29. package/dist/artifact-builder/InterfaceGenerator.js +60 -67
  30. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  31. package/dist/artifact-builder/ModelDataBuilder.js +49 -60
  32. package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
  33. package/dist/artifact-builder/ModelDataRefiner.js +11 -7
  34. package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
  35. package/dist/artifact-builder/SchemaGenerator.js +0 -2
  36. package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
  37. package/dist/artifact-builder/ScreenInterfaceRefiner.js +0 -5
  38. package/dist/artifact-builder/ScreenInterfaceRefiner.js.map +1 -1
  39. package/dist/artifact-builder/SelectorBuilder.js +3 -1
  40. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  41. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +4 -0
  42. package/dist/artifact-builder/SubjectComponentGenerator.js +61 -5
  43. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  44. package/dist/artifact-builder/SubjectGenerator.js +1 -1
  45. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  46. package/dist/artifact-builder/SubjectRegistration.d.ts +10 -11
  47. package/dist/artifact-builder/SubjectRegistration.js +52 -44
  48. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  49. package/dist/artifact-builder/helpers/DataRetriever.js +4 -3
  50. package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
  51. package/dist/artifact-builder/helpers/NamingHandler.d.ts +2 -1
  52. package/dist/artifact-builder/helpers/NamingHandler.js +23 -16
  53. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  54. package/dist/artifact-builder/helpers/Stopwatch.d.ts +5 -0
  55. package/dist/artifact-builder/helpers/Stopwatch.js +13 -0
  56. package/dist/artifact-builder/helpers/Stopwatch.js.map +1 -0
  57. package/dist/artifact-builder/helpers/index.d.ts +1 -0
  58. package/dist/artifact-builder/helpers/index.js +1 -0
  59. package/dist/artifact-builder/helpers/index.js.map +1 -1
  60. package/dist/components/BaseComponentObjects.d.ts +1 -0
  61. package/dist/components/BaseComponentObjects.js +3 -1
  62. package/dist/components/BaseComponentObjects.js.map +1 -1
  63. package/dist/components/action-bar/ActionBar.d.ts +1 -1
  64. package/dist/components/action-bar/ActionBar.js +3 -3
  65. package/dist/components/grid/Grid.d.ts +1 -0
  66. package/dist/components/grid/Grid.js +4 -1
  67. package/dist/components/grid/Grid.js.map +1 -1
  68. package/dist/components/tab/BaseTab.d.ts +2 -2
  69. package/dist/components/tab/BaseTab.js +2 -2
  70. package/dist/components/tab/BaseTab.js.map +1 -1
  71. package/dist/components/tab/BaseTabObjects.js +1 -1
  72. package/dist/components/tab/BaseTabObjects.js.map +1 -1
  73. package/dist/components/tab/DetailTabPage.d.ts +2 -2
  74. package/dist/components/tab/DetailTabPage.js +2 -2
  75. package/dist/components/tab/DetailTabPage.js.map +1 -1
  76. package/dist/components/tab/Tab.d.ts +3 -3
  77. package/dist/components/tab/Tab.js +4 -4
  78. package/dist/components/tab/Tab.js.map +1 -1
  79. package/dist/controls/LookupDropdown.d.ts +3 -7
  80. package/dist/controls/LookupDropdown.js.map +1 -1
  81. package/dist/enums/ElementTypes.d.ts +1 -1
  82. package/dist/enums/ElementTypes.js +1 -1
  83. package/dist/enums/ElementTypes.js.map +1 -1
  84. package/dist/helpers/ConfigChecker.d.ts +3 -0
  85. package/dist/helpers/ConfigChecker.js +7 -0
  86. package/dist/helpers/ConfigChecker.js.map +1 -0
  87. package/dist/helpers/LoginHelper.js +1 -1
  88. package/dist/helpers/LoginHelper.js.map +1 -1
  89. package/dist/interfaces/IComponentObjects.d.ts +1 -0
  90. package/dist/page-extensions/SubjectRegistry.d.ts +0 -8
  91. package/dist/page-extensions/SubjectRegistry.js +2 -6
  92. package/dist/page-extensions/SubjectRegistry.js.map +1 -1
  93. package/dist/page-extensions/index.d.ts +0 -1
  94. package/dist/page-extensions/index.js +0 -1
  95. package/dist/page-extensions/index.js.map +1 -1
  96. package/dist/services/IndiciumApi.service.d.ts +27 -0
  97. package/dist/services/IndiciumApi.service.js +135 -0
  98. package/dist/services/IndiciumApi.service.js.map +1 -0
  99. package/dist/templates/test-artifacts/SubjectPageBase.d.ts +5 -0
  100. package/dist/templates/test-artifacts/SubjectPageBase.js +6 -0
  101. package/dist/templates/test-artifacts/SubjectPageBase.js.map +1 -0
  102. package/dist/templates/test-artifacts/screens/index.d.ts +1 -0
  103. package/dist/templates/test-artifacts/screens/index.js +2 -0
  104. package/dist/templates/test-artifacts/screens/index.js.map +1 -0
  105. package/dist/templates/test-artifacts/subjects/index.d.ts +1 -0
  106. package/dist/templates/test-artifacts/subjects/index.js +2 -0
  107. package/dist/templates/test-artifacts/subjects/index.js.map +1 -0
  108. package/enums/ElementTypes.ts +2 -2
  109. package/helpers/ConfigChecker.ts +7 -0
  110. package/helpers/LoginHelper.ts +1 -1
  111. package/interfaces/IComponentObjects.ts +1 -0
  112. package/interfaces/IRegisteredSubjects.ts +1 -1
  113. package/package.json +5 -3
  114. package/page-extensions/SubjectRegistry.ts +2 -19
  115. package/page-extensions/index.ts +0 -1
  116. package/scripts/main.js +63 -82
  117. package/scripts/postinstall.js +40 -42
  118. package/scripts/setup.js +37 -37
  119. package/scripts/sync.js +726 -39
  120. package/services/ConfigBuilder.ts +1 -1
  121. package/services/IndiciumApi.service.ts +159 -0
  122. package/templates/SubjectRegistry.template.ts +73 -0
  123. package/templates/test-artifacts/SubjectPageBase.ts +9 -0
  124. package/templates/test-artifacts/screens/index.ts +0 -0
  125. package/templates/test-artifacts/subjects/index.ts +0 -0
  126. package/tsconfig.json +2 -3
  127. package/types/Components.ts +1 -1
  128. package/dist/config.json +0 -10
  129. package/dist/page-extensions/SubjectProvider.d.ts +0 -11
  130. package/dist/page-extensions/SubjectProvider.js +0 -24
  131. package/dist/page-extensions/SubjectProvider.js.map +0 -1
  132. package/dist/test-artifacts/index.d.ts +0 -3
  133. package/dist/test-artifacts/index.js +0 -4
  134. package/dist/test-artifacts/index.js.map +0 -1
  135. package/page-extensions/SubjectProvider.ts +0 -41
  136. package/test-artifacts/index.ts +0 -3
@@ -3,6 +3,11 @@
3
3
  import type { Locator } from '@playwright/test';
4
4
  import { escapeRegex } from '../helpers/RegexHelper.js';
5
5
 
6
+ export type ILookupDropdown = Locator & {
7
+ lookupSelect(optionToSelect: string): Promise<void>;
8
+ selectOption(optionText: string): Promise<void>;
9
+ };
10
+
6
11
  class LookupDropdown {
7
12
  private _locator: Locator;
8
13
 
@@ -34,7 +39,7 @@ class LookupDropdown {
34
39
  }
35
40
  }
36
41
 
37
- export function createLookupDropdown(locator: Locator): LookupDropdown & Locator {
42
+ export function createLookupDropdown(locator: Locator): ILookupDropdown {
38
43
  const dropdown = new LookupDropdown(locator);
39
44
 
40
45
  return new Proxy(dropdown, {
@@ -50,5 +55,5 @@ export function createLookupDropdown(locator: Locator): LookupDropdown & Locator
50
55
  }
51
56
  return value;
52
57
  }
53
- }) as LookupDropdown & Locator;
58
+ }) as unknown as ILookupDropdown;
54
59
  }
@@ -1,2 +1,3 @@
1
1
  import type { Test } from './types/Test.js';
2
2
  export declare const test: Test;
3
+ export declare const bddTest: Test;
package/dist/Testwise.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { test as base } from '@playwright/test';
2
+ import { test as bddBase } from 'playwright-bdd';
2
3
  import { Components, GoToDeepLink, LoginFeatures, UserSimulation } from './page-extensions/index.js';
3
- import { SubjectProvider } from './page-extensions/SubjectProvider.js';
4
4
  import { SubjectRegistry } from './page-extensions/SubjectRegistry.js';
5
5
  import { WaitEventHandler } from './page-extensions/WaitEventHandler.js';
6
6
  import { ClickOverride } from './page-overrides/ClickOverride.js';
@@ -8,9 +8,18 @@ import { FillOverride } from './page-overrides/FillOverride.js';
8
8
  function combineExtensions(baseTest, ...extensions) {
9
9
  return extensions.reduce((test, Extension) => new Extension(test).test, baseTest);
10
10
  }
11
- export const test = combineExtensions(base,
12
- // Override section
13
- ClickOverride, FillOverride,
14
- // Extend section
15
- Components, GoToDeepLink, LoginFeatures, UserSimulation, WaitEventHandler, SubjectRegistry, SubjectProvider);
11
+ const extensions = [
12
+ // Override section
13
+ ClickOverride,
14
+ FillOverride,
15
+ // Extend section
16
+ Components,
17
+ GoToDeepLink,
18
+ LoginFeatures,
19
+ UserSimulation,
20
+ WaitEventHandler,
21
+ SubjectRegistry
22
+ ];
23
+ export const test = combineExtensions(base, ...extensions);
24
+ export const bddTest = combineExtensions(bddBase, ...extensions);
16
25
  //# sourceMappingURL=Testwise.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,SAAS,iBAAiB,CAAC,QAAc,EAAE,GAAG,UAAkD;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAS,iBAAiB,CACzC,IAAI;AAEJ,mBAAmB;AACnB,aAAa,EACb,YAAY;AAEZ,iBAAiB;AACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,CAChB,CAAC"}
1
+ {"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,SAAS,iBAAiB,CAAC,QAAc,EAAE,GAAG,UAAkD;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,mBAAmB;IACnB,aAAa;IACb,YAAY;IAEZ,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactManager.js","sourceRoot":"","sources":["../../artifact-builder/ArtifactManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,eAAe;IAI1B;QACE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ArtifactManager.js","sourceRoot":"","sources":["../../artifact-builder/ArtifactManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,eAAe;IAI1B;QACE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;CACF"}
@@ -2,6 +2,7 @@ export declare class InterfaceGenerator {
2
2
  private readonly _namingHandler;
3
3
  private _filename;
4
4
  private _dirname;
5
+ private _screensToBuild;
5
6
  constructor();
6
7
  generateScreenInterfacesFromSchemas(): Promise<void>;
7
8
  generateSubjectInterfacesFromSchemas(): Promise<void>;
@@ -11,6 +12,5 @@ export declare class InterfaceGenerator {
11
12
  private verifySubjectComponentsDirectory;
12
13
  private createInterfaceFromSchema;
13
14
  private generateInterfacesFromSchemaFiles;
14
- private runPrettierOnSpecifiedDirectory;
15
15
  getScreenSchemaFilesPath(): string;
16
16
  }
@@ -1,21 +1,22 @@
1
- import { exec } from 'node:child_process';
2
1
  import fs from 'node:fs';
3
2
  import path from 'node:path';
4
3
  import { fileURLToPath } from 'node:url';
4
+ import * as prettier from 'prettier';
5
+ import { FetchingJSONSchemaStore, InputData, JSONSchemaInput, quicktype } from 'quicktype-core';
5
6
  import { PathResolver } from '../helpers/PathResolver.js';
6
- import { NamingHandler } from '../index.js';
7
+ import { DataRetriever, NamingHandler } from '../index.js';
7
8
  export class InterfaceGenerator {
8
9
  constructor() {
9
10
  this._namingHandler = new NamingHandler();
10
11
  this._filename = fileURLToPath(import.meta.url);
11
12
  this._dirname = path.dirname(this._filename);
13
+ this._screensToBuild = new DataRetriever().getScreensToBuild();
12
14
  }
13
15
  async generateScreenInterfacesFromSchemas() {
14
16
  const screenOutputDirectory = path.resolve(this._dirname, '..', '..', 'test-artifacts/screens/');
15
17
  this.verifyOutputDirectory(screenOutputDirectory);
16
18
  const schemasDirectory = this.getScreenSchemaFilesPath();
17
19
  await this.generateInterfacesFromSchemaFiles(schemasDirectory, SchemaType.Screen, screenOutputDirectory);
18
- await this.runPrettierOnSpecifiedDirectory(screenOutputDirectory);
19
20
  console.info('All screen schemas processed.');
20
21
  }
21
22
  async generateSubjectInterfacesFromSchemas() {
@@ -24,18 +25,15 @@ export class InterfaceGenerator {
24
25
  this.verifyGeneratedSubjectSchemasDirectory(schemasDirectory);
25
26
  this.verifyOutputDirectory(subjectOutputDirectory);
26
27
  await this.generateInterfacesFromSchemaFiles(schemasDirectory, SchemaType.Subject, subjectOutputDirectory);
27
- await this.runPrettierOnSpecifiedDirectory(subjectOutputDirectory);
28
28
  console.info('All subject schemas processed.');
29
29
  }
30
30
  verifyGeneratedSubjectSchemasDirectory(directory) {
31
31
  if (!fs.existsSync(directory)) {
32
- console.error(`Schemas directory not found: ${directory}`);
33
32
  return;
34
33
  }
35
34
  }
36
35
  verifyOutputDirectory(directory) {
37
36
  if (!fs.existsSync(directory)) {
38
- console.info(`Creating output directory: ${directory}`);
39
37
  fs.mkdirSync(directory, { recursive: true });
40
38
  }
41
39
  }
@@ -49,73 +47,68 @@ export class InterfaceGenerator {
49
47
  }
50
48
  return componentsDirectory;
51
49
  }
52
- createInterfaceFromSchema(schemasDirectory, outputPath, file, isInterface = false) {
53
- return new Promise((resolve, reject) => {
54
- exec(`quicktype --just-types --lang typescript --src-lang schema --nice-property-names -o "${outputPath}" "${file}"`, { cwd: schemasDirectory }, (error) => {
55
- if (error) {
56
- console.error(`Error processing ${file}:`, error.message);
57
- reject(error);
58
- return;
59
- }
60
- // This is an ugly patch to fix interface names after quicktype generation due to quicktype applying naming logic to acronyms that we can't switch off
61
- try {
62
- const fileName = path.basename(outputPath, '.ts');
63
- const fileContent = fs.readFileSync(outputPath, 'utf-8');
64
- const interfaceNameMatch = fileContent.match(new RegExp(`interface ${fileName}`, 'i'));
65
- if (interfaceNameMatch) {
66
- const correctInterfaceName = isInterface
67
- ? this._namingHandler.generateScreenInterfaceName(file.slice(0, file.lastIndexOf('.')))
68
- : this._namingHandler.snakeToPascalCase(file.slice(0, file.lastIndexOf('.')));
69
- const updatedContent = fileContent.replace(new RegExp(`interface ${interfaceNameMatch[0].split(' ')[1]}`), `interface ${correctInterfaceName}`);
70
- fs.writeFileSync(outputPath, updatedContent, 'utf-8');
71
- }
72
- }
73
- catch (fsError) {
74
- console.error(`Error post-processing ${outputPath}:`, fsError instanceof Error ? fsError.message : String(fsError));
75
- reject(fsError);
76
- return;
77
- }
78
- console.info(`Generated: ${outputPath}`);
79
- resolve(true);
50
+ async createInterfaceFromSchema(schemasDirectory, outputPath, file, isInterface = false) {
51
+ try {
52
+ const baseFileName = file.slice(0, file.lastIndexOf('.'));
53
+ const correctInterfaceName = isInterface
54
+ ? this._namingHandler.generateScreenInterfaceName(baseFileName)
55
+ : this._namingHandler.snakeToPascalCase(baseFileName);
56
+ const schemaPath = path.join(schemasDirectory, file);
57
+ const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
58
+ const schemaInput = new JSONSchemaInput(new FetchingJSONSchemaStore());
59
+ await schemaInput.addSource({
60
+ name: correctInterfaceName,
61
+ schema: schemaContent
80
62
  });
81
- });
63
+ const inputData = new InputData();
64
+ inputData.addInput(schemaInput);
65
+ const result = await quicktype({
66
+ inputData,
67
+ lang: 'typescript',
68
+ rendererOptions: { 'just-types': 'true', 'nice-property-names': 'true' }
69
+ });
70
+ let updatedContent = result.lines.join('\n');
71
+ updatedContent = updatedContent.replace(/interface\s+\w+/, `interface ${correctInterfaceName}`);
72
+ const formattedContent = await prettier.format(updatedContent, {
73
+ parser: 'typescript',
74
+ singleQuote: true,
75
+ semi: true,
76
+ trailingComma: 'all'
77
+ });
78
+ fs.writeFileSync(outputPath, formattedContent, 'utf-8');
79
+ return true;
80
+ }
81
+ catch (error) {
82
+ if (error instanceof Error) {
83
+ console.error(`Error processing ${file}:`, error.message);
84
+ }
85
+ else {
86
+ console.error(`Error processing ${file}:`, error);
87
+ }
88
+ throw error;
89
+ }
82
90
  }
83
91
  async generateInterfacesFromSchemaFiles(schemasDirectory, schemaType, outputPath) {
84
92
  const schemaFiles = this.getGeneratedSubjectSchemas(schemasDirectory);
85
- const quicktypePromises = schemaFiles.map((file) => {
86
- return new Promise((resolve, reject) => {
87
- const fileName = this._namingHandler.getPascalSubjectComponentName(file);
88
- if (schemaType === SchemaType.Subject) {
89
- const subject = this._namingHandler.getSubjectFromFileName(fileName);
90
- const componentsDirectory = this.verifySubjectComponentsDirectory(outputPath, subject);
91
- const perFileOutputPath = path.join(componentsDirectory, `${fileName}.ts`);
92
- this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file).then(resolve).catch(reject);
93
+ const tasks = schemaFiles.map(async (file) => {
94
+ const fileName = this._namingHandler.getPascalSubjectComponentName(file);
95
+ if (schemaType === SchemaType.Subject) {
96
+ const subject = this._namingHandler.getSubjectFromFileName(fileName);
97
+ const componentsDirectory = this.verifySubjectComponentsDirectory(outputPath, subject);
98
+ const perFileOutputPath = path.join(componentsDirectory, `${fileName}.ts`);
99
+ return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file);
100
+ }
101
+ if (schemaType === SchemaType.Screen) {
102
+ const fileNameSnakeCase = this._namingHandler.pascalToSnakeCase(fileName);
103
+ if (this._screensToBuild.length > 0 && !this._screensToBuild.includes(fileNameSnakeCase)) {
104
+ return Promise.resolve(true);
93
105
  }
94
- else if (schemaType === SchemaType.Screen) {
95
- const perFileOutputPath = path.join(outputPath, `I${fileName}.ts`);
96
- this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file, true).then(resolve).catch(reject);
97
- }
98
- else {
99
- reject(new Error(`Unsupported schema type: ${schemaType}`));
100
- }
101
- });
102
- });
103
- await Promise.all(quicktypePromises);
104
- }
105
- async runPrettierOnSpecifiedDirectory(directory) {
106
- const packageDir = path.resolve(this._dirname, '..');
107
- const relativeDir = path.relative(packageDir, directory);
108
- await new Promise((resolve, reject) => {
109
- exec(`npx prettier --write "${relativeDir}"`, { cwd: packageDir }, (prettierError) => {
110
- if (prettierError) {
111
- console.error(`Prettier failed for ${directory}:`, prettierError.message);
112
- reject(prettierError);
113
- return;
114
- }
115
- console.info(`Formatted all files in: ${directory}`);
116
- resolve(true);
117
- });
106
+ const perFileOutputPath = path.join(outputPath, `I${fileName}.ts`);
107
+ return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file, true);
108
+ }
109
+ throw new Error(`Unsupported schema type: ${schemaType}`);
118
110
  });
111
+ await Promise.all(tasks);
119
112
  }
120
113
  getScreenSchemaFilesPath() {
121
114
  const directory = new PathResolver().getConsumerRootDirectory();
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,kBAAkB;IAK7B;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,mCAAmC;QAC9C,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;QACjG,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QAElD,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,EAAE,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACzG,MAAM,IAAI,CAAC,+BAA+B,CAAC,qBAAqB,CAAC,CAAC;QAElE,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,oCAAoC;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QAClF,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAElG,IAAI,CAAC,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAC3G,MAAM,IAAI,CAAC,+BAA+B,CAAC,sBAAsB,CAAC,CAAC;QAEnE,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACjD,CAAC;IAEO,sCAAsC,CAAC,SAAiB;QAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,SAAiB;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;YACxD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,gBAAwB;QACzD,OAAO,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,gCAAgC,CAAC,SAAiB,EAAE,OAAe;QACzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,aAAa,CAAC,CAAC;QAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEO,yBAAyB,CAC/B,gBAAwB,EACxB,UAAkB,EAClB,IAAY,EACZ,cAAuB,KAAK;QAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,wFAAwF,UAAU,MAAM,IAAI,GAAG,EAC/G,EAAE,GAAG,EAAE,gBAAgB,EAAE,EACzB,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1D,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,sJAAsJ;gBACtJ,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAClD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACzD,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;oBAEvF,IAAI,kBAAkB,EAAE,CAAC;wBACvB,MAAM,oBAAoB,GAAG,WAAW;4BACtC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;4BACvF,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChF,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CACxC,IAAI,MAAM,CAAC,aAAa,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC9D,aAAa,oBAAoB,EAAE,CACpC,CAAC;wBACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CACX,yBAAyB,UAAU,GAAG,EACtC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC7D,CAAC;oBACF,MAAM,CAAC,OAAO,CAAC,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iCAAiC,CAC7C,gBAAwB,EACxB,UAAsB,EACtB,UAAkB;QAElB,MAAM,WAAW,GAAa,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAEhF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;gBAEzE,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;oBAC3E,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxG,CAAC;qBAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,QAAQ,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9G,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,SAAiB;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEzD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,IAAI,CACF,yBAAyB,WAAW,GAAG,EACvC,EAAE,GAAG,EAAE,UAAU,EAAE,EACnB,CAAC,aAAa,EAAE,EAAE;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC1E,MAAM,CAAC,aAAa,CAAC,CAAC;oBACtB,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wBAAwB;QAC7B,MAAM,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC,wBAAwB,EAAE,CAAC;QAEhE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0CAA0C,iBAAiB,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF;AAED,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACnB,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd"}
1
+ {"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /** biome-ignore-all lint/style/noNonNullAssertion: Because I can */
3
3
  /** biome-ignore-all lint/suspicious/noExplicitAny: Because I can */
4
- import axios from 'axios';
5
- import { testwiseConfig } from '../services/ConfigBuilder.js';
4
+ import * as fs from 'node:fs/promises';
5
+ import * as path from 'node:path';
6
+ import { indiciumApi } from '../services/IndiciumApi.service.js';
6
7
  import { DataRetriever } from './helpers/DataRetriever.js';
7
- const serviceUrl = testwiseConfig().get('environmentSettings.serviceUrl').replace(/\/$/, '');
8
- const metaEndpoint = testwiseConfig()
9
- .get('environmentSettings.metaEndpoint')
10
- .replace(/^\//, '')
11
- .replace(/\/$/, '');
12
- const authUser = testwiseConfig().get('environmentSettings.authUser');
13
- const authUserPassword = testwiseConfig().get('environmentSettings.authUserPassword');
14
- const axiosInstance = axios.create({
15
- baseURL: serviceUrl,
16
- headers: {
17
- Authorization: `Basic ${Buffer.from(`${authUser}:${authUserPassword}`).toString('base64')}`,
18
- accept: '*/*'
19
- }
20
- });
21
- const guiApplId = await getGuiApplId();
22
8
  export async function buildSubjects() {
23
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_tab?$filter=gui_appl_id%20eq%20${guiApplId}`);
24
- const rawTabs = response.data?.value || [];
25
- const subjectArray = rawTabs.flatMap((tab) => {
9
+ if (!(await indiciumApi.canConnectToProject())) {
10
+ console.log('Cannot connect to Indicium API. Aborting subject build.');
11
+ return;
12
+ }
13
+ const rawTables = await indiciumApi.getAllTables();
14
+ const subjects = rawTables
15
+ .flatMap((tab) => {
26
16
  const base = {
27
17
  subject: tab.tab_id,
28
18
  variant: tab.tab_variant_id
@@ -30,34 +20,53 @@ export async function buildSubjects() {
30
20
  return [
31
21
  { ...base, screentype_id: tab.main_screen_type_id, screentype_context: 'main' },
32
22
  { ...base, screentype_id: tab.detail_screen_type_id, screentype_context: 'detail' },
33
- { ...base, screentype_id: tab.zoom_screen_type_id, screentype_context: 'zoom' },
34
- { ...base, screentype_id: tab.popup_screen_type_id, screentype_context: 'popup' }
23
+ { ...base, screentype_id: tab.popup_screen_type_id, screentype_context: 'popup' },
24
+ { ...base, screentype_id: tab.zoom_screen_type_id, screentype_context: 'zoom' }
35
25
  ];
36
- }).filter(item => item.screentype_id !== "not_visible_in_gui");
37
- const colResponse = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_col?$filter=gui_appl_id%20eq%20${guiApplId}`);
38
- const allProperties = colResponse.data?.value.map((col) => ({
26
+ })
27
+ .filter((item) => item.screentype_id !== 'not_visible_in_gui');
28
+ const screentypeOrder = ['main', 'detail', 'popup', 'zoom'];
29
+ subjects.sort((a, b) => {
30
+ return (a.subject.localeCompare(b.subject) ||
31
+ a.variant.localeCompare(b.variant) ||
32
+ screentypeOrder.indexOf(a.screentype_context) - screentypeOrder.indexOf(b.screentype_context));
33
+ });
34
+ const allProperties = (await indiciumApi.getAllColumns()).map((col) => ({
39
35
  subject: col.tab_id,
40
36
  variant: col.tab_variant_id,
41
37
  col: col.col_id,
42
38
  control_type: col.control_id || ''
43
39
  }));
44
- for (const subject of subjectArray) {
40
+ for (const subject of subjects) {
45
41
  const matchingProperties = allProperties.filter((prop) => prop.subject === subject.subject && prop.variant === subject.variant);
46
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
- subject.properties = matchingProperties.map(({ subject, variant, ...rest }) => rest);
42
+ subject.properties = matchingProperties
43
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
+ .map(({ subject, variant, ...rest }) => rest)
45
+ .sort((a, b) => a.col.localeCompare(b.col));
48
46
  }
47
+ const subjectsWithLookupsSet = await setLookupDropdowns(subjects);
49
48
  const seedDataDirectory = new DataRetriever().getSeedDataDirectory();
50
- const fs = await import('node:fs').then(mod => mod.promises);
51
- const path = await import('node:path');
52
49
  const seedDataPath = path.join(seedDataDirectory, 'subjects.json');
53
- await fs.writeFile(seedDataPath, JSON.stringify(subjectArray, null, 2), 'utf-8');
50
+ await fs.writeFile(seedDataPath, JSON.stringify(subjectsWithLookupsSet, null, 2), 'utf-8');
54
51
  console.log(`Seed data written to ${seedDataPath}`);
55
52
  }
56
- import * as fs from 'node:fs/promises';
57
- import * as path from 'node:path';
53
+ async function setLookupDropdowns(subjects) {
54
+ const lookupMappings = await indiciumApi.getLookups();
55
+ for (const mapping of lookupMappings) {
56
+ const targetSubject = subjects.find((subj) => subj.subject === mapping.tab_id && subj.variant === mapping.tab_variant_id);
57
+ const targetProperty = targetSubject?.properties?.find((prop) => prop.col === mapping.col_id);
58
+ if (targetProperty) {
59
+ targetProperty.control_type = 'LOOKUP_DROPDOWN';
60
+ }
61
+ }
62
+ return subjects;
63
+ }
58
64
  export async function buildScreens() {
59
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_screen_component?$filter=gui_appl_id eq ${guiApplId}`);
60
- const rawComponents = response.data?.value || [];
65
+ if (!(await indiciumApi.canConnectToProject())) {
66
+ console.log('Cannot connect to Indicium API. Aborting screen build.');
67
+ return;
68
+ }
69
+ const rawComponents = await indiciumApi.getScreenComponents();
61
70
  const screenMap = new Map();
62
71
  for (const item of rawComponents) {
63
72
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -81,21 +90,21 @@ export async function buildScreens() {
81
90
  const required = [];
82
91
  for (const comp of screenData.Components) {
83
92
  const type = comp.ScreenComponentType;
84
- properties[comp.ScreenComponentId] = { "$ref": `#/definitions/${type}` };
93
+ properties[comp.ScreenComponentId] = { $ref: `#/definitions/${type}` };
85
94
  required.push(comp.ScreenComponentId);
86
95
  usedTypes.add(type);
87
96
  }
88
97
  const schema = {
89
98
  title: `I_${screenTypeId}`,
90
- type: "object",
99
+ type: 'object',
91
100
  properties,
92
101
  required,
93
102
  additionalProperties: false,
94
103
  definitions: Array.from(usedTypes).reduce((acc, type) => {
95
104
  acc[type] = {
96
- type: "object",
97
- properties: { temp: { type: "string" } },
98
- required: ["temp"],
105
+ type: 'object',
106
+ properties: { temp: { type: 'string' } },
107
+ required: ['temp'],
99
108
  additionalProperties: false
100
109
  };
101
110
  return acc;
@@ -105,24 +114,4 @@ export async function buildScreens() {
105
114
  }
106
115
  console.log('Screen schemas generated successfully.');
107
116
  }
108
- async function getGuiApplId() {
109
- const guiApplAlias = testwiseConfig().get('environmentSettings.guiApplAlias');
110
- if (guiApplAlias) {
111
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_gui_appl`);
112
- const guiAppl = response.data?.value.find((appl) => {
113
- const currentAlias = appl?.gui_appl_alias?.toString();
114
- const targetAlias = guiApplAlias?.toString();
115
- return currentAlias === targetAlias;
116
- });
117
- if (guiAppl) {
118
- return guiAppl.gui_appl_id;
119
- }
120
- else {
121
- throw new Error(`No GUI Application found for GUI Application Alias: ${guiApplAlias}`);
122
- }
123
- }
124
- else {
125
- throw new Error('GUI Application Alias is not defined in the configuration.');
126
- }
127
- }
128
117
  //# sourceMappingURL=ModelDataBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"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"}
@@ -7,22 +7,26 @@ export class ModelDataRefiner {
7
7
  }
8
8
  run() {
9
9
  const seedDataDir = this._dataRetriever.getSeedDataDirectory();
10
+ const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
11
+ const screensToBuildPath = path.resolve(seedDataDir, 'screensToBuild.json');
10
12
  const registeredSubjects = this._dataRetriever.getRegisteredSubjects();
11
13
  if (!registeredSubjects || registeredSubjects.length === 0) {
12
- console.error('No registered subjects found.');
14
+ console.info('No registered subjects found.');
15
+ if (fs.existsSync(screensToBuildPath))
16
+ fs.unlinkSync(screensToBuildPath);
17
+ if (fs.existsSync(subjectsToBuildPath))
18
+ fs.unlinkSync(subjectsToBuildPath);
13
19
  return;
14
20
  }
15
21
  const subjects = this._dataRetriever.getSubjectsSeedData();
16
- const subjectsToBuild = subjects.filter(subject => registeredSubjects.some(registered => registered.subject === subject.subject &&
22
+ const subjectsToBuild = subjects.filter((subject) => registeredSubjects.some((registered) => registered.subject === subject.subject &&
17
23
  (registered.variant != null ? registered.variant === subject.variant : subject.variant === '') &&
18
24
  registered.screen_type === subject.screentype_context));
19
- const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
20
25
  fs.writeFileSync(subjectsToBuildPath, JSON.stringify(subjectsToBuild, null, 2));
21
26
  console.log(`Created subjectsToBuild.json with ${subjectsToBuild.length} subjects.`);
22
- const screensToBuild = Array.from(new Set(subjectsToBuild.map(subject => subject.screentype_id)));
23
- const screensToBuildPath = path.resolve(seedDataDir, 'screensToBuild.json');
24
- fs.writeFileSync(screensToBuildPath, JSON.stringify(screensToBuild, null, 2));
25
- console.log(`Created screensToBuild.json with ${screensToBuild.length} screens.`);
27
+ const screensToBuildList = Array.from(new Set(subjectsToBuild.map((subject) => subject.screentype_id)));
28
+ fs.writeFileSync(screensToBuildPath, JSON.stringify(screensToBuildList, null, 2));
29
+ console.log(`Created screensToBuild.json with ${screensToBuildList.length} screens.`);
26
30
  }
27
31
  }
28
32
  //# sourceMappingURL=ModelDataRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IA+B/C,CAAC;IA7BQ,GAAG;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,kBAAkB,GAAkC,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAEtG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAE3D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAChD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CACnC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YACtC,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9F,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,kBAAkB,CACtD,CACF,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC9E,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,qCAAqC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAElG,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5E,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,oCAAoC,cAAc,CAAC,MAAM,WAAW,CAAC,CAAC;IACpF,CAAC;CACF"}
1
+ {"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IAoC/C,CAAC;IAlCQ,GAAG;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAiC,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAErG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACzE,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAE3E,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAE3D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,kBAAkB,CAAC,IAAI,CACrB,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YACtC,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9F,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,kBAAkB,CACxD,CACF,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,qCAAqC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAErF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAExG,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,oCAAoC,kBAAkB,CAAC,MAAM,WAAW,CAAC,CAAC;IACxF,CAAC;CACF"}
@@ -33,11 +33,9 @@ export class SchemaGenerator {
33
33
  switch (component) {
34
34
  case 'Form':
35
35
  this.createComponentSchema(subject, 'Form');
36
- console.log(`Generated Form schema for subject: ${subject.subject}`);
37
36
  break;
38
37
  case 'Grid':
39
38
  this.createComponentSchema(subject, 'Grid');
40
- console.log(`Generated Grid schema for subject: ${subject.subject}`);
41
39
  break;
42
40
  }
43
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SchemaGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SchemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ export class ScreenInterfaceRefiner {
9
9
  this._screensDirectory = path.resolve(_dirname, '../../test-artifacts/screens');
10
10
  }
11
11
  refine() {
12
- console.log('Refining interfaces in:', this._screensDirectory);
13
12
  const screenFiles = this.getAllScreenInterfaceFiles();
14
13
  screenFiles.forEach((screenFile) => {
15
14
  const filePath = path.join(this._screensDirectory, screenFile);
@@ -23,10 +22,6 @@ export class ScreenInterfaceRefiner {
23
22
  this.addImportStatements(screen, interfacesToRemove);
24
23
  this.formatContent(screen);
25
24
  fs.writeFileSync(filePath, screen.content, 'utf-8');
26
- console.log(`Refined interfaces in: ${screenFile}`);
27
- }
28
- else {
29
- console.log(`No additional interfaces to refine in: ${screenFile}`);
30
25
  }
31
26
  this.indexScreenInterface(screenFile);
32
27
  });