apify-test-tools 0.10.1-beta.6 → 0.10.1

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 (58) hide show
  1. package/CHANGELOG.md +1 -3
  2. package/bin/build-from-local.ts +19 -27
  3. package/bin/build.ts +1 -1
  4. package/bin/diff-changes.ts +26 -35
  5. package/bin/dockerignore.ts +24 -17
  6. package/bin/types.ts +7 -3
  7. package/bin/utils/config/actor-json.ts +49 -8
  8. package/bin/utils/config/load-config.ts +4 -24
  9. package/bin/utils/path/repo-relative.ts +27 -4
  10. package/dist/bin/build-from-local.d.ts +3 -2
  11. package/dist/bin/build-from-local.d.ts.map +1 -1
  12. package/dist/bin/build-from-local.js +16 -23
  13. package/dist/bin/build-from-local.js.map +1 -1
  14. package/dist/bin/build.js +1 -1
  15. package/dist/bin/build.js.map +1 -1
  16. package/dist/bin/diff-changes.d.ts.map +1 -1
  17. package/dist/bin/diff-changes.js +26 -29
  18. package/dist/bin/diff-changes.js.map +1 -1
  19. package/dist/bin/dockerignore.d.ts +11 -10
  20. package/dist/bin/dockerignore.d.ts.map +1 -1
  21. package/dist/bin/dockerignore.js +24 -15
  22. package/dist/bin/dockerignore.js.map +1 -1
  23. package/dist/bin/types.d.ts +6 -3
  24. package/dist/bin/types.d.ts.map +1 -1
  25. package/dist/bin/utils/config/actor-json.d.ts.map +1 -1
  26. package/dist/bin/utils/config/actor-json.js +35 -4
  27. package/dist/bin/utils/config/actor-json.js.map +1 -1
  28. package/dist/bin/utils/config/load-config.d.ts +1 -11
  29. package/dist/bin/utils/config/load-config.d.ts.map +1 -1
  30. package/dist/bin/utils/config/load-config.js +1 -10
  31. package/dist/bin/utils/config/load-config.js.map +1 -1
  32. package/dist/bin/utils/path/repo-relative.d.ts +4 -0
  33. package/dist/bin/utils/path/repo-relative.d.ts.map +1 -1
  34. package/dist/bin/utils/path/repo-relative.js +24 -5
  35. package/dist/bin/utils/path/repo-relative.js.map +1 -1
  36. package/dist/test/unit/bin/actor-filtering.test.js +8 -2
  37. package/dist/test/unit/bin/actor-filtering.test.js.map +1 -1
  38. package/dist/test/unit/bin/build-from-local.test.js +53 -5
  39. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  40. package/dist/test/unit/bin/diff-changes.test.js +98 -132
  41. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  42. package/dist/test/unit/bin/dockerignore.test.js +27 -24
  43. package/dist/test/unit/bin/dockerignore.test.js.map +1 -1
  44. package/dist/test/unit/bin/utils/config/load-config.test.js +40 -4
  45. package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
  46. package/dist/test/unit/bin/utils/path/repo-relative.test.js +5 -0
  47. package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -1
  48. package/dist/test/unit/should-built-and-test.test.js +55 -116
  49. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +65 -65
  52. package/test/unit/bin/actor-filtering.test.ts +8 -2
  53. package/test/unit/bin/build-from-local.test.ts +54 -8
  54. package/test/unit/bin/diff-changes.test.ts +133 -133
  55. package/test/unit/bin/dockerignore.test.ts +28 -28
  56. package/test/unit/bin/utils/config/load-config.test.ts +54 -4
  57. package/test/unit/bin/utils/path/repo-relative.test.ts +6 -0
  58. package/test/unit/should-built-and-test.test.ts +98 -121
@@ -1,30 +1,44 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest';
2
5
  import { getChangedActors } from '../../../bin/diff-changes.js';
3
6
  import * as DiffJsonSchema from '../../../bin/diff-json-schema.js';
4
7
  import * as Dockerignore from '../../../bin/dockerignore.js';
5
8
  import { logger } from '../../../bin/logger.js';
