apify-test-tools 0.10.2-beta.13 → 0.10.2-beta.15

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 (114) hide show
  1. package/.github/cli/apify-test-tools.mjs +123 -128
  2. package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +1 -1
  3. package/.github/workflows/public_platform-tests.yaml +36 -22
  4. package/.github/workflows/public_pr-build-test.yaml +7 -6
  5. package/.github/workflows/public_push-build-latest.yaml +6 -4
  6. package/.github/workflows/public_stale-issues.yaml +51 -0
  7. package/CHANGELOG.md +3 -0
  8. package/CONTRIBUTING.md +9 -7
  9. package/README.md +11 -12
  10. package/bin/actor-ids.ts +38 -0
  11. package/bin/build.ts +1 -1
  12. package/bin/git.ts +20 -92
  13. package/bin/main.ts +87 -73
  14. package/bin/notify.ts +198 -0
  15. package/bin/run-tests.ts +141 -0
  16. package/bin/slack.ts +16 -87
  17. package/bin/stdin-input.ts +98 -7
  18. package/bin/test-report.ts +141 -140
  19. package/bin/types.ts +0 -9
  20. package/dist/bin/actor-ids.d.ts +16 -0
  21. package/dist/bin/actor-ids.d.ts.map +1 -0
  22. package/dist/bin/actor-ids.js +24 -0
  23. package/dist/bin/actor-ids.js.map +1 -0
  24. package/dist/bin/build.js +1 -1
  25. package/dist/bin/build.js.map +1 -1
  26. package/dist/bin/git.d.ts +6 -16
  27. package/dist/bin/git.d.ts.map +1 -1
  28. package/dist/bin/git.js +15 -75
  29. package/dist/bin/git.js.map +1 -1
  30. package/dist/bin/main.js +80 -51
  31. package/dist/bin/main.js.map +1 -1
  32. package/dist/bin/notify.d.ts +35 -0
  33. package/dist/bin/notify.d.ts.map +1 -0
  34. package/dist/bin/notify.js +131 -0
  35. package/dist/bin/notify.js.map +1 -0
  36. package/dist/bin/run-tests.d.ts +21 -0
  37. package/dist/bin/run-tests.d.ts.map +1 -0
  38. package/dist/bin/run-tests.js +116 -0
  39. package/dist/bin/run-tests.js.map +1 -0
  40. package/dist/bin/slack.d.ts +2 -17
  41. package/dist/bin/slack.d.ts.map +1 -1
  42. package/dist/bin/slack.js +17 -58
  43. package/dist/bin/slack.js.map +1 -1
  44. package/dist/bin/stdin-input.d.ts +71 -9
  45. package/dist/bin/stdin-input.d.ts.map +1 -1
  46. package/dist/bin/stdin-input.js +76 -6
  47. package/dist/bin/stdin-input.js.map +1 -1
  48. package/dist/bin/test-report.d.ts +69 -8
  49. package/dist/bin/test-report.d.ts.map +1 -1
  50. package/dist/bin/test-report.js +76 -67
  51. package/dist/bin/test-report.js.map +1 -1
  52. package/dist/bin/types.d.ts +0 -8
  53. package/dist/bin/types.d.ts.map +1 -1
  54. package/dist/lib/lib.d.ts +0 -3
  55. package/dist/lib/lib.d.ts.map +1 -1
  56. package/dist/lib/lib.js +5 -10
  57. package/dist/lib/lib.js.map +1 -1
  58. package/dist/test/bundle/cli-bundle.test.js +40 -48
  59. package/dist/test/bundle/cli-bundle.test.js.map +1 -1
  60. package/dist/test/e2e/cli-bundle.e2e.test.js +15 -16
  61. package/dist/test/e2e/cli-bundle.e2e.test.js.map +1 -1
  62. package/dist/test/e2e/git-build-release.e2e.test.js +2 -2
  63. package/dist/test/e2e/git-build-release.e2e.test.js.map +1 -1
  64. package/dist/test/unit/bin/actor-ids.test.d.ts +2 -0
  65. package/dist/test/unit/bin/actor-ids.test.d.ts.map +1 -0
  66. package/dist/test/unit/bin/actor-ids.test.js +32 -0
  67. package/dist/test/unit/bin/actor-ids.test.js.map +1 -0
  68. package/dist/test/unit/bin/build-cli.test.js +8 -3
  69. package/dist/test/unit/bin/build-cli.test.js.map +1 -1
  70. package/dist/test/unit/bin/diff-changes.test.js +1 -1
  71. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  72. package/dist/test/unit/bin/git.test.js +4 -142
  73. package/dist/test/unit/bin/git.test.js.map +1 -1
  74. package/dist/test/unit/bin/notify.test.d.ts +2 -0
  75. package/dist/test/unit/bin/notify.test.d.ts.map +1 -0
  76. package/dist/test/unit/bin/notify.test.js +222 -0
  77. package/dist/test/unit/bin/notify.test.js.map +1 -0
  78. package/dist/test/unit/bin/stdin-input.test.js +51 -9
  79. package/dist/test/unit/bin/stdin-input.test.js.map +1 -1
  80. package/dist/test/unit/bin/test-cli.test.d.ts +2 -0
  81. package/dist/test/unit/bin/test-cli.test.d.ts.map +1 -0
  82. package/dist/test/unit/bin/test-cli.test.js +115 -0
  83. package/dist/test/unit/bin/test-cli.test.js.map +1 -0
  84. package/dist/test/unit/bin/test-report.test.d.ts +2 -0
  85. package/dist/test/unit/bin/test-report.test.d.ts.map +1 -0
  86. package/dist/test/unit/bin/test-report.test.js +100 -0
  87. package/dist/test/unit/bin/test-report.test.js.map +1 -0
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/docs/cli.md +131 -53
  90. package/docs/lib.md +21 -16
  91. package/docs/workflows.md +63 -23
  92. package/lib/lib.ts +5 -10
  93. package/package.json +1 -1
  94. package/test/bundle/cli-bundle.test.ts +47 -60
  95. package/test/e2e/cli-bundle.e2e.test.ts +18 -25
  96. package/test/e2e/git-build-release.e2e.test.ts +2 -2
  97. package/test/unit/bin/actor-ids.test.ts +43 -0
  98. package/test/unit/bin/build-cli.test.ts +9 -3
  99. package/test/unit/bin/diff-changes.test.ts +1 -1
  100. package/test/unit/bin/git.test.ts +3 -197
  101. package/test/unit/bin/notify.test.ts +299 -0
  102. package/test/unit/bin/stdin-input.test.ts +68 -9
  103. package/test/unit/bin/test-cli.test.ts +137 -0
  104. package/test/unit/bin/test-report.test.ts +118 -0
  105. package/dist/test/unit/bin/logging.test.d.ts +0 -2
  106. package/dist/test/unit/bin/logging.test.d.ts.map +0 -1
  107. package/dist/test/unit/bin/logging.test.js +0 -37
  108. package/dist/test/unit/bin/logging.test.js.map +0 -1
  109. package/dist/test/unit/bin/slack.test.d.ts +0 -2
  110. package/dist/test/unit/bin/slack.test.d.ts.map +0 -1
  111. package/dist/test/unit/bin/slack.test.js +0 -71
  112. package/dist/test/unit/bin/slack.test.js.map +0 -1
  113. package/test/unit/bin/logging.test.ts +0 -48
  114. package/test/unit/bin/slack.test.ts +0 -84
