apify-test-tools 0.5.1 → 0.5.3

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 (86) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/bin/git.ts +19 -34
  3. package/lib/lib.ts +5 -2
  4. package/package.json +1 -1
  5. package/test/unit/bin/git.test.ts +109 -0
  6. package/dist/bin/build.d.ts +0 -18
  7. package/dist/bin/build.d.ts.map +0 -1
  8. package/dist/bin/build.js +0 -229
  9. package/dist/bin/build.js.map +0 -1
  10. package/dist/bin/consts.d.ts +0 -4
  11. package/dist/bin/consts.d.ts.map +0 -1
  12. package/dist/bin/consts.js +0 -6
  13. package/dist/bin/consts.js.map +0 -1
  14. package/dist/bin/git.d.ts +0 -9
  15. package/dist/bin/git.d.ts.map +0 -1
  16. package/dist/bin/git.js +0 -61
  17. package/dist/bin/git.js.map +0 -1
  18. package/dist/bin/github.d.ts +0 -13
  19. package/dist/bin/github.d.ts.map +0 -1
  20. package/dist/bin/github.js +0 -59
  21. package/dist/bin/github.js.map +0 -1
  22. package/dist/bin/main.d.ts +0 -3
  23. package/dist/bin/main.d.ts.map +0 -1
  24. package/dist/bin/main.js +0 -124
  25. package/dist/bin/main.js.map +0 -1
  26. package/dist/bin/slack.d.ts +0 -13
  27. package/dist/bin/slack.d.ts.map +0 -1
  28. package/dist/bin/slack.js +0 -51
  29. package/dist/bin/slack.js.map +0 -1
  30. package/dist/bin/test-report.d.ts +0 -10
  31. package/dist/bin/test-report.d.ts.map +0 -1
  32. package/dist/bin/test-report.js +0 -74
  33. package/dist/bin/test-report.js.map +0 -1
  34. package/dist/bin/types.d.ts +0 -89
  35. package/dist/bin/types.d.ts.map +0 -1
  36. package/dist/bin/types.js +0 -2
  37. package/dist/bin/types.js.map +0 -1
  38. package/dist/bin/utils.d.ts +0 -29
  39. package/dist/bin/utils.d.ts.map +0 -1
  40. package/dist/bin/utils.js +0 -169
  41. package/dist/bin/utils.js.map +0 -1
  42. package/dist/index.d.ts +0 -3
  43. package/dist/index.d.ts.map +0 -1
  44. package/dist/index.js +0 -3
  45. package/dist/index.js.map +0 -1
  46. package/dist/lib/consts.d.ts +0 -3
  47. package/dist/lib/consts.d.ts.map +0 -1
  48. package/dist/lib/consts.js +0 -12
  49. package/dist/lib/consts.js.map +0 -1
  50. package/dist/lib/extend-expect.d.ts +0 -3
  51. package/dist/lib/extend-expect.d.ts.map +0 -1
  52. package/dist/lib/extend-expect.js +0 -257
  53. package/dist/lib/extend-expect.js.map +0 -1
  54. package/dist/lib/lib.d.ts +0 -38
  55. package/dist/lib/lib.d.ts.map +0 -1
  56. package/dist/lib/lib.js +0 -215
  57. package/dist/lib/lib.js.map +0 -1
  58. package/dist/lib/run-test-result.d.ts +0 -22
  59. package/dist/lib/run-test-result.d.ts.map +0 -1
  60. package/dist/lib/run-test-result.js +0 -73
  61. package/dist/lib/run-test-result.js.map +0 -1
  62. package/dist/lib/types.d.ts +0 -127
  63. package/dist/lib/types.d.ts.map +0 -1
  64. package/dist/lib/types.js +0 -2
  65. package/dist/lib/types.js.map +0 -1
  66. package/dist/lib/utils.d.ts +0 -8
  67. package/dist/lib/utils.d.ts.map +0 -1
  68. package/dist/lib/utils.js +0 -33
  69. package/dist/lib/utils.js.map +0 -1
  70. package/dist/test/unit/custom-matchers.test.d.ts +0 -2
  71. package/dist/test/unit/custom-matchers.test.d.ts.map +0 -1
  72. package/dist/test/unit/custom-matchers.test.js +0 -75
  73. package/dist/test/unit/custom-matchers.test.js.map +0 -1
  74. package/dist/test/unit/parse-commit.test.d.ts +0 -2
  75. package/dist/test/unit/parse-commit.test.d.ts.map +0 -1
  76. package/dist/test/unit/parse-commit.test.js +0 -57
  77. package/dist/test/unit/parse-commit.test.js.map +0 -1
  78. package/dist/test/unit/should-built-and-test.test.d.ts +0 -2
  79. package/dist/test/unit/should-built-and-test.test.d.ts.map +0 -1
  80. package/dist/test/unit/should-built-and-test.test.js +0 -136
  81. package/dist/test/unit/should-built-and-test.test.js.map +0 -1
  82. package/dist/test/unit/test-actor.test.d.ts +0 -2
  83. package/dist/test/unit/test-actor.test.d.ts.map +0 -1
  84. package/dist/test/unit/test-actor.test.js +0 -17
  85. package/dist/test/unit/test-actor.test.js.map +0 -1
  86. package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/bin/utils.js DELETED