6
- const miniActor = {
7
- actorFullName: 'foo/bar',
8
- folder: 'actors/foo_bar',
9
- tokenEnvVar: 'APIFY_TOKEN_FOO',
10
- dockerContextDir: '',
11
- contextPaths: [''],
12
- };
13
- const standaloneActor = {
14
- actorFullName: 'owner/standalone',
15
- folder: 'standalone-actors/standalone',
16
- tokenEnvVar: 'APIFY_TOKEN_OWNER',
17
- dockerContextDir: 'standalone-actors/standalone',
18
- contextPaths: ['standalone-actors/standalone'],
9
+ import { ExistingDir, RelativeDir, RelativeFile } from '../../../bin/utils/path/repo-relative.js';
10
+ const originalCwd = process.cwd();
11
+ const fixtureRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'apify-diff-changes-'));
12
+ process.chdir(fixtureRoot);
13
+ fs.writeFileSync('package.json', '{}');
14
+ const actorConfig = (actorFullName, folder, tokenEnvVar, dockerContextDir, contextPaths) => {
15
+ const folderPath = folder || '.';
16
+ fs.mkdirSync(folderPath, { recursive: true });
17
+ return {
18
+ actorFullName,
19
+ folder: new ExistingDir(folderPath),
20
+ tokenEnvVar,
21
+ actorJson: {
22
+ file: new RelativeFile(path.join(folderPath, '.actor/actor.json')),
23
+ dockerContextDir: new RelativeDir(dockerContextDir || '.'),
24
+ changelog: new RelativeFile('CHANGELOG.md'),
25
+ },
26
+ dockerContextDir: new RelativeDir(dockerContextDir || '.'),
27
+ contextPaths: contextPaths.map((contextPath) => new RelativeDir(contextPath || '.')),
28
+ };
19
29
  };
30
+ afterAll(() => {
31
+ process.chdir(originalCwd);
32
+ fs.rmSync(fixtureRoot, { recursive: true, force: true });
33
+ });
34
+ const miniActor = actorConfig('foo/bar', 'actors/foo_bar', 'APIFY_TOKEN_FOO', '', ['']);
35
+ const standaloneActor = actorConfig('owner/standalone', 'standalone-actors/standalone', 'APIFY_TOKEN_OWNER', 'standalone-actors/standalone', ['standalone-actors/standalone']);
20
36
  const actorConfigs = [miniActor, standaloneActor];
21
- const amazonActor = {
22
- actorFullName: 'junglee/amazon-crawler',
23
- folder: 'actors/junglee_Amazon-crawler',
24
- tokenEnvVar: 'APIFY_TOKEN_JUNGLEE',
25
- dockerContextDir: '',
26
- contextPaths: ['actors/junglee_Amazon-crawler', 'code', 'shared'],
27
- };
37
+ const amazonActor = actorConfig('junglee/amazon-crawler', 'actors/junglee_Amazon-crawler', 'APIFY_TOKEN_JUNGLEE', '', [
38
+ 'actors/junglee_Amazon-crawler',
39
+ 'code',
40
+ 'shared',
41
+ ]);
28
42
  const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