@@ -29,6 +29,14 @@ const parseStdinJson = <T>(
29
29
  } catch (error) {
30
30
  throw new Error(`The input on stdin is not valid JSON: ${(error as Error).message}`);
31
31
  }
32
+ return validateStdinJson(json, schema, { expected, example });
33
+ };
34
+
35
+ const validateStdinJson = <T>(
36
+ json: unknown,
37
+ schema: ZodType<T>,
38
+ { expected, example }: { expected: string; example: string },
39
+ ) => {
32
40
  const result = schema.safeParse(json);
33
41
  if (!result.success) {
34
42
  throw new Error(`The input on stdin is not ${expected} (${example}):\n${prettifyError(result.error)}`);
@@ -51,15 +59,98 @@ export const parseBuildInput = (raw: string) =>
51
59
  example: `e.g. echo '{"actors":[{"actorFullName":"owner/name"}]}' | apify-test-tools build --version-number 0.1`,
52
60
  });
53
61
 
54
- /** What `notify-release` reads: the parts of a get-affected-actors document that describe what changed. */
62
+ /**
63
+ * What `test` reads: the Actors to test, each with the build to test or, without one, its default build. The builds
64
+ * `build` and `build-from-local` print fit, and so does `get-actor-configs`, whose other fields are ignored. An Actor
65
+ * needs its full name or its raw ID, `test` looks up the other. A dry-run plan is an object on purpose, so it is
66
+ * rejected here rather than tested as if it were built.
67
+ */
68
+ const testTargetsSchema = z.array(
69
+ z
70
+ .object({
71
+ actorFullName: z.string().optional(),
72
+ buildId: z.string().optional(),
73
+ actorRawId: z.string().optional(),
74
+ buildNumber: z.string().optional(),
75
+ })
76
+ .refine(({ actorFullName, actorRawId }) => !!actorFullName || !!actorRawId, {
77
+ message: 'An Actor needs actorFullName or actorRawId',
78
+ }),
79
+ );
80
+
81
+ export type TestTarget = z.infer<typeof testTargetsSchema>[number];
82
+
83
+ const isDryRunPlan = (raw: string) => {
84
+ try {
85
+ return (JSON.parse(raw) as { dryRun?: unknown } | null)?.dryRun === true;
86
+ } catch {
87
+ // Not JSON at all, parseStdinJson says so
88
+ return false;
89
+ }
90
+ };
91
+
92
+ export const parseTestTargets = (raw: string) => {
93
+ const example =
94
+ 'e.g. ... | apify-test-tools build --version-number 0.99 | apify-test-tools test, ' +
95
+ "or apify-test-tools get-actor-configs | apify-test-tools test for every Actor's default build";
96
+ if (isDryRunPlan(raw)) {
97
+ throw new Error(`The input on stdin is a dry-run plan, not builds, so there is nothing to test (${example}).`);
98
+ }
99
+ return parseStdinJson(raw, testTargetsSchema, { expected: 'the Actors to test', example });
100
+ };
101
+
102
+ /** The report `test` prints, see TestReport. */
103
+ const testRunSchema = z.object({ actorId: z.string(), runId: z.string(), runLink: z.string() });
104
+ const testReportSchema = z.object({
105
+ kind: z.literal('test-report'),
106
+ version: z.literal(1),
107
+ success: z.boolean(),
108
+ summary: z.object({ total: z.number(), passed: z.number(), failed: z.number(), skipped: z.number() }),
109
+ tests: z.array(
110
+ z.object({
111
+ name: z.string(),
112
+ file: z.string(),
113
+ status: z.enum(['passed', 'failed', 'skipped']),
114
+ durationMs: z.number().nullable(),
115
+ failureMessages: z.array(z.string()),
116
+ run: testRunSchema.nullable(),
117
+ }),
118
+ ),
119
+ errors: z.array(z.string()),
120
+ });
121
+
122
+ /** The parts of a get-affected-actors document that describe what a release changed. Other fields are ignored. */
55
123
  const releaseChangesSchema = z.object({
56
124
  commits: z.array(z.object({ sha: z.string(), author: z.string(), date: z.string(), message: z.string() })),
57
- changedFiles: z.array(z.string()),
58
125
  changelog: z.string().nullable(),
59
126
  });
