cdktn 0.25.0-pre.39 → 0.25.0-pre.40

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 (60) hide show
  1. package/.jsii +388 -88
  2. package/lib/annotations.js +1 -1
  3. package/lib/app.js +1 -1
  4. package/lib/aspect.js +1 -1
  5. package/lib/asset-hash.js +1 -1
  6. package/lib/asset-staging.d.ts +29 -13
  7. package/lib/asset-staging.js +82 -30
  8. package/lib/assets.d.ts +149 -49
  9. package/lib/assets.js +161 -18
  10. package/lib/backends/azurerm-backend.js +2 -2
  11. package/lib/backends/cloud-backend.js +4 -4
  12. package/lib/backends/consul-backend.js +2 -2
  13. package/lib/backends/cos-backend.js +2 -2
  14. package/lib/backends/gcs-backend.js +2 -2
  15. package/lib/backends/http-backend.js +2 -2
  16. package/lib/backends/local-backend.js +2 -2
  17. package/lib/backends/oss-backend.js +2 -2
  18. package/lib/backends/pg-backend.js +2 -2
  19. package/lib/backends/remote-backend.js +4 -4
  20. package/lib/backends/s3-backend.js +2 -2
  21. package/lib/backends/swift-backend.js +2 -2
  22. package/lib/complex-computed-list.js +26 -26
  23. package/lib/errors.d.ts +7 -1
  24. package/lib/errors.js +22 -9
  25. package/lib/functions/provider-function.js +1 -1
  26. package/lib/functions/terraform-functions.generated.js +1 -1
  27. package/lib/ignore-strategy.js +1 -1
  28. package/lib/importable-resource.js +1 -1
  29. package/lib/manifest.js +1 -1
  30. package/lib/resource.js +1 -1
  31. package/lib/terraform-asset.d.ts +4 -5
  32. package/lib/terraform-asset.js +42 -17
  33. package/lib/terraform-backend.js +1 -1
  34. package/lib/terraform-count.js +1 -1
  35. package/lib/terraform-data-resource.js +1 -1
  36. package/lib/terraform-data-source.js +1 -1
  37. package/lib/terraform-element.js +1 -1
  38. package/lib/terraform-ephemeral-resource.js +1 -1
  39. package/lib/terraform-functions.js +1 -1
  40. package/lib/terraform-hcl-module.js +1 -1
  41. package/lib/terraform-iterator.js +5 -5
  42. package/lib/terraform-local.js +1 -1
  43. package/lib/terraform-module.js +1 -1
  44. package/lib/terraform-operators.js +1 -1
  45. package/lib/terraform-output.js +1 -1
  46. package/lib/terraform-provider.js +1 -1
  47. package/lib/terraform-provisioner.js +1 -1
  48. package/lib/terraform-remote-state.js +1 -1
  49. package/lib/terraform-resource-targets.js +1 -1
  50. package/lib/terraform-resource.js +1 -1
  51. package/lib/terraform-stack.js +1 -1
  52. package/lib/terraform-variable.js +2 -2
  53. package/lib/testing/index.js +1 -1
  54. package/lib/testing/matchers.js +1 -1
  55. package/lib/tokens/lazy.js +2 -2
  56. package/lib/tokens/resolvable.js +2 -2
  57. package/lib/tokens/string-fragments.js +1 -1
  58. package/lib/tokens/token.js +2 -2
  59. package/lib/upgrade-id-aspect.js +1 -1
  60. package/package.json +1 -1