29
43
  describe('getChangedActors', () => {
30
44
  beforeEach(() => {
@@ -41,6 +55,14 @@ describe('getChangedActors', () => {
41
55
  });
42
56
  expect(result).toEqual([]);
43
57
  });
58
+ it('does not ignore source files whose names contain an ignored file name', async () => {
59
+ const result = await getChangedActors({
60
+ filepathsChanged: ['actors/foo_bar/src/.gitignore-helper.ts'],
61
+ actorConfigs,
62
+ commits,
63
+ });
64
+ expect(result).toEqual([miniActor]);
65
+ });
44
66
  it('returns the actor when a functional file in its folder changes', async () => {
45
67
  const result = await getChangedActors({
46
68
  filepathsChanged: ['actors/foo_bar/src/main.ts'],
@@ -88,7 +110,6 @@ describe('getChangedActors', () => {
88
110
  expect(result).toEqual([]);
89
111
  });
90
112
  it('returns actor when JSON file has functional changes', async () => {
91
- vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
92
113
  const result = await getChangedActors({
93
114
  filepathsChanged: ['actors/foo_bar/.actor/actor.json'],
94
115
  actorConfigs,
@@ -113,9 +134,10 @@ describe('getChangedActors', () => {
113
134
  filepathsChanged: ['actors/foo_bar/.actor/input_schema.json'],
114
135
  actorConfigs,
115
136
  commits,
116
- isLatest: true,
137
+ isLatest: false,
117
138
  });
118
- expect(result).toEqual([miniActor]);
139
+ expect(result).toEqual([]);
140
+ expect(DiffJsonSchema.isCosmeticOnlyJsonSchemaChange).toHaveBeenCalledWith(commits, 'actors/foo_bar/.actor/input_schema.json');
119
141
  });
120
142
  it('does not trigger narrow-context actor when shared file changes', async () => {
121
143
  const result = await getChangedActors({
@@ -145,6 +167,28 @@ describe('getChangedActors', () => {
145
167
  });
146
168
  expect(result).toEqual([]);
147
169
  });
170
+ it('treats any changelog filename as cosmetic regardless of configured paths', async () => {
171
+ const result = await getChangedActors({
172
+ filepathsChanged: ['docs/CHANGELOG.md'],
173
+ actorConfigs: [miniActor, standaloneActor],
174
+ commits,
175
+ isLatest: true,
176
+ });
177
+ expect(result).toEqual([miniActor, standaloneActor]);
178
+ });
179
+ it('does not special-case a configured readme outside the actor context', async () => {
180
+ const configuredActor = {
181
+ ...standaloneActor,
182
+ actorJson: { ...standaloneActor.actorJson, readme: new RelativeFile('docs/guide.md') },
183
+ };
184
+ const result = await getChangedActors({
185
+ filepathsChanged: ['docs/guide.md'],
186
+ actorConfigs: [configuredActor],
187
+ commits,
188
+ isLatest: true,
189
+ });
190
+ expect(result).toEqual([]);
191
+ });
148
192
  it('triggers narrow-context actor when its own folder changes', async () => {
149
193
  const result = await getChangedActors({
150
194
  filepathsChanged: ['standalone-actors/standalone/src/main.ts'],
@@ -172,13 +216,7 @@ describe('getChangedActors', () => {
172
216
  expect(result).toContainEqual(standaloneActor);
173
217
  });
174
218
  it('matches folder where folder name differs from actor name', async () => {
175
- const ownerlessActor = {
176
- actorFullName: 'myteam/shopify-scraper',
177
- folder: 'actors/shopify',
178
- tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
179
- dockerContextDir: '',
180
- contextPaths: [''],
181
- };
219
+ const ownerlessActor = actorConfig('myteam/shopify-scraper', 'actors/shopify', 'APIFY_TOKEN_MYTEAM', '', ['']);
182
220
  const result = await getChangedActors({
183
221
  filepathsChanged: ['actors/shopify/src/main.ts'],
184
222
  actorConfigs: [ownerlessActor],
@@ -187,13 +225,7 @@ describe('getChangedActors', () => {
187
225
  expect(result).toEqual([ownerlessActor]);
188
226
  });
189
227
  it('in single-actor repo, .actor/ changes trigger builds', async () => {
190
- const rootActor = {
191
- actorFullName: 'myteam/my-actor',
192
- folder: '',
193
- tokenEnvVar: 'BUILDER_APIFY_TOKEN',
194
- dockerContextDir: '',
195
- contextPaths: [''],
196
- };
228
+ const rootActor = actorConfig('myteam/my-actor', '', 'BUILDER_APIFY_TOKEN', '', ['']);
197
229
  const result = await getChangedActors({
198
230
  filepathsChanged: ['.actor/actor.json'],
199
231
  actorConfigs: [rootActor],
@@ -209,22 +241,19 @@ describe('getChangedActors', () => {
209
241
  });
210
242
  expect(result).toEqual([miniActor]);
211
243
  });
212
- it('file paths are matched case-insensitively', async () => {
244
+ it('file paths are matched case-sensitively', async () => {
245
+ const narrowActor = actorConfig('foo/bar', 'actors/foo_bar', 'APIFY_TOKEN_FOO', 'actors/foo_bar', [
246
+ 'actors/foo_bar',
247
+ ]);
213
248
  const result = await getChangedActors({
214
249
  filepathsChanged: ['Actors/FOO_BAR/Main.ts'],
215
- actorConfigs,
250
+ actorConfigs: [narrowActor],
216
251
  commits,
217
252
  });
218
- expect(result).toEqual([miniActor]);
253
+ expect(result).toEqual([]);
219
254
  });
220
255
  it('triggers actor with contextPaths override when file matches an override path', async () => {
221
- const overrideActor = {
222
- actorFullName: 'team/override-actor',
223
- folder: 'actors/override',
224
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
225
- dockerContextDir: 'actors/override',
226
- contextPaths: ['actors/override', 'packages'],
227
- };
256
+ const overrideActor = actorConfig('team/override-actor', 'actors/override', 'APIFY_TOKEN_TEAM', 'actors/override', ['actors/override', 'packages']);
228
257
  const result = await getChangedActors({
229
258
  filepathsChanged: ['packages/shared/utils.ts'],
230
259
  actorConfigs: [overrideActor],
@@ -233,13 +262,7 @@ describe('getChangedActors', () => {
233
262
  expect(result).toEqual([overrideActor]);
234
263
  });
235
264
  it('does not trigger actor with contextPaths override when file is outside all override paths', async () => {
236
- const overrideActor = {
237
- actorFullName: 'team/override-actor',
238
- folder: 'actors/override',
239
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
240
- dockerContextDir: 'actors/override',
241
- contextPaths: ['actors/override', 'packages'],
242
- };
265
+ const overrideActor = actorConfig('team/override-actor', 'actors/override', 'APIFY_TOKEN_TEAM', 'actors/override', ['actors/override', 'packages']);
243
266
  const result = await getChangedActors({
244
267
  filepathsChanged: ['other-dir/file.ts'],
245
268
  actorConfigs: [overrideActor],
@@ -248,20 +271,8 @@ describe('getChangedActors', () => {
248
271
  expect(result).toEqual([]);
249
272
  });
250
273
  it('broad-context actor skips files in sibling actor folders', async () => {
251
- const actorA = {
252
- actorFullName: 'team/actor-a',
253
- folder: 'actors/a',
254
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
255
- dockerContextDir: '',
256
- contextPaths: [''],
257
- };
258
- const actorB = {
259
- actorFullName: 'team/actor-b',
260
- folder: 'actors/b',
261
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
262
- dockerContextDir: '',
263
- contextPaths: [''],
264
- };
274
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['']);
275
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['']);
265
276
  const result = await getChangedActors({
266
277
  filepathsChanged: ['actors/b/src/main.ts'],
267
278
  actorConfigs: [actorA, actorB],
@@ -269,21 +280,11 @@ describe('getChangedActors', () => {
269
280
  });
270
281
  expect(result).toEqual([actorB]);
271
282
  });
272
- it('root actor (folder="") is excluded from sibling actor folder files', async () => {
273
- const rootActor = {
274
- actorFullName: 'team/root',
275
- folder: '',
276
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
277
- dockerContextDir: '',
278
- contextPaths: [''],
279
- };
280
- const childActor = {
281
- actorFullName: 'team/child',
282
- folder: 'actors/child',
283
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
284
- dockerContextDir: 'actors/child',
285
- contextPaths: ['actors/child'],
286
- };
283
+ it('root actor is excluded from sibling actor folder files', async () => {
284
+ const rootActor = actorConfig('team/root', '', 'APIFY_TOKEN_TEAM', '', ['']);
285
+ const childActor = actorConfig('team/child', 'actors/child', 'APIFY_TOKEN_TEAM', 'actors/child', [
286
+ 'actors/child',
287
+ ]);
287
288
  const result = await getChangedActors({
288
289
  filepathsChanged: ['actors/child/src/main.ts'],
289
290
  actorConfigs: [rootActor, childActor],
@@ -292,21 +293,11 @@ describe('getChangedActors', () => {
292
293
  expect(result).not.toContainEqual(rootActor);
293
294
  expect(result).toContainEqual(childActor);
294
295
  });
295
- it('root actor (folder="") sees files outside any actor folder', async () => {
296
- const rootActor = {
297
- actorFullName: 'team/root',
298
- folder: '',
299
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
300
- dockerContextDir: '',
301
- contextPaths: [''],
302
- };
303
- const childActor = {
304
- actorFullName: 'team/child',
305
- folder: 'actors/child',
306
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
307
- dockerContextDir: 'actors/child',
308
- contextPaths: ['actors/child'],
309
- };
296
+ it('root actor sees files outside any actor folder', async () => {
297
+ const rootActor = actorConfig('team/root', '', 'APIFY_TOKEN_TEAM', '', ['']);
298
+ const childActor = actorConfig('team/child', 'actors/child', 'APIFY_TOKEN_TEAM', 'actors/child', [
299
+ 'actors/child',
300
+ ]);
310
301
  const result = await getChangedActors({
311
302
  filepathsChanged: ['lib/shared-utils.ts'],
312
303
  actorConfigs: [rootActor, childActor],
@@ -334,7 +325,6 @@ describe('getChangedActors', () => {
334
325
  expect(result).toEqual([miniActor]);
335
326
  });
336
327
  it('JSON file in context but outside actor folder is functional (not checked for cosmetic)', async () => {
337
- vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
338
328
  const result = await getChangedActors({
339
329
  filepathsChanged: ['lib/config.json'],
340
330
  actorConfigs: [miniActor],
@@ -360,7 +350,7 @@ describe('getChangedActors', () => {
360
350
  });
361
351
  expect(result).toEqual([miniActor]);
362
352
  });
363
- it('hoists a standalone actor own top-level dev file relative to its context before checking the ignore list', async () => {
353
+ it('ignores a standalone actor top-level dev file relative to its context', async () => {
364
354
  const result = await getChangedActors({
365
355
  filepathsChanged: ['standalone-actors/standalone/.eslintrc'],
366
356
  actorConfigs,
@@ -370,7 +360,7 @@ describe('getChangedActors', () => {
370
360
  });
371
361
  it('does not special-case code/ and shared/ prefixes anymore — must be declared via overrideActorContext', async () => {
372
362
  const result = await getChangedActors({
373
- filepathsChanged: ['code/.eslintrc'],
363
+ filepathsChanged: ['code/some/code.ts'],
374
364
  actorConfigs: [miniActor],
375
365
  commits,
376
366
  });
@@ -417,20 +407,8 @@ describe('getChangedActors logging', () => {
417
407
  expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: foo/bar');
418
408
  });
419
409
  it('logs a single "shared" group when two actors are triggered by the exact same file', async () => {
420
- const actorA = {
421
- actorFullName: 'team/actor-a',
422
- folder: 'actors/a',
423
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
424
- dockerContextDir: '',
425
- contextPaths: ['', 'shared'],
426
- };
427
- const actorB = {
428
- actorFullName: 'team/actor-b',
429
- folder: 'actors/b',
430
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
431
- dockerContextDir: '',
432
- contextPaths: ['', 'shared'],
433
- };
410
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['', 'shared']);
411
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['', 'shared']);
434
412
  await getChangedActors({
435
413
  filepathsChanged: ['shared/shared.ts'],
436
414
  actorConfigs: [actorA, actorB],
@@ -441,26 +419,14 @@ describe('getChangedActors logging', () => {
441
419
  expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: team/actor-a, team/actor-b');
442
420
  });
443
421
  it('logs shared and specific groups in descending-size order for partial overlap across actors', async () => {
444
- const actorA = {
445
- actorFullName: 'team/actor-a',
446
- folder: 'actors/a',
447
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
448
- dockerContextDir: '',
449
- contextPaths: [''],
450
- };
451
- const actorB = {
452
- actorFullName: 'team/actor-b',
453
- folder: 'actors/b',
454
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
455
- dockerContextDir: '',
456
- contextPaths: [''],
457
- };
422
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['']);
423
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['']);
458
424
  await getChangedActors({
459
425
  filepathsChanged: ['shared.ts', 'actors/a/a-only.ts', 'actors/b/b-only.ts'],
460
426
  actorConfigs: [actorA, actorB],
461
427
  commits,
462
428
  });
463
- const errorCalls = logger.info.mock.calls.map((call) => call[0]);
429
+ const errorCalls = vi.mocked(logger.info).mock.calls.map((call) => call[0]);
464
430
  expect(errorCalls).toEqual([
465
431
  '[DIFF]: Shared changes for actors team/actor-a, team/actor-b: shared.ts',
466
432
  '[DIFF]: Changes specific to actor team/actor-a: actors/a/a-only.ts',
@@ -470,7 +436,7 @@ describe('getChangedActors logging', () => {
470
436
  });
471
437
  it('logs no group lines when zero actors changed', async () => {
472
438
  await getChangedActors({
473
- filepathsChanged: ['.gitignore', 'README.md'],
439
+ filepathsChanged: ['.gitignore', '.prettierrc'],
474
440
  actorConfigs,
475
441
  commits,
476
442
  });
@@ -1 +1 @@
1
- {"version":3,"file":"diff-changes.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-changes.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAClC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAClF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC3B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAEvC,MAAM,WAAW,GAAG,CAChB,aAAqB,EACrB,MAAc,EACd,WAAmB,EACnB,gBAAwB,EACxB,YAAsB,EACX,EAAE;IACb,MAAM,UAAU,GAAG,MAAM,IAAI,GAAG,CAAC;IACjC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO;QACH,aAAa;QACb,MAAM,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC;QACnC,WAAW;QACX,SAAS,EAAE;YACP,IAAI,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YAClE,gBAAgB,EAAE,IAAI,WAAW,CAAC,gBAAgB,IAAI,GAAG,CAAC;YAC1D,SAAS,EAAE,IAAI,YAAY,CAAC,cAAc,CAAC;SAC9C;QACD,gBAAgB,EAAE,IAAI,WAAW,CAAC,gBAAgB,IAAI,GAAG,CAAC;QAC1D,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;KACvF,CAAC;AACN,CAAC,CAAC;AAEF,QAAQ,CAAC,GAAG,EAAE;IACV,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,MAAM,eAAe,GAAG,WAAW,CAC/B,kBAAkB,EAClB,8BAA8B,EAC9B,mBAAmB,EACnB,8BAA8B,EAC9B,CAAC,8BAA8B,CAAC,CACnC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,WAAW,CAAC,wBAAwB,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,EAAE,EAAE;IAClH,+BAA+B;IAC/B,MAAM;IACN,QAAQ;CACX,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAExE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,MAAM,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,CAAC;YAC3F,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,yCAAyC,CAAC;YAC7D,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,4BAA4B,CAAC;YAChD,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0BAA0B,CAAC;YAC9C,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0BAA0B,CAAC;YAC9C,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,kCAAkC,CAAC;YACtD,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC7F,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,kCAAkC,CAAC;YACtD,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,kCAAkC,CAAC;YACtD,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACnG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,6BAA6B,CAAC;YACjD,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QACzF,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,yCAAyC,CAAC;YAC7D,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC,oBAAoB,CACtE,OAAO,EACP,yCAAyC,CAC5C,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC;YACrC,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,cAAc,CAAC;YAClC,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,cAAc,CAAC;YAClC,YAAY;YACZ,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;YAC1C,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,eAAe,GAAgB;YACjC,GAAG,eAAe;YAClB,SAAS,EAAE,EAAE,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,YAAY,CAAC,eAAe,CAAC,EAAE;SACzF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,eAAe,CAAC;YACnC,YAAY,EAAE,CAAC,eAAe,CAAC;YAC/B,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0CAA0C,CAAC;YAC9D,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;YAC/E,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,4BAA4B,EAAE,yCAAyC,CAAC;YAC3F,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,cAAc,GAAG,WAAW,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,4BAA4B,CAAC;YAChD,YAAY,EAAE,CAAC,cAAc,CAAC;YAC9B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,SAAS,GAAG,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE;YAC9F,gBAAgB;SACnB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,wBAAwB,CAAC;YAC5C,YAAY,EAAE,CAAC,WAAW,CAAC;YAC3B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,aAAa,GAAG,WAAW,CAC7B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAClC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0BAA0B,CAAC;YAC9C,YAAY,EAAE,CAAC,aAAa,CAAC;YAC7B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,aAAa,GAAG,WAAW,CAC7B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAClC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,aAAa,CAAC;YAC7B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE;YAC7F,cAAc;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0BAA0B,CAAC;YAC9C,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;YACrC,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE;YAC7F,cAAc;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC;YACzC,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;YACrC,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACjE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,eAAe,CACtD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,oCAAoC,CAClE,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,oCAAoC,CAAC;YACxD,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,4BAA4B,CAAC;YAChD,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC;YACrC,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;YACpC,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,0BAA0B,CAAC;YAC9C,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;YAC5D,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;QAClH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;YACpC,YAAY,EAAE,CAAC,WAAW,CAAC;YAC3B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,WAAW,CAAC;YAC3B,OAAO;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;YACpC,YAAY,EAAE,CAAC,WAAW,CAAC;YAC3B,OAAO;YACP,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpF,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,gBAAgB,CAAC;YACnB,gBAAgB,EAAE,CAAC,4BAA4B,CAAC;YAChD,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,OAAO;SACV,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACpC,uEAAuE,CAC1E,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE/F,MAAM,gBAAgB,CAAC;YACnB,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;YACtC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9B,OAAO;SACV,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACpC,gFAAgF,CACnF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,mEAAmE,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAErF,MAAM,gBAAgB,CAAC;YACnB,gBAAgB,EAAE,CAAC,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;YAC3E,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9B,OAAO;SACV,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YACvB,yEAAyE;YACzE,oEAAoE;YACpE,oEAAoE;YACpE,mEAAmE;SACtE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,gBAAgB,CAAC;YACnB,gBAAgB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;YAC/C,YAAY;YACZ,OAAO;SACV,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,8DAA8D,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import path from 'node:path';
2
2
  import { afterEach, describe, expect, it, vi } from 'vitest';
3
3
  import { buildDockerIgnoreMatcher, loadDockerIgnore } from '../../../bin/dockerignore.js';
4
+ import { RelativeDir, RelativeFile } from '../../../bin/utils/path/repo-relative.js';
4
5
  const { fsMock } = vi.hoisted(() => ({
5
6
  fsMock: {
6
7
  readFileSync: vi.fn(),
@@ -13,57 +14,62 @@ describe('loadDockerIgnore', () => {
13
14
  fsMock.readFileSync.mockImplementation(() => {
14
15
  throw new Error('ENOENT');
15
16
  });
16
- const matcher = loadDockerIgnore('actors/my-actor');
17
+ const matcher = loadDockerIgnore(new RelativeDir('actors/my-actor'));
17
18
  expect(matcher('actors/my-actor/src/main.ts')).toBe(false);
18
19
  expect(matcher('actors/my-actor/node_modules/foo.js')).toBe(false);
19
20
  });
20
21
  it('matches files listed in .dockerignore', () => {
21
22
  fsMock.readFileSync.mockReturnValue('node_modules\n*.log\n');
22
- const matcher = loadDockerIgnore('');
23
+ const matcher = loadDockerIgnore(new RelativeDir(''));
23
24
  expect(matcher('node_modules/foo/bar.js')).toBe(true);
24
25
  expect(matcher('debug.log')).toBe(true);
25
26
  });
26
27
  it('does not match files not in .dockerignore', () => {
27
28
  fsMock.readFileSync.mockReturnValue('node_modules\n');
28
- const matcher = loadDockerIgnore('');
29
+ const matcher = loadDockerIgnore(new RelativeDir(''));
29
30
  expect(matcher('src/main.ts')).toBe(false);
30
31
  });
31
32
  it.each(['dist', 'dist/'])('handles directory pattern "%s"', (pattern) => {
32
33
  fsMock.readFileSync.mockReturnValue(`${pattern}\n`);
33
- const matcher = loadDockerIgnore('');
34
+ const matcher = loadDockerIgnore(new RelativeDir(''));
34
35
  expect(matcher('dist/bundle.js')).toBe(true);
35
36
  expect(matcher('src/dist-utils.ts')).toBe(false);
36
37
  });
37
38
  it('handles negation patterns', () => {
38
39
  fsMock.readFileSync.mockReturnValue('*.log\n!important.log\n');
39
- const matcher = loadDockerIgnore('');
40
+ const matcher = loadDockerIgnore(new RelativeDir(''));
40
41
  expect(matcher('debug.log')).toBe(true);
41
42
  expect(matcher('important.log')).toBe(false);
42
43
  });
43
44
  it('strips dockerContextDir prefix before matching', () => {
44
45
  fsMock.readFileSync.mockReturnValue('node_modules\n');
45
- const matcher = loadDockerIgnore('actors/shopify');
46
+ const matcher = loadDockerIgnore(new RelativeDir('actors/shopify'));
46
47
  expect(matcher('actors/shopify/node_modules/foo.js')).toBe(true);
47
48
  expect(matcher('actors/shopify/src/main.ts')).toBe(false);
48
49
  });
49
50
  it('returns false for files outside dockerContextDir', () => {
50
51
  fsMock.readFileSync.mockReturnValue('*\n');
51
- const matcher = loadDockerIgnore('actors/shopify');
52
+ const matcher = loadDockerIgnore(new RelativeDir('actors/shopify'));
52
53
  expect(matcher('other-actor/src/main.ts')).toBe(false);
53
54
  });
54
- it('reads .dockerignore from the resolved, absolute dockerContextDir root', () => {
55
+ it('treats dockerContextDir paths as case-sensitive', () => {
56
+ fsMock.readFileSync.mockReturnValue('*\n');
57
+ const matcher = loadDockerIgnore(new RelativeDir('actors/shopify'));
58
+ expect(matcher('Actors/shopify/src/main.ts')).toBe(false);
59
+ });
60
+ it('reads .dockerignore from the resolved dockerContextDir root', () => {
55
61
  fsMock.readFileSync.mockReturnValue('');
56
- loadDockerIgnore('actors/shopify');
57
- expect(fsMock.readFileSync).toHaveBeenCalledWith(path.join(path.resolve('actors/shopify'), '.dockerignore'), 'utf-8');
62
+ loadDockerIgnore(new RelativeDir('actors/shopify'));
63
+ expect(fsMock.readFileSync).toHaveBeenCalledWith(path.join('actors/shopify', '.dockerignore'), 'utf-8');
58
64
  });
59
65
  it('reads .dockerignore from the resolved repo root when dockerContextDir is empty', () => {
60
66
  fsMock.readFileSync.mockReturnValue('');
61
- loadDockerIgnore('');
62
- expect(fsMock.readFileSync).toHaveBeenCalledWith(path.join(path.resolve(''), '.dockerignore'), 'utf-8');
67
+ loadDockerIgnore(new RelativeDir(''));
68
+ expect(fsMock.readFileSync).toHaveBeenCalledWith(path.join('.', '.dockerignore'), 'utf-8');
63
69
  });
64
70
  it('handles comments and blank lines', () => {
65
71
  fsMock.readFileSync.mockReturnValue('# this is a comment\n\nnode_modules\n');
66
- const matcher = loadDockerIgnore('');
72
+ const matcher = loadDockerIgnore(new RelativeDir(''));
67
73
  expect(matcher('node_modules/foo.js')).toBe(true);
68
74
  expect(matcher('src/main.ts')).toBe(false);
69
75
  });
@@ -71,7 +77,8 @@ describe('loadDockerIgnore', () => {
71
77
  // The common real-world .dockerignore style: every pattern prefixed with "./",
72
78
  // including a negation re-including one of the otherwise-matched files.
73
79
  fsMock.readFileSync.mockReturnValue('./node_modules\n./*.log\n!./keep.log\n');
74
- const matcher = loadDockerIgnore('');
80
+ const matcher = loadDockerIgnore(new RelativeDir(''));
81
+ // expect(new RelativeDir('').path).toBe('maemresmtioear');
75
82
  expect(matcher('node_modules/foo.js')).toBe(true);
76
83
  expect(matcher('debug.log')).toBe(true);
77
84
  expect(matcher('keep.log')).toBe(false);
@@ -79,23 +86,19 @@ describe('loadDockerIgnore', () => {
79
86
  });
80
87
  });
81
88
  describe('buildDockerIgnoreMatcher', () => {
82
- it('treats paths as already relative to absoluteRootDir when hoistFrom is left at its default', () => {
89
+ it('Matcher correctly resolves paths relative to the .dockerignore file', () => {
90
+ const rootDir = new RelativeDir('repo/actors/shopify');
83
91
  fsMock.readFileSync.mockReturnValue('test/\n*.log\n');
84
- const matcher = buildDockerIgnoreMatcher('/repo/actors/shopify');
85
- expect(matcher('test/fixture.json')).toBe(true);
86
- expect(matcher('debug.log')).toBe(true);
92
+ const matcher = buildDockerIgnoreMatcher(rootDir.joinFile('.dockerignore'));
93
+ expect(matcher(`${rootDir.path}/test/fixture.json`)).toBe(true);
94
+ expect(matcher(`${rootDir.path}/debug.log`)).toBe(true);
87
95
  expect(matcher('main.js')).toBe(false);
88
96
  });
89
- it('reads .dockerignore from the given absoluteRootDir', () => {
90
- fsMock.readFileSync.mockReturnValue('');
91
- buildDockerIgnoreMatcher('/repo/actors/shopify');
92
- expect(fsMock.readFileSync).toHaveBeenCalledWith('/repo/actors/shopify/.dockerignore', 'utf-8');
93
- });
94
97
  it('returns no-op matcher when .dockerignore is absent', () => {
95
98
  fsMock.readFileSync.mockImplementation(() => {
96
99
  throw new Error('ENOENT');
97
100
  });
98
- const matcher = buildDockerIgnoreMatcher('/repo/actors/shopify');
101
+ const matcher = buildDockerIgnoreMatcher(new RelativeFile('repo/actors/shopify/.dockerignore'));
99
102
  expect(matcher('main.js')).toBe(false);
100
103
  });
101
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dockerignore.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/dockerignore.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,EAAE;QACJ,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACxB;CACJ,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhD,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAC,OAAO,EAAE,EAAE;QACrE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACxC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAC1D,OAAO,CACV,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACtF,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACxC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC7E,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACjG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACxC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dockerignore.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/dockerignore.test.ts"],"names":[],"mappings":"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"}