60
127
 
61
- export const parseReleaseChanges = (raw: string) =>
62
- parseStdinJson(raw, releaseChangesSchema, {
63
- expected: 'the output of get-affected-actors',
64
- example: 'e.g. apify-test-tools get-affected-actors --since <sha> | apify-test-tools notify-release',
65
- });
128
+ export type ReleaseChanges = z.infer<typeof releaseChangesSchema>;
129
+
130
+ export type NotifyInput =
131
+ | { kind: 'tests'; report: z.infer<typeof testReportSchema> }
132
+ | { kind: 'release'; changes: ReleaseChanges };
133
+
134
+ /**
135
+ * What `notify` reads: a test run, as `test` reports it, or a release, as `get-affected-actors` reports it. The test
136
+ * report says so in its `kind`, a release is told by its `commits`, so either can be piped in as it is.
137
+ */
138
+ export const parseNotifyInput = (raw: string): NotifyInput => {
139
+ const example =
140
+ 'e.g. ... | apify-test-tools test | apify-test-tools notify --slack-channel "#my-channel", ' +
141
+ 'or apify-test-tools get-affected-actors --since <sha> | apify-test-tools notify --slack-channel "#my-channel"';
142
+ const expected = 'the output of test or get-affected-actors';
143
+ const json = parseStdinJson(raw, z.looseObject({}), { expected, example });
144
+ if (json.kind === 'test-report') {
145
+ const report = validateStdinJson(json, testReportSchema, { expected: 'the output of test', example });
146
+ return { kind: 'tests', report };
147
+ }
148
+ if ('commits' in json) {
149
+ const changes = validateStdinJson(json, releaseChangesSchema, {
150
+ expected: 'the output of get-affected-actors',
151
+ example,
152
+ });
153
+ return { kind: 'release', changes };
154
+ }
155
+ throw new Error(`The input on stdin is not ${expected} (${example}).`);
156
+ };
@@ -1,158 +1,159 @@
1
- import fs from 'node:fs/promises';
1
+ import path from 'node:path';
2
2
 
3
3
  import { logger } from './logger.js';
4
- import { getSlackClient, sendingLabel, sendSlackMessage } from './slack.js';
5
-
6
- interface ReportTestResultsOptions {
7
- reportFile: string;
8
- dryRun: boolean;
9
- reportSlackChannel?: string;
10
- jobUrl?: string;
11
- workflowName?: string;
12
- }
13
4
 
14
- export const reportTestResults = async ({
15
- dryRun,
16
- reportSlackChannel,
17
- reportFile: jsonResultsPath,
18
- jobUrl,
19
- workflowName,
20
- }: ReportTestResultsOptions) => {
21
- const results: JsonTestResults = JSON.parse((await fs.readFile(jsonResultsPath)).toString());
22
- const passed: JsonAssertionResult[] = [];
23
- const failed: JsonAssertionResult[] = [];
24
-
25
- for (const result of results.testResults) {
26
- if (result.status !== 'failed') {
27
- passed.push(...result.assertionResults);
28
- continue;
29
- }
30
- for (const aResult of result.assertionResults) {
31
- if (aResult.status !== 'failed') {
32
- passed.push(aResult);
33
- } else {
34
- failed.push(aResult);
35
- }
36
- }
37
- }
38
-
39
- const failedAssertions: { message: string; runLink: string; actorId: string }[] = [];
40
-
41
- logger.info();
42
- logger.info(`PASSED: ${passed.length}, FAILED: ${failed.length}`);
43
- logger.info();
44
- logger.info('**************************************************');
45
- logger.info('* Successes *');
46
- logger.info('**************************************************');
47
- logger.info();
48
- for (const [i, aResult] of passed.entries()) {
49
- const { fullName } = aResult;
50
- logger.info(`${i + 1}) ${fullName} ... ${aResult.meta.runLink}`);
51
- logger.info();
52
- }
5
+ export type TestStatus = 'passed' | 'failed' | 'skipped';
53
6
 
54
- logger.info('**************************************************');
55
- logger.info('* Failures *');
56
- logger.info('**************************************************');
57
- logger.info();
58
- for (const [i, aResult] of failed.entries()) {
59
- const { failureMessages, fullName, meta } = aResult;
60
- if (failureMessages) {
61
- failedAssertions.push(
62
- ...failureMessages.map((message) => ({
63
- message: message.split('\n')?.[0],
64
- runLink: meta.runLink,
65
- actorId: meta.actorId,
66
- })),
67
- );
68
- }
69
- logger.info(`${i + 1}) ${fullName} ... ${meta.runLink}`);
70
- logger.info();
71
- }
72
- logger.info();
73
- logger.info(`PASSED: ${passed.length}, FAILED: ${failed.length}`);
74
- logger.info();
75
-
76
- if (!reportSlackChannel) {
77
- logger.info(
78
- `Skipping slack notification. If you want to enable it, add --report-slack-channel flag and make sure SLACK_TOKEN_TESTS_BOT env variable is set.`,
79
- );
80
- return;
81
- }
82
- // Checked before knowing if there's anything to send, so a broken token shows up on a green run
83
- // (and in dry runs) rather than on the day tests fail
84
- const slack = await getSlackClient('SLACK_TOKEN_TESTS_BOT', dryRun);
85
-
86
- if (failedAssertions.length === 0) {
87
- return;
88
- }
7
+ /** The Actor run a test started, as the lib records it on the test's `meta`. */
8
+ export interface TestRun {
9
+ actorId: string;
10
+ runId: string;
11
+ runLink: string;
12
+ }
89
13
 
90
- // TODO: add slack profiles
91
- const total = failed.length + passed.length;
92
- const jobLink = jobUrl ? ` Check <${jobUrl}|the job>.` : '';
93
- let slackMessage = `\`${workflowName ?? '-'}\``;
94
- slackMessage += `: has ${failedAssertions.length} failed assertions. Failing test suites: ${failed.length}/${total}.${jobLink}`;
95
- slackMessage += `\n\n${failedAssertions[0].message} --- <${failedAssertions[0].runLink}|${failedAssertions[0].actorId}>`;
96
- const blocks = failedAssertions
97
- .slice(1)
98
- .map(({ message, runLink, actorId }) => `• ${message} --- <${runLink}|${actorId}>`);
99
-
100
- logger.info(`${sendingLabel(dryRun)} slack message to channel ${reportSlackChannel}:`, slackMessage);
101
- logger.info('\tblocks:', blocks.join('\n\t\t'));
102
-
103
- if (!dryRun) {
104
- await sendSlackMessage(slack, reportSlackChannel, slackMessage, blocks);
105
- }
106
- };
14
+ export interface TestCaseReport {
15
+ /** The full test name, including its `describe` blocks, e.g. `owner/name: finishes` */
16
+ name: string;
17
+ /** Relative to the directory the tests ran in */
18
+ file: string;
19
+ status: TestStatus;
20
+ durationMs: number | null;
21
+ /** The first line of each failure, the rest (diffs, stack traces) is in the vitest output */
22
+ failureMessages: string[];
23
+ /** Null for tests that didn't start a run: skipped ones, standby tests, or ones that failed before the run */
24
+ run: TestRun | null;
25
+ }
107
26
 