package/.jsii CHANGED
@@ -1546,7 +1546,7 @@
1546
1546
  "cdktn.AssetHashType": {
1547
1547
  "assembly": "cdktn",
1548
1548
  "docs": {
1549
- "remarks": "NOTE: the hash is used in order to identify a specific revision of the asset, and\nused for optimizing and caching deployment activities related to this asset such as\npackaging, uploading to cloud storage, etc.",
1549
+ "remarks": "The hash identifies a specific revision of the asset and caches deployment\nwork such as packaging and uploading.",
1550
1550
  "stability": "experimental",
1551
1551
  "summary": "The type of asset hash."
1552
1552
  },
@@ -1554,12 +1554,12 @@
1554
1554
  "kind": "enum",
1555
1555
  "locationInModule": {
1556
1556
  "filename": "src/assets.ts",
1557
- "line": 59
1557
+ "line": 63
1558
1558
  },
1559
1559
  "members": [
1560
1560
  {
1561
1561
  "docs": {
1562
- "remarks": "Use `SOURCE` when the content of the asset changes frequently or when\nyou want to track changes to the source files directly.",
1562
+ "remarks": "Use `SOURCE` to track changes to the source files directly.",
1563
1563
  "stability": "experimental",
1564
1564
  "summary": "Based on the content of the source path."
1565
1565
  },
@@ -1567,7 +1567,7 @@
1567
1567
  },
1568
1568
  {
1569
1569
  "docs": {
1570
- "remarks": "Use `OUTPUT` when the source of the asset is a top level folder containing\ncode and/or dependencies that are not directly linked to the asset.",
1570
+ "remarks": "Use `OUTPUT` when the source is a top-level folder holding code and/or\ndependencies not directly linked to the asset.",
1571
1571
  "stability": "experimental",
1572
1572
  "summary": "Based on the content of the bundling output."
1573
1573
  },
@@ -1589,13 +1589,13 @@
1589
1589
  "datatype": true,
1590
1590
  "docs": {
1591
1591
  "stability": "experimental",
1592
- "summary": "Asset hash options."
1592
+ "summary": "Options controlling how an asset's hash is derived."
1593
1593
  },
1594
1594
  "fqn": "cdktn.AssetOptions",
1595
1595
  "kind": "interface",
1596
1596
  "locationInModule": {
1597
1597
  "filename": "src/assets.ts",
1598
- "line": 23
1598
+ "line": 30
1599
1599
  },
1600
1600
  "name": "AssetOptions",
1601
1601
  "properties": [
@@ -1603,14 +1603,14 @@
1603
1603
  "abstract": true,
1604
1604
  "docs": {
1605
1605
  "default": "- based on `assetHashType`",
1606
- "remarks": "If `assetHashType` is set it must\nbe set to `AssetHashType.CUSTOM`. The value is used verbatim as the asset\nhash, and because it names the staged asset file it may only contain\nletters, digits, `_`, `.` and `-`.\n\nNOTE: the hash is used in order to identify a specific revision of the asset, and\nused for optimizing and caching deployment activities related to this asset such as\npackaging, uploading to cloud storage, etc. If you chose to customize the hash, you will\nneed to make sure it is updated every time the asset changes, or otherwise it is\npossible that some deployments will not be invalidated.",
1606
+ "remarks": "If `assetHashType` is set it must\nbe set to `AssetHashType.CUSTOM`. The value is used verbatim as the asset\nhash, and because it names the staged asset file it may only contain\nletters, digits, `_`, `.` and `-`.\n\nThe hash identifies a specific revision of the asset and caches deployment\nwork (packaging, uploading). A custom hash must be updated whenever the\nasset changes, or some deployments will not be invalidated.",
1607
1607
  "stability": "experimental",
1608
1608
  "summary": "Specify a custom hash for this asset."
1609
1609
  },
1610
1610
  "immutable": true,
1611
1611
  "locationInModule": {
1612
1612
  "filename": "src/assets.ts",
1613
- "line": 38
1613
+ "line": 43
1614
1614
  },
1615
1615
  "name": "assetHash",
1616
1616
  "optional": true,
@@ -1629,7 +1629,7 @@
1629
1629
  "immutable": true,
1630
1630
  "locationInModule": {
1631
1631
  "filename": "src/assets.ts",
1632
- "line": 49
1632
+ "line": 54
1633
1633
  },
1634
1634
  "name": "assetHashType",
1635
1635
  "optional": true,
@@ -1651,7 +1651,7 @@
1651
1651
  "kind": "class",
1652
1652
  "locationInModule": {
1653
1653
  "filename": "src/assets.ts",
1654
- "line": 220
1654
+ "line": 223
1655
1655
  },
1656
1656
  "name": "AssetPackaging",
1657
1657
  "properties": [
@@ -1664,7 +1664,7 @@
1664
1664
  "immutable": true,
1665
1665
  "locationInModule": {
1666
1666
  "filename": "src/assets.ts",
1667
- "line": 229
1667
+ "line": 232
1668
1668
  },
1669
1669
  "name": "DIRECTORY",
1670
1670
  "static": true,
@@ -1681,7 +1681,7 @@
1681
1681
  "immutable": true,
1682
1682
  "locationInModule": {
1683
1683
  "filename": "src/assets.ts",
1684
- "line": 224
1684
+ "line": 227
1685
1685
  },
1686
1686
  "name": "FILE",
1687
1687
  "static": true,
@@ -1698,7 +1698,7 @@
1698
1698
  "immutable": true,
1699
1699
  "locationInModule": {
1700
1700
  "filename": "src/assets.ts",
1701
- "line": 234
1701
+ "line": 237
1702
1702
  },
1703
1703
  "name": "ZIP",
1704
1704
  "static": true,
@@ -1724,7 +1724,7 @@
1724
1724
  },
1725
1725
  "locationInModule": {
1726
1726
  "filename": "src/asset-staging.ts",
1727
- "line": 220
1727
+ "line": 231
1728
1728
  },
1729
1729
  "parameters": [
1730
1730
  {
@@ -1753,7 +1753,7 @@
1753
1753
  "kind": "class",
1754
1754
  "locationInModule": {
1755
1755
  "filename": "src/asset-staging.ts",
1756
- "line": 193
1756
+ "line": 200
1757
1757
  },
1758
1758
  "methods": [
1759
1759
  {
@@ -1764,7 +1764,7 @@
1764
1764
  },
1765
1765
  "locationInModule": {
1766
1766
  "filename": "src/asset-staging.ts",
1767
- "line": 420
1767
+ "line": 499
1768
1768
  },
1769
1769
  "name": "stage",
1770
1770
  "parameters": [
@@ -1781,14 +1781,14 @@
1781
1781
  "properties": [
1782
1782
  {
1783
1783
  "docs": {
1784
- "remarks": "As this is a plain string, it\ncan be used in construct IDs in order to enforce creation of a new resource when the content\nhash has changed.",
1784
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
1785
1785
  "stability": "experimental",
1786
- "summary": "A hash of this asset, which is available at construction time."
1786
+ "summary": "A hash of this asset, available at construction time."
1787
1787
  },
1788
1788
  "immutable": true,
1789
1789
  "locationInModule": {
1790
1790
  "filename": "src/asset-staging.ts",
1791
- "line": 218
1791
+ "line": 229
1792
1792
  },
1793
1793
  "name": "assetHash",
1794
1794
  "overrides": "cdktn.IAsset",
@@ -1803,7 +1803,7 @@
1803
1803
  "immutable": true,
1804
1804
  "locationInModule": {
1805
1805
  "filename": "src/asset-staging.ts",
1806
- "line": 217
1806
+ "line": 228
1807
1807
  },
1808
1808
  "name": "isDirectory",
1809
1809
  "type": {
@@ -1817,7 +1817,7 @@
1817
1817
  "immutable": true,
1818
1818
  "locationInModule": {
1819
1819
  "filename": "src/asset-staging.ts",
1820
- "line": 216
1820
+ "line": 227
1821
1821
  },
1822
1822
  "name": "packaging",
1823
1823
  "type": {
@@ -1841,7 +1841,7 @@
1841
1841
  "kind": "interface",
1842
1842
  "locationInModule": {
1843
1843
  "filename": "src/asset-staging.ts",
1844
- "line": 123
1844
+ "line": 128
1845
1845
  },
1846
1846
  "name": "AssetStagingOptions",
1847
1847
  "properties": [
@@ -1855,7 +1855,7 @@
1855
1855
  "immutable": true,
1856
1856
  "locationInModule": {
1857
1857
  "filename": "src/asset-staging.ts",
1858
- "line": 135
1858
+ "line": 140
1859
1859
  },
1860
1860
  "name": "packaging",
1861
1861
  "type": {
@@ -1872,7 +1872,7 @@
1872
1872
  "immutable": true,
1873
1873
  "locationInModule": {
1874
1874
  "filename": "src/asset-staging.ts",
1875
- "line": 128
1875
+ "line": 133
1876
1876
  },
1877
1877
  "name": "sourcePath",
1878
1878
  "type": {
@@ -1883,14 +1883,14 @@
1883
1883
  "abstract": true,
1884
1884
  "docs": {
1885
1885
  "default": "- the source is staged verbatim, with no build step",
1886
- "remarks": "Under the default `SOURCE` hashing the build is deferred to `stage()` and\nstays skippable; `OUTPUT` hashing builds eagerly at construction time to\nhash the artifact, forgoing skippability. A bundler always produces a\ndirectory, so single-file packaging (`AssetType.FILE`) is rejected.",
1886
+ "remarks": "Under the default `SOURCE` hashing the build is deferred to `stage()` and\nstays skippable; `OUTPUT` hashing builds eagerly at construction time to\nhash the artifact, forgoing skippability. The bundler's declared output\nshape must match the packaging: a `BundleResult.directory` needs a\ndirectory-accepting packaging, a `BundleResult.file` a single-file one\n(`AssetType.FILE`). The mismatch is caught once the build runs.",
1887
1887
  "stability": "experimental",
1888
1888
  "summary": "A bundler that builds the source into an artifact before staging."
1889
1889
  },
1890
1890
  "immutable": true,
1891
1891
  "locationInModule": {
1892
1892
  "filename": "src/asset-staging.ts",
1893
- "line": 172
1893
+ "line": 179
1894
1894
  },
1895
1895
  "name": "bundler",
1896
1896
  "optional": true,
@@ -1908,7 +1908,7 @@
1908
1908
  "immutable": true,
1909
1909
  "locationInModule": {
1910
1910
  "filename": "src/asset-staging.ts",
1911
- "line": 180
1911
+ "line": 187
1912
1912
  },
1913
1913
  "name": "displayName",
1914
1914
  "optional": true,
@@ -1927,7 +1927,7 @@
1927
1927
  "immutable": true,
1928
1928
  "locationInModule": {
1929
1929
  "filename": "src/asset-staging.ts",
1930
- "line": 144
1930
+ "line": 149
1931
1931
  },
1932
1932
  "name": "exclude",
1933
1933
  "optional": true,
@@ -1950,7 +1950,7 @@
1950
1950
  "immutable": true,
1951
1951
  "locationInModule": {
1952
1952
  "filename": "src/asset-staging.ts",
1953
- "line": 160
1953
+ "line": 165
1954
1954
  },
1955
1955
  "name": "extraHash",
1956
1956
  "optional": true,
@@ -1968,7 +1968,7 @@
1968
1968
  "immutable": true,
1969
1969
  "locationInModule": {
1970
1970
  "filename": "src/asset-staging.ts",
1971
- "line": 152
1971
+ "line": 157
1972
1972
  },
1973
1973
  "name": "ignoreStrategy",
1974
1974
  "optional": true,
@@ -1988,7 +1988,7 @@
1988
1988
  "kind": "enum",
1989
1989
  "locationInModule": {
1990
1990
  "filename": "src/terraform-asset.ts",
1991
- "line": 76
1991
+ "line": 78
1992
1992
  },
1993
1993
  "members": [
1994
1994
  {
@@ -3432,21 +3432,21 @@
3432
3432
  "kind": "interface",
3433
3433
  "locationInModule": {
3434
3434
  "filename": "src/assets.ts",
3435
- "line": 246
3435
+ "line": 249
3436
3436
  },
3437
3437
  "name": "BundleOptions",
3438
3438
  "properties": [
3439
3439
  {
3440
3440
  "abstract": true,
3441
3441
  "docs": {
3442
- "remarks": "The bundler produces its output here (or in a subdirectory) and\nreturns the directory that holds the finished artifact — see\n{@link IAssetBundler.bundle}.",
3442
+ "remarks": "The bundler produces its output here (or in a subdirectory) and\nreturns a {@link BundleResult} pointing at the finished artifact — see\n{@link IAssetBundler.bundle}.",
3443
3443
  "stability": "experimental",
3444
3444
  "summary": "A scratch directory the bundler may write into, owned and created by the caller."
3445
3445
  },
3446
3446
  "immutable": true,
3447
3447
  "locationInModule": {
3448
3448
  "filename": "src/assets.ts",
3449
- "line": 263
3449
+ "line": 266
3450
3450
  },
3451
3451
  "name": "outputDir",
3452
3452
  "type": {
@@ -3463,7 +3463,7 @@
3463
3463
  "immutable": true,
3464
3464
  "locationInModule": {
3465
3465
  "filename": "src/assets.ts",
3466
- "line": 255
3466
+ "line": 258
3467
3467
  },
3468
3468
  "name": "source",
3469
3469
  "type": {
@@ -3473,11 +3473,179 @@
3473
3473
  ],
3474
3474
  "symbolId": "src/assets:BundleOptions"
3475
3475
  },
3476
+ "cdktn.BundleOutputType": {
3477
+ "assembly": "cdktn",
3478
+ "docs": {
3479
+ "stability": "experimental",
3480
+ "summary": "The shape of a bundler's output, so staging and packaging can treat a single-file artifact (a tarball, a `.zip`) differently from a directory tree without inferring it from the path."
3481
+ },
3482
+ "fqn": "cdktn.BundleOutputType",
3483
+ "kind": "enum",
3484
+ "locationInModule": {
3485
+ "filename": "src/assets.ts",
3486
+ "line": 274
3487
+ },
3488
+ "members": [
3489
+ {
3490
+ "docs": {
3491
+ "remarks": "Packaged like an unbundled source directory. The default, and the only\nshape that predates archive support.",
3492
+ "stability": "experimental",
3493
+ "summary": "The output is a directory tree."
3494
+ },
3495
+ "name": "DIRECTORY"
3496
+ },
3497
+ {
3498
+ "docs": {
3499
+ "remarks": "A tarball or a deterministic `.zip`. Staged verbatim rather than\nre-archived, so `AssetType.FILE` no longer has to reject a bundler.",
3500
+ "stability": "experimental",
3501
+ "summary": "The output is a single file the bundler already produced in its final form."
3502
+ },
3503
+ "name": "FILE"
3504
+ }
3505
+ ],
3506
+ "name": "BundleOutputType",
3507
+ "symbolId": "src/assets:BundleOutputType"
3508
+ },
3509
+ "cdktn.BundleResult": {
3510
+ "assembly": "cdktn",
3511
+ "docs": {
3512
+ "remarks": "Carries the artifact path and its shape, or a declined state signalling the\ncaller should fall back. See {@link declined} for the decline protocol.",
3513
+ "stability": "experimental",
3514
+ "summary": "What a bundler produced, returned from {@link IAssetBundler.bundle}."
3515
+ },
3516
+ "fqn": "cdktn.BundleResult",
3517
+ "kind": "class",
3518
+ "locationInModule": {
3519
+ "filename": "src/assets.ts",
3520
+ "line": 299
3521
+ },
3522
+ "methods": [
3523
+ {
3524
+ "docs": {
3525
+ "remarks": "Distinct from a thrown error, which is a hard failure.",
3526
+ "stability": "experimental",
3527
+ "summary": "The bundler declined to run here; the caller should fall back."
3528
+ },
3529
+ "locationInModule": {
3530
+ "filename": "src/assets.ts",
3531
+ "line": 319
3532
+ },
3533
+ "name": "declined",
3534
+ "returns": {
3535
+ "type": {
3536
+ "fqn": "cdktn.BundleResult"
3537
+ }
3538
+ },
3539
+ "static": true
3540
+ },
3541
+ {
3542
+ "docs": {
3543
+ "stability": "experimental",
3544
+ "summary": "A directory-tree artifact at `path`."
3545
+ },
3546
+ "locationInModule": {
3547
+ "filename": "src/assets.ts",
3548
+ "line": 303
3549
+ },
3550
+ "name": "directory",
3551
+ "parameters": [
3552
+ {
3553
+ "name": "path",
3554
+ "type": {
3555
+ "primitive": "string"
3556
+ }
3557
+ }
3558
+ ],
3559
+ "returns": {
3560
+ "type": {
3561
+ "fqn": "cdktn.BundleResult"
3562
+ }
3563
+ },
3564
+ "static": true
3565
+ },
3566
+ {
3567
+ "docs": {
3568
+ "stability": "experimental",
3569
+ "summary": "A single-file artifact at `path` (a tarball, a `.zip`), staged verbatim."
3570
+ },
3571
+ "locationInModule": {
3572
+ "filename": "src/assets.ts",
3573
+ "line": 310
3574
+ },
3575
+ "name": "file",
3576
+ "parameters": [
3577
+ {
3578
+ "name": "path",
3579
+ "type": {
3580
+ "primitive": "string"
3581
+ }
3582
+ }
3583
+ ],
3584
+ "returns": {
3585
+ "type": {
3586
+ "fqn": "cdktn.BundleResult"
3587
+ }
3588
+ },
3589
+ "static": true
3590
+ }
3591
+ ],
3592
+ "name": "BundleResult",
3593
+ "properties": [
3594
+ {
3595
+ "docs": {
3596
+ "stability": "experimental",
3597
+ "summary": "Whether the bundler declined to run, signalling the caller to fall back."
3598
+ },
3599
+ "immutable": true,
3600
+ "locationInModule": {
3601
+ "filename": "src/assets.ts",
3602
+ "line": 336
3603
+ },
3604
+ "name": "isDeclined",
3605
+ "type": {
3606
+ "primitive": "boolean"
3607
+ }
3608
+ },
3609
+ {
3610
+ "docs": {
3611
+ "stability": "experimental",
3612
+ "summary": "The artifact's shape, or undefined when {@link isDeclined}."
3613
+ },
3614
+ "immutable": true,
3615
+ "locationInModule": {
3616
+ "filename": "src/assets.ts",
3617
+ "line": 326
3618
+ },
3619
+ "name": "outputType",
3620
+ "optional": true,
3621
+ "type": {
3622
+ "fqn": "cdktn.BundleOutputType"
3623
+ }
3624
+ },
3625
+ {
3626
+ "docs": {
3627
+ "stability": "experimental",
3628
+ "summary": "The artifact path, or undefined when {@link isDeclined}."
3629
+ },
3630
+ "immutable": true,
3631
+ "locationInModule": {
3632
+ "filename": "src/assets.ts",
3633
+ "line": 331
3634
+ },
3635
+ "name": "path",
3636
+ "optional": true,
3637
+ "type": {
3638
+ "primitive": "string"
3639
+ }
3640
+ }
3641
+ ],
3642
+ "symbolId": "src/assets:BundleResult"
3643
+ },
3476
3644
  "cdktn.BundlerKey": {
3477
3645
  "assembly": "cdktn",
3478
3646
  "docs": {
3479
3647
  "example": "const key = BundlerKey.of(\"docker\", image, command)\n .withEnv({ NODE_ENV: nodeEnv })\n .toString();",
3480
- "remarks": "A `bundlerKey` has to serialize everything that can move a build's output;\ndone ad hoc, every bundler invents its own delimiter and forgets an input\ndifferently. This gives the convention one implementation: parts are joined\nwith a separator that is escaped where it appears in a value, so distinct\ninputs can never collide into the same key (`[\"a:b\", \"c\"]` and\n`[\"a\", \"b:c\"]` stay different).",
3648
+ "remarks": "A `bundlerKey` has to serialize everything that can move a build's output;\ndone ad hoc, every bundler invents its own delimiter and forgets an input\ndifferently. This gives the convention one implementation: parts are joined\nwith a separator that is escaped inside values, so distinct inputs cannot\ncollide into the same key.",
3481
3649
  "stability": "experimental",
3482
3650
  "summary": "Builds an {@link IAssetBundler.bundlerKey} from an ordered set of parts."
3483
3651
  },
@@ -3485,7 +3653,7 @@
3485
3653
  "kind": "class",
3486
3654
  "locationInModule": {
3487
3655
  "filename": "src/assets.ts",
3488
- "line": 333
3656
+ "line": 432
3489
3657
  },
3490
3658
  "methods": [
3491
3659
  {
@@ -3496,7 +3664,7 @@
3496
3664
  },
3497
3665
  "locationInModule": {
3498
3666
  "filename": "src/assets.ts",
3499
- "line": 339
3667
+ "line": 438
3500
3668
  },
3501
3669
  "name": "of",
3502
3670
  "parameters": [
@@ -3523,7 +3691,7 @@
3523
3691
  },
3524
3692
  "locationInModule": {
3525
3693
  "filename": "src/assets.ts",
3526
- "line": 352
3694
+ "line": 451
3527
3695
  },
3528
3696
  "name": "add",
3529
3697
  "parameters": [
@@ -3549,7 +3717,7 @@
3549
3717
  },
3550
3718
  "locationInModule": {
3551
3719
  "filename": "src/assets.ts",
3552
- "line": 370
3720
+ "line": 469
3553
3721
  },
3554
3722
  "name": "toString",
3555
3723
  "returns": {
@@ -3565,7 +3733,7 @@
3565
3733
  },
3566
3734
  "locationInModule": {
3567
3735
  "filename": "src/assets.ts",
3568
- "line": 360
3736
+ "line": 459
3569
3737
  },
3570
3738
  "name": "withEnv",
3571
3739
  "parameters": [
@@ -3591,6 +3759,119 @@
3591
3759
  "name": "BundlerKey",
3592
3760
  "symbolId": "src/assets:BundlerKey"
3593
3761
  },
3762
+ "cdktn.ChainBundler": {
3763
+ "assembly": "cdktn",
3764
+ "docs": {
3765
+ "remarks": "This is how a local bundler and a Docker bundler compose without being\nrewritten as one: each leg declines (`BundleResult.declined()`) when it\ncannot run here, and the chain moves to the next. The first non-declining\nresult wins; if all decline, `bundle` throws, since staging has nothing to\nfall back to. Each leg builds into its own output directory, so a leg that\nwrites before declining cannot leak partial files into the leg that wins.\n\nThe chain's `bundlerKey` folds in *every* leg's key, so identity is the same\nregardless of which leg ends up running — a build that could have gone local\nor Docker is one asset, not two.\n\nThis makes the legs interchangeable only if they produce equivalent output.\nUnder `SOURCE` hashing they must: a machine with a host tool and one without\nrun different legs, and non-equivalent legs would stage different bytes under\nthe same hash. Use `OUTPUT` hashing when legs may diverge, so identity tracks\nthe artifact each leg actually produced.",
3766
+ "stability": "experimental",
3767
+ "summary": "Composes bundlers into a \"try each in order until one runs\" chain."
3768
+ },
3769
+ "fqn": "cdktn.ChainBundler",
3770
+ "interfaces": [
3771
+ "cdktn.IAssetBundler"
3772
+ ],
3773
+ "kind": "class",
3774
+ "locationInModule": {
3775
+ "filename": "src/assets.ts",
3776
+ "line": 494
3777
+ },
3778
+ "methods": [
3779
+ {
3780
+ "docs": {
3781
+ "remarks": "earlier bundlers are preferred.",
3782
+ "stability": "experimental",
3783
+ "summary": "Chain bundlers in the order given;"
3784
+ },
3785
+ "locationInModule": {
3786
+ "filename": "src/assets.ts",
3787
+ "line": 498
3788
+ },
3789
+ "name": "of",
3790
+ "parameters": [
3791
+ {
3792
+ "name": "bundlers",
3793
+ "type": {
3794
+ "fqn": "cdktn.IAssetBundler"
3795
+ },
3796
+ "variadic": true
3797
+ }
3798
+ ],
3799
+ "returns": {
3800
+ "type": {
3801
+ "fqn": "cdktn.ChainBundler"
3802
+ }
3803
+ },
3804
+ "static": true,
3805
+ "variadic": true
3806
+ },
3807
+ {
3808
+ "docs": {
3809
+ "remarks": "Implementations write into `options.outputDir` and never write back to\n`options.source`. The returned path must exist and match its declared\nshape, or staging rejects it.\n\nA bundler that cannot run in this environment returns\n`BundleResult.declined()` so a {@link ChainBundler} can fall through to\nthe next; a thrown error is a hard failure, not a decline.",
3810
+ "stability": "experimental",
3811
+ "summary": "Produce the artifact and return a {@link BundleResult} describing it."
3812
+ },
3813
+ "locationInModule": {
3814
+ "filename": "src/assets.ts",
3815
+ "line": 532
3816
+ },
3817
+ "name": "bundle",
3818
+ "overrides": "cdktn.IAssetBundler",
3819
+ "parameters": [
3820
+ {
3821
+ "name": "options",
3822
+ "type": {
3823
+ "fqn": "cdktn.BundleOptions"
3824
+ }
3825
+ }
3826
+ ],
3827
+ "returns": {
3828
+ "type": {
3829
+ "fqn": "cdktn.BundleResult"
3830
+ }
3831
+ }
3832
+ }
3833
+ ],
3834
+ "name": "ChainBundler",
3835
+ "properties": [
3836
+ {
3837
+ "docs": {
3838
+ "remarks": "The source tree alone cannot see the build, so swapping a `node:18` base\nimage for `node:20` would otherwise leave identity unchanged. Under\n`SOURCE` hashing this is the only channel by which the build reaches\nidentity, so it must serialize every input that can move the output, or a\nchanged build silently reuses a stale artifact. {@link BundlerKey} builds\none from an ordered set of parts.\n\nMirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be\nsummarized as a string, and fall back to `extraHash`.",
3839
+ "stability": "experimental",
3840
+ "summary": "A value identifying the build, folded into the asset hash."
3841
+ },
3842
+ "immutable": true,
3843
+ "locationInModule": {
3844
+ "filename": "src/assets.ts",
3845
+ "line": 502
3846
+ },
3847
+ "name": "bundlerKey",
3848
+ "optional": true,
3849
+ "overrides": "cdktn.IAssetBundler",
3850
+ "type": {
3851
+ "primitive": "string"
3852
+ }
3853
+ },
3854
+ {
3855
+ "docs": {
3856
+ "remarks": "A file-producing bundler (`BundleResult.file`) staged with\n`AssetType.FILE` would otherwise take the source path's basename, which is\na directory name when the source is a directory. Declaring the name here\nlets the artifact reflect what the bundler produces. It is static\nconfiguration, needed at construction before a deferred `SOURCE` build\nruns, not the file's runtime name.\n\nValid only for a file-producing bundler: setting it with a directory\npackaging (anything but `AssetType.FILE`) is rejected at construction.",
3857
+ "stability": "experimental",
3858
+ "summary": "The name a single-file artifact is staged under (e.g. `archive.zip`)."
3859
+ },
3860
+ "immutable": true,
3861
+ "locationInModule": {
3862
+ "filename": "src/assets.ts",
3863
+ "line": 504
3864
+ },
3865
+ "name": "outputFileName",
3866
+ "optional": true,
3867
+ "overrides": "cdktn.IAssetBundler",
3868
+ "type": {
3869
+ "primitive": "string"
3870
+ }
3871
+ }
3872
+ ],
3873
+ "symbolId": "src/assets:ChainBundler"
3874
+ },
3594
3875
  "cdktn.CloudBackend": {
3595
3876
  "assembly": "cdktn",
3596
3877
  "base": "cdktn.TerraformBackend",
@@ -12261,21 +12542,21 @@
12261
12542
  "kind": "interface",
12262
12543
  "locationInModule": {
12263
12544
  "filename": "src/assets.ts",
12264
- "line": 11
12545
+ "line": 17
12265
12546
  },
12266
12547
  "name": "IAsset",
12267
12548
  "properties": [
12268
12549
  {
12269
12550
  "abstract": true,
12270
12551
  "docs": {
12271
- "remarks": "As this is a plain string, it\ncan be used in construct IDs in order to enforce creation of a new resource when the content\nhash has changed.",
12552
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
12272
12553
  "stability": "experimental",
12273
- "summary": "A hash of this asset, which is available at construction time."
12554
+ "summary": "A hash of this asset, available at construction time."
12274
12555
  },
12275
12556
  "immutable": true,
12276
12557
  "locationInModule": {
12277
12558
  "filename": "src/assets.ts",
12278
- "line": 17
12559
+ "line": 24
12279
12560
  },
12280
12561
  "name": "assetHash",
12281
12562
  "type": {
@@ -12288,7 +12569,7 @@
12288
12569
  "cdktn.IAssetBundler": {
12289
12570
  "assembly": "cdktn",
12290
12571
  "docs": {
12291
- "remarks": "This is the extension point for asset bundling: core ships no bundler.\nDocker, esbuild, pip, `go build`, and similar are an open-ended set that\nis not cloud-specific, so each lives in its own package and implements this\none interface — the same way {@link IIgnoreStrategy} lets richer exclusion\nlive outside core without core taking on a glob parser. A third party\ndevelops a bundler by implementing this interface and publishing it as a\npackage; users pass an instance via the consuming construct's `bundler`\noption.\n\n`bundle` runs during the owning construct's `onSynthesize` hook and may\ntouch the filesystem. Deferring it there keeps it skippable when the asset's\nstack is not being synthesized, which holds as long as the hash is taken\nover the source rather than the built output.",
12572
+ "remarks": "This is the extension point for asset bundling: core ships no bundler.\nDocker, esbuild, pip, `go build`, and similar are an open-ended, non\ncloud-specific set, so each lives in its own package and implements this\none interface — the same way {@link IIgnoreStrategy} lets richer exclusion\nlive outside core. Users pass an instance via the consuming construct's\n`bundler` option.\n\n`bundle` runs during the owning construct's `onSynthesize` hook and may\ntouch the filesystem. Deferring it there keeps it skippable when the asset's\nstack is not being synthesized, which holds as long as the hash is taken\nover the source rather than the built output.\n\nBundlers compose through {@link ChainBundler} rather than a hierarchy: a\nbundler declines (see {@link BundleResult.declined}) instead of failing when\nit cannot run, and the chain falls through to the next.",
12292
12573
  "stability": "experimental",
12293
12574
  "summary": "Transforms a source tree into a built artifact. Runs at synth, before the output is packaged and staged."
12294
12575
  },
@@ -12296,19 +12577,19 @@
12296
12577
  "kind": "interface",
12297
12578
  "locationInModule": {
12298
12579
  "filename": "src/assets.ts",
12299
- "line": 284
12580
+ "line": 369
12300
12581
  },
12301
12582
  "methods": [
12302
12583
  {
12303
12584
  "abstract": true,
12304
12585
  "docs": {
12305
- "remarks": "Implementations write into `options.outputDir` and return it or a\nsubdirectory, never writing back to `options.source`. The returned\ndirectory is then packaged as an unbundled source directory would be.\nReturning a file, or a path that does not exist, is rejected — the\ncontract is a directory, and packaging always treats the result as one.",
12586
+ "remarks": "Implementations write into `options.outputDir` and never write back to\n`options.source`. The returned path must exist and match its declared\nshape, or staging rejects it.\n\nA bundler that cannot run in this environment returns\n`BundleResult.declined()` so a {@link ChainBundler} can fall through to\nthe next; a thrown error is a hard failure, not a decline.",
12306
12587
  "stability": "experimental",
12307
- "summary": "Produce the artifact and return the directory holding it."
12588
+ "summary": "Produce the artifact and return a {@link BundleResult} describing it."
12308
12589
  },
12309
12590
  "locationInModule": {
12310
12591
  "filename": "src/assets.ts",
12311
- "line": 315
12592
+ "line": 415
12312
12593
  },
12313
12594
  "name": "bundle",
12314
12595
  "parameters": [
@@ -12321,7 +12602,7 @@
12321
12602
  ],
12322
12603
  "returns": {
12323
12604
  "type": {
12324
- "primitive": "string"
12605
+ "fqn": "cdktn.BundleResult"
12325
12606
  }
12326
12607
  }
12327
12608
  }
@@ -12332,20 +12613,39 @@
12332
12613
  "abstract": true,
12333
12614
  "docs": {
12334
12615
  "default": "- the build does not contribute to the hash",
12335
- "remarks": "The source tree alone cannot see the build, so swapping a `node:18` base\nimage for `node:20` would otherwise leave identity unchanged. A value\ncapturing the build (e.g. `docker:<image>:<command>`) closes that gap.\n\nUnder `SOURCE` hashing this is the only channel by which the build reaches\nidentity, so it must serialize every input that can move the output —\nbase image, command, tool version, environment, arguments. Anything left\nout means a changed build silently reuses a stale artifact. {@link * BundlerKey} builds one from an ordered set of parts so the format is not\nreinvented per bundler.\n\nMirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be\nsummarized as a string, and fall back to `extraHash`.",
12616
+ "remarks": "The source tree alone cannot see the build, so swapping a `node:18` base\nimage for `node:20` would otherwise leave identity unchanged. Under\n`SOURCE` hashing this is the only channel by which the build reaches\nidentity, so it must serialize every input that can move the output, or a\nchanged build silently reuses a stale artifact. {@link BundlerKey} builds\none from an ordered set of parts.\n\nMirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be\nsummarized as a string, and fall back to `extraHash`.",
12336
12617
  "stability": "experimental",
12337
12618
  "summary": "A value identifying the build, folded into the asset hash."
12338
12619
  },
12339
12620
  "immutable": true,
12340
12621
  "locationInModule": {
12341
12622
  "filename": "src/assets.ts",
12342
- "line": 304
12623
+ "line": 385
12343
12624
  },
12344
12625
  "name": "bundlerKey",
12345
12626
  "optional": true,
12346
12627
  "type": {
12347
12628
  "primitive": "string"
12348
12629
  }
12630
+ },
12631
+ {
12632
+ "abstract": true,
12633
+ "docs": {
12634
+ "default": "- the source path's basename",
12635
+ "remarks": "A file-producing bundler (`BundleResult.file`) staged with\n`AssetType.FILE` would otherwise take the source path's basename, which is\na directory name when the source is a directory. Declaring the name here\nlets the artifact reflect what the bundler produces. It is static\nconfiguration, needed at construction before a deferred `SOURCE` build\nruns, not the file's runtime name.\n\nValid only for a file-producing bundler: setting it with a directory\npackaging (anything but `AssetType.FILE`) is rejected at construction.",
12636
+ "stability": "experimental",
12637
+ "summary": "The name a single-file artifact is staged under (e.g. `archive.zip`)."
12638
+ },
12639
+ "immutable": true,
12640
+ "locationInModule": {
12641
+ "filename": "src/assets.ts",
12642
+ "line": 402
12643
+ },
12644
+ "name": "outputFileName",
12645
+ "optional": true,
12646
+ "type": {
12647
+ "primitive": "string"
12648
+ }
12349
12649
  }
12350
12650
  ],
12351
12651
  "symbolId": "src/assets:IAssetBundler"
@@ -12361,7 +12661,7 @@
12361
12661
  "kind": "interface",
12362
12662
  "locationInModule": {
12363
12663
  "filename": "src/assets.ts",
12364
- "line": 91
12664
+ "line": 94
12365
12665
  },
12366
12666
  "methods": [
12367
12667
  {
@@ -12372,7 +12672,7 @@
12372
12672
  },
12373
12673
  "locationInModule": {
12374
12674
  "filename": "src/assets.ts",
12375
- "line": 131
12675
+ "line": 134
12376
12676
  },
12377
12677
  "name": "pack",
12378
12678
  "parameters": [
@@ -12397,7 +12697,7 @@
12397
12697
  "immutable": true,
12398
12698
  "locationInModule": {
12399
12699
  "filename": "src/assets.ts",
12400
- "line": 113
12700
+ "line": 116
12401
12701
  },
12402
12702
  "name": "acceptsDirectorySource",
12403
12703
  "type": {
@@ -12413,7 +12713,7 @@
12413
12713
  "immutable": true,
12414
12714
  "locationInModule": {
12415
12715
  "filename": "src/assets.ts",
12416
- "line": 95
12716
+ "line": 98
12417
12717
  },
12418
12718
  "name": "extension",
12419
12719
  "type": {
@@ -12430,7 +12730,7 @@
12430
12730
  "immutable": true,
12431
12731
  "locationInModule": {
12432
12732
  "filename": "src/assets.ts",
12433
- "line": 126
12733
+ "line": 129
12434
12734
  },
12435
12735
  "name": "omitsDirectoryEntries",
12436
12736
  "type": {
@@ -12447,7 +12747,7 @@
12447
12747
  "immutable": true,
12448
12748
  "locationInModule": {
12449
12749
  "filename": "src/assets.ts",
12450
- "line": 103
12750
+ "line": 106
12451
12751
  },
12452
12752
  "name": "producesDirectory",
12453
12753
  "type": {
@@ -17577,7 +17877,7 @@
17577
17877
  "kind": "interface",
17578
17878
  "locationInModule": {
17579
17879
  "filename": "src/assets.ts",
17580
- "line": 141
17880
+ "line": 144
17581
17881
  },
17582
17882
  "name": "PackOptions",
17583
17883
  "properties": [
@@ -17590,7 +17890,7 @@
17590
17890
  "immutable": true,
17591
17891
  "locationInModule": {
17592
17892
  "filename": "src/assets.ts",
17593
- "line": 145
17893
+ "line": 148
17594
17894
  },
17595
17895
  "name": "source",
17596
17896
  "type": {
@@ -17606,7 +17906,7 @@
17606
17906
  "immutable": true,
17607
17907
  "locationInModule": {
17608
17908
  "filename": "src/assets.ts",
17609
- "line": 150
17909
+ "line": 153
17610
17910
  },
17611
17911
  "name": "target",
17612
17912
  "type": {
@@ -17624,7 +17924,7 @@
17624
17924
  "immutable": true,
17625
17925
  "locationInModule": {
17626
17926
  "filename": "src/assets.ts",
17627
- "line": 159
17927
+ "line": 162
17628
17928
  },
17629
17929
  "name": "ignoreStrategy",
17630
17930
  "optional": true,
@@ -20743,21 +21043,21 @@
20743
21043
  "kind": "interface",
20744
21044
  "locationInModule": {
20745
21045
  "filename": "src/assets.ts",
20746
- "line": 383
21046
+ "line": 560
20747
21047
  },
20748
21048
  "name": "StagedAsset",
20749
21049
  "properties": [
20750
21050
  {
20751
21051
  "abstract": true,
20752
21052
  "docs": {
20753
- "remarks": "This hash is used to uniquely identify this\nasset throughout the system. If this value doesn't change, the asset will\nnot be rebuilt or republished.",
21053
+ "remarks": "The asset is not rebuilt or republished while this value is unchanged.",
20754
21054
  "stability": "experimental",
20755
- "summary": "A hash on the content source."
21055
+ "summary": "A hash on the content source, uniquely identifying this asset."
20756
21056
  },
20757
21057
  "immutable": true,
20758
21058
  "locationInModule": {
20759
21059
  "filename": "src/assets.ts",
20760
- "line": 389
21060
+ "line": 566
20761
21061
  },
20762
21062
  "name": "assetHash",
20763
21063
  "type": {
@@ -20774,7 +21074,7 @@
20774
21074
  "immutable": true,
20775
21075
  "locationInModule": {
20776
21076
  "filename": "src/assets.ts",
20777
- "line": 402
21077
+ "line": 579
20778
21078
  },
20779
21079
  "name": "isDirectory",
20780
21080
  "type": {
@@ -20790,7 +21090,7 @@
20790
21090
  "immutable": true,
20791
21091
  "locationInModule": {
20792
21092
  "filename": "src/assets.ts",
20793
- "line": 394
21093
+ "line": 571
20794
21094
  },
20795
21095
  "name": "path",
20796
21096
  "type": {
@@ -22275,7 +22575,7 @@
22275
22575
  },
22276
22576
  "locationInModule": {
22277
22577
  "filename": "src/terraform-asset.ts",
22278
- "line": 117
22578
+ "line": 125
22279
22579
  },
22280
22580
  "parameters": [
22281
22581
  {
@@ -22304,20 +22604,20 @@
22304
22604
  "kind": "class",
22305
22605
  "locationInModule": {
22306
22606
  "filename": "src/terraform-asset.ts",
22307
- "line": 100
22607
+ "line": 108
22308
22608
  },
22309
22609
  "name": "TerraformAsset",
22310
22610
  "properties": [
22311
22611
  {
22312
22612
  "docs": {
22313
- "remarks": "As this is a plain string, it\ncan be used in construct IDs in order to enforce creation of a new resource when the content\nhash has changed.",
22613
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
22314
22614
  "stability": "experimental",
22315
- "summary": "A hash of this asset, which is available at construction time."
22615
+ "summary": "A hash of this asset, available at construction time."
22316
22616
  },
22317
22617
  "immutable": true,
22318
22618
  "locationInModule": {
22319
22619
  "filename": "src/terraform-asset.ts",
22320
- "line": 104
22620
+ "line": 112
22321
22621
  },
22322
22622
  "name": "assetHash",
22323
22623
  "overrides": "cdktn.IAsset",
@@ -22333,7 +22633,7 @@
22333
22633
  "immutable": true,
22334
22634
  "locationInModule": {
22335
22635
  "filename": "src/terraform-asset.ts",
22336
- "line": 205
22636
+ "line": 230
22337
22637
  },
22338
22638
  "name": "fileName",
22339
22639
  "type": {
@@ -22348,7 +22648,7 @@
22348
22648
  "immutable": true,
22349
22649
  "locationInModule": {
22350
22650
  "filename": "src/terraform-asset.ts",
22351
- "line": 192
22651
+ "line": 217
22352
22652
  },
22353
22653
  "name": "path",
22354
22654
  "type": {
@@ -22361,7 +22661,7 @@
22361
22661
  },
22362
22662
  "locationInModule": {
22363
22663
  "filename": "src/terraform-asset.ts",
22364
- "line": 106
22664
+ "line": 114
22365
22665
  },
22366
22666
  "name": "type",
22367
22667
  "type": {
@@ -22381,7 +22681,7 @@
22381
22681
  "kind": "interface",
22382
22682
  "locationInModule": {
22383
22683
  "filename": "src/terraform-asset.ts",
22384
- "line": 24
22684
+ "line": 26
22385
22685
  },
22386
22686
  "name": "TerraformAssetConfig",
22387
22687
  "properties": [
@@ -22393,7 +22693,7 @@
22393
22693
  "immutable": true,
22394
22694
  "locationInModule": {
22395
22695
  "filename": "src/terraform-asset.ts",
22396
- "line": 26
22696
+ "line": 28
22397
22697
  },
22398
22698
  "name": "path",
22399
22699
  "type": {
@@ -22408,7 +22708,7 @@
22408
22708
  "immutable": true,
22409
22709
  "locationInModule": {
22410
22710
  "filename": "src/terraform-asset.ts",
22411
- "line": 30
22711
+ "line": 32
22412
22712
  },
22413
22713
  "name": "assetHash",
22414
22714
  "optional": true,
@@ -22427,7 +22727,7 @@
22427
22727
  "immutable": true,
22428
22728
  "locationInModule": {
22429
22729
  "filename": "src/terraform-asset.ts",
22430
- "line": 43
22730
+ "line": 45
22431
22731
  },
22432
22732
  "name": "assetHashType",
22433
22733
  "optional": true,
@@ -22439,14 +22739,14 @@
22439
22739
  "abstract": true,
22440
22740
  "docs": {
22441
22741
  "default": "- the source is staged verbatim, with no build step",
22442
- "remarks": "Core ships no bundler; implement `IAssetBundler` or use one from a bundler\npackage. Under the default `SOURCE` hashing the build is deferred to synth\nand stays skippable; `OUTPUT` hashing builds eagerly to hash the artifact.\n`AssetType.FILE` is rejected, since bundler output is always a directory.\nSee `AssetStagingOptions.bundler`.",
22742
+ "remarks": "Core ships no bundler; implement `IAssetBundler` or use one from a bundler\npackage. Under the default `SOURCE` hashing the build is deferred to synth\nand stays skippable; `OUTPUT` hashing builds eagerly to hash the artifact.\nThe bundler's output shape must match `type`. See\n`AssetStagingOptions.bundler`.",
22443
22743
  "stability": "experimental",
22444
22744
  "summary": "A bundler that builds the source into an artifact before staging."
22445
22745
  },
22446
22746
  "immutable": true,
22447
22747
  "locationInModule": {
22448
22748
  "filename": "src/terraform-asset.ts",
22449
- "line": 73
22749
+ "line": 75
22450
22750
  },
22451
22751
  "name": "bundler",
22452
22752
  "optional": true,
@@ -22465,7 +22765,7 @@
22465
22765
  "immutable": true,
22466
22766
  "locationInModule": {
22467
22767
  "filename": "src/terraform-asset.ts",
22468
- "line": 52
22768
+ "line": 54
22469
22769
  },
22470
22770
  "name": "exclude",
22471
22771
  "optional": true,
@@ -22488,7 +22788,7 @@
22488
22788
  "immutable": true,
22489
22789
  "locationInModule": {
22490
22790
  "filename": "src/terraform-asset.ts",
22491
- "line": 60
22791
+ "line": 62
22492
22792
  },
22493
22793
  "name": "extraHash",
22494
22794
  "optional": true,
@@ -22504,7 +22804,7 @@
22504
22804
  "immutable": true,
22505
22805
  "locationInModule": {
22506
22806
  "filename": "src/terraform-asset.ts",
22507
- "line": 28
22807
+ "line": 30
22508
22808
  },
22509
22809
  "name": "type",
22510
22810
  "optional": true,
@@ -32378,6 +32678,6 @@
32378
32678
  "symbolId": "src/testing/matchers:TerraformConstructor"
32379
32679
  }
32380
32680
  },
32381
- "version": "0.25.0-pre.39",
32382
- "fingerprint": "Mm8DFV8p3EqPwv9VKU0HHSxr3LzTcN0VloMAb2Daxx0="
32681
+ "version": "0.25.0-pre.40",
32682
+ "fingerprint": "lR7vQ8gGX2mBVajufxSJpn696SpU1DOPGaPmPp7v32k="
32383
32683
  }