@sonisoft/now-sdk-ext-core 1.0.0-alpha.32 → 2.0.0-alpha.0

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 (137) hide show
  1. package/dist/auth/NowSDKAuthenticationHandler.d.ts +3 -3
  2. package/dist/auth/NowSDKAuthenticationHandler.js +6 -3
  3. package/dist/auth/NowSDKAuthenticationHandler.js.map +1 -1
  4. package/dist/comm/http/HTTPRequest.d.ts +2 -0
  5. package/dist/comm/http/RequestHandler.d.ts +1 -0
  6. package/dist/comm/http/RequestHandler.js +49 -15
  7. package/dist/comm/http/RequestHandler.js.map +1 -1
  8. package/dist/comm/http/ServiceNowProcessorRequest.d.ts +3 -0
  9. package/dist/comm/http/ServiceNowProcessorRequest.js +7 -4
  10. package/dist/comm/http/ServiceNowProcessorRequest.js.map +1 -1
  11. package/dist/index.d.ts +13 -3
  12. package/dist/index.js +13 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/sn/Application.d.ts +1 -0
  15. package/dist/sn/Application.js +26 -0
  16. package/dist/sn/Application.js.map +1 -1
  17. package/dist/sn/IServiceNowInstance.d.ts +1 -1
  18. package/dist/sn/ProgressWorker.d.ts +33 -0
  19. package/dist/sn/ProgressWorker.js +24 -0
  20. package/dist/sn/ProgressWorker.js.map +1 -0
  21. package/dist/sn/ServiceNowInstance.d.ts +2 -2
  22. package/dist/sn/ServiceNowInstance.js.map +1 -1
  23. package/dist/sn/amb/AMBClient.d.ts +66 -0
  24. package/dist/sn/amb/AMBClient.js +358 -0
  25. package/dist/sn/amb/AMBClient.js.map +1 -0
  26. package/dist/sn/amb/AMBConstants.d.ts +8 -0
  27. package/dist/sn/amb/AMBConstants.js +10 -0
  28. package/dist/sn/amb/AMBConstants.js.map +1 -0
  29. package/dist/sn/amb/AuthenticatedWebSocket.d.ts +25 -0
  30. package/dist/sn/amb/AuthenticatedWebSocket.js +56 -0
  31. package/dist/sn/amb/AuthenticatedWebSocket.js.map +1 -0
  32. package/dist/sn/amb/Channel.d.ts +67 -0
  33. package/dist/sn/amb/Channel.js +212 -0
  34. package/dist/sn/amb/Channel.js.map +1 -0
  35. package/dist/sn/amb/ChannelListener.d.ts +31 -0
  36. package/dist/sn/amb/ChannelListener.js +60 -0
  37. package/dist/sn/amb/ChannelListener.js.map +1 -0
  38. package/dist/sn/amb/ChannelRedirect.d.ts +13 -0
  39. package/dist/sn/amb/ChannelRedirect.js +50 -0
  40. package/dist/sn/amb/ChannelRedirect.js.map +1 -0
  41. package/dist/sn/amb/CrossClientChannel.d.ts +4 -0
  42. package/dist/sn/amb/CrossClientChannel.js +14 -0
  43. package/dist/sn/amb/CrossClientChannel.js.map +1 -0
  44. package/dist/sn/amb/EventManager.d.ts +13 -0
  45. package/dist/sn/amb/EventManager.js +40 -0
  46. package/dist/sn/amb/EventManager.js.map +1 -0
  47. package/dist/sn/amb/FunctionQueue.d.ts +53 -0
  48. package/dist/sn/amb/FunctionQueue.js +95 -0
  49. package/dist/sn/amb/FunctionQueue.js.map +1 -0
  50. package/dist/sn/amb/GraphQLSubscriptionExtension.d.ts +12 -0
  51. package/dist/sn/amb/GraphQLSubscriptionExtension.js +31 -0
  52. package/dist/sn/amb/GraphQLSubscriptionExtension.js.map +1 -0
  53. package/dist/sn/amb/Helper.d.ts +5 -0
  54. package/dist/sn/amb/Helper.js +6 -0
  55. package/dist/sn/amb/Helper.js.map +1 -0
  56. package/dist/sn/amb/MessageClient.d.ts +73 -0
  57. package/dist/sn/amb/MessageClient.js +154 -0
  58. package/dist/sn/amb/MessageClient.js.map +1 -0
  59. package/dist/sn/amb/MessageClientBuilder.d.ts +24 -0
  60. package/dist/sn/amb/MessageClientBuilder.js +95 -0
  61. package/dist/sn/amb/MessageClientBuilder.js.map +1 -0
  62. package/dist/sn/amb/Properties.d.ts +16 -0
  63. package/dist/sn/amb/Properties.js +32 -0
  64. package/dist/sn/amb/Properties.js.map +1 -0
  65. package/dist/sn/amb/ServerConnection.d.ts +132 -0
  66. package/dist/sn/amb/ServerConnection.js +579 -0
  67. package/dist/sn/amb/ServerConnection.js.map +1 -0
  68. package/dist/sn/amb/SessionExtension.d.ts +8 -0
  69. package/dist/sn/amb/SessionExtension.js +20 -0
  70. package/dist/sn/amb/SessionExtension.js.map +1 -0
  71. package/dist/sn/amb/SubscriptionCommandSender.d.ts +60 -0
  72. package/dist/sn/amb/SubscriptionCommandSender.js +222 -0
  73. package/dist/sn/amb/SubscriptionCommandSender.js.map +1 -0
  74. package/dist/sn/amb/TokenManagementExtension.d.ts +20 -0
  75. package/dist/sn/amb/TokenManagementExtension.js +90 -0
  76. package/dist/sn/amb/TokenManagementExtension.js.map +1 -0
  77. package/dist/sn/amb/XMLHttpRequest.d.ts +31 -0
  78. package/dist/sn/amb/XMLHttpRequest.js +287 -0
  79. package/dist/sn/amb/XMLHttpRequest.js.map +1 -0
  80. package/dist/sn/amb/cometd-nodejs-client.d.ts +1 -0
  81. package/dist/sn/amb/cometd-nodejs-client.js +84 -0
  82. package/dist/sn/amb/cometd-nodejs-client.js.map +1 -0
  83. package/dist/sn/amb/index.d.ts +19 -0
  84. package/dist/sn/amb/index.js +20 -0
  85. package/dist/sn/amb/index.js.map +1 -0
  86. package/dist/sn/application/AppRepoApplication.d.ts +166 -0
  87. package/dist/sn/application/AppRepoApplication.js +167 -0
  88. package/dist/sn/application/AppRepoApplication.js.map +1 -0
  89. package/dist/sn/application/ApplicationDetailModel.d.ts +71 -0
  90. package/dist/sn/application/ApplicationDetailModel.js +72 -0
  91. package/dist/sn/application/ApplicationDetailModel.js.map +1 -0
  92. package/dist/sn/application/ApplicationManager.d.ts +117 -0
  93. package/dist/sn/application/ApplicationManager.js +251 -0
  94. package/dist/sn/application/ApplicationManager.js.map +1 -0
  95. package/dist/sn/application/BatchDefinition.d.ts +16 -0
  96. package/dist/sn/application/BatchDefinition.js +60 -0
  97. package/dist/sn/application/BatchDefinition.js.map +1 -0
  98. package/dist/sn/application/BatchInstallation.d.ts +8 -0
  99. package/dist/sn/application/BatchInstallation.js +20 -0
  100. package/dist/sn/application/BatchInstallation.js.map +1 -0
  101. package/dist/sn/application/CompanyApplications.d.ts +234 -0
  102. package/dist/sn/application/CompanyApplications.js +91 -0
  103. package/dist/sn/application/CompanyApplications.js.map +1 -0
  104. package/dist/sn/atf/ATFTest.d.ts +27 -0
  105. package/dist/sn/atf/ATFTest.js +3 -0
  106. package/dist/sn/atf/ATFTest.js.map +1 -0
  107. package/dist/sn/atf/ATFTestExecutor.d.ts +115 -0
  108. package/dist/sn/atf/ATFTestExecutor.js +239 -0
  109. package/dist/sn/atf/ATFTestExecutor.js.map +1 -0
  110. package/dist/sn/atf/ATFTestStep.d.ts +0 -0
  111. package/dist/sn/atf/ATFTestStep.js +1 -0
  112. package/dist/sn/atf/ATFTestStep.js.map +1 -0
  113. package/dist/sn/atf/ATFTestSuite.d.ts +0 -0
  114. package/dist/sn/atf/ATFTestSuite.js +1 -0
  115. package/dist/sn/atf/ATFTestSuite.js.map +1 -0
  116. package/dist/sn/atf/TestFactory.d.ts +2 -0
  117. package/dist/sn/atf/TestFactory.js +3 -0
  118. package/dist/sn/atf/TestFactory.js.map +1 -0
  119. package/dist/sn/atf/TestStepFactory.d.ts +0 -0
  120. package/dist/sn/atf/TestStepFactory.js +1 -0
  121. package/dist/sn/atf/TestStepFactory.js.map +1 -0
  122. package/dist/sn/atf/TestSuiteFactory.d.ts +0 -0
  123. package/dist/sn/atf/TestSuiteFactory.js +1 -0
  124. package/dist/sn/atf/TestSuiteFactory.js.map +1 -0
  125. package/dist/sn/syslog/SyslogReader.d.ts +113 -0
  126. package/dist/sn/syslog/SyslogReader.js +369 -0
  127. package/dist/sn/syslog/SyslogReader.js.map +1 -0
  128. package/dist/sn/syslog/SyslogRecord.d.ts +86 -0
  129. package/dist/sn/syslog/SyslogRecord.js +2 -0
  130. package/dist/sn/syslog/SyslogRecord.js.map +1 -0
  131. package/package.json +8 -9
  132. package/dist/comm/http/CookieStore.d.ts +0 -8
  133. package/dist/comm/http/CookieStore.js +0 -21
  134. package/dist/comm/http/CookieStore.js.map +0 -1
  135. package/dist/comm/http/CookieStoreFactory.d.ts +0 -5
  136. package/dist/comm/http/CookieStoreFactory.js +0 -11
  137. package/dist/comm/http/CookieStoreFactory.js.map +0 -1