108
- type Status = 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled';
109
- type Milliseconds = number;
110
- interface Callsite {
111
- line: number;
112
- column: number;
27
+ /**
28
+ * What `test` writes to stdout and `notify` reads. A contract between the CLI and whoever reads it, so add fields
29
+ * freely, but renaming or removing one needs a new `version`.
30
+ */
31
+ export interface TestReport {
32
+ /** What the document is, so `notify` and others can tell it from other outputs */
33
+ kind: 'test-report';
34
+ version: 1;
35
+ /** False if any test failed, or the run failed in a way no test accounts for (see `errors`) */
36
+ success: boolean;
37
+ summary: { total: number; passed: number; failed: number; skipped: number };
38
+ tests: TestCaseReport[];
39
+ /** Failures outside any test, e.g. a test file that failed to import, or vitest crashing without a report */
40
+ errors: string[];
113
41
  }
114
42
 
115
- interface JsonAssertionResult {
116
- ancestorTitles: string[];
43
+ // Vitest's JSON reporter output, only the parts we read
44
+ type VitestStatus = 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled';
45
+
46
+ interface VitestAssertionResult {
117
47
  fullName: string;
118
- status: Status;
119
- title: string;
120
- meta: {
121
- runId: string;
122
- runLink: string;
123
- actorId: string;
124
- };
125
- duration?: Milliseconds | null;
48
+ status: VitestStatus;
49
+ duration?: number | null;
126
50
  failureMessages: string[] | null;
127
- location?: Callsite | null;
51
+ meta?: Partial<TestRun>;
128
52
  }
129
53
 
130
- interface JsonTestResult {
131
- message: string;
54
+ interface VitestFileResult {
132
55
  name: string;
133
56
  status: 'failed' | 'passed';
134
- startTime: number;
135
- endTime: number;
136
- assertionResults: JsonAssertionResult[];
137
- // summary: string
138
- // coverage: unknown
57
+ message: string;
58
+ assertionResults: VitestAssertionResult[];
139
59
  }
140
60
 
141
- interface JsonTestResults {
142
- numFailedTests: number;
143
- numFailedTestSuites: number;
144
- numPassedTests: number;
145
- numPassedTestSuites: number;
146
- numPendingTests: number;
147
- numPendingTestSuites: number;
148
- numTodoTests: number;
149
- numTotalTests: number;
150
- numTotalTestSuites: number;
151
- startTime: number;
61
+ export interface VitestJsonReport {
152
62
  success: boolean;
153
- testResults: JsonTestResult[];
154
- // snapshot: SnapshotSummary
155
- // coverageMap?: CoverageMap | null | undefined
156
- // numRuntimeErrorTestSuites: number
157
- // wasInterrupted: boolean
63
+ testResults: VitestFileResult[];
158
64
  }
65
+
66
+ const firstLine = (text: string) => text.split('\n')[0];
67
+
68
+ const toRun = (meta: Partial<TestRun> | undefined): TestRun | null => {
69
+ const { actorId, runId, runLink } = meta ?? {};
70
+ return actorId && runId && runLink ? { actorId, runId, runLink } : null;
71
+ };
72
+
73
+ /**
74
+ * Turns vitest's JSON report into a `TestReport`. `exitCode` is vitest's: a non-zero exit with every test passing
75
+ * still fails the report (e.g. an unhandled error between tests), so the report never reads greener than the run.
76
+ */
77
+ export const toTestReport = (
78
+ vitest: VitestJsonReport,
79
+ { cwd, exitCode }: { cwd: string; exitCode: number },
80
+ ): TestReport => {
81
+ const tests: TestCaseReport[] = [];
82
+ const errors: string[] = [];
83
+
84
+ for (const file of vitest.testResults) {
85
+ const relativeFile = path.relative(cwd, file.name);
86
+ // A file that fails to load (an import error, a syntax error) has no tests to blame, only its message
87
+ if (file.status === 'failed' && file.message) {
88
+ errors.push(`${relativeFile}: ${firstLine(file.message)}`);
89
+ }
90
+ for (const assertion of file.assertionResults) {
91
+ const status: TestStatus =
92
+ assertion.status === 'passed' || assertion.status === 'failed' ? assertion.status : 'skipped';
93
+ tests.push({
94
+ name: assertion.fullName,
95
+ file: relativeFile,
96
+ status,
97
+ durationMs: assertion.duration != null ? Math.round(assertion.duration) : null,
98
+ failureMessages: (assertion.failureMessages ?? []).map(firstLine),
99
+ run: toRun(assertion.meta),
100
+ });
101
+ }
102
+ }
103
+
104
+ const count = (status: TestStatus) => tests.filter((test) => test.status === status).length;
105
+ const summary = {
106
+ total: tests.length,
107
+ passed: count('passed'),
108
+ failed: count('failed'),
109
+ skipped: count('skipped'),
110
+ };
111
+ if (exitCode !== 0 && summary.failed === 0 && errors.length === 0) {
112
+ errors.push(`Vitest exited with code ${exitCode}, see its output above`);
113
+ }
114
+
115
+ return {
116
+ kind: 'test-report',
117
+ version: 1,
118
+ success: vitest.success && exitCode === 0 && summary.failed === 0 && errors.length === 0,
119
+ summary,
120
+ tests,
121
+ errors,
122
+ };
123
+ };
124
+
125
+ /** The report of a run that left no vitest report behind, e.g. because vitest crashed or was killed. */
126
+ export const failedRunReport = (error: string): TestReport => ({
127
+ kind: 'test-report',
128
+ version: 1,
129
+ success: false,
130
+ summary: { total: 0, passed: 0, failed: 0, skipped: 0 },
131
+ tests: [],
132
+ errors: [error],
133
+ });
134
+
135
+ /** Logs the tests with their run links, which vitest's own output doesn't show. */
136
+ export const logTestReport = ({ summary, tests, errors }: TestReport) => {
137
+ const runLink = ({ run }: TestCaseReport) => (run ? ` ... ${run.runLink}` : '');
138
+ const totals = `PASSED: ${summary.passed}, FAILED: ${summary.failed}, SKIPPED: ${summary.skipped}`;
139
+
140
+ logger.info();
141
+ logger.info(totals);
142
+ for (const status of ['passed', 'failed'] as const) {
143
+ const matching = tests.filter((test) => test.status === status);
144
+ if (matching.length === 0) continue;
145
+ logger.info();
146
+ logger.info(status === 'passed' ? 'Passed:' : 'Failed:');
147
+ for (const [i, test] of matching.entries()) {
148
+ logger.info(`${i + 1}) ${test.name}${runLink(test)}`);
149
+ for (const message of test.failureMessages) logger.info(` ${message}`);
150
+ }
151
+ }
152
+ if (errors.length > 0) {
153
+ logger.info();
154
+ logger.info('Errors outside of tests:');
155
+ for (const error of errors) logger.info(`- ${error}`);
156
+ }
157
+ logger.info();
158
+ logger.info(totals);
159
+ };
package/bin/types.ts CHANGED
@@ -1,15 +1,6 @@
1
1
  import type { ActorJsonPaths } from './utils/config/actor-json.js';
2
2
  import type { ExistingDir, RelativeDir } from './utils/path/repo-relative.js';
3
3
 
4
- export interface Config {
5
- targetBranch: string;
6
- sourceBranch: string;
7
- baseCommit?: string;
8
- actors: string[];
9
- ignore: string[];
10
- testFilesGlob?: string;
11
- }
12
-
13
4
  /** The changes from `fromRef` (excluded) to `toRef`, compared as trees like `git diff fromRef toRef`. */
14
5
  export interface GitRange {
15
6
  fromRef: string;
@@ -0,0 +1,16 @@
1
+ import { ApifyClient } from 'apify-client';
2
+ import type { TestTarget } from './stdin-input.js';
3
+ type ActorGetter = Pick<ApifyClient, 'actor'>;
4
+ /** A test target with both IDs of its Actor */
5
+ export type ResolvedTestTarget = TestTarget & {
6
+ actorFullName: string;
7
+ actorRawId: string;
8
+ };
9
+ /**
10
+ * Adds the ID each target is missing: the raw ID to those listed by full name, e.g. by `get-actor-configs`, and the
11
+ * full name to those listed by raw ID. The lib matches a test to its Actor by the ID the test names, so a target
12
+ * without either ID would skip the tests that name its Actor by the other one.
13
+ */
14
+ export declare const withActorIds: (targets: TestTarget[], client?: ActorGetter) => Promise<ResolvedTestTarget[]>;
15
+ export {};
16
+ //# sourceMappingURL=actor-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor-ids.d.ts","sourceRoot":"","sources":["../../bin/actor-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,KAAK,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACrB,SAAS,UAAU,EAAE,EACrB,SAAQ,WAAwE,KACjF,OAAO,CAAC,kBAAkB,EAAE,CAoB1B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ApifyClient } from 'apify-client';
2
+ /**
3
+ * Adds the ID each target is missing: the raw ID to those listed by full name, e.g. by `get-actor-configs`, and the
4
+ * full name to those listed by raw ID. The lib matches a test to its Actor by the ID the test names, so a target
5
+ * without either ID would skip the tests that name its Actor by the other one.
6
+ */
7
+ export const withActorIds = async (targets, client = new ApifyClient({ token: process.env.TESTER_APIFY_TOKEN })) => Promise.all(targets.map(async (target) => {
8
+ const { actorFullName, actorRawId } = target;
9
+ if (actorFullName && actorRawId)
10
+ return { ...target, actorFullName, actorRawId };
11
+ // The parser lets no target through without either ID
12
+ const actorId = (actorFullName ?? actorRawId);
13
+ const actor = await client.actor(actorId).get();
14
+ if (!actor) {
15
+ throw new Error(`Actor ${actorId} not found, or TESTER_APIFY_TOKEN can't access it. ` +
16
+ 'Both its full name and its raw ID are needed to run the tests that name it by either.');
17
+ }
18
+ return {
19
+ ...target,
20
+ actorFullName: actorFullName ?? `${actor.username}/${actor.name}`,
21
+ actorRawId: actorRawId ?? actor.id,
22
+ };
23
+ }));
24
+ //# sourceMappingURL=actor-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor-ids.js","sourceRoot":"","sources":["../../bin/actor-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAS3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC7B,OAAqB,EACrB,SAAsB,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,EACnD,EAAE,CAC/B,OAAO,CAAC,GAAG,CACP,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IACzB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,aAAa,IAAI,UAAU;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IACjF,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,aAAa,IAAI,UAAU,CAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACX,SAAS,OAAO,qDAAqD;YACjE,uFAAuF,CAC9F,CAAC;IACN,CAAC;IACD,OAAO;QACH,GAAG,MAAM;QACT,aAAa,EAAE,aAAa,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QACjE,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC,EAAE;KACrC,CAAC;AACN,CAAC,CAAC,CACL,CAAC"}
package/dist/bin/build.js CHANGED
@@ -181,7 +181,7 @@ export class ApifyBuilder {
181
181
  const DEFAULT_DAYS_BACK_PROD_VERSIONS = 30;
182
182
  const DEFAULT_DAYS_BACK_DEVEL = 7;
183
183
  const actorInfo = await this.getActorInfo();
184
- // 'devel' used to be hardcoded for testing version 0.99, once we get rid of this tag everywhere, we can remove this code
184
+ // A build tagged 'devel' is kept for DEFAULT_DAYS_BACK_DEVEL only. Remove this once no Actor has the tag
185
185
  const taggedDevelBuildNumber = actorInfo.taggedBuilds.devel?.buildNumber;
186
186
  const allTags = Object.keys(actorInfo.taggedBuilds ?? {});
187
187
  const protectedTags = allTags.filter((tag) => PROTECTED_TAGS_PREFIX.some((prefix) => tag.startsWith(prefix)));
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,uGAAuG;AACvG,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,mFAAmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD,iEAAiE;AACjE,MAAM,uBAAuB,GACzB,sHAAsH;IACtH,kHAAkH,CAAC;AAEvH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAE,SAAiC,EAAE,EAAE;IAC9F,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;IAC1D,MAAM,CAAC,IAAI,CAAC,yBAAyB,aAAa,OAAO,eAAe,EAAE,CAAC,CAAC;IAE5E,+GAA+G;IAC/G,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,uEAAuE;YACpF,+FAA+F,CACtG,CAAC;IACN,CAAC;IACD,8DAA8D;IAC9D,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC;IAClF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,IAAI,aAAa,6BAA6B,eAAe,MAAM,uBAAuB,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,IAAI,CAAC,uBAAuB,aAAa,OAAO,oBAAoB,EAAE,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,KAAK,oBAAoB,CAAC,CAAC;IAE5G,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AACzF,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAC9C,aAAqB,EACrB,cAAyD,EACzD,OAAe,EACjB,EAAE;IACA,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,wDAAwD,uBAAuB,EAAE,CACrG,CAAC;IACN,CAAC;IACD,IAAI,cAAc,CAAC,UAAU,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,qBAAqB,cAAc,CAAC,aAAa,qBAAqB,cAAc,CAAC,UAAU,KAAK;YACjH,QAAQ,eAAe,CAAC,OAAO,MAAM,uBAAuB,EAAE,CACrE,CAAC;IACN,CAAC;IACD,IAAI,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,qDAAqD,OAAO,uBAAuB;YAChG,GAAG,cAAc,CAAC,aAAa,kBAAkB,cAAc,CAAC,UAAU,0CAA0C;YACpH,qEAAqE,CAC5E,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAkD,EAAY,EAAE,CACpF,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE9F;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC5C,aAAqB,EACrB,SAAiC,EACjC,cAAyD,EACzD,aAAqB,EACvB,EAAE;IACA,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,wDAAwD,uBAAuB,EAAE,CACrG,CAAC;IACN,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvD,MAAM,WAAW,GAAG;QAChB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAChE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,IAAI,KAAK,CACX,IAAI,aAAa,yBAAyB,aAAa,wCAAwC;QAC3F,GAAG,cAAc,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;QAC/D,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,aAAa,0DAA0D,EAAE;QACtG,yCAAyC,aAAa,8CAA8C,CAC3G,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,OAAO,YAAY;IAEA;IACA;IAFrB,YACqB,WAAwB,EACxB,aAAqB;QADrB,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAQ;IACvC,CAAC;IAEJ,YAAY,GAAG,KAAK,IAAqC,EAAE;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACX,IAAI,IAAI,CAAC,aAAa,2GAA2G,CACpI,CAAC;QACN,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,uBAAuB,GAAG,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3G,wGAAwG;IACxG,uDAAuD;IACvD,eAAe,GAAG,KAAK,EAAE,aAAqB,EAAE,GAAW,EAAmB,EAAE;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,aAAa,8BAA8B,CAAC,CAAC;QAErG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,SAAS,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,WAAW,aAAa,MAAM,CAAC;QAC3C,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE1F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,yEAAyE;IACzE,qBAAqB,GAAG,KAAK,EACzB,aAAqB,EACrB,YAA2C,EAC3C,QAAiB,EACjB,SAAkC,EAChB,EAAE;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE9D,kBAAkB;QAClB,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC;QAC5F,IAAI,cAAc,EAAE,CAAC;YACjB,qBAAqB;YACrB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,kFAAkF;QAClF,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExF,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,MAAM,EAAE,KAAK,WAAW,GAAG,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9F,CAAC,CAAC;IAEF,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAmC,EAAE;QAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,MAAM,aAAa,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;gBAC9D,MAAM,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,wCAAwC,OAAO,OAAO,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,iCAAiC,GAAG,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,IAAI,KAAK,CACX,WAAW,IAAI,CAAC,aAAa,YAAY,OAAO,KAAK,aAAa,YAAY;gBAC1E,6CAA6C,CACpD,CAAC;QACN,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,MAAM,aAAa,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,CAAC,eAAe,GAAG,CAAC,WAAwB,EAAgB,EAAE;QAChE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,kCAAkC,aAAa,KAAK,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAuB;QACjD,4IAA4I;QAC5I,oFAAoF;QACpF,wEAAwE;QACxE,MAAM,qBAAqB,GAAG;YAC1B,QAAQ;YACR,IAAI;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;SACP,CAAC;QAEF,oEAAoE;QACpE,uFAAuF;QACvF,MAAM,+BAA+B,GAAG,EAAE,CAAC;QAC3C,MAAM,uBAAuB,GAAG,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5C,yHAAyH;QACzH,MAAM,sBAAsB,GAAuB,SAAS,CAAC,YAAa,CAAC,KAAK,EAAE,WAAW,CAAC;QAE9F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,qBAAqB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtD,WAAW,EAAE,SAAS,CAAC,YAAa,CAAC,GAAG,CAAE,CAAC,WAAW;YACtD,GAAG;SACN,CAAC,CAAC,CAAC;QAEJ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAEnF,wDAAwD;QACxD,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAErG,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,+BAA+B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3F,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAIpF,MAAM,cAAc,GAAI,KAAqC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3E,IAAI,KAAK,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CACP,uBAAuB,IAAI,CAAC,aAAa,6BAA6B,kBAAkB,KAAK,eAAe,KAAK;oBAC7G,gCAAgC,CACvC,CAAC;gBACF,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAChD,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CACnF,CAAC;YACF,IAAI,iBAAiB,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CACP,uBAAuB,IAAI,CAAC,aAAa,+BAA+B,iBAAiB,CAAC,WAAW,KAAK,iBAAiB,CAAC,GAAG,IAAI,CACtI,CAAC;gBACF,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IAAI,sBAAsB,IAAI,KAAK,CAAC,WAAW,KAAK,sBAAsB,EAAE,CAAC;gBACzE,MAAM,sBAAsB,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;gBAC5E,IAAI,sBAAsB,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CACP,uBAAuB,IAAI,CAAC,aAAa,+BAA+B,sBAAsB,GAAG,CACpG,CAAC;gBACN,CAAC;gBACD,OAAO,sBAAsB,CAAC;YAClC,CAAC;YACD,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACP,uBAAuB,IAAI,CAAC,aAAa,MAAM,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,UAAU,IAAI,cAAc,CAAC,MAAM,GAAG;YACrH,qEAAqE,KAAK,CAAC,MAAM,EAAE,CAC1F,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,aAAa,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAClG,CAAC;YACD,OAAO;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,CAAC;IACL,CAAC;;AAGL,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACvC,aAA0B,EAC1B,WAAsC,EACtC,KAAa,EACO,EAAE;IACtB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,CAAC,GAAG,CACb,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAE,CAAC;QAC1D,MAAM,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACnG,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAEzD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACtC,YAA2B,EAC3B,KAAa,EACb,aAAsF,EAClE,EAAE;IACtB,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACnC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5G,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CACnC,aAAa,CAAC,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAE,CAAC,CACtF,CACJ,CAAC;IAEF,OAAO,sBAAsB,CAAC,aAAa,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC,CAAC;AAqBF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAC5B,OAAO,EACP,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,aAAa,EACb,MAAM,EACN,oBAAoB,GAAG,KAAK,GACb,EAAmD,EAAE;IACpE,6FAA6F;IAC7F,MAAM,YAAY,GAA0B,MAAM,OAAO,CAAC,GAAG,CACzD,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC;QACjF,MAAM,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,qBAAqB,CACnF,WAAW,CAAC,aAAa,EACzB,SAAS,CACZ,CAAC;QACF,oGAAoG;QACpG,yDAAyD;QACzD,IAAI,aAAa,KAAK,uBAAuB,IAAI,cAAc,EAAE,QAAQ,KAAK,eAAe,EAAE,CAAC;YAC5F,MAAM,CAAC,IAAI,CACP,IAAI,WAAW,CAAC,aAAa,qBAAqB,oBAAoB,iBAAiB;gBACnF,IAAI,cAAc,EAAE,QAAQ,IAAI,MAAM,WAAW,eAAe,+CAA+C;gBAC/G,kEAAkE,CACzE,CAAC;QACN,CAAC;QACD,IAAI,mBAAmB,EAAE,CAAC;YACtB,kCAAkC,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,mBAAmB,GACrB,aAAa,KAAK,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,IAAI,oBAAoB,EAAE,CAAC;YACvB,gCAAgC,CAC5B,WAAW,CAAC,aAAa,EACzB,SAAS,EACT,cAAc,EACd,mBAAmB,CACtB,CAAC;QACN,CAAC;QAED,2DAA2D;QAC3D,IAAI,UAAU,GAAG,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/B,UAAU,GAAG,GAAG,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvD,CAAC;QACD,OAAO;YACH,WAAW;YACX,SAAS;YACT,UAAU;YACV,aAAa,EAAE,mBAAmB;SACrC,CAAC;IACN,CAAC,CAAC,CACL,CAAC;IAEF,kGAAkG;IAClG,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC9C,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa;YACpD,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,UAAU,EAAE,WAAW,CAAC,UAAU;SACrC,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,UAAU,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,2BAA2B,GAAG,IAAI,GAAG,CACvC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAC1F,CAAC;IAEF,OAAO,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;QAChF,MAAM,WAAW,GAAG,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAE,CAAC;QAChF,wGAAwG;QACxG,MAAM,YAAY,GAAkC;YAChD,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,UAAU,EAAE,eAAe,CAAC,OAAO;SACtC,CAAC;QACF,+GAA+G;QAC/G,OAAO,OAAO,CAAC,qBAAqB,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAOF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,EAAsB,EAAE,EAAE;IAC3F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,mFAAmF;QACnF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,SAAS,CAAC;QACb,GAAG,OAAO;QACV,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAClC,YAAY;QACZ,MAAM,EAAE,MAAM,gBAAgB,EAAE;KACnC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,YAA2B,EAAE,EAAE,MAAM,EAAuB,EAAE,EAAE;IAClG,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
package/dist/bin/git.d.ts CHANGED
@@ -1,9 +1,5 @@
1
- import type { Commit, Config } from './types.js';
1
+ import type { Commit } from './types.js';
2
2
  export declare const GIT_FORMAT_SEPARATOR = "\u00BB\u00A6\u00AB";
3
- /**
4
- * Gets the list of changed files between the given commits (inclusive), so it diffs from the parent of the oldest.
5
- */
6
- export declare const getChangedFiles: (commits: Commit[]) => Promise<string[]>;
7
3
  /**
8
4
  * Files that differ between two commits, i.e. changed by the commits in the range (fromRef, toRef]. fromRef's own
9
5
  * changes are not included: to include them, pass its parent, `${sha}~` (as getChangedFiles does).
@@ -19,22 +15,11 @@ export declare const getChangedFilesBetween: (fromRef: string, toRef: string) =>
19
15
  export declare const getMergeBase: (base: string, head: string) => Promise<string>;
20
16
  /** Resolves a ref to a commit, or undefined when it isn't in the local history (e.g. it was force-pushed away). */
21
17
  export declare const findCommitSha: (ref: string) => Promise<string | undefined>;
22
- /**
23
- *
24
- * @param shaOrCommit Supports both a SHA string or a Commit object in JSON format. Can be empty.
25
- * @returns The SHA string if valid, otherwise throws an error.
26
- */
27
- export declare const parseBaseCommit: (shaOrCommit: string | undefined) => string | undefined;
28
18
  /**
29
19
  * Commits reachable from toRef but not from fromRef, oldest first: the range (fromRef, toRef], so fromRef itself is
30
20
  * not included. To include it, pass its parent, `${sha}~`.
31
21
  */
32
22
  export declare const getCommitsBetween: (fromRef: string, toRef: string) => Promise<Commit[]>;
33
- /**
34
- * Gets the commits between sourceBranch and targetBranch (exclusive).
35
- * - If baseCommit is provided, only returns commits after the baseCommit.
36
- */
37
- export declare const getCommits: ({ sourceBranch, targetBranch, baseCommit, }: Pick<Config, "sourceBranch" | "targetBranch" | "baseCommit">) => Promise<Commit[]>;
38
23
  export declare const parseCommit: (commitString: string) => Commit;
39
24
  /**
40
25
  * Returns the currently checked-out branch. Builds point the Actor version at this branch,
@@ -59,6 +44,11 @@ export declare const resolveRepoUrl: (explicitRepoUrl: string | undefined) => Pr
59
44
  * - ssh://git@github.com/org/repo#master:actors/foo (Actor versions carry a `#branch:folder` fragment)
60
45
  */
61
46
  export declare const normalizeRepoUrl: (repoUrl: string) => string;
47
+ /**
48
+ * Web link to a commit, e.g. https://github.com/apify-store/google-maps/commit/<sha>. Null for hosts other than
49
+ * GitHub, whose commit pages live under other paths.
50
+ */
51
+ export declare const getCommitUrl: (repoUrl: string, sha: string) => string | null;
62
52
  /** Repository name from its URL, e.g. `google-maps` for git@github.com:apify-store/google-maps.git */
63
53
  export declare const getRepoName: (repoUrl: string) => string;
64
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGjD,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAO1C;;GAEG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,EAAE,sBAQtD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,sBAQ1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CACwB,CAAC;AAEvG,mHAAmH;AACnH,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAOtE,CAAC;AAIP;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAc1E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAQxF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,6CAI9B,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC,KAAG,OAAO,CAAC,MAAM,EAAE,CAiCjF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAUvD,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CACyC,CAAC;AAa7G;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,iBAAiB,MAAM,GAAG,SAAS;;;EAGtE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAUlD,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,YAAY,MAAM,EAAE,aAAa,KAAG,OAAO,CAAC,MAAM,CAuChG,CAAC;AAIF,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,GAC9B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,cAAc,MAAM,EAAE,KACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CA0BvB,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAO1C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,sBAQ1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CACwB,CAAC;AAEvG,mHAAmH;AACnH,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAOtE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAQxF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAUvD,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CACyC,CAAC;AAa7G;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,iBAAiB,MAAM,GAAG,SAAS;;;EAGtE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAUlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,GAAG,IAGpE,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;AAOF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,YAAY,MAAM,EAAE,aAAa,KAAG,OAAO,CAAC,MAAM,CAmChG,CAAC;AAIF,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,GAC9B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,cAAc,MAAM,EAAE,KACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CA0BvB,CAAC"}