@@ -1,169 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import { spawnSync } from 'node:child_process';
3
- export const spawnCommandInGhWorkspace = (command, args = []) => {
4
- console.error(command, args.join(' '));
5
- const commandResult = spawnSync(command, args, { shell: true, maxBuffer: 100 * 1024 * 1024 });
6
- if (commandResult.error) {
7
- throw new Error(`[Command failed]: ${command}\n${commandResult.error}`);
8
- }
9
- if (commandResult.stderr.toString().length > 0) {
10
- // For some reason 'git' command prints stderr when checking out to detached HEAD state (we only use detached HEAD for testing though)
11
- if (!commandResult.stderr.toString().includes(`You are in 'detached HEAD' state`)) {
12
- throw new Error(`[Command printed stderr]: ${command}\n${commandResult.stderr.toString()}`);
13
- }
14
- }
15
- return commandResult.stdout.toString().trim();
16
- };
17
- export const getRepoName = (githubEvent) => {
18
- const [, repoName] = githubEvent.repository.full_name.split('/');
19
- return repoName;
20
- };
21
- export const getEnvVar = (varName, defaultValue) => {
22
- const value = process.env[varName] ?? defaultValue;
23
- if (!value) {
24
- throw new Error(`${varName} not defined`);
25
- }
26
- return value;
27
- };
28
- export const getRunUrlKvsKey = (runnerName) => {
29
- return `RUN_URL-${runnerName}`;
30
- };
31
- /**
32
- * Reads and parses all directories in `actors` directory
33
- * This works locally if checkoutRepoLocally is called first
34
- */
35
- export const getRepoActors = async () => {
36
- let actorDirs;
37
- try {
38
- actorDirs = (await fs.readdir(`./actors`)).map((dir) => `actors/${dir}`);
39
- }
40
- catch (err) {
41
- console.warn(`No /actors directory found in repo`);
42
- actorDirs = [];
43
- }
44
- let standaloneActorDirs;
45
- try {
46
- standaloneActorDirs = (await fs.readdir(`./standalone-actors`)).map((dir) => `standalone-actors/${dir}`);
47
- }
48
- catch (err) {
49
- console.warn(`No /standalone-actors directory found in repo`);
50
- standaloneActorDirs = [];
51
- }
52
- const actorConfigs = [];
53
- for (const actorDir of [...actorDirs, ...standaloneActorDirs]) {
54
- const match = actorDir.match(/^([^/]+)\/(.+)_([^_]+)$/);
55
- if (!match) {
56
- throw new Error(`Invalid actor directory name. Got "${actorDir}", expected "actor.owner-name_actor-name"`);
57
- }
58
- const [, folderType, owner, actorName] = match;
59
- actorConfigs.push({
60
- actorName: `${owner}/${actorName}`,
61
- folder: actorDir,
62
- isStandalone: folderType === 'standalone-actors',
63
- });
64
- }
65
- console.error(`Actors in repo: ${actorConfigs.filter(({ isStandalone }) => !isStandalone).map(({ actorName }) => actorName).join(', ')}`);
66
- console.error(`Standalone actors in repo: ${actorConfigs.filter(({ isStandalone }) => !!isStandalone).map(({ actorName }) => actorName).join(', ')}`);
67
- return actorConfigs;
68
- };
69
- export const setCwd = ({ workspace }) => {
70
- if (workspace) {
71
- process.chdir(workspace);
72
- return;
73
- }
74
- const ghWorkspace = getEnvVar('GITHUB_WORKSPACE', process.cwd());
75
- process.chdir(ghWorkspace);
76
- };
77
- export const getHeadCommitSha = (githubEvent) => {
78
- return githubEvent.type === 'pull_request'
79
- ? githubEvent.pull_request.head.sha
80
- : githubEvent.head_commit.id;
81
- };
82
- /**
83
- * Also works for folders
84
- */
85
- const isIgnoredTopLevelFile = (lowercaseFilePath) => {
86
- // On top level, we should only have dev-only readme and .actor/ is just for apify push CLI (real Actor configs are in /actors)
87
- const IGNORED_TOP_LEVEL_FILES = ['.vscode/', '.gitignore', 'readme.md', '.husky/', '.eslintrc', '.editorconfig', '.actor/'];
88
- // Strip out deprecated /code and /shared folders, treat them as top-level code
89
- const sanitizedLowercaseFilePath = lowercaseFilePath.replace(/^code\//, '').replace(/^shared\//, '');
90
- return IGNORED_TOP_LEVEL_FILES.some((ignoredFile) => sanitizedLowercaseFilePath.startsWith(ignoredFile));
91
- };
92
- const isLatestBuildOnlyFile = (lowercaseFilePath) => {
93
- if (lowercaseFilePath.endsWith('changelog.md')) {
94
- return true;
95
- }
96
- // Either in /actors or /standalone-actors, we need to rebuild readme but we don't rebuild top-level dev-only readme
97
- if ((lowercaseFilePath.startsWith('actors/') || lowercaseFilePath.startsWith('standalone-actors/')) && lowercaseFilePath.endsWith('readme.md')) {
98
- return true;
99
- }
100
- return false;
101
- };
102
- /**
103
- * Latest and devel are the same except that for latest we also rebuild with README and CHANGELOG files
104
- */
105
- export const getChangedActors = ({ filepathsChanged, actorConfigs, isLatest = false }) => {
106
- let codeChanged = false;
107
- // folder -> ActorConfig
108
- const actorsChangedMap = new Map();
109
- const actorConfigsWithoutStandalone = actorConfigs.filter(({ isStandalone }) => !isStandalone);
110
- const lowercaseFiles = filepathsChanged.map((file) => file.toLowerCase());
111
- for (const lowercaseFilePath of lowercaseFiles) {
112
- if (isIgnoredTopLevelFile(lowercaseFilePath)) {
113
- continue;
114
- }
115
- // First we check for specific actors that have configs in /actors or standalone actors in /standalone-actors
116
- // This matches both actors/username_actorName and standalone-actors/username_actorName
117
- const changedActorConfigMatch = lowercaseFilePath.match(/^(?:standalone-)?actors\/([^/]+)\/.+/);
118
- if (changedActorConfigMatch) {
119
- const sanitizedActorName = changedActorConfigMatch[1].replace('_', '/');
120
- const actorConfigChanged = actorConfigs.find(({ actorName }) => actorName.toLowerCase() === sanitizedActorName);
121
- if (actorConfigChanged === undefined) {
122
- console.warn('changes was found in an actor folder which no longer exists in the current commit', {
123
- actorName: sanitizedActorName,
124
- actorFolderName: changedActorConfigMatch[1],
125
- });
126
- continue;
127
- }
128
- console.error(`actorConfigChanged ${actorConfigChanged.actorName}: sanitizedActorName ${sanitizedActorName} ${lowercaseFilePath} `);
129
- // These can be nested at various folders inside the actor folder
130
- if (isLatest || !isLatestBuildOnlyFile(lowercaseFilePath)) {
131
- // We assume other files will are either actor.json or input_schema.json and those needs to be tested
132
- // TODO: Check what changed in schema, we don't need to test description changes
133
- actorsChangedMap.set(actorConfigChanged.folder, actorConfigChanged);
134
- }
135
- continue;
136
- }
137
- // We check top level files (formerly in /code and /shared folders) that are shared among all non-standalone Actors
138
- // Standalone actors are always handled separately by name via changedActorConfigMatch
139
- if (isLatest || !isLatestBuildOnlyFile(lowercaseFilePath)) {
140
- codeChanged = !isLatest; // NOTE: code is changed only in PR
141
- for (const actorConfig of actorConfigsWithoutStandalone) {
142
- actorsChangedMap.set(actorConfig.folder, actorConfig);
143
- }
144
- }
145
- }
146
- const actorsChanged = Array.from(actorsChangedMap.values());
147
- // All below here is just for logging
148
- const ignoredFilesChanged = lowercaseFiles.filter((file) => isIgnoredTopLevelFile(file));
149
- console.error(`[DIFF]: Top level files changed that we ignore (don't trigger test or build): ${ignoredFilesChanged.join(', ')}`);
150
- const onlyLatestFilesChanged = lowercaseFiles.filter((file) => isLatestBuildOnlyFile(file));
151
- console.error(`[DIFF]: Files changed that only trigger latest build: ${onlyLatestFilesChanged.join(', ')}`);
152
- if (!isLatest && codeChanged) {
153
- console.error(`[DIFF]: All non-standalone Actors need to be built and tested (changes in top-level code)`);
154
- }
155
- if (actorsChanged.length > 0) {
156
- const miniactors = actorsChanged.filter((config) => !config.isStandalone).map((config) => config.actorName);
157
- const standaloneActors = actorsChanged.filter((config) => config.isStandalone).map((config) => config.actorName);
158
- console.error(`[DIFF]: MiniActors to be built and tested: ${miniactors.join(', ')}`);
159
- console.error(`[DIFF]: Standalone Actors to be built and tested: ${standaloneActors.join(', ')}`);
160
- }
161
- else {
162
- console.error(`[DIFF]: No relevant files changed, skipping builds and tests`);
163
- }
164
- return {
165
- actorsChanged,
166
- codeChanged,
167
- };
168
- };
169
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,EAAE;IAC9E,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAE9F,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,sIAAsI;QACtI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,KAAK,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,WAAwB,EAAE,EAAE;IACpD,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,YAAqB,EAAU,EAAE;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE;IAClD,OAAO,WAAW,UAAU,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI,SAAmB,CAAC;IACxB,IAAI,CAAC;QACD,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,SAAS,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,mBAA6B,CAAC;IAClC,IAAI,CAAC;QACD,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC7G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,mBAAmB,GAAG,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,2CAA2C,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC;YACd,SAAS,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE;YAClC,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,UAAU,KAAK,mBAAmB;SACnD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,mBAAmB,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1I,OAAO,CAAC,KAAK,CAAC,8BAA8B,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtJ,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,SAAS,EAAqC,EAAE,EAAE;IACvE,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO;IACX,CAAC;IACD,MAAM,WAAW,GAAG,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAwB,EAAE,EAAE;IACzD,OAAO,WAAW,CAAC,IAAI,KAAK,cAAc;QACtC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG;QACnC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC;AAcF;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,iBAAyB,EAAE,EAAE;IACxD,+HAA+H;IAC/H,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAC5H,+EAA+E;IAC/E,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAErG,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7G,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,iBAAyB,EAAE,EAAE;IACxD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oHAAoH;IACpH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7I,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,GAAG,KAAK,EAA6B,EACzD,EAAE;IACxB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAExD,MAAM,6BAA6B,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAE/F,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1E,KAAK,MAAM,iBAAiB,IAAI,cAAc,EAAE,CAAC;QAC7C,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,SAAS;QACb,CAAC;QACD,6GAA6G;QAC7G,uFAAuF;QACvF,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChG,IAAI,uBAAuB,EAAE,CAAC;YAC1B,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxE,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC,CAAC;YAChH,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,mFAAmF,EAAE;oBAC9F,SAAS,EAAE,kBAAkB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC;iBAC9C,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,kBAAkB,CAAC,SAAS,wBAAwB,kBAAkB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YACpI,iEAAiE;YACjE,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxD,qGAAqG;gBACrG,gFAAgF;gBAChF,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACxE,CAAC;YACD,SAAS;QACb,CAAC;QAED,mHAAmH;QACnH,sFAAsF;QACtF,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxD,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,mCAAmC;YAC5D,KAAK,MAAM,WAAW,IAAI,6BAA6B,EAAE,CAAC;gBACtD,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,KAAK,CAAC,iFAAiF,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEjI,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,KAAK,CAAC,yDAAyD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5G,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5G,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjH,OAAO,CAAC,KAAK,CAAC,8CAA8C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,qDAAqD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACH,aAAa;QACb,WAAW;KACd,CAAC;AACN,CAAC,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export { describe, testActor, testStandbyActor, ExpectStatic } from './lib/lib.js';
2
- export { RunTestResult } from './lib/run-test-result.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { describe, testActor, testStandbyActor } from './lib/lib.js';
2
- export { RunTestResult } from './lib/run-test-result.js';
3
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAgB,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ToFinishWithOptionsWithDefaults } from './types.js';
2
- export declare const TO_FINISH_WITH_OPTIONS: ToFinishWithOptionsWithDefaults;
3
- //# sourceMappingURL=consts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,sBAAsB,EAAE,+BAUpC,CAAC"}
@@ -1,12 +0,0 @@
1
- export const TO_FINISH_WITH_OPTIONS = {
2
- status: 'SUCCEEDED',
3
- duration: {
4
- min: 600, // 0.6 sec
5
- max: 600_000, // 10 min
6
- },
7
- failedRequests: 0,
8
- requestsRetries: { max: 3 },
9
- maxRetriesPerRequest: null,
10
- forbiddenLogs: ['ReferenceError', 'TypeError'],
11
- };
12
- //# sourceMappingURL=consts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACnE,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE;QACN,GAAG,EAAE,GAAG,EAAE,UAAU;QACpB,GAAG,EAAE,OAAO,EAAE,SAAS;KAC1B;IACD,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;CACjD,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ExpectStatic } from 'vitest';
2
- export declare const extendExpect: (expect: ExpectStatic) => ExpectStatic;
3
- //# sourceMappingURL=extend-expect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extend-expect.d.ts","sourceRoot":"","sources":["../../lib/extend-expect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtD,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,KAAG,YAwQnD,CAAC"}
@@ -1,257 +0,0 @@
1
- import { TO_FINISH_WITH_OPTIONS } from './consts.js';
2
- export const extendExpect = (expect) => {
3
- expect.extend({
4
- toBeArray: (actual) => {
5
- const pass = Array.isArray(actual);
6
- return {
7
- pass,
8
- message: () => `Expected "${actual}" to be a array`,
9
- };
10
- },
11
- toBeBoolean: (received) => {
12
- const actual = typeof received;
13
- const expected = 'boolean';
14
- return {
15
- pass: actual === expected,
16
- message: () => `Expected "${actual}" to be a boolean`,
17
- expected: 'boolean',
18
- };
19
- },
20
- toBeEmptyArray: (actual) => {
21
- const pass = Array.isArray(actual) && actual.length === 0;
22
- return {
23
- pass,
24
- message: () => `Expected ${actual} to be an empty array`,
25
- actual,
26
- expected: [],
27
- };
28
- },
29
- toBeNonEmptyArray: (actual) => {
30
- const pass = Array.isArray(actual) && actual.length > 0;
31
- return {
32
- pass,
33
- message: () => `Expected ${actual} to be a non-empty array`,
34
- };
35
- },
36
- toBeNonEmptyString: (actual) => {
37
- const pass = typeof actual === 'string' && actual.length > 0;
38
- return {
39
- pass,
40
- message: () => `Expected "${actual}" to be a non-empty string`,
41
- };
42
- },
43
- toBeNumber: (actual) => {
44
- const pass = typeof actual === 'number';
45
- return {
46
- pass,
47
- message: () => `Expected "${actual}" to be a number`,
48
- };
49
- },
50
- toBeNonEmptyObject: (actual) => {
51
- const isObject = typeof actual === 'object' && !Array.isArray(actual);
52
- const isNonEmpty = Object.entries(actual).length > 0;
53
- const pass = isObject && isNonEmpty;
54
- return {
55
- pass,
56
- message: () => `Expected "${actual}" to be a non-emtpy object`,
57
- };
58
- },
59
- toBeObject: (actual) => {
60
- const pass = typeof actual === 'object' && !Array.isArray(actual);
61
- return {
62
- pass,
63
- message: () => `Expected "${actual}" to be an object`,
64
- };
65
- },
66
- toBeString: (received) => {
67
- const actual = typeof received;
68
- const expected = 'string';
69
- return {
70
- pass: actual === expected,
71
- message: () => `Expected "${actual}" to be a string`,
72
- actual,
73
- expected,
74
- };
75
- },
76
- toBeTrue: (actual) => {
77
- const pass = actual === true;
78
- return {
79
- pass,
80
- message: () => `Expected "${actual}" to be true`,
81
- expected: true,
82
- actual,
83
- };
84
- },
85
- toBeFalse: (actual) => {
86
- const pass = actual === false;
87
- return {
88
- pass,
89
- message: () => `Expected "${actual}" to be false`,
90
- };
91
- },
92
- toBeWholeNumber: (received) => {
93
- const pass = Number.isInteger(received);
94
- return {
95
- pass,
96
- message: () => `Expected "${received}" to be a whole number`,
97
- };
98
- },
99
- toBeWithinRange: (received, lower, upper) => {
100
- const pass = received >= lower && received <= upper;
101
- return {
102
- pass,
103
- message: () => `Expected ${received} to be within range <${lower}, ${upper}>`,
104
- };
105
- },
106
- toFinishWith: async (received, userOptions) => {
107
- const options = {
108
- ...TO_FINISH_WITH_OPTIONS,
109
- ...userOptions,
110
- };
111
- const failedAssertions = [];
112
- const diffs = {
113
- pass: true,
114
- actual: ['Run:'],
115
- expected: ['Run:'],
116
- };
117
- {
118
- const expected = options?.status;
119
- const actual = received.status;
120
- const statusTest = expected === actual;
121
- if (statusTest === false) {
122
- diffs.pass = false;
123
- diffs.actual.push(`status=${actual}`);
124
- diffs.expected.push(`status=${expected}`);
125
- failedAssertions.push(`Failed status check, expected "${expected}", got "${actual}".`);
126
- }
127
- }
128
- const { chargedEventCounts, stats: { durationMillis }, } = await received.getRunInfo();
129
- const datasetItemCount = (await received.getDataset()).items.length;
130
- const stats = await received.getStatistics();
131
- const checkInterval = (value, key, label) => {
132
- const result = isWithinInterval(diffs, value, options, key);
133
- if (result === false) {
134
- failedAssertions.push(`Failed ${label} check, expected ${JSON.stringify(options[key])}, got ${value}.`);
135
- }
136
- };
137
- checkInterval(datasetItemCount, 'datasetItemCount', 'dataset item count');
138
- checkInterval(durationMillis, 'duration', 'duration');
139
- checkInterval(stats?.requestsFailed, 'failedRequests', 'failed requests');
140
- checkInterval(stats?.requestsRetries, 'requestsRetries', 'requests retries');
141
- {
142
- if (options.maxRetriesPerRequest !== null) {
143
- const maxRetriesPerRequestObserved = (stats?.requestRetryHistogram ?? [0]).length - 1;
144
- if (maxRetriesPerRequestObserved > options.maxRetriesPerRequest) {
145
- diffs.pass = false;
146
- diffs.actual.push(`maxRetriesPerRequest=${maxRetriesPerRequestObserved}`);
147
- diffs.expected.push(`maxRetriesPerRequest<=${options.maxRetriesPerRequest}`);
148
- failedAssertions.push(`Failed max retries observed check, expected <=${options.maxRetriesPerRequest}, got ${maxRetriesPerRequestObserved}.`);
149
- }
150
- }
151
- }
152
- const ppeDiffs = {
153
- pass: true,
154
- actual: ['PPE Events:'],
155
- expected: ['PPE Events:'],
156
- };
157
- if (options.chargedEventCounts) {
158
- const expected = options.chargedEventCounts;
159
- const actual = chargedEventCounts ?? {};
160
- const uniquePpeEvents = new Set([
161
- ...Array.from(Object.keys(expected)),
162
- ...Array.from(Object.keys(actual)),
163
- ]);
164
- for (const ppeEvent of uniquePpeEvents) {
165
- if (!(ppeEvent in expected)) {
166
- isWithinInterval(ppeDiffs, actual[ppeEvent], { [ppeEvent]: 0 }, ppeEvent);
167
- continue;
168
- }
169
- if (!(ppeEvent in actual)) {
170
- ppeDiffs.pass = false;
171
- ppeDiffs.actual.push(`${ppeEvent}=X`);
172
- ppeDiffs.expected.push(`${ppeEvent}=${expected[ppeEvent]}`);
173
- continue;
174
- }
175
- isWithinInterval(ppeDiffs, actual[ppeEvent], expected, ppeEvent);
176
- }
177
- if (ppeDiffs.pass === false) {
178
- diffs.pass = ppeDiffs.pass;
179
- diffs.actual.push(ppeDiffs.actual.join('\n '));
180
- diffs.expected.push(ppeDiffs.expected.join('\n '));
181
- failedAssertions.push(`Failed PPE event counts check, expected ${JSON.stringify(options.chargedEventCounts)}, got ${JSON.stringify(chargedEventCounts)}.`);
182
- }
183
- }
184
- {
185
- const { forbiddenLogs } = options;
186
- const log = await received.getLog();
187
- const occuredLogs = [];
188
- for (const forbiddenLog of forbiddenLogs) {
189
- if (log.includes(forbiddenLog)) {
190
- occuredLogs.push(forbiddenLog);
191
- }
192
- }
193
- if (occuredLogs.length > 0) {
194
- diffs.pass = false;
195
- diffs.actual.push(` logs=[${occuredLogs.join(', ')}]`);
196
- diffs.expected.push(` logs=[]`);
197
- failedAssertions.push(`Failed forbidden logs check, expected [] but got [${occuredLogs.join(', ')}].`);
198
- }
199
- }
200
- return {
201
- pass: diffs.pass,
202
- message: () => `Run did not finish as expected. Failed assertions: ${failedAssertions.join(' ')}`,
203
- actual: diffs.actual.join('\n '),
204
- expected: diffs.expected.join('\n '),
205
- };
206
- },
207
- toStartWith: (received, prefix) => {
208
- const pass = received?.startsWith(prefix);
209
- return {
210
- pass,
211
- message: () => `Expected "${received}" to start with "${prefix}"`,
212
- };
213
- },
214
- });
215
- // here we are switching logic of expect and expect.soft
216
- // expect => expect.soft
217
- // expect.hard => expect
218
- const { soft } = expect;
219
- const oldExpect = { ...expect };
220
- const softExpect = (actual, message) => {
221
- return soft(actual, message);
222
- };
223
- for (const [key, value] of Object.entries(oldExpect)) {
224
- // @ts-expect-error: No idea how to type this properly
225
- softExpect[key] = value;
226
- }
227
- softExpect.hard = (actual, message) => {
228
- return expect(actual, message);
229
- };
230
- return softExpect;
231
- };
232
- const isWithinInterval = (diffs, actual, options, intervalOption) => {
233
- const expected = options[intervalOption];
234
- if (expected === null) {
235
- // check is disabled if expected value is null
236
- return;
237
- }
238
- if (typeof expected === 'number') {
239
- if (actual !== expected) {
240
- diffs.pass = false;
241
- diffs.actual.push(`${intervalOption}=${actual}`);
242
- diffs.expected.push(`${intervalOption}=${expected}`);
243
- return false;
244
- }
245
- }
246
- else if (typeof expected === 'object') {
247
- const { min, max } = expected;
248
- if (actual === undefined || (min !== undefined && actual < min) || (max !== undefined && actual > max)) {
249
- diffs.pass = false;
250
- diffs.actual.push(`${intervalOption}=${actual}`);
251
- diffs.expected.push(`${intervalOption}=<${min ?? ''},${max ?? ''}>`);
252
- return false;
253
- }
254
- }
255
- return;
256
- };
257
- //# sourceMappingURL=extend-expect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extend-expect.js","sourceRoot":"","sources":["../../lib/extend-expect.ts"],"names":[],"mappings":"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"}
package/dist/lib/lib.d.ts DELETED
@@ -1,38 +0,0 @@
1
- import { ExpectStatic, TestFunction, SuiteFactory, TestContext } from 'vitest';
2
- import type { ActorTestOptions, RunOptions } from './types.js';
3
- import { RunTestResult } from './run-test-result.js';
4
- export { ExpectStatic };
5
- export declare const describe: (name: string, fn?: SuiteFactory<object>, options?: ActorTestOptions) => void;
6
- export declare const testActor: <T>(actorName: string, testName: string, fn: TestFunction<{
7
- run: ReturnType<typeof createStartRunFn<T>>;
8
- }>, testOptions?: ActorTestOptions) => void;
9
- /**
10
- * This wrapper creates a new task with specific `build` of the standby actor and provides
11
- * `callStandby` function, which calls the task's `standbyUrl`.
12
- *
13
- * Using task is just current shortcoming of standby feature but ideally we would use Actor directly
14
- */
15
- export declare const testStandbyActor: <I = any, O = any>(actorName: string, testName: string, fn: TestFunction<{
16
- callStandby: ReturnType<typeof createStartStandbyFn<I, O>>;
17
- }>, testOptions?: ActorTestOptions) => void;
18
- export declare const testTestActor: <T>(testName: string, fn: TestFunction<{
19
- run: ReturnType<typeof createStartRunFn<T>>;
20
- }>) => void;
21
- export declare const it: <T>(actorName: string, testName: string, fn: TestFunction<{
22
- run: ReturnType<typeof createStartRunFn<T>>;
23
- }>, testOptions?: ActorTestOptions) => void;
24
- /**
25
- * Creates a function the accepts input for a standby actor and sends request containing input
26
- * to the task's standby url.
27
- */
28
- declare const createStartStandbyFn: <I, O>(standbyTask: StandbyTask) => ({ input }: Pick<RunOptions<I>, "input">) => Promise<{
29
- data: O;
30
- status: number;
31
- headers: Headers;
32
- }>;
33
- interface StandbyTask {
34
- standbyUrl: string;
35
- taskId: string;
36
- }
37
- declare const createStartRunFn: <T>(actorNameOrId: string, testContext: TestContext) => (runOptions: RunOptions<T>) => Promise<RunTestResult>;
38
- //# sourceMappingURL=lib.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,WAAW,EACd,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAc,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwBrD,OAAO,EAAE,YAAY,EAAE,CAAC;AAYxB,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,KAAK,YAAY,CAAC,MAAM,CAAC,EAAE,UAAS,gBAAuC,SAEjH,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,CAAC,EACvB,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,EACjE,cAAc,gBAAgB,SAgBjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAC7C,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,WAAW,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,EAChF,cAAc,gBAAgB,SAkCjC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,EAC3B,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,SAWpE,CAAC;AAEF,eAAO,MAAM,EAAE,GAnFW,CAAC,aACZ,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBACnD,gBAAgB,SA+EP,CAAC;AAE5B;;;GAGG;AACH,QAAA,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EAAE,aAAa,WAAW,MAE1C,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;;;;EAgBxD,CAAC;AAEF,UAAU,WAAW;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAgED,QAAA,MAAM,gBAAgB,GAAI,CAAC,EAAE,eAAe,MAAM,EAAE,aAAa,WAAW,MAK1D,YAAY,UAAU,CAAC,CAAC,CAAC,2BAiC1C,CAAC"}