@@ -0,0 +1,91 @@
1
+ import { Logger } from "../../util/Logger.js";
2
+ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
3
+ /**
4
+ * CompanyApplications class for retrieving company application information
5
+ * Provides methods to get applications shared internally within the company
6
+ */
7
+ export class CompanyApplications {
8
+ COMPANY_APPS_API_URL = "/sn_appclient_api_v1.do";
9
+ _logger = new Logger("CompanyApplications");
10
+ _req;
11
+ _instance;
12
+ constructor(instance) {
13
+ this._instance = instance;
14
+ this._req = new ServiceNowRequest(instance);
15
+ }
16
+ /**
17
+ * Gets the list of company applications shared internally
18
+ * @param sharedInternally Filter for internally shared applications (default: true)
19
+ * @param isFirstLoad Indicates if this is the first load (default: true)
20
+ * @returns Promise<CompanyApplicationsResponse> Response containing list of applications
21
+ */
22
+ async getCompanyApplications(sharedInternally = true, isFirstLoad = true) {
23
+ const queryParams = {
24
+ app_request_type: 'list_apps_versions',
25
+ shared_internally: sharedInternally,
26
+ isFirstLoad: isFirstLoad,
27
+ uniq_param: Date.now().toString()
28
+ };
29
+ const httpRequest = {
30
+ method: 'GET',
31
+ path: this.COMPANY_APPS_API_URL,
32
+ headers: {
33
+ 'Accept': 'application/json',
34
+ 'Content-Type': 'application/json'
35
+ },
36
+ query: queryParams,
37
+ body: null
38
+ };
39
+ this._logger.info(`Fetching company applications (shared_internally: ${sharedInternally})`);
40
+ const resp = await this._req.get(httpRequest);
41
+ if (resp.status === 200 && resp.bodyObject) {
42
+ this._logger.info(`Successfully retrieved ${resp.bodyObject.data?.length || 0} company applications`);
43
+ return resp.bodyObject;
44
+ }
45
+ throw new Error(`Failed to get company applications. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
46
+ }
47
+ /**
48
+ * Gets a specific company application by scope
49
+ * @param scope The application scope to search for
50
+ * @param sharedInternally Filter for internally shared applications (default: true)
51
+ * @returns Promise<CompanyApplication | null> The application if found, null otherwise
52
+ */
53
+ async getCompanyApplicationByScope(scope, sharedInternally = true) {
54
+ const response = await this.getCompanyApplications(sharedInternally);
55
+ const application = response.data?.find(app => app.scope === scope);
56
+ if (application) {
57
+ this._logger.info(`Found application: ${application.name} (${scope})`);
58
+ return application;
59
+ }
60
+ this._logger.warn(`Application with scope '${scope}' not found`);
61
+ return null;
62
+ }
63
+ /**
64
+ * Gets a specific company application by sys_id
65
+ * @param sysId The application sys_id to search for
66
+ * @param sharedInternally Filter for internally shared applications (default: true)
67
+ * @returns Promise<CompanyApplication | null> The application if found, null otherwise
68
+ */
69
+ async getCompanyApplicationBySysId(sysId, sharedInternally = true) {
70
+ const response = await this.getCompanyApplications(sharedInternally);
71
+ const application = response.data?.find(app => app.sys_id === sysId);
72
+ if (application) {
73
+ this._logger.info(`Found application: ${application.name} (${sysId})`);
74
+ return application;
75
+ }
76
+ this._logger.warn(`Application with sys_id '${sysId}' not found`);
77
+ return null;
78
+ }
79
+ /**
80
+ * Gets only installed company applications
81
+ * @param sharedInternally Filter for internally shared applications (default: true)
82
+ * @returns Promise<CompanyApplication[]> Array of installed applications
83
+ */
84
+ async getInstalledCompanyApplications(sharedInternally = true) {
85
+ const response = await this.getCompanyApplications(sharedInternally);
86
+ const installedApps = response.data?.filter(app => app.isInstalled) || [];
87
+ this._logger.info(`Found ${installedApps.length} installed company applications`);
88
+ return installedApps;
89
+ }
90
+ }
91
+ //# sourceMappingURL=CompanyApplications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompanyApplications.js","sourceRoot":"","sources":["../../../src/sn/application/CompanyApplications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACX,oBAAoB,GAAG,yBAAyB,CAAC;IAE1D,OAAO,GAAW,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,CAAoB;IACxB,SAAS,CAAqB;IAEtC,YAAmB,QAA4B;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,sBAAsB,CAC/B,mBAA4B,IAAI,EAChC,cAAuB,IAAI;QAE3B,MAAM,WAAW,GAAqC;YAClD,gBAAgB,EAAE,oBAAoB;YACtC,iBAAiB,EAAE,gBAAgB;YACnC,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACpC,CAAC;QAEF,MAAM,WAAW,GAAgB;YAC7B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,cAAc,EAAE,kBAAkB;aACrC;YACD,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qDAAqD,gBAAgB,GAAG,CAAC,CAAC;QAE5F,MAAM,IAAI,GAA+C,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,WAAW,CAAC,CAAC;QAEvH,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtG,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,4BAA4B,CACrC,KAAa,EACb,mBAA4B,IAAI;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAEpE,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,WAAW,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,aAAa,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,4BAA4B,CACrC,KAAa,EACb,mBAA4B,IAAI;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAErE,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,WAAW,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,KAAK,aAAa,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,+BAA+B,CACxC,mBAA4B,IAAI;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAErE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAE1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,iCAAiC,CAAC,CAAC;QAClF,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ"}
@@ -0,0 +1,27 @@
1
+ import { ReferenceLink } from "../../model/types.js";
2
+ export type Test = {
3
+ "sys_mod_count": string;
4
+ "active": string;
5
+ "description": string;
6
+ "sys_updated_on": string;
7
+ "sys_tags": string;
8
+ "sys_class_name": string;
9
+ "remember": string;
10
+ "sys_id": string;
11
+ "sys_package": ReferenceLink;
12
+ "enable_parameterized_testing": string;
13
+ "sys_update_name": string;
14
+ "sys_updated_by": string;
15
+ "fail_on_server_error": string;
16
+ "sys_created_on": string;
17
+ "name": string;
18
+ "sys_name": string;
19
+ "sys_scope": ReferenceLink;
20
+ "copied_from": string;
21
+ "sn_atf_tg_generated": string;
22
+ "parameters": string;
23
+ "sys_created_by": string;
24
+ "sys_policy": string;
25
+ };
26
+ export declare class ATFTest {
27
+ }
@@ -0,0 +1,3 @@
1
+ export class ATFTest {
2
+ }
3
+ //# sourceMappingURL=ATFTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ATFTest.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTest.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,OAAO;CAInB"}
@@ -0,0 +1,115 @@
1
+ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
2
+ import { ReferenceLink } from "../../model/types.js";
3
+ import { ServiceNowInstance } from "../ServiceNowInstance.js";
4
+ export declare class ATFTestExecutor {
5
+ _req: ServiceNowRequest;
6
+ _instance: ServiceNowInstance;
7
+ constructor(instance: ServiceNowInstance);
8
+ executeTest(testId: string): Promise<TestResult>;
9
+ private waitForTestCompletion;
10
+ private doGetTestProgress;
11
+ private getTestProgress;
12
+ private getTestResult;
13
+ /**
14
+ * Executes a test suite by sys_id using the ServiceNow CI/CD API
15
+ * @param testSuiteSysId The sys_id of the test suite to execute
16
+ * @param options Optional execution parameters
17
+ * @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
18
+ */
19
+ executeTestSuite(testSuiteSysId: string, options?: Partial<TestSuiteExecutionRequest>): Promise<TestSuiteExecutionResponse>;
20
+ /**
21
+ * Executes a test suite by name using the ServiceNow CI/CD API
22
+ * @param testSuiteName The name of the test suite to execute
23
+ * @param options Optional execution parameters
24
+ * @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
25
+ */
26
+ executeTestSuiteByName(testSuiteName: string, options?: Partial<TestSuiteExecutionRequest>): Promise<TestSuiteExecutionResponse>;
27
+ /**
28
+ * Gets the progress of a test suite execution
29
+ * @param progressId The progress ID from the execution response
30
+ * @returns Promise<TestSuiteExecutionResponse> The current progress information
31
+ */
32
+ getTestSuiteProgress(progressId: string): Promise<TestSuiteExecutionResponse>;
33
+ /**
34
+ * Waits for test suite execution to complete and returns the results
35
+ * @param progressId The progress ID from the execution response
36
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
37
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
38
+ */
39
+ waitForTestSuiteCompletion(progressId: string, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
40
+ /**
41
+ * Gets the results of a completed test suite execution
42
+ * @param resultsId The results ID from the progress response
43
+ * @returns Promise<TestSuiteExecutionResult> The execution results
44
+ */
45
+ getTestSuiteResults(resultsId: string): Promise<TestSuiteExecutionResult>;
46
+ /**
47
+ * Executes a test suite and waits for completion
48
+ * @param testSuiteSysId The sys_id of the test suite to execute
49
+ * @param options Optional execution parameters
50
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
51
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
52
+ */
53
+ executeTestSuiteAndWait(testSuiteSysId: string, options?: Partial<TestSuiteExecutionRequest>, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
54
+ /**
55
+ * Executes a test suite by name and waits for completion
56
+ * @param testSuiteName The name of the test suite to execute
57
+ * @param options Optional execution parameters
58
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
59
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
60
+ */
61
+ executeTestSuiteByNameAndWait(testSuiteName: string, options?: Partial<TestSuiteExecutionRequest>, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
62
+ }
63
+ export type TestResult = {
64
+ "end_time_millis": string;
65
+ "execution_tracker": ReferenceLink;
66
+ "test_name": string;
67
+ "test": ReferenceLink;
68
+ "rollback_context": ReferenceLink;
69
+ "root_tracker_id": ReferenceLink;
70
+ "output": string;
71
+ "sys_id": string;
72
+ "run_time": string;
73
+ "status": string;
74
+ };
75
+ export interface TestSuiteExecutionRequest {
76
+ test_suite_sys_id?: string;
77
+ test_suite_name?: string;
78
+ browser_name?: string;
79
+ browser_version?: string;
80
+ is_performance_run?: boolean;
81
+ os_name?: string;
82
+ os_version?: string;
83
+ run_in_cloud?: boolean;
84
+ }
85
+ export interface TestSuiteExecutionResponse {
86
+ links: {
87
+ progress: {
88
+ id: string;
89
+ url: string;
90
+ };
91
+ results?: {
92
+ id: string;
93
+ url: string;
94
+ };
95
+ };
96
+ status: string;
97
+ status_label: string;
98
+ status_message: string;
99
+ status_detail: string;
100
+ error: string;
101
+ percent_complete: number;
102
+ }
103
+ export interface TestSuiteExecutionResult {
104
+ sys_id: string;
105
+ test_suite: ReferenceLink;
106
+ status: string;
107
+ start_time: string;
108
+ end_time: string;
109
+ duration: string;
110
+ total_tests: number;
111
+ passed_tests: number;
112
+ failed_tests: number;
113
+ skipped_tests: number;
114
+ output: string;
115
+ }
@@ -0,0 +1,239 @@
1
+ import { ServiceNowProcessorRequest } from "../../comm/http/ServiceNowProcessorRequest.js";
2
+ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
3
+ export class ATFTestExecutor {
4
+ _req = new ServiceNowRequest();
5
+ _instance;
6
+ constructor(instance) {
7
+ this._instance = instance;
8
+ this._req = new ServiceNowRequest(instance);
9
+ }
10
+ async executeTest(testId) {
11
+ const dataObj = {
12
+ 'sysparm_want_session_messages': 'true',
13
+ 'sysparm_ajax_processor_ut_test_id': testId,
14
+ 'sysparm_ajax_processor_test_runner_session_id': '',
15
+ 'sysparm_ajax_processor_is_pausing_enabled': '',
16
+ 'sysparm_ajax_processor_pause_before_rollback': '',
17
+ 'sysparm_ajax_processor_use_cloud_runner': '',
18
+ 'sysparm_ajax_processor_performance_run': '',
19
+ 'ni.nolog.x_referer': 'ignore',
20
+ 'x_referer': 'sys_atf_test.do%3Fsys_id%3D817a3214835b4210a9f8aec0deaad3f4%26sysparm_view%3D%26sysparm_domain%3Dnull%26sysparm_domain_scope%3Dnull'
21
+ };
22
+ const proc = new ServiceNowProcessorRequest(this._instance);
23
+ const result = await proc.execute("TestExecutorAjax", "start", "global", dataObj);
24
+ //In this case, result is the progress worker id.
25
+ if (result != null) {
26
+ const resultId = await this.waitForTestCompletion(result);
27
+ if (resultId) {
28
+ const testResult = await this.getTestResult(resultId);
29
+ if (testResult)
30
+ return testResult;
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ async waitForTestCompletion(progressId) {
36
+ let pr = await this.doGetTestProgress(progressId);
37
+ //console.log("Percent Complete: " + pr.percent_complete);
38
+ while (pr.percent_complete != null && pr.percent_complete < 100) {
39
+ await new Promise(resolve => setTimeout(resolve, 500));
40
+ pr = await this.doGetTestProgress(progressId);
41
+ //console.log("Percent Complete: " + pr.percent_complete);
42
+ }
43
+ if (pr && pr.percent_complete == 100 && pr.links.results && pr.links.results.id) {
44
+ return pr.links.results.id;
45
+ }
46
+ return null;
47
+ }
48
+ async doGetTestProgress(progressId) {
49
+ const data = await this.getTestProgress(progressId);
50
+ try {
51
+ if (data.result) {
52
+ return data.result;
53
+ }
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ return null;
59
+ }
60
+ async getTestProgress(progressId) {
61
+ const request = { path: "/api/sn_cicd/progress/" + progressId, headers: null, query: null, body: null };
62
+ const resp = await this._req.get(request);
63
+ if (resp.status == 200) {
64
+ return resp.bodyObject;
65
+ }
66
+ return null;
67
+ }
68
+ async getTestResult(testResultId) {
69
+ const request = { path: "/api/now/table/sys_atf_test_result?sysparm_query=sys_id=" + testResultId, headers: null, query: null, body: null };
70
+ const resp = await this._req.get(request);
71
+ if (resp.status == 200) {
72
+ const tableResp = resp.bodyObject;
73
+ if (tableResp.result && tableResp.result.length > 0) {
74
+ return tableResp.result[0];
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ // private async getTestStepResults(){
80
+ // }
81
+ /**
82
+ * Executes a test suite by sys_id using the ServiceNow CI/CD API
83
+ * @param testSuiteSysId The sys_id of the test suite to execute
84
+ * @param options Optional execution parameters
85
+ * @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
86
+ */
87
+ async executeTestSuite(testSuiteSysId, options) {
88
+ const queryParams = {
89
+ test_suite_sys_id: testSuiteSysId
90
+ };
91
+ // Add optional parameters if provided
92
+ if (options) {
93
+ if (options.browser_name)
94
+ queryParams.browser_name = options.browser_name;
95
+ if (options.browser_version)
96
+ queryParams.browser_version = options.browser_version;
97
+ if (options.is_performance_run !== undefined)
98
+ queryParams.is_performance_run = options.is_performance_run;
99
+ if (options.os_name)
100
+ queryParams.os_name = options.os_name;
101
+ if (options.os_version)
102
+ queryParams.os_version = options.os_version;
103
+ if (options.run_in_cloud !== undefined)
104
+ queryParams.run_in_cloud = options.run_in_cloud;
105
+ }
106
+ const request = {
107
+ path: "/api/sn_cicd/testsuite/run",
108
+ headers: {
109
+ 'Accept': 'application/json'
110
+ },
111
+ query: queryParams,
112
+ body: null
113
+ };
114
+ const resp = await this._req.post(request);
115
+ if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
116
+ return resp.bodyObject.result;
117
+ }
118
+ throw new Error(`Failed to execute test suite. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
119
+ }
120
+ /**
121
+ * Executes a test suite by name using the ServiceNow CI/CD API
122
+ * @param testSuiteName The name of the test suite to execute
123
+ * @param options Optional execution parameters
124
+ * @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
125
+ */
126
+ async executeTestSuiteByName(testSuiteName, options) {
127
+ const queryParams = {
128
+ test_suite_name: testSuiteName
129
+ };
130
+ // Add optional parameters if provided
131
+ if (options) {
132
+ if (options.browser_name)
133
+ queryParams.browser_name = options.browser_name;
134
+ if (options.browser_version)
135
+ queryParams.browser_version = options.browser_version;
136
+ if (options.is_performance_run !== undefined)
137
+ queryParams.is_performance_run = options.is_performance_run;
138
+ if (options.os_name)
139
+ queryParams.os_name = options.os_name;
140
+ if (options.os_version)
141
+ queryParams.os_version = options.os_version;
142
+ if (options.run_in_cloud !== undefined)
143
+ queryParams.run_in_cloud = options.run_in_cloud;
144
+ }
145
+ const request = {
146
+ path: "/api/sn_cicd/testsuite/run",
147
+ headers: {
148
+ 'Accept': 'application/json'
149
+ },
150
+ query: queryParams,
151
+ body: null
152
+ };
153
+ const resp = await this._req.post(request);
154
+ if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
155
+ return resp.bodyObject.result;
156
+ }
157
+ throw new Error(`Failed to execute test suite by name. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
158
+ }
159
+ /**
160
+ * Gets the progress of a test suite execution
161
+ * @param progressId The progress ID from the execution response
162
+ * @returns Promise<TestSuiteExecutionResponse> The current progress information
163
+ */
164
+ async getTestSuiteProgress(progressId) {
165
+ const request = {
166
+ path: `/api/sn_cicd/progress/${progressId}`,
167
+ headers: {
168
+ 'Accept': 'application/json'
169
+ },
170
+ query: null,
171
+ body: null
172
+ };
173
+ const resp = await this._req.get(request);
174
+ if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
175
+ return resp.bodyObject.result;
176
+ }
177
+ throw new Error(`Failed to get test suite progress. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
178
+ }
179
+ /**
180
+ * Waits for test suite execution to complete and returns the results
181
+ * @param progressId The progress ID from the execution response
182
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
183
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
184
+ */
185
+ async waitForTestSuiteCompletion(progressId, pollIntervalMs = 5000) {
186
+ let progress = await this.getTestSuiteProgress(progressId);
187
+ while (progress.percent_complete < 100 && progress.status !== "3" && progress.status !== "4") {
188
+ await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
189
+ progress = await this.getTestSuiteProgress(progressId);
190
+ }
191
+ if (progress.links && progress.links.results && progress.links.results.id) {
192
+ return await this.getTestSuiteResults(progress.links.results.id);
193
+ }
194
+ throw new Error(`Test suite execution did not complete successfully. Status: ${progress.status_label}, Error: ${progress.error}`);
195
+ }
196
+ /**
197
+ * Gets the results of a completed test suite execution
198
+ * @param resultsId The results ID from the progress response
199
+ * @returns Promise<TestSuiteExecutionResult> The execution results
200
+ */
201
+ async getTestSuiteResults(resultsId) {
202
+ const request = {
203
+ path: `/api/now/table/sys_atf_test_suite_result?sysparm_query=sys_id=${resultsId}`,
204
+ headers: {
205
+ 'Accept': 'application/json'
206
+ },
207
+ query: null,
208
+ body: null
209
+ };
210
+ const resp = await this._req.get(request);
211
+ if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result && resp.bodyObject.result.length > 0) {
212
+ return resp.bodyObject.result[0];
213
+ }
214
+ throw new Error(`Failed to get test suite results. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
215
+ }
216
+ /**
217
+ * Executes a test suite and waits for completion
218
+ * @param testSuiteSysId The sys_id of the test suite to execute
219
+ * @param options Optional execution parameters
220
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
221
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
222
+ */
223
+ async executeTestSuiteAndWait(testSuiteSysId, options, pollIntervalMs = 5000) {
224
+ const executionResponse = await this.executeTestSuite(testSuiteSysId, options);
225
+ return await this.waitForTestSuiteCompletion(executionResponse.links.progress.id, pollIntervalMs);
226
+ }
227
+ /**
228
+ * Executes a test suite by name and waits for completion
229
+ * @param testSuiteName The name of the test suite to execute
230
+ * @param options Optional execution parameters
231
+ * @param pollIntervalMs Polling interval in milliseconds (default: 5000)
232
+ * @returns Promise<TestSuiteExecutionResult> The final execution results
233
+ */
234
+ async executeTestSuiteByNameAndWait(testSuiteName, options, pollIntervalMs = 5000) {
235
+ const executionResponse = await this.executeTestSuiteByName(testSuiteName, options);
236
+ return await this.waitForTestSuiteCompletion(executionResponse.links.progress.id, pollIntervalMs);
237
+ }
238
+ }
239
+ //# sourceMappingURL=ATFTestExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ATFTestExecutor.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestExecutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAQtE,MAAM,OAAO,eAAe;IAExB,IAAI,GAAqB,IAAI,iBAAiB,EAAE,CAAC;IAEjD,SAAS,CAAoB;IAE7B,YAAmB,QAA2B;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAa;QAE3B,MAAM,OAAO,GAAG;YAEZ,+BAA+B,EAAC,MAAM;YACtC,mCAAmC,EAAC,MAAM;YAC1C,+CAA+C,EAAC,EAAE;YAClD,2CAA2C,EAAC,EAAE;YAC9C,8CAA8C,EAAC,EAAE;YACjD,yCAAyC,EAAC,EAAE;YAC5C,wCAAwC,EAAC,EAAE;YAC3C,oBAAoB,EAAC,QAAQ;YAC7B,WAAW,EAAC,qIAAqI;SACpJ,CAAC;QAEF,MAAM,IAAI,GAA8B,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE1F,iDAAiD;QACjD,IAAG,MAAM,IAAI,IAAI,EAAC,CAAC;YACjB,MAAM,QAAQ,GAAW,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAClE,IAAG,QAAQ,EAAC,CAAC;gBACX,MAAM,UAAU,GAAc,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACjE,IAAG,UAAU;oBACT,OAAO,UAAU,CAAC;YACxB,CAAC;QAEH,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,UAAiB;QACjD,IAAI,EAAE,GAAkB,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjE,0DAA0D;QAE1D,OAAM,EAAE,CAAC,gBAAgB,IAAI,IAAI,IAAI,EAAE,CAAC,gBAAgB,GAAG,GAAG,EAAC,CAAC;YAC5D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACvD,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC9C,0DAA0D;QAC9D,CAAC;QAED,IAAG,EAAE,IAAI,EAAE,CAAC,gBAAgB,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,CAAC;YAC5E,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAE,iBAAiB,CAAC,UAAiB;QAC7C,MAAM,IAAI,GAA0B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE3E,IAAG,CAAC;YACA,IAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAEb,OAAO,IAAI,CAAC,MAAM,CAAC;YACvB,CAAC;QAEL,CAAC;QAAA,MAAK,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAIO,KAAK,CAAC,eAAe,CAAC,UAAiB;QAG3C,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,wBAAwB,GAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC;QAChH,MAAM,IAAI,GAAyC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,OAAO,CAAC,CAAC;QACxG,IAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAC,CAAC;YACnB,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,YAAmB;QAG3C,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,0DAA0D,GAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC;QACpJ,MAAM,IAAI,GAAsD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsC,OAAO,CAAC,CAAC;QAClI,IAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAC,CAAC;YACnB,MAAM,SAAS,GAAwC,IAAI,CAAC,UAAU,CAAC;YACvE,IAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBAChD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;QAEL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sCAAsC;IAEtC,IAAI;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,cAAsB,EAAE,OAA4C;QACvF,MAAM,WAAW,GAAyB;YACtC,iBAAiB,EAAE,cAAc;SACpC,CAAC;QAEF,sCAAsC;QACtC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,CAAC,YAAY;gBAAE,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1E,IAAI,OAAO,CAAC,eAAe;gBAAE,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YACnF,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS;gBAAE,WAAW,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAC1G,IAAI,OAAO,CAAC,OAAO;gBAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC3D,IAAI,OAAO,CAAC,UAAU;gBAAE,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACpE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBAAE,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5F,CAAC;QAED,MAAM,OAAO,GAAgB;YACzB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;aAC/B;YACD,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,GAA0D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,OAAO,CAAC,CAAC;QAE1I,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAAC,aAAqB,EAAE,OAA4C;QAC5F,MAAM,WAAW,GAAyB;YACtC,eAAe,EAAE,aAAa;SACjC,CAAC;QAEF,sCAAsC;QACtC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,CAAC,YAAY;gBAAE,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1E,IAAI,OAAO,CAAC,eAAe;gBAAE,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YACnF,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS;gBAAE,WAAW,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAC1G,IAAI,OAAO,CAAC,OAAO;gBAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC3D,IAAI,OAAO,CAAC,UAAU;gBAAE,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACpE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBAAE,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5F,CAAC;QAED,MAAM,OAAO,GAAgB;YACzB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;aAC/B;YACD,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,GAA0D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,OAAO,CAAC,CAAC;QAE1I,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAClI,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QACzC,MAAM,OAAO,GAAgB;YACzB,IAAI,EAAE,yBAAyB,UAAU,EAAE;YAC3C,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;aAC/B;YACD,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,GAA0D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyC,OAAO,CAAC,CAAC;QAEzI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,0BAA0B,CAAC,UAAkB,EAAE,iBAAyB,IAAI;QAC9E,IAAI,QAAQ,GAA+B,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvF,OAAO,QAAQ,CAAC,gBAAgB,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC3F,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YAClE,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACxE,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+DAA+D,QAAQ,CAAC,YAAY,YAAY,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACtI,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACvC,MAAM,OAAO,GAAgB;YACzB,IAAI,EAAE,iEAAiE,SAAS,EAAE;YAClF,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;aAC/B;YACD,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,GAAqE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoD,OAAO,CAAC,CAAC;QAE/J,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxG,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9H,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,cAAsB,EAAE,OAA4C,EAAE,iBAAyB,IAAI;QAC7H,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,6BAA6B,CAAC,aAAqB,EAAE,OAA4C,EAAE,iBAAyB,IAAI;QAClI,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACtG,CAAC;CAEJ"}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ATFTestStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ATFTestStep.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestStep.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ATFTestSuite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ATFTestSuite.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestSuite.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class TestFactory {
2
+ }
@@ -0,0 +1,3 @@
1
+ export class TestFactory {
2
+ }
3
+ //# sourceMappingURL=TestFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestFactory.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,WAAW;CAEvB"}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=TestStepFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestStepFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestStepFactory.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=TestSuiteFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestSuiteFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestSuiteFactory.ts"],"names":[],"mappings":""}