packtory 0.0.72 → 0.0.74

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 (42) hide show
  1. package/checks/rules/type-script-integrity.js +19 -4
  2. package/checks/rules/type-script-integrity.js.map +1 -1
  3. package/dead-code-eliminator/code-file-analyzer.js +1 -1
  4. package/dead-code-eliminator/code-file-analyzer.js.map +1 -1
  5. package/dead-code-eliminator/source-map-recomposition.js +1 -3
  6. package/dead-code-eliminator/source-map-recomposition.js.map +1 -1
  7. package/dead-code-eliminator/transform/atom-translator.js +35 -0
  8. package/dead-code-eliminator/transform/atom-translator.js.map +1 -1
  9. package/dead-code-eliminator/transform/declaration-removal.js +100 -1
  10. package/dead-code-eliminator/transform/declaration-removal.js.map +1 -1
  11. package/dead-code-eliminator/transform/declaration-remover.js +8 -13
  12. package/dead-code-eliminator/transform/declaration-remover.js.map +1 -1
  13. package/dead-code-eliminator/transform/source-map-composer.js +5 -5
  14. package/dead-code-eliminator/transform/source-map-composer.js.map +1 -1
  15. package/linker/linked-bundle.d.ts +1 -0
  16. package/linker/linked-bundle.d.ts.map +1 -1
  17. package/linker/linked-bundle.js.map +1 -1
  18. package/linker/replacement-lookup.js +13 -1
  19. package/linker/replacement-lookup.js.map +1 -1
  20. package/linker/substitute-bundles.js +1 -0
  21. package/linker/substitute-bundles.js.map +1 -1
  22. package/linker/substituted-resource-graph.js +34 -9
  23. package/linker/substituted-resource-graph.js.map +1 -1
  24. package/package-surface/explicit-exports.js +16 -4
  25. package/package-surface/explicit-exports.js.map +1 -1
  26. package/package.json +1 -1
  27. package/packtory/package-processor-build.js +20 -5
  28. package/packtory/package-processor-build.js.map +1 -1
  29. package/packtory/package-processor.js.map +1 -1
  30. package/packtory/stages/package-resolution-stage.js +37 -3
  31. package/packtory/stages/package-resolution-stage.js.map +1 -1
  32. package/readme.md +36 -48
  33. package/report/decorators.js +9 -0
  34. package/report/decorators.js.map +1 -1
  35. package/resource-resolver/dependency-resolution-walker.js +5 -35
  36. package/resource-resolver/dependency-resolution-walker.js.map +1 -1
  37. package/resource-resolver/resource-resolver.d.ts.map +1 -1
  38. package/resource-resolver/resource-resolver.js +57 -21
  39. package/resource-resolver/resource-resolver.js.map +1 -1
  40. package/sbom.cdx.json +4 -4
  41. package/dead-code-eliminator/transform/survivor-capture.js +0 -33
  42. package/dead-code-eliminator/transform/survivor-capture.js.map +0 -1
package/package.json CHANGED
@@ -129,5 +129,5 @@
129
129
  "./tar/tarball-builder.js"
130
130
  ],
131
131
  "type": "module",
132
- "version": "0.0.72"
132
+ "version": "0.0.74"
133
133
  }
@@ -29,10 +29,7 @@ async function analyzeOne(dependencies, linkedBundle, transformationsEnabled, de
29
29
  return analyzedBundle;
30
30
  }
31
31
  export function createResolveAndBuildOperations(dependencies) {
32
- async function resolveAndLink(options) {
33
- assertEsmMainPackageJson(options.mainPackageJson);
34
- dependencies.progressBroadcaster.emit('resolving', { packageName: options.name });
35
- const resolvedBundle = await dependencies.resourceResolver.resolve(options);
32
+ async function linkResolvedBundle(options, resolvedBundle) {
36
33
  maybeEmitScanCompleted(dependencies, options.name, resolvedBundle);
37
34
  dependencies.progressBroadcaster.emit('linking', { packageName: options.name });
38
35
  const linkedBundle = await dependencies.linker.linkBundle({
@@ -43,6 +40,24 @@ export function createResolveAndBuildOperations(dependencies) {
43
40
  maybeEmitLinkingCompleted(dependencies, options.name, linkedBundle);
44
41
  return linkedBundle;
45
42
  }
43
+ async function resolveAndLinkResolvedBundle(options, resolveBundle) {
44
+ assertEsmMainPackageJson(options.mainPackageJson);
45
+ dependencies.progressBroadcaster.emit('resolving', { packageName: options.name });
46
+ return await linkResolvedBundle(options, await resolveBundle());
47
+ }
48
+ async function resolveAndLinkWithPromotedDeclarations(options, promotedDeclarationEntryFiles) {
49
+ return await resolveAndLinkResolvedBundle(options, async function () {
50
+ return await dependencies.resourceResolver.resolveWithPromotedDeclarations(options, promotedDeclarationEntryFiles);
51
+ });
52
+ }
53
+ async function resolveAndLink(options) {
54
+ return await resolveAndLinkWithPromotedDeclarations(options, []);
55
+ }
56
+ async function resolveAndLinkWithPromotedDeclarationCompanions(options, substitutedSourceFilePaths) {
57
+ return await resolveAndLinkResolvedBundle(options, async function () {
58
+ return await dependencies.resourceResolver.resolveWithPromotedDeclarationCompanions(options, substitutedSourceFilePaths);
59
+ });
60
+ }
46
61
  async function build(options) {
47
62
  assertEsmMainPackageJson(options.mainPackageJson);
48
63
  const { additionalFiles, bundleDependencies, bundlePeerDependencies, includeSourceMapFiles, name, sourcesFolder } = options;
@@ -73,6 +88,6 @@ export function createResolveAndBuildOperations(dependencies) {
73
88
  allowMutableSpecifiers: options.allowMutableSpecifiers
74
89
  });
75
90
  }
76
- return { build, resolveAndLink };
91
+ return { build, resolveAndLink, resolveAndLinkWithPromotedDeclarationCompanions };
77
92
  }
78
93
  //# sourceMappingURL=package-processor-build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-processor-build.js","sourceRoot":"","sources":["../../../../source/packtory/package-processor-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-processor-build.js","sourceRoot":"","sources":["../../../../source/packtory/package-processor-build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-processor.js","sourceRoot":"","sources":["../../../../source/packtory/package-processor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACH,uBAAuB,EAG1B,MAAM,gCAAgC,CAAC;AA2BxC,MAAM,UAAU,sBAAsB,CAAC,YAA0C;IAC7E,MAAM,yBAAyB,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEhE,OAAO;QACH,GAAG,yBAAyB;QAC5B,GAAG,iBAAiB;KACvB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"package-processor.js","sourceRoot":"","sources":["../../../../source/packtory/package-processor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACH,uBAAuB,EAG1B,MAAM,gCAAgC,CAAC;AA+BxC,MAAM,UAAU,sBAAsB,CAAC,YAA0C;IAC7E,MAAM,yBAAyB,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEhE,OAAO;QACH,GAAG,yBAAyB;QAC5B,GAAG,iBAAiB;KACvB,CAAC;AACN,CAAC"}
@@ -19,7 +19,25 @@ function emitInputsResolved(dependencies, options) {
19
19
  siblingVersions: {}
20
20
  });
21
21
  }
22
- export async function resolvePackages(dependencies, config) {
22
+ function collectPromotedSourcePathsByPackageName(linkedPackages) {
23
+ const promotedSourcePathsByPackageName = new Map();
24
+ for (const linkedPackage of linkedPackages) {
25
+ for (const [packageName, sourceFilePaths] of linkedPackage.linkedBundle.substitutedSourceFilePathsByPackageName) {
26
+ const existing = promotedSourcePathsByPackageName.get(packageName) ?? new Set();
27
+ for (const sourceFilePath of sourceFilePaths) {
28
+ existing.add(sourceFilePath);
29
+ }
30
+ promotedSourcePathsByPackageName.set(packageName, existing);
31
+ }
32
+ }
33
+ return promotedSourcePathsByPackageName;
34
+ }
35
+ function hasPromotionCandidates(promotedSourcePathsByPackageName) {
36
+ return Array.from(promotedSourcePathsByPackageName.values()).some(function (sourceFilePaths) {
37
+ return sourceFilePaths.size > 0;
38
+ });
39
+ }
40
+ async function resolvePackagesWithPromotions(dependencies, config, promotedSourcePathsByPackageName, emitScheduledEvents) {
23
41
  return dependencies.scheduler.runForEachScheduledPackage({
24
42
  config,
25
43
  createOptions(context) {
@@ -28,7 +46,12 @@ export async function resolvePackages(dependencies, config) {
28
46
  return options;
29
47
  },
30
48
  execute: withFailureCapture(dependencies.progressBroadcaster.provider, 'resolveAndLink', async function (resolveOptions) {
31
- const linkedBundle = await dependencies.packageProcessor.resolveAndLink(resolveOptions);
49
+ const promotedSourcePaths = promotedSourcePathsByPackageName.get(resolveOptions.name) ?? new Set();
50
+ const linkedBundle = promotedSourcePaths.size === 0
51
+ ? await dependencies.packageProcessor.resolveAndLink(resolveOptions)
52
+ : await dependencies
53
+ .packageProcessor
54
+ .resolveAndLinkWithPromotedDeclarationCompanions(resolveOptions, promotedSourcePaths);
32
55
  return {
33
56
  name: resolveOptions.name,
34
57
  linkedBundle,
@@ -38,7 +61,18 @@ export async function resolvePackages(dependencies, config) {
38
61
  selectNext(input) {
39
62
  return input.result.linkedBundle;
40
63
  },
41
- emitScheduledEvents: true
64
+ emitScheduledEvents
42
65
  });
43
66
  }
67
+ export async function resolvePackages(dependencies, config) {
68
+ const firstPassResult = await resolvePackagesWithPromotions(dependencies, config, new Map(), true);
69
+ if (firstPassResult.isErr) {
70
+ return firstPassResult;
71
+ }
72
+ const promotedSourcePathsByPackageName = collectPromotedSourcePathsByPackageName(firstPassResult.value);
73
+ if (!hasPromotionCandidates(promotedSourcePathsByPackageName)) {
74
+ return firstPassResult;
75
+ }
76
+ return await resolvePackagesWithPromotions(dependencies, config, promotedSourcePathsByPackageName, false);
77
+ }
44
78
  //# sourceMappingURL=package-resolution-stage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-resolution-stage.js","sourceRoot":"","sources":["../../../../../source/packtory/stages/package-resolution-stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAA8B,MAAM,kBAAkB,CAAC;AAmB7F,SAAS,oBAAoB,CACzB,WAAmB,EACnB,QAAiC,EACjC,MAAwC;IAExC,OAAO,6BAA6B,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,kBAAkB,CACvB,YAAwE,EACxE,OAA8B;IAE9B,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9E,OAAO;IACX,CAAC;IACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzD,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAC7D,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,IAAI;YACnD,OAAO,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC;QACF,eAAe,EAAE,CAAC;QAClB,eAAe,EAAE,EAAE;KACtB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,YAA2C,EAC3C,MAAwC;IAExC,OAAO,YAAY,CAAC,SAAS,CAAC,0BAA0B,CAKtD;QACE,MAAM;QACN,aAAa,CAAC,OAAO;YACjB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5F,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,kBAAkB,CACvB,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EACzC,gBAAgB,EAChB,KAAK,WAAW,cAAc;YAC1B,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACxF,OAAO;gBACH,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,YAAY;gBACZ,cAAc;aACjB,CAAC;QACN,CAAC,CACJ;QACD,UAAU,CAAC,KAAK;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACrC,CAAC;QACD,mBAAmB,EAAE,IAAI;KAC5B,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"package-resolution-stage.js","sourceRoot":"","sources":["../../../../../source/packtory/stages/package-resolution-stage.ts"],"names":[],"mappings":"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"}
package/readme.md CHANGED
@@ -1,67 +1,55 @@
1
1
  ### packtory
2
2
 
3
- **API Package for packtory**
4
-
5
- This package provides an API for the `packtory` tool, enabling programmatic usage. It exposes the following functions:
6
-
7
- - `buildAndPublishAll(config, options)` – validates the configuration, builds every package, runs the enabled checks, and (optionally) publishes the results.
8
- - `resolveAndLinkAll(config)` – performs the validation, resolve, link, and checks phases without publishing. This is useful for custom workflows and integration tests that only need the prepared bundles.
9
- - `diffAgainstLatestPublished(config)` – validates and builds every package without publishing, then per package computes the file-level diff between the bundle the next publish would produce and the version currently tagged `latest` on the configured registry.
10
- - `planReleaseAgainstLatestPublished(config)` – validates and builds every package without publishing, then returns per-package release state, release classification, planned versions, artifact file paths, changed artifact file paths, registry metadata including `gitHead`, current `gitHead`, bundled source file paths, and changelog source file paths.
11
- - `packPackage(config, options)` – validates the configuration, runs the same resolve / link / checks pipeline as `buildAndPublishAll`, and writes a single configured package to disk as a zip, tarball, or expanded folder. Useful when you need an artifact you control (Lambda zip, container build context, local inspection) instead of a registry publish.
12
-
13
- **Installation:**
3
+ Programmatic API for building, checking, publishing, diffing, release planning, and packing configured npm packages.
14
4
 
15
5
  ```bash
16
6
  npm install packtory
17
7
  ```
18
8
 
19
- **Usage:**
20
-
21
9
  ```javascript
22
- import { buildAndPublishAll, resolveAndLinkAll, planReleaseAgainstLatestPublished, packPackage } from 'packtory';
10
+ import {
11
+ buildAndPublishAll,
12
+ diffAgainstLatestPublished,
13
+ packPackage,
14
+ planReleaseAgainstLatestPublished,
15
+ resolveAndLinkAll
16
+ } from 'packtory';
23
17
 
24
18
  const config = {
25
19
  /* your packtory configuration */
26
20
  };
27
21
 
28
- (async () => {
29
- const publishOutcome = await buildAndPublishAll(config, { dryRun: true, stage: false });
30
- console.log(publishOutcome.result);
31
-
32
- const resolvedOutcome = await resolveAndLinkAll(config);
33
- console.log(resolvedOutcome.result);
34
-
35
- const releasePlanOutcome = await planReleaseAgainstLatestPublished(config);
36
- console.log(releasePlanOutcome.result);
37
-
38
- const packOutcome = await packPackage(config, {
39
- packageName: 'image-resizer-cli',
40
- format: 'zip',
41
- outputPath: './dist/image-resizer-cli.zip',
42
- version: '1.4.0',
43
- vendorDependencies: true
44
- });
45
- console.log(packOutcome.result);
46
- })();
22
+ const publishOutcome = await buildAndPublishAll(config, { dryRun: true, stage: false });
23
+ const resolvedOutcome = await resolveAndLinkAll(config);
24
+ const releaseDiffOutcome = await diffAgainstLatestPublished(config);
25
+ const releasePlanOutcome = await planReleaseAgainstLatestPublished(config);
26
+ const packOutcome = await packPackage(config, {
27
+ packageName: 'image-resizer-cli',
28
+ format: 'zip',
29
+ outputPath: './dist/image-resizer-cli.zip',
30
+ version: '1.4.0',
31
+ vendorDependencies: true
32
+ });
33
+
34
+ console.log({
35
+ publishOutcome,
36
+ resolvedOutcome,
37
+ releaseDiffOutcome,
38
+ releasePlanOutcome,
39
+ packOutcome
40
+ });
47
41
  ```
48
42
 
49
- **Parameters:**
43
+ Exports:
50
44
 
51
- - **config:** The packtory configuration object. `registrySettings` is optional; it is only required to publish in non-dry-run mode. Pack, dry-run publish, release-diff and release analysis read registry metadata anonymously when `registrySettings` (or its `auth`) is omitted. Calling `buildAndPublishAll(config, { dryRun: false })` without `auth` fails fast with one `ConfigError` before any package is processed.
52
- - **options:** Per-function options object:
53
- - `buildAndPublishAll`: `{ dryRun: boolean; stage: boolean; collectReport?: boolean }`.
54
- - `resolveAndLinkAll`: optional `{ collectReport?: boolean }`.
55
- - `packPackage`: `{ packageName, format, outputPath, version, vendorDependencies }`. `format` is `'zip' | 'tar' | 'folder'`. `version` stamps the generated manifest (no automatic versioning is performed). `vendorDependencies` toggles materializing the resolved `node_modules` tree (including any `bundleDependencies`) into the artifact for self-contained deployments.
45
+ - `buildAndPublishAll(config, options)`: validates the configuration, builds packages, runs checks, and publishes or dry-runs every package.
46
+ - `resolveAndLinkAll(config, options?)`: runs validation, resolve, link, dead-code elimination, and checks without publishing.
47
+ - `diffAgainstLatestPublished(config)`: builds packages and compares the next artifact against the current `latest` registry version.
48
+ - `planReleaseAgainstLatestPublished(config)`: returns per-package release state, planned versions, artifact paths, source attribution, changelog dependency data, and registry metadata.
49
+ - `packPackage(config, options)`: writes one package as a zip, tarball, or folder after the same resolve, link, and check pipeline.
56
50
 
57
- **Return Values:**
51
+ `registrySettings` is optional for dry-run publish, release diff, release planning, and pack flows that only need anonymous registry metadata. Non-dry-run publish requires publish auth.
58
52
 
59
- - `buildAndPublishAll` returns a `PublishAllOutcome` whose `result` is either a list of successful publish results or a partial error if some packages failed.
60
- Each successful item includes `publication`, which is `{ type: 'none' }` for dry-runs / already-up-to-date packages, `{ type: 'published' }` for direct publishes, or `{ type: 'staged', stageId }` for npm staged publishing.
61
- - Stage mode is npm-only. The package must already exist on npm, and automatic versioning in stage mode must be able to list pending staged versions before choosing the next version. If publish auth uses npm OIDC/trusted publishing, provide token-based metadata auth for that lookup.
62
- - `resolveAndLinkAll` returns a `ResolveAndLinkAllOutcome` whose `result` carries the resolved package information or details about the failure (validation errors, check failures, or partial execution issues).
63
- - `diffAgainstLatestPublished` returns a `ReleaseDiffAllOutcome` whose `result` carries the per-package release diff list or a failure variant.
64
- - `planReleaseAgainstLatestPublished` returns a `ReleasePlanOutcome` whose `result` carries `{ packages }` or a failure variant. Each package plan includes `previousVersion`, `nextVersion`, `artifactState`, `releaseClassification`, `changed`, `previousGitHead`, `currentGitHead`, `latestRegistryMetadata`, `artifactFiles`, `changedArtifactFiles`, `sourceFiles`, `changelogDependencyNames`, `changelogDependencyUpdates`, and `changelogSourceFiles`. `releaseClassification` matches the release analysis categories, including `dependency-only` for generated manifest and SBOM dependency changes. `sourceFiles` contains bundled source paths. `changelogSourceFiles` contains repository-relative files for changelog attribution, using readable JavaScript source maps when present. `changelogDependencyNames` contains generated package manifest dependencies whose published values changed. `changelogDependencyUpdates` contains the changed dependency names and current manifest specifiers used for dependency-only changelog titles. Package-level `additionalChangelogSourceFiles` can add other package attribution paths. `latestRegistryMetadata` includes the previous version, publish time, and previous registry `gitHead` when available.
65
- - `packPackage` returns a `PackOutcome` whose `result` is `Ok(undefined)` on success or a `PackFailure`. `PackFailure` is a discriminated union covering configuration errors, check failures, partial resolve failures, and the pack-specific variants `package-not-found`, `bundle-dependencies-unsupported` (rejected when `vendorDependencies` is `false` and the target declares `bundleDependencies`), and `peer-dependencies-unsatisfied` (raised when a vendored dependency declares a peer that no other vendored package satisfies).
53
+ `packPackage` options are `{ packageName, format, outputPath, version, vendorDependencies }`. `format` is `'zip'`, `'tar'`, or `'folder'`; `version` stamps the generated manifest; `vendorDependencies` materializes the resolved `node_modules` tree for self-contained artifacts.
66
54
 
67
- **Note:** Refer to the [full documentation](../../../readme.md) for additional details.
55
+ See the full configuration and workflow documentation in the repository readme.
@@ -36,6 +36,15 @@ export function withStageTimings(processor, progressBroadcaster) {
36
36
  emitTiming(progressBroadcaster, options.name, 'resolveAndLink', start);
37
37
  }
38
38
  },
39
+ async resolveAndLinkWithPromotedDeclarationCompanions(options, substitutedSourceFilePaths) {
40
+ const start = performance.now();
41
+ try {
42
+ return await processor.resolveAndLinkWithPromotedDeclarationCompanions(options, substitutedSourceFilePaths);
43
+ }
44
+ finally {
45
+ emitTiming(progressBroadcaster, options.name, 'resolveAndLink', start);
46
+ }
47
+ },
39
48
  async build(options) {
40
49
  const start = performance.now();
41
50
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../source/report/decorators.ts"],"names":[],"mappings":"AAKA,SAAS,UAAU,CACf,mBAA8C,EAC9C,WAAmB,EACnB,KAAgB,EAChB,KAAa;IAEb,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QACpD,OAAO;IACX,CAAC;IACD,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE;QACnC,WAAW;QACX,KAAK;QACL,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;KACxC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,mBAA8C,EAC9C,KAAgB,EAChB,OAAgD;IAEhD,OAAO,KAAK,WAAW,OAAiB;QACpC,IAAI,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,mBAAmB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtD,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE;oBACtC,WAAW,EAAE,OAAO,CAAC,IAAI;oBACzB,KAAK;oBACL,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClE,CAAC,CAAC;YACP,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,SAA2B,EAC3B,mBAA8C;IAE9C,OAAO;QACH,KAAK,CAAC,cAAc,CAAC,OAAO;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,OAAO,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;oBAAS,CAAC;gBACP,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,OAAO;YACf,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;oBAAS,CAAC;gBACP,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,OAAO;YACzB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,OAAO,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;oBAAS,CAAC;gBACP,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,OAAO;YAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,OAAO,MAAM,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACP,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../source/report/decorators.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,8 @@
1
1
  import { mergeDependencyFiles } from "../dependency-scanner/dependency-graph.js";
2
- import { declarationCompanionCandidates } from "../common/declaration-companion-paths.js";
3
2
  import { resolveRootsAndSurface } from "./resource-resolve-options.js";
4
3
  function emptyDependencyFiles() {
5
4
  return { externalDependencies: new Map(), localFiles: [] };
6
5
  }
7
- async function findReadableDeclarationCompanion(fileManager, filePath) {
8
- for (const candidate of declarationCompanionCandidates(filePath)) {
9
- const readability = await fileManager.checkReadability(candidate);
10
- if (readability.isReadable) {
11
- return candidate;
12
- }
13
- }
14
- return undefined;
15
- }
16
6
  async function scanDeclarationGraph(dependencies, options, entryFiles, scannedDeclarationFiles) {
17
7
  const pendingEntryFiles = entryFiles.filter(function (entryFile) {
18
8
  return !scannedDeclarationFiles.has(entryFile);
@@ -32,19 +22,6 @@ async function scanDeclarationGraph(dependencies, options, entryFiles, scannedDe
32
22
  return mergeDependencyFiles(result, declarationDependencyGraph.flatten(entryFile));
33
23
  }, emptyDependencyFiles());
34
24
  }
35
- async function collectDeclarationCompanionEntries(context, jsDependencies) {
36
- const companions = [];
37
- const nonRootLocalFiles = jsDependencies.localFiles.filter(function (localFile) {
38
- return !context.rootJsSourceFilePaths.has(localFile.filePath);
39
- });
40
- for (const localFile of nonRootLocalFiles) {
41
- const declarationCompanion = await findReadableDeclarationCompanion(context.dependencies.fileManager, localFile.filePath);
42
- if (declarationCompanion !== undefined) {
43
- companions.push(declarationCompanion);
44
- }
45
- }
46
- return companions;
47
- }
48
25
  function createDeclarationScanTracker() {
49
26
  const scannedDeclarationFiles = new Set();
50
27
  return {
@@ -66,39 +43,32 @@ async function resolveJsDependencies(context, root) {
66
43
  });
67
44
  return jsDependencyGraph.flatten(root.js);
68
45
  }
69
- async function resolveRootDeclarationDependencies(context, root, jsDependencies) {
46
+ async function resolveRootDeclarationDependencies(context, root) {
70
47
  const entryFiles = [];
71
48
  if (root.declarationFile !== undefined) {
72
49
  entryFiles.push(root.declarationFile);
73
50
  }
74
- if (context.packageHasDeclarationRoots) {
75
- entryFiles.push(...await collectDeclarationCompanionEntries(context, jsDependencies));
76
- }
77
51
  return scanDeclarationGraph(context.dependencies, context.options, entryFiles, context.scannedDeclarationFiles);
78
52
  }
79
53
  async function resolveDependenciesForRoot(context, root) {
80
54
  const jsDependencies = await resolveJsDependencies(context, root);
81
- const declarationDependencies = await resolveRootDeclarationDependencies(context, root, jsDependencies);
55
+ const declarationDependencies = await resolveRootDeclarationDependencies(context, root);
82
56
  return mergeDependencyFiles(jsDependencies, declarationDependencies);
83
57
  }
84
- export async function resolveDependenciesForAllRoots(dependencies, options) {
58
+ export async function resolveDependenciesForAllRoots(dependencies, options, promotedDeclarationEntryFiles) {
85
59
  const { roots } = resolveRootsAndSurface(options);
86
60
  const rootValues = Object.values(roots);
87
61
  const context = {
88
62
  dependencies,
89
63
  options,
90
- packageHasDeclarationRoots: rootValues.some(function (root) {
91
- return root.declarationFile !== undefined;
92
- }),
93
- rootJsSourceFilePaths: new Set(rootValues.map(function (root) {
94
- return root.js;
95
- })),
96
64
  scannedDeclarationFiles: createDeclarationScanTracker()
97
65
  };
98
66
  let dependencyFiles = emptyDependencyFiles();
99
67
  for (const root of rootValues) {
100
68
  dependencyFiles = mergeDependencyFiles(dependencyFiles, await resolveDependenciesForRoot(context, root));
101
69
  }
70
+ const promotedDeclarationDependencies = await scanDeclarationGraph(dependencies, options, promotedDeclarationEntryFiles, context.scannedDeclarationFiles);
71
+ dependencyFiles = mergeDependencyFiles(dependencyFiles, promotedDeclarationDependencies);
102
72
  return dependencyFiles;
103
73
  }
104
74
  //# sourceMappingURL=dependency-resolution-walker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolution-walker.js","sourceRoot":"","sources":["../../../../source/resource-resolver/dependency-resolution-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-resolution-walker.js","sourceRoot":"","sources":["../../../../source/resource-resolver/dependency-resolution-walker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-resolver.d.ts","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC;AAIlE,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,sBAAsB;AAC3E,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,+BAA+B"}
1
+ {"version":3,"file":"resource-resolver.d.ts","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC;AAKlE,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,sBAAsB;AAC3E,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,+BAA+B"}
@@ -1,3 +1,4 @@
1
+ import { declarationCompanionCandidates } from "../common/declaration-companion-paths.js";
1
2
  import { combineAllBundleFiles } from "./content.js";
2
3
  import { buildResolvedRoots } from "./bundle-resource-lookup.js";
3
4
  import { resolveDependenciesForAllRoots } from "./dependency-resolution-walker.js";
@@ -6,6 +7,31 @@ const packageJsonIndentationSpaces = 4;
6
7
  function serializeVirtualManifest(mainPackageJson) {
7
8
  return `${JSON.stringify(mainPackageJson, null, packageJsonIndentationSpaces)}\n`;
8
9
  }
10
+ function hasDeclarationRoots(options) {
11
+ const normalized = resolveRootsAndSurface(options);
12
+ return Object.values(normalized.roots).some(function (root) {
13
+ return root.declarationFile !== undefined;
14
+ });
15
+ }
16
+ async function findReadableDeclarationCompanion(fileManager, sourceFilePath) {
17
+ for (const candidate of declarationCompanionCandidates(sourceFilePath)) {
18
+ const readability = await fileManager.checkReadability(candidate);
19
+ if (readability.isReadable) {
20
+ return candidate;
21
+ }
22
+ }
23
+ return undefined;
24
+ }
25
+ async function findReadableDeclarationCompanions(fileManager, substitutedSourceFilePaths) {
26
+ const companions = [];
27
+ for (const sourceFilePath of substitutedSourceFilePaths) {
28
+ const companion = await findReadableDeclarationCompanion(fileManager, sourceFilePath);
29
+ if (companion !== undefined) {
30
+ companions.push(companion);
31
+ }
32
+ }
33
+ return companions;
34
+ }
9
35
  async function resolveFileDescription(fileManager, bundleFile, mainPackageJson) {
10
36
  if (bundleFile.isGeneratedManifest) {
11
37
  return {
@@ -19,29 +45,39 @@ async function resolveFileDescription(fileManager, bundleFile, mainPackageJson)
19
45
  }
20
46
  export function createResourceResolver(dependencies) {
21
47
  const { dependencyScanner, fileManager } = dependencies;
22
- return {
23
- async resolve(options) {
24
- const normalized = resolveRootsAndSurface(options);
25
- const resolvedDependencies = await resolveDependenciesForAllRoots({ dependencyScanner, fileManager }, options);
26
- const bundleFiles = combineAllBundleFiles(options.sourcesFolder, resolvedDependencies.localFiles, options.additionalFiles);
27
- const contents = await Promise.all(bundleFiles.map(async function (bundleFile) {
28
- const fileDescription = await resolveFileDescription(fileManager, bundleFile, options.mainPackageJson);
29
- return {
30
- fileDescription,
31
- directDependencies: bundleFile.directDependencies,
32
- project: bundleFile.project,
33
- isExplicitlyIncluded: bundleFile.isExplicitlyIncluded,
34
- ...bundleFile.isGeneratedManifest ? { isGeneratedManifest: true } : {}
35
- };
36
- }));
48
+ async function resolveWithPromotedDeclarations(options, promotedDeclarationEntryFiles) {
49
+ const normalized = resolveRootsAndSurface(options);
50
+ const resolvedDependencies = await resolveDependenciesForAllRoots({ dependencyScanner, fileManager }, options, promotedDeclarationEntryFiles);
51
+ const bundleFiles = combineAllBundleFiles(options.sourcesFolder, resolvedDependencies.localFiles, options.additionalFiles);
52
+ const contents = await Promise.all(bundleFiles.map(async function (bundleFile) {
53
+ const fileDescription = await resolveFileDescription(fileManager, bundleFile, options.mainPackageJson);
37
54
  return {
38
- contents,
39
- name: options.name,
40
- exportPackageJson: options.exportPackageJson,
41
- surface: normalized.surface,
42
- externalDependencies: resolvedDependencies.externalDependencies,
43
- roots: buildResolvedRoots(normalized, contents)
55
+ fileDescription,
56
+ directDependencies: bundleFile.directDependencies,
57
+ project: bundleFile.project,
58
+ isExplicitlyIncluded: bundleFile.isExplicitlyIncluded,
59
+ ...bundleFile.isGeneratedManifest ? { isGeneratedManifest: true } : {}
44
60
  };
61
+ }));
62
+ return {
63
+ contents,
64
+ name: options.name,
65
+ exportPackageJson: options.exportPackageJson,
66
+ surface: normalized.surface,
67
+ externalDependencies: resolvedDependencies.externalDependencies,
68
+ roots: buildResolvedRoots(normalized, contents)
69
+ };
70
+ }
71
+ return {
72
+ async resolve(options) {
73
+ return await resolveWithPromotedDeclarations(options, []);
74
+ },
75
+ resolveWithPromotedDeclarations,
76
+ async resolveWithPromotedDeclarationCompanions(options, substitutedSourceFilePaths) {
77
+ const promotedDeclarationEntryFiles = hasDeclarationRoots(options)
78
+ ? await findReadableDeclarationCompanions(fileManager, substitutedSourceFilePaths)
79
+ : [];
80
+ return await resolveWithPromotedDeclarations(options, promotedDeclarationEntryFiles);
45
81
  }
46
82
  };
47
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAA+B,MAAM,+BAA+B,CAAC;AAWpG,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAQvC,SAAS,wBAAwB,CAAC,eAA0D;IACxF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,WAAwB,EACxB,UAAsC,EACtC,eAA0D;IAE1D,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO;YACH,OAAO,EAAE,wBAAwB,CAAC,eAAe,CAAC;YAClD,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,cAAc,EAAE,UAAU,CAAC,cAAc;SAC5C,CAAC;IACN,CAAC;IAED,OAAO,MAAM,WAAW,CAAC,sCAAsC,CAC3D,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,cAAc,CAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAA0C;IAC7E,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAExD,OAAO;QACH,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,oBAAoB,GAAG,MAAM,8BAA8B,CAC7D,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAClC,OAAO,CACV,CAAC;YAEF,MAAM,WAAW,GAAG,qBAAqB,CACrC,OAAO,CAAC,aAAa,EACrB,oBAAoB,CAAC,UAAU,EAC/B,OAAO,CAAC,eAAe,CAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,WAAW,UAAU;gBACtC,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAChD,WAAW,EACX,UAAU,EACV,OAAO,CAAC,eAAe,CAC1B,CAAC;gBAEF,OAAO;oBACH,eAAe;oBACf,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;oBACjD,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;oBACrD,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;iBACzE,CAAC;YACN,CAAC,CAAC,CACL,CAAC;YAEF,OAAO;gBACH,QAAQ;gBACR,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,oBAAoB,EAAE,oBAAoB,CAAC,oBAAoB;gBAC/D,KAAK,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC;aAClD,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"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"}
package/sbom.cdx.json CHANGED
@@ -16,9 +16,9 @@
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "packtory",
19
- "version": "0.0.72",
20
- "bom-ref": "pkg:npm/packtory@0.0.72",
21
- "purl": "pkg:npm/packtory@0.0.72"
19
+ "version": "0.0.74",
20
+ "bom-ref": "pkg:npm/packtory@0.0.74",
21
+ "purl": "pkg:npm/packtory@0.0.74"
22
22
  }
23
23
  },
24
24
  "components": [
@@ -392,7 +392,7 @@
392
392
  "ref": "pkg:npm/npm-registry-fetch@20.0.1"
393
393
  },
394
394
  {
395
- "ref": "pkg:npm/packtory@0.0.72",
395
+ "ref": "pkg:npm/packtory@0.0.74",
396
396
  "dependsOn": [
397
397
  "pkg:npm/@arethetypeswrong/core@0.18.5",
398
398
  "pkg:npm/@cyclonedx/cyclonedx-library@10.1.0",
@@ -1,33 +0,0 @@
1
- import { Node as TsMorphNode } from 'ts-morph';
2
- import { variableDeclarationSurvives } from "../variable-declaration-bindings.js";
3
- import { isNamedDeclaration } from "./named-declaration-kinds.js";
4
- function captureSurvivor(node) {
5
- return { node, originalStart: node.getStart(), originalEnd: node.getEnd() };
6
- }
7
- function captureNamedDeclarationSurvivor(statement, survivingNames) {
8
- const name = statement.getName();
9
- if (name === undefined || survivingNames.has(name)) {
10
- return [captureSurvivor(statement)];
11
- }
12
- return [];
13
- }
14
- function captureVariableStatementSurvivors(statement, survivingNames) {
15
- const declarators = statement.getDeclarations();
16
- const survivingDeclarators = declarators.filter(function (declarator) {
17
- return variableDeclarationSurvives(declarator, survivingNames);
18
- });
19
- if (survivingDeclarators.length === declarators.length) {
20
- return [captureSurvivor(statement)];
21
- }
22
- return survivingDeclarators.map(captureSurvivor);
23
- }
24
- export function captureSurvivorsForStatement(statement, survivingNames) {
25
- if (isNamedDeclaration(statement)) {
26
- return captureNamedDeclarationSurvivor(statement, survivingNames);
27
- }
28
- if (TsMorphNode.isVariableStatement(statement)) {
29
- return captureVariableStatementSurvivors(statement, survivingNames);
30
- }
31
- return [captureSurvivor(statement)];
32
- }
33
- //# sourceMappingURL=survivor-capture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"survivor-capture.js","sourceRoot":"","sources":["../../../../../source/dead-code-eliminator/transform/survivor-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAoE,MAAM,UAAU,CAAC;AACjH,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAuB,MAAM,8BAA8B,CAAC;AAQvF,SAAS,eAAe,CAAC,IAAqC;IAC1D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,+BAA+B,CACpC,SAAyB,EACzB,cAAmC;IAEnC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,CAAE,eAAe,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,iCAAiC,CACtC,SAA4B,EAC5B,cAAmC;IAEnC,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;IAChD,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,UAAU;QAChE,OAAO,2BAA2B,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,IAAI,oBAAoB,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,CAAE,eAAe,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1C,CAAC;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,SAAoB,EACpB,cAAmC;IAEnC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,+BAA+B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,iCAAiC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAE,eAAe,CAAC,SAAS,CAAC,CAAE,CAAC;AAC1C,CAAC"}