cdktn 0.25.0-pre.9 → 0.25.0

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 (79) hide show
  1. package/.jsii +2191 -422
  2. package/README.md +12 -0
  3. package/lib/annotations.js +1 -1
  4. package/lib/app.js +1 -1
  5. package/lib/aspect.js +1 -1
  6. package/lib/asset-hash.d.ts +75 -0
  7. package/lib/asset-hash.js +129 -0
  8. package/lib/asset-staging.d.ts +180 -0
  9. package/lib/asset-staging.js +464 -0
  10. package/lib/assets.d.ts +401 -0
  11. package/lib/assets.js +333 -0
  12. package/lib/backends/azurerm-backend.js +2 -2
  13. package/lib/backends/cloud-backend.js +10 -7
  14. package/lib/backends/consul-backend.js +2 -2
  15. package/lib/backends/cos-backend.js +2 -2
  16. package/lib/backends/gcs-backend.js +2 -2
  17. package/lib/backends/http-backend.js +2 -2
  18. package/lib/backends/local-backend.js +2 -2
  19. package/lib/backends/oss-backend.js +2 -2
  20. package/lib/backends/pg-backend.js +2 -2
  21. package/lib/backends/remote-backend.js +4 -4
  22. package/lib/backends/s3-backend.js +2 -2
  23. package/lib/backends/swift-backend.js +2 -2
  24. package/lib/complex-computed-list.js +26 -26
  25. package/lib/errors.d.ts +16 -0
  26. package/lib/errors.js +51 -3
  27. package/lib/functions/provider-function.js +1 -1
  28. package/lib/functions/terraform-functions.generated.js +1 -1
  29. package/lib/ignore-strategy.d.ts +82 -0
  30. package/lib/ignore-strategy.js +29 -0
  31. package/lib/importable-resource.js +7 -4
  32. package/lib/index.d.ts +4 -0
  33. package/lib/index.js +5 -1
  34. package/lib/manifest.js +1 -1
  35. package/lib/private/fs.d.ts +74 -2
  36. package/lib/private/fs.js +93 -14
  37. package/lib/resource.js +1 -1
  38. package/lib/synthesize/synthesizer.js +9 -22
  39. package/lib/terraform-asset.d.ts +68 -5
  40. package/lib/terraform-asset.js +86 -36
  41. package/lib/terraform-backend.js +1 -1
  42. package/lib/terraform-count.js +1 -1
  43. package/lib/terraform-data-resource.d.ts +1 -1
  44. package/lib/terraform-data-resource.js +8 -5
  45. package/lib/terraform-data-source.js +1 -1
  46. package/lib/terraform-element.js +1 -1
  47. package/lib/terraform-ephemeral-resource.js +1 -1
  48. package/lib/terraform-functions.js +1 -1
  49. package/lib/terraform-hcl-module.js +1 -1
  50. package/lib/terraform-iterator.js +6 -6
  51. package/lib/terraform-local.js +1 -1
  52. package/lib/terraform-module.js +1 -1
  53. package/lib/terraform-operators.js +1 -1
  54. package/lib/terraform-output.js +1 -1
  55. package/lib/terraform-provider.js +1 -1
  56. package/lib/terraform-provisioner.js +1 -1
  57. package/lib/terraform-remote-state.js +1 -1
  58. package/lib/terraform-resource-targets.js +1 -1
  59. package/lib/terraform-resource.js +9 -4
  60. package/lib/terraform-stack.js +1 -1
  61. package/lib/terraform-variable.js +2 -2
  62. package/lib/testing/adapters/jest.d.ts +2 -1
  63. package/lib/testing/adapters/jest.js +3 -3
  64. package/lib/testing/index.js +1 -1
  65. package/lib/testing/matchers.d.ts +34 -30
  66. package/lib/testing/matchers.js +292 -89
  67. package/lib/tokens/lazy.js +2 -2
  68. package/lib/tokens/resolvable.js +2 -2
  69. package/lib/tokens/string-fragments.js +2 -2
  70. package/lib/tokens/token.js +2 -2
  71. package/lib/upgrade-id-aspect.js +1 -1
  72. package/lib/validations/index.d.ts +0 -1
  73. package/lib/validations/index.js +1 -2
  74. package/package.json +17 -3
  75. package/scripts/pack.mjs +27 -12
  76. package/lib/validations/validate-binary-version.d.ts +0 -23
  77. package/lib/validations/validate-binary-version.js +0 -91
  78. package/lib/validations/validate-terraform-version.d.ts +0 -13
  79. package/lib/validations/validate-terraform-version.js +0 -23
package/.jsii CHANGED
@@ -51,7 +51,12 @@
51
51
  "cdk",
52
52
  "cdktf",
53
53
  "cdktn",
54
- "terraform"
54
+ "terraform",
55
+ "cdk for terraform",
56
+ "terraform-cdk",
57
+ "cdk terrain",
58
+ "opentofu",
59
+ "infrastructure as code"
55
60
  ],
56
61
  "license": "MPL-2.0",
57
62
  "metadata": {
@@ -65,7 +70,7 @@
65
70
  },
66
71
  "name": "cdktn",
67
72
  "readme": {
68
- "markdown": "# cdktn\n\ncdktn is a framework for defining cloud infrastructure using Terraform providers and modules. It allows for\nusers to define infrastructure resources using higher-level programming languages.\n\n## Build\n\nInstall dependencies\n\n```bash\npnpm install\n```\n\nBuild the package\n\n```bash\npnpm build\n```\n\n[Learn More](https://cdktn.io/docs)\n"
73
+ "markdown": "# cdktn\n\ncdktn is a framework for defining cloud infrastructure using Terraform providers and modules. It allows for\nusers to define infrastructure resources using higher-level programming languages.\n\nCDK Terrain (CDKTN) is the community-maintained successor to CDK for Terraform (CDKTF). Migrating from CDKTF? Follow the [migration guide](https://cdktn.io/docs/release/upgrade-guide-v0-22).\n\n## Use with AI agents\n\nThe CDKTN docs are served to AI coding agents by a hosted [MCP server](https://cdktn.io/docs/ai-agents) at `https://cdktn.io/docs/mcp` (streamable HTTP, no auth). Point your agent at it rather than relying on prior CDKTF knowledge:\n\n```bash\nclaude mcp add --transport http cdktn https://cdktn.io/docs/mcp\n```\n\nAn [agent skill](https://cdktn.io/docs/skill.md) and an [llms.txt index](https://cdktn.io/llms.txt) are also available.\n\n## Build\n\nInstall dependencies\n\n```bash\npnpm install\n```\n\nBuild the package\n\n```bash\npnpm build\n```\n\n[Learn More](https://cdktn.io/docs)\n"
69
74
  },
70
75
  "repository": {
71
76
  "directory": "packages/cdktn",
@@ -1408,6 +1413,577 @@
1408
1413
  ],
1409
1414
  "symbolId": "src/aspect:Aspects"
1410
1415
  },
1416
+ "cdktn.AssetHash": {
1417
+ "assembly": "cdktn",
1418
+ "docs": {
1419
+ "remarks": "Providers that read a local path directly — a Docker build `context`, for\nexample — need a content hash to drive `triggers`, but have no use for a\nstaged copy of the source. `Asset` and `TerraformAsset` always produce a\nstaged copy; this is the identity half without the staging half.",
1420
+ "stability": "experimental",
1421
+ "summary": "Computes a content hash of a file or directory without staging it."
1422
+ },
1423
+ "fqn": "cdktn.AssetHash",
1424
+ "kind": "class",
1425
+ "locationInModule": {
1426
+ "filename": "src/asset-hash.ts",
1427
+ "line": 49
1428
+ },
1429
+ "methods": [
1430
+ {
1431
+ "docs": {
1432
+ "remarks": "This is a hash of the source tree, and it does not depend on how the\nsource is later packaged. `hashPath` is always called with `archive`\nunset, so directory records are part of the digest; the hash of a given\ntree is therefore the same whether it is later copied, zipped, or packed\nby a custom `IAssetPackaging` such as `tar.bz2`.\n\nA consequence worth stating: this does not equal\n`TerraformAsset(dir, { type: ARCHIVE }).assetHash` for a directory with\nsubdirectories. That asset frames its hash to the emitted ZIP, which has\nno directory entries (see #323), so directory-only changes move it and\nnot this. It equals a `FILE` / `DIRECTORY` `TerraformAsset` hash only\nwhen the `canonicalAssetHashes` flag is enabled, since that flag is what\nputs the asset on this same canonical scheme.\n\nA relative `filePath` is resolved against the directory containing\n`cdktf.json`, the same base `TerraformAsset` uses, so both hash the same\nsource regardless of the process working directory. Absolute paths are\nused as-is. Throws if `filePath` is relative and no `cdktf.json` is found\nabove the working directory.",
1433
+ "stability": "experimental",
1434
+ "summary": "Content hash of a file or directory, without staging it."
1435
+ },
1436
+ "locationInModule": {
1437
+ "filename": "src/asset-hash.ts",
1438
+ "line": 75
1439
+ },
1440
+ "name": "of",
1441
+ "parameters": [
1442
+ {
1443
+ "docs": {
1444
+ "summary": "- path to a file or directory to hash."
1445
+ },
1446
+ "name": "filePath",
1447
+ "type": {
1448
+ "primitive": "string"
1449
+ }
1450
+ },
1451
+ {
1452
+ "docs": {
1453
+ "summary": "- see {@link AssetHashOptions}."
1454
+ },
1455
+ "name": "options",
1456
+ "optional": true,
1457
+ "type": {
1458
+ "fqn": "cdktn.AssetHashOptions"
1459
+ }
1460
+ }
1461
+ ],
1462
+ "returns": {
1463
+ "type": {
1464
+ "primitive": "string"
1465
+ }
1466
+ },
1467
+ "static": true
1468
+ }
1469
+ ],
1470
+ "name": "AssetHash",
1471
+ "symbolId": "src/asset-hash:AssetHash"
1472
+ },
1473
+ "cdktn.AssetHashOptions": {
1474
+ "assembly": "cdktn",
1475
+ "datatype": true,
1476
+ "docs": {
1477
+ "stability": "experimental",
1478
+ "summary": "Options for {@link AssetHash.of}."
1479
+ },
1480
+ "fqn": "cdktn.AssetHashOptions",
1481
+ "kind": "interface",
1482
+ "locationInModule": {
1483
+ "filename": "src/asset-hash.ts",
1484
+ "line": 15
1485
+ },
1486
+ "name": "AssetHashOptions",
1487
+ "properties": [
1488
+ {
1489
+ "abstract": true,
1490
+ "docs": {
1491
+ "default": "- nothing is excluded",
1492
+ "remarks": "Cannot be combined with\n`ignoreStrategy`, which replaces this matcher rather than layering on\ntop of it.",
1493
+ "stability": "experimental",
1494
+ "summary": "Paths to exclude, relative to the hashed path."
1495
+ },
1496
+ "immutable": true,
1497
+ "locationInModule": {
1498
+ "filename": "src/asset-hash.ts",
1499
+ "line": 23
1500
+ },
1501
+ "name": "exclude",
1502
+ "optional": true,
1503
+ "type": {
1504
+ "collection": {
1505
+ "elementtype": {
1506
+ "primitive": "string"
1507
+ },
1508
+ "kind": "array"
1509
+ }
1510
+ }
1511
+ },
1512
+ {
1513
+ "abstract": true,
1514
+ "docs": {
1515
+ "default": "- no extra data",
1516
+ "stability": "experimental",
1517
+ "summary": "Extra information to fold into the hash."
1518
+ },
1519
+ "immutable": true,
1520
+ "locationInModule": {
1521
+ "filename": "src/asset-hash.ts",
1522
+ "line": 30
1523
+ },
1524
+ "name": "extraHash",
1525
+ "optional": true,
1526
+ "type": {
1527
+ "primitive": "string"
1528
+ }
1529
+ },
1530
+ {
1531
+ "abstract": true,
1532
+ "docs": {
1533
+ "default": "- `exclude` is used with the built-in matcher",
1534
+ "stability": "experimental",
1535
+ "summary": "Exclusion matching, for callers that need `.gitignore` / `.dockerignore` parity rather than the built-in exact-path / suffix / directory matcher."
1536
+ },
1537
+ "immutable": true,
1538
+ "locationInModule": {
1539
+ "filename": "src/asset-hash.ts",
1540
+ "line": 38
1541
+ },
1542
+ "name": "ignoreStrategy",
1543
+ "optional": true,
1544
+ "type": {
1545
+ "fqn": "cdktn.IIgnoreStrategy"
1546
+ }
1547
+ }
1548
+ ],
1549
+ "symbolId": "src/asset-hash:AssetHashOptions"
1550
+ },
1551
+ "cdktn.AssetHashType": {
1552
+ "assembly": "cdktn",
1553
+ "docs": {
1554
+ "remarks": "The hash identifies a specific revision of the asset and caches deployment\nwork such as packaging and uploading.",
1555
+ "stability": "experimental",
1556
+ "summary": "The type of asset hash."
1557
+ },
1558
+ "fqn": "cdktn.AssetHashType",
1559
+ "kind": "enum",
1560
+ "locationInModule": {
1561
+ "filename": "src/assets.ts",
1562
+ "line": 63
1563
+ },
1564
+ "members": [
1565
+ {
1566
+ "docs": {
1567
+ "remarks": "Use `SOURCE` to track changes to the source files directly.",
1568
+ "stability": "experimental",
1569
+ "summary": "Based on the content of the source path."
1570
+ },
1571
+ "name": "SOURCE"
1572
+ },
1573
+ {
1574
+ "docs": {
1575
+ "remarks": "Use `OUTPUT` when the source is a top-level folder holding code and/or\ndependencies not directly linked to the asset.",
1576
+ "stability": "experimental",
1577
+ "summary": "Based on the content of the bundling output."
1578
+ },
1579
+ "name": "OUTPUT"
1580
+ },
1581
+ {
1582
+ "docs": {
1583
+ "stability": "experimental",
1584
+ "summary": "Use a custom hash."
1585
+ },
1586
+ "name": "CUSTOM"
1587
+ }
1588
+ ],
1589
+ "name": "AssetHashType",
1590
+ "symbolId": "src/assets:AssetHashType"
1591
+ },
1592
+ "cdktn.AssetOptions": {
1593
+ "assembly": "cdktn",
1594
+ "datatype": true,
1595
+ "docs": {
1596
+ "stability": "experimental",
1597
+ "summary": "Options controlling how an asset's hash is derived."
1598
+ },
1599
+ "fqn": "cdktn.AssetOptions",
1600
+ "kind": "interface",
1601
+ "locationInModule": {
1602
+ "filename": "src/assets.ts",
1603
+ "line": 30
1604
+ },
1605
+ "name": "AssetOptions",
1606
+ "properties": [
1607
+ {
1608
+ "abstract": true,
1609
+ "docs": {
1610
+ "default": "- based on `assetHashType`",
1611
+ "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.",
1612
+ "stability": "experimental",
1613
+ "summary": "Specify a custom hash for this asset."
1614
+ },
1615
+ "immutable": true,
1616
+ "locationInModule": {
1617
+ "filename": "src/assets.ts",
1618
+ "line": 43
1619
+ },
1620
+ "name": "assetHash",
1621
+ "optional": true,
1622
+ "type": {
1623
+ "primitive": "string"
1624
+ }
1625
+ },
1626
+ {
1627
+ "abstract": true,
1628
+ "docs": {
1629
+ "default": "- the default is `AssetHashType.SOURCE`, but if `assetHash` is\nexplicitly specified this value defaults to `AssetHashType.CUSTOM`.",
1630
+ "remarks": "If `assetHash` is configured, this option must be `undefined` or\n`AssetHashType.CUSTOM`.",
1631
+ "stability": "experimental",
1632
+ "summary": "Specifies the type of hash to calculate for this asset."
1633
+ },
1634
+ "immutable": true,
1635
+ "locationInModule": {
1636
+ "filename": "src/assets.ts",
1637
+ "line": 54
1638
+ },
1639
+ "name": "assetHashType",
1640
+ "optional": true,
1641
+ "type": {
1642
+ "fqn": "cdktn.AssetHashType"
1643
+ }
1644
+ }
1645
+ ],
1646
+ "symbolId": "src/assets:AssetOptions"
1647
+ },
1648
+ "cdktn.AssetPackaging": {
1649
+ "assembly": "cdktn",
1650
+ "docs": {
1651
+ "remarks": "Custom formats implement `IAssetPackaging`\ndirectly rather than extending this class.",
1652
+ "stability": "experimental",
1653
+ "summary": "Built-in packaging strategies."
1654
+ },
1655
+ "fqn": "cdktn.AssetPackaging",
1656
+ "kind": "class",
1657
+ "locationInModule": {
1658
+ "filename": "src/assets.ts",
1659
+ "line": 223
1660
+ },
1661
+ "name": "AssetPackaging",
1662
+ "properties": [
1663
+ {
1664
+ "const": true,
1665
+ "docs": {
1666
+ "stability": "experimental",
1667
+ "summary": "Copy a directory tree as-is, without archiving."
1668
+ },
1669
+ "immutable": true,
1670
+ "locationInModule": {
1671
+ "filename": "src/assets.ts",
1672
+ "line": 232
1673
+ },
1674
+ "name": "DIRECTORY",
1675
+ "static": true,
1676
+ "type": {
1677
+ "fqn": "cdktn.IAssetPackaging"
1678
+ }
1679
+ },
1680
+ {
1681
+ "const": true,
1682
+ "docs": {
1683
+ "stability": "experimental",
1684
+ "summary": "Copy a single file as-is."
1685
+ },
1686
+ "immutable": true,
1687
+ "locationInModule": {
1688
+ "filename": "src/assets.ts",
1689
+ "line": 227
1690
+ },
1691
+ "name": "FILE",
1692
+ "static": true,
1693
+ "type": {
1694
+ "fqn": "cdktn.IAssetPackaging"
1695
+ }
1696
+ },
1697
+ {
1698
+ "const": true,
1699
+ "docs": {
1700
+ "stability": "experimental",
1701
+ "summary": "Archive a directory tree into a single zip file."
1702
+ },
1703
+ "immutable": true,
1704
+ "locationInModule": {
1705
+ "filename": "src/assets.ts",
1706
+ "line": 237
1707
+ },
1708
+ "name": "ZIP",
1709
+ "static": true,
1710
+ "type": {
1711
+ "fqn": "cdktn.IAssetPackaging"
1712
+ }
1713
+ }
1714
+ ],
1715
+ "symbolId": "src/assets:AssetPackaging"
1716
+ },
1717
+ "cdktn.AssetStaging": {
1718
+ "assembly": "cdktn",
1719
+ "base": "constructs.Construct",
1720
+ "docs": {
1721
+ "remarks": "The hash is available immediately after construction; the filesystem write\nis deferred to `stage()`, the one window where it is safe. Hashing is\ncached per synth (see {@link hashCachesByRoot}) so an asset referenced from\nseveral places is walked once. Without a bundler, `SOURCE` and `OUTPUT` both\nhash the source; with one they diverge, as `AssetStagingOptions.bundler`\ndescribes.",
1722
+ "stability": "experimental",
1723
+ "summary": "Resolves an asset's identity and stages its content to disk."
1724
+ },
1725
+ "fqn": "cdktn.AssetStaging",
1726
+ "initializer": {
1727
+ "docs": {
1728
+ "stability": "experimental"
1729
+ },
1730
+ "locationInModule": {
1731
+ "filename": "src/asset-staging.ts",
1732
+ "line": 231
1733
+ },
1734
+ "parameters": [
1735
+ {
1736
+ "name": "scope",
1737
+ "type": {
1738
+ "fqn": "constructs.Construct"
1739
+ }
1740
+ },
1741
+ {
1742
+ "name": "id",
1743
+ "type": {
1744
+ "primitive": "string"
1745
+ }
1746
+ },
1747
+ {
1748
+ "name": "props",
1749
+ "type": {
1750
+ "fqn": "cdktn.AssetStagingOptions"
1751
+ }
1752
+ }
1753
+ ]
1754
+ },
1755
+ "interfaces": [
1756
+ "cdktn.IAsset"
1757
+ ],
1758
+ "kind": "class",
1759
+ "locationInModule": {
1760
+ "filename": "src/asset-staging.ts",
1761
+ "line": 200
1762
+ },
1763
+ "methods": [
1764
+ {
1765
+ "docs": {
1766
+ "remarks": "Called from the owning construct's `onSynthesize` hook. Without a bundler\nthe source is packaged verbatim; with one, the bundler's output is, built\neagerly for `OUTPUT` hashing or deferred to here for `SOURCE`.",
1767
+ "stability": "experimental",
1768
+ "summary": "Stage the asset's content to `targetPath`."
1769
+ },
1770
+ "locationInModule": {
1771
+ "filename": "src/asset-staging.ts",
1772
+ "line": 502
1773
+ },
1774
+ "name": "stage",
1775
+ "parameters": [
1776
+ {
1777
+ "name": "targetPath",
1778
+ "type": {
1779
+ "primitive": "string"
1780
+ }
1781
+ }
1782
+ ]
1783
+ }
1784
+ ],
1785
+ "name": "AssetStaging",
1786
+ "properties": [
1787
+ {
1788
+ "docs": {
1789
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
1790
+ "stability": "experimental",
1791
+ "summary": "A hash of this asset, available at construction time."
1792
+ },
1793
+ "immutable": true,
1794
+ "locationInModule": {
1795
+ "filename": "src/asset-staging.ts",
1796
+ "line": 229
1797
+ },
1798
+ "name": "assetHash",
1799
+ "overrides": "cdktn.IAsset",
1800
+ "type": {
1801
+ "primitive": "string"
1802
+ }
1803
+ },
1804
+ {
1805
+ "docs": {
1806
+ "stability": "experimental"
1807
+ },
1808
+ "immutable": true,
1809
+ "locationInModule": {
1810
+ "filename": "src/asset-staging.ts",
1811
+ "line": 228
1812
+ },
1813
+ "name": "isDirectory",
1814
+ "type": {
1815
+ "primitive": "boolean"
1816
+ }
1817
+ },
1818
+ {
1819
+ "docs": {
1820
+ "stability": "experimental"
1821
+ },
1822
+ "immutable": true,
1823
+ "locationInModule": {
1824
+ "filename": "src/asset-staging.ts",
1825
+ "line": 227
1826
+ },
1827
+ "name": "packaging",
1828
+ "type": {
1829
+ "fqn": "cdktn.IAssetPackaging"
1830
+ }
1831
+ }
1832
+ ],
1833
+ "symbolId": "src/asset-staging:AssetStaging"
1834
+ },
1835
+ "cdktn.AssetStagingOptions": {
1836
+ "assembly": "cdktn",
1837
+ "datatype": true,
1838
+ "docs": {
1839
+ "stability": "experimental",
1840
+ "summary": "Options for {@link AssetStaging}."
1841
+ },
1842
+ "fqn": "cdktn.AssetStagingOptions",
1843
+ "interfaces": [
1844
+ "cdktn.AssetOptions"
1845
+ ],
1846
+ "kind": "interface",
1847
+ "locationInModule": {
1848
+ "filename": "src/asset-staging.ts",
1849
+ "line": 128
1850
+ },
1851
+ "name": "AssetStagingOptions",
1852
+ "properties": [
1853
+ {
1854
+ "abstract": true,
1855
+ "docs": {
1856
+ "remarks": "The caller decides this\n(e.g. from its own `AssetType`) — `AssetStaging` never infers or changes\nit based on `exclude`/`extraHash`.",
1857
+ "stability": "experimental",
1858
+ "summary": "How the staged result is produced and shaped."
1859
+ },
1860
+ "immutable": true,
1861
+ "locationInModule": {
1862
+ "filename": "src/asset-staging.ts",
1863
+ "line": 140
1864
+ },
1865
+ "name": "packaging",
1866
+ "type": {
1867
+ "fqn": "cdktn.IAssetPackaging"
1868
+ }
1869
+ },
1870
+ {
1871
+ "abstract": true,
1872
+ "docs": {
1873
+ "remarks": "Resolving a relative path\nagainst `cdktf.json` is the caller's responsibility.",
1874
+ "stability": "experimental",
1875
+ "summary": "Absolute path to the source file or directory."
1876
+ },
1877
+ "immutable": true,
1878
+ "locationInModule": {
1879
+ "filename": "src/asset-staging.ts",
1880
+ "line": 133
1881
+ },
1882
+ "name": "sourcePath",
1883
+ "type": {
1884
+ "primitive": "string"
1885
+ }
1886
+ },
1887
+ {
1888
+ "abstract": true,
1889
+ "docs": {
1890
+ "default": "- the source is staged verbatim, with no build step",
1891
+ "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.",
1892
+ "stability": "experimental",
1893
+ "summary": "A bundler that builds the source into an artifact before staging."
1894
+ },
1895
+ "immutable": true,
1896
+ "locationInModule": {
1897
+ "filename": "src/asset-staging.ts",
1898
+ "line": 179
1899
+ },
1900
+ "name": "bundler",
1901
+ "optional": true,
1902
+ "type": {
1903
+ "fqn": "cdktn.IAssetBundler"
1904
+ }
1905
+ },
1906
+ {
1907
+ "abstract": true,
1908
+ "docs": {
1909
+ "default": "- the staging construct's own id",
1910
+ "stability": "experimental",
1911
+ "summary": "Identifier used in error messages, so they name the user-facing construct (e.g. the `TerraformAsset`) rather than this internal staging child."
1912
+ },
1913
+ "immutable": true,
1914
+ "locationInModule": {
1915
+ "filename": "src/asset-staging.ts",
1916
+ "line": 187
1917
+ },
1918
+ "name": "displayName",
1919
+ "optional": true,
1920
+ "type": {
1921
+ "primitive": "string"
1922
+ }
1923
+ },
1924
+ {
1925
+ "abstract": true,
1926
+ "docs": {
1927
+ "default": "- nothing is excluded",
1928
+ "remarks": "Cannot be combined with\n`ignoreStrategy`, which replaces this matcher rather than layering on\ntop of it.",
1929
+ "stability": "experimental",
1930
+ "summary": "Paths to exclude, relative to `sourcePath`."
1931
+ },
1932
+ "immutable": true,
1933
+ "locationInModule": {
1934
+ "filename": "src/asset-staging.ts",
1935
+ "line": 149
1936
+ },
1937
+ "name": "exclude",
1938
+ "optional": true,
1939
+ "type": {
1940
+ "collection": {
1941
+ "elementtype": {
1942
+ "primitive": "string"
1943
+ },
1944
+ "kind": "array"
1945
+ }
1946
+ }
1947
+ },
1948
+ {
1949
+ "abstract": true,
1950
+ "docs": {
1951
+ "default": "- no extra hash",
1952
+ "stability": "experimental",
1953
+ "summary": "Extra information to fold into the hash (e.g. build instructions and other inputs)."
1954
+ },
1955
+ "immutable": true,
1956
+ "locationInModule": {
1957
+ "filename": "src/asset-staging.ts",
1958
+ "line": 165
1959
+ },
1960
+ "name": "extraHash",
1961
+ "optional": true,
1962
+ "type": {
1963
+ "primitive": "string"
1964
+ }
1965
+ },
1966
+ {
1967
+ "abstract": true,
1968
+ "docs": {
1969
+ "default": "- `exclude` is used with the built-in matcher",
1970
+ "stability": "experimental",
1971
+ "summary": "Exclusion matching, for callers that need `.gitignore` / `.dockerignore` parity rather than the built-in exact-path / suffix / directory matcher."
1972
+ },
1973
+ "immutable": true,
1974
+ "locationInModule": {
1975
+ "filename": "src/asset-staging.ts",
1976
+ "line": 157
1977
+ },
1978
+ "name": "ignoreStrategy",
1979
+ "optional": true,
1980
+ "type": {
1981
+ "fqn": "cdktn.IIgnoreStrategy"
1982
+ }
1983
+ }
1984
+ ],
1985
+ "symbolId": "src/asset-staging:AssetStagingOptions"
1986
+ },
1411
1987
  "cdktn.AssetType": {
1412
1988
  "assembly": "cdktn",
1413
1989
  "docs": {
@@ -1417,7 +1993,7 @@
1417
1993
  "kind": "enum",
1418
1994
  "locationInModule": {
1419
1995
  "filename": "src/terraform-asset.ts",
1420
- "line": 31
1996
+ "line": 95
1421
1997
  },
1422
1998
  "members": [
1423
1999
  {
@@ -2022,22 +2598,138 @@
2022
2598
  }
2023
2599
  }
2024
2600
  ],
2025
- "symbolId": "src/backends/azurerm-backend:AzurermBackendConfig"
2601
+ "symbolId": "src/backends/azurerm-backend:AzurermBackendConfig"
2602
+ },
2603
+ "cdktn.BooleanList": {
2604
+ "assembly": "cdktn",
2605
+ "base": "cdktn.ComplexList",
2606
+ "docs": {
2607
+ "stability": "experimental"
2608
+ },
2609
+ "fqn": "cdktn.BooleanList",
2610
+ "initializer": {
2611
+ "docs": {
2612
+ "stability": "experimental"
2613
+ },
2614
+ "locationInModule": {
2615
+ "filename": "src/complex-computed-list.ts",
2616
+ "line": 421
2617
+ },
2618
+ "parameters": [
2619
+ {
2620
+ "name": "terraformResource",
2621
+ "type": {
2622
+ "fqn": "cdktn.IInterpolatingParent"
2623
+ }
2624
+ },
2625
+ {
2626
+ "name": "terraformAttribute",
2627
+ "type": {
2628
+ "primitive": "string"
2629
+ }
2630
+ },
2631
+ {
2632
+ "name": "wrapsSet",
2633
+ "type": {
2634
+ "primitive": "boolean"
2635
+ }
2636
+ }
2637
+ ]
2638
+ },
2639
+ "kind": "class",
2640
+ "locationInModule": {
2641
+ "filename": "src/complex-computed-list.ts",
2642
+ "line": 420
2643
+ },
2644
+ "methods": [
2645
+ {
2646
+ "docs": {
2647
+ "stability": "experimental"
2648
+ },
2649
+ "locationInModule": {
2650
+ "filename": "src/complex-computed-list.ts",
2651
+ "line": 429
2652
+ },
2653
+ "name": "get",
2654
+ "parameters": [
2655
+ {
2656
+ "name": "index",
2657
+ "type": {
2658
+ "primitive": "number"
2659
+ }
2660
+ }
2661
+ ],
2662
+ "returns": {
2663
+ "type": {
2664
+ "fqn": "cdktn.IResolvable"
2665
+ }
2666
+ }
2667
+ }
2668
+ ],
2669
+ "name": "BooleanList",
2670
+ "properties": [
2671
+ {
2672
+ "docs": {
2673
+ "stability": "experimental"
2674
+ },
2675
+ "locationInModule": {
2676
+ "filename": "src/complex-computed-list.ts",
2677
+ "line": 423
2678
+ },
2679
+ "name": "terraformAttribute",
2680
+ "overrides": "cdktn.ComplexList",
2681
+ "protected": true,
2682
+ "type": {
2683
+ "primitive": "string"
2684
+ }
2685
+ },
2686
+ {
2687
+ "docs": {
2688
+ "stability": "experimental"
2689
+ },
2690
+ "locationInModule": {
2691
+ "filename": "src/complex-computed-list.ts",
2692
+ "line": 422
2693
+ },
2694
+ "name": "terraformResource",
2695
+ "overrides": "cdktn.ComplexList",
2696
+ "protected": true,
2697
+ "type": {
2698
+ "fqn": "cdktn.IInterpolatingParent"
2699
+ }
2700
+ },
2701
+ {
2702
+ "docs": {
2703
+ "stability": "experimental"
2704
+ },
2705
+ "locationInModule": {
2706
+ "filename": "src/complex-computed-list.ts",
2707
+ "line": 424
2708
+ },
2709
+ "name": "wrapsSet",
2710
+ "overrides": "cdktn.ComplexList",
2711
+ "protected": true,
2712
+ "type": {
2713
+ "primitive": "boolean"
2714
+ }
2715
+ }
2716
+ ],
2717
+ "symbolId": "src/complex-computed-list:BooleanList"
2026
2718
  },
2027
- "cdktn.BooleanList": {
2719
+ "cdktn.BooleanListList": {
2028
2720
  "assembly": "cdktn",
2029
2721
  "base": "cdktn.ComplexList",
2030
2722
  "docs": {
2031
2723
  "stability": "experimental"
2032
2724
  },
2033
- "fqn": "cdktn.BooleanList",
2725
+ "fqn": "cdktn.BooleanListList",
2034
2726
  "initializer": {
2035
2727
  "docs": {
2036
2728
  "stability": "experimental"
2037
2729
  },
2038
2730
  "locationInModule": {
2039
2731
  "filename": "src/complex-computed-list.ts",
2040
- "line": 421
2732
+ "line": 474
2041
2733
  },
2042
2734
  "parameters": [
2043
2735
  {
@@ -2063,7 +2755,7 @@
2063
2755
  "kind": "class",
2064
2756
  "locationInModule": {
2065
2757
  "filename": "src/complex-computed-list.ts",
2066
- "line": 420
2758
+ "line": 473
2067
2759
  },
2068
2760
  "methods": [
2069
2761
  {
@@ -2072,7 +2764,7 @@
2072
2764
  },
2073
2765
  "locationInModule": {
2074
2766
  "filename": "src/complex-computed-list.ts",
2075
- "line": 429
2767
+ "line": 482
2076
2768
  },
2077
2769
  "name": "get",
2078
2770
  "parameters": [
@@ -2090,7 +2782,7 @@
2090
2782
  }
2091
2783
  }
2092
2784
  ],
2093
- "name": "BooleanList",
2785
+ "name": "BooleanListList",
2094
2786
  "properties": [
2095
2787
  {
2096
2788
  "docs": {
@@ -2098,7 +2790,7 @@
2098
2790
  },
2099
2791
  "locationInModule": {
2100
2792
  "filename": "src/complex-computed-list.ts",
2101
- "line": 423
2793
+ "line": 476
2102
2794
  },
2103
2795
  "name": "terraformAttribute",
2104
2796
  "overrides": "cdktn.ComplexList",
@@ -2113,7 +2805,7 @@
2113
2805
  },
2114
2806
  "locationInModule": {
2115
2807
  "filename": "src/complex-computed-list.ts",
2116
- "line": 422
2808
+ "line": 475
2117
2809
  },
2118
2810
  "name": "terraformResource",
2119
2811
  "overrides": "cdktn.ComplexList",
@@ -2128,7 +2820,7 @@
2128
2820
  },
2129
2821
  "locationInModule": {
2130
2822
  "filename": "src/complex-computed-list.ts",
2131
- "line": 424
2823
+ "line": 477
2132
2824
  },
2133
2825
  "name": "wrapsSet",
2134
2826
  "overrides": "cdktn.ComplexList",
@@ -2138,22 +2830,22 @@
2138
2830
  }
2139
2831
  }
2140
2832
  ],
2141
- "symbolId": "src/complex-computed-list:BooleanList"
2833
+ "symbolId": "src/complex-computed-list:BooleanListList"
2142
2834
  },
2143
- "cdktn.BooleanListList": {
2835
+ "cdktn.BooleanListMap": {
2144
2836
  "assembly": "cdktn",
2145
- "base": "cdktn.ComplexList",
2837
+ "base": "cdktn.ComplexMap",
2146
2838
  "docs": {
2147
2839
  "stability": "experimental"
2148
2840
  },
2149
- "fqn": "cdktn.BooleanListList",
2841
+ "fqn": "cdktn.BooleanListMap",
2150
2842
  "initializer": {
2151
2843
  "docs": {
2152
2844
  "stability": "experimental"
2153
2845
  },
2154
2846
  "locationInModule": {
2155
2847
  "filename": "src/complex-computed-list.ts",
2156
- "line": 474
2848
+ "line": 751
2157
2849
  },
2158
2850
  "parameters": [
2159
2851
  {
@@ -2167,19 +2859,13 @@
2167
2859
  "type": {
2168
2860
  "primitive": "string"
2169
2861
  }
2170
- },
2171
- {
2172
- "name": "wrapsSet",
2173
- "type": {
2174
- "primitive": "boolean"
2175
- }
2176
2862
  }
2177
2863
  ]
2178
2864
  },
2179
2865
  "kind": "class",
2180
2866
  "locationInModule": {
2181
2867
  "filename": "src/complex-computed-list.ts",
2182
- "line": 473
2868
+ "line": 750
2183
2869
  },
2184
2870
  "methods": [
2185
2871
  {
@@ -2188,14 +2874,14 @@
2188
2874
  },
2189
2875
  "locationInModule": {
2190
2876
  "filename": "src/complex-computed-list.ts",
2191
- "line": 482
2877
+ "line": 758
2192
2878
  },
2193
2879
  "name": "get",
2194
2880
  "parameters": [
2195
2881
  {
2196
- "name": "index",
2882
+ "name": "key",
2197
2883
  "type": {
2198
- "primitive": "number"
2884
+ "primitive": "string"
2199
2885
  }
2200
2886
  }
2201
2887
  ],
@@ -2206,7 +2892,7 @@
2206
2892
  }
2207
2893
  }
2208
2894
  ],
2209
- "name": "BooleanListList",
2895
+ "name": "BooleanListMap",
2210
2896
  "properties": [
2211
2897
  {
2212
2898
  "docs": {
@@ -2214,10 +2900,10 @@
2214
2900
  },
2215
2901
  "locationInModule": {
2216
2902
  "filename": "src/complex-computed-list.ts",
2217
- "line": 476
2903
+ "line": 753
2218
2904
  },
2219
2905
  "name": "terraformAttribute",
2220
- "overrides": "cdktn.ComplexList",
2906
+ "overrides": "cdktn.ComplexMap",
2221
2907
  "protected": true,
2222
2908
  "type": {
2223
2909
  "primitive": "string"
@@ -2229,14 +2915,71 @@
2229
2915
  },
2230
2916
  "locationInModule": {
2231
2917
  "filename": "src/complex-computed-list.ts",
2232
- "line": 475
2918
+ "line": 752
2233
2919
  },
2234
2920
  "name": "terraformResource",
2235
- "overrides": "cdktn.ComplexList",
2921
+ "overrides": "cdktn.ComplexMap",
2236
2922
  "protected": true,
2237
2923
  "type": {
2238
2924
  "fqn": "cdktn.IInterpolatingParent"
2239
2925
  }
2926
+ }
2927
+ ],
2928
+ "symbolId": "src/complex-computed-list:BooleanListMap"
2929
+ },
2930
+ "cdktn.BooleanMap": {
2931
+ "assembly": "cdktn",
2932
+ "docs": {
2933
+ "stability": "experimental"
2934
+ },
2935
+ "fqn": "cdktn.BooleanMap",
2936
+ "initializer": {
2937
+ "docs": {
2938
+ "stability": "experimental"
2939
+ },
2940
+ "locationInModule": {
2941
+ "filename": "src/complex-computed-list.ts",
2942
+ "line": 170
2943
+ },
2944
+ "parameters": [
2945
+ {
2946
+ "name": "terraformResource",
2947
+ "type": {
2948
+ "fqn": "cdktn.IInterpolatingParent"
2949
+ }
2950
+ },
2951
+ {
2952
+ "name": "terraformAttribute",
2953
+ "type": {
2954
+ "primitive": "string"
2955
+ }
2956
+ }
2957
+ ]
2958
+ },
2959
+ "interfaces": [
2960
+ "cdktn.ITerraformAddressable",
2961
+ "cdktn.IResolvable"
2962
+ ],
2963
+ "kind": "class",
2964
+ "locationInModule": {
2965
+ "filename": "src/complex-computed-list.ts",
2966
+ "line": 166
2967
+ },
2968
+ "methods": [
2969
+ {
2970
+ "docs": {
2971
+ "stability": "experimental"
2972
+ },
2973
+ "locationInModule": {
2974
+ "filename": "src/complex-computed-list.ts",
2975
+ "line": 183
2976
+ },
2977
+ "name": "computeFqn",
2978
+ "returns": {
2979
+ "type": {
2980
+ "primitive": "string"
2981
+ }
2982
+ }
2240
2983
  },
2241
2984
  {
2242
2985
  "docs": {
@@ -2244,32 +2987,151 @@
2244
2987
  },
2245
2988
  "locationInModule": {
2246
2989
  "filename": "src/complex-computed-list.ts",
2247
- "line": 477
2990
+ "line": 177
2248
2991
  },
2249
- "name": "wrapsSet",
2250
- "overrides": "cdktn.ComplexList",
2992
+ "name": "lookup",
2993
+ "parameters": [
2994
+ {
2995
+ "name": "key",
2996
+ "type": {
2997
+ "primitive": "string"
2998
+ }
2999
+ }
3000
+ ],
3001
+ "returns": {
3002
+ "type": {
3003
+ "fqn": "cdktn.IResolvable"
3004
+ }
3005
+ }
3006
+ },
3007
+ {
3008
+ "docs": {
3009
+ "stability": "experimental",
3010
+ "summary": "Produce the Token's value at resolution time."
3011
+ },
3012
+ "locationInModule": {
3013
+ "filename": "src/complex-computed-list.ts",
3014
+ "line": 43
3015
+ },
3016
+ "name": "resolve",
3017
+ "overrides": "cdktn.IResolvable",
3018
+ "parameters": [
3019
+ {
3020
+ "name": "_context",
3021
+ "type": {
3022
+ "fqn": "cdktn.IResolveContext"
3023
+ }
3024
+ }
3025
+ ],
3026
+ "returns": {
3027
+ "type": {
3028
+ "primitive": "any"
3029
+ }
3030
+ }
3031
+ },
3032
+ {
3033
+ "docs": {
3034
+ "remarks": "Returns a reversible string representation.",
3035
+ "stability": "experimental",
3036
+ "summary": "Return a string representation of this resolvable object."
3037
+ },
3038
+ "locationInModule": {
3039
+ "filename": "src/complex-computed-list.ts",
3040
+ "line": 47
3041
+ },
3042
+ "name": "toString",
3043
+ "overrides": "cdktn.IResolvable",
3044
+ "returns": {
3045
+ "type": {
3046
+ "primitive": "string"
3047
+ }
3048
+ }
3049
+ }
3050
+ ],
3051
+ "name": "BooleanMap",
3052
+ "properties": [
3053
+ {
3054
+ "docs": {
3055
+ "remarks": "If this returns an empty array the stack will not be attached.",
3056
+ "stability": "experimental",
3057
+ "summary": "The creation stack of this resolvable which will be appended to errors thrown during resolution."
3058
+ },
3059
+ "immutable": true,
3060
+ "locationInModule": {
3061
+ "filename": "src/complex-computed-list.ts",
3062
+ "line": 19
3063
+ },
3064
+ "name": "creationStack",
3065
+ "overrides": "cdktn.IResolvable",
3066
+ "type": {
3067
+ "collection": {
3068
+ "elementtype": {
3069
+ "primitive": "string"
3070
+ },
3071
+ "kind": "array"
3072
+ }
3073
+ }
3074
+ },
3075
+ {
3076
+ "docs": {
3077
+ "stability": "experimental"
3078
+ },
3079
+ "immutable": true,
3080
+ "locationInModule": {
3081
+ "filename": "src/complex-computed-list.ts",
3082
+ "line": 35
3083
+ },
3084
+ "name": "fqn",
3085
+ "overrides": "cdktn.ITerraformAddressable",
3086
+ "type": {
3087
+ "primitive": "string"
3088
+ }
3089
+ },
3090
+ {
3091
+ "docs": {
3092
+ "stability": "experimental"
3093
+ },
3094
+ "locationInModule": {
3095
+ "filename": "src/complex-computed-list.ts",
3096
+ "line": 172
3097
+ },
3098
+ "name": "terraformAttribute",
2251
3099
  "protected": true,
2252
3100
  "type": {
2253
- "primitive": "boolean"
3101
+ "primitive": "string"
3102
+ }
3103
+ },
3104
+ {
3105
+ "docs": {
3106
+ "stability": "experimental"
3107
+ },
3108
+ "locationInModule": {
3109
+ "filename": "src/complex-computed-list.ts",
3110
+ "line": 171
3111
+ },
3112
+ "name": "terraformResource",
3113
+ "protected": true,
3114
+ "type": {
3115
+ "fqn": "cdktn.IInterpolatingParent"
2254
3116
  }
2255
3117
  }
2256
3118
  ],
2257
- "symbolId": "src/complex-computed-list:BooleanListList"
3119
+ "symbolId": "src/complex-computed-list:BooleanMap"
2258
3120
  },
2259
- "cdktn.BooleanListMap": {
3121
+ "cdktn.BooleanMapList": {
2260
3122
  "assembly": "cdktn",
2261
- "base": "cdktn.ComplexMap",
3123
+ "base": "cdktn.MapList",
2262
3124
  "docs": {
2263
3125
  "stability": "experimental"
2264
3126
  },
2265
- "fqn": "cdktn.BooleanListMap",
3127
+ "fqn": "cdktn.BooleanMapList",
2266
3128
  "initializer": {
2267
3129
  "docs": {
2268
3130
  "stability": "experimental"
2269
3131
  },
2270
3132
  "locationInModule": {
2271
3133
  "filename": "src/complex-computed-list.ts",
2272
- "line": 751
3134
+ "line": 685
2273
3135
  },
2274
3136
  "parameters": [
2275
3137
  {
@@ -2279,9 +3141,15 @@
2279
3141
  }
2280
3142
  },
2281
3143
  {
2282
- "name": "terraformAttribute",
3144
+ "name": "terraformAttribute",
3145
+ "type": {
3146
+ "primitive": "string"
3147
+ }
3148
+ },
3149
+ {
3150
+ "name": "wrapsSet",
2283
3151
  "type": {
2284
- "primitive": "string"
3152
+ "primitive": "boolean"
2285
3153
  }
2286
3154
  }
2287
3155
  ]
@@ -2289,7 +3157,7 @@
2289
3157
  "kind": "class",
2290
3158
  "locationInModule": {
2291
3159
  "filename": "src/complex-computed-list.ts",
2292
- "line": 750
3160
+ "line": 684
2293
3161
  },
2294
3162
  "methods": [
2295
3163
  {
@@ -2298,25 +3166,25 @@
2298
3166
  },
2299
3167
  "locationInModule": {
2300
3168
  "filename": "src/complex-computed-list.ts",
2301
- "line": 758
3169
+ "line": 693
2302
3170
  },
2303
3171
  "name": "get",
2304
3172
  "parameters": [
2305
3173
  {
2306
- "name": "key",
3174
+ "name": "index",
2307
3175
  "type": {
2308
- "primitive": "string"
3176
+ "primitive": "number"
2309
3177
  }
2310
3178
  }
2311
3179
  ],
2312
3180
  "returns": {
2313
3181
  "type": {
2314
- "fqn": "cdktn.IResolvable"
3182
+ "fqn": "cdktn.BooleanMap"
2315
3183
  }
2316
3184
  }
2317
3185
  }
2318
3186
  ],
2319
- "name": "BooleanListMap",
3187
+ "name": "BooleanMapList",
2320
3188
  "properties": [
2321
3189
  {
2322
3190
  "docs": {
@@ -2324,10 +3192,10 @@
2324
3192
  },
2325
3193
  "locationInModule": {
2326
3194
  "filename": "src/complex-computed-list.ts",
2327
- "line": 753
3195
+ "line": 687
2328
3196
  },
2329
3197
  "name": "terraformAttribute",
2330
- "overrides": "cdktn.ComplexMap",
3198
+ "overrides": "cdktn.MapList",
2331
3199
  "protected": true,
2332
3200
  "type": {
2333
3201
  "primitive": "string"
@@ -2339,31 +3207,46 @@
2339
3207
  },
2340
3208
  "locationInModule": {
2341
3209
  "filename": "src/complex-computed-list.ts",
2342
- "line": 752
3210
+ "line": 686
2343
3211
  },
2344
3212
  "name": "terraformResource",
2345
- "overrides": "cdktn.ComplexMap",
3213
+ "overrides": "cdktn.MapList",
2346
3214
  "protected": true,
2347
3215
  "type": {
2348
3216
  "fqn": "cdktn.IInterpolatingParent"
2349
3217
  }
3218
+ },
3219
+ {
3220
+ "docs": {
3221
+ "stability": "experimental"
3222
+ },
3223
+ "locationInModule": {
3224
+ "filename": "src/complex-computed-list.ts",
3225
+ "line": 688
3226
+ },
3227
+ "name": "wrapsSet",
3228
+ "overrides": "cdktn.MapList",
3229
+ "protected": true,
3230
+ "type": {
3231
+ "primitive": "boolean"
3232
+ }
2350
3233
  }
2351
3234
  ],
2352
- "symbolId": "src/complex-computed-list:BooleanListMap"
3235
+ "symbolId": "src/complex-computed-list:BooleanMapList"
2353
3236
  },
2354
- "cdktn.BooleanMap": {
3237
+ "cdktn.BooleanMapMap": {
2355
3238
  "assembly": "cdktn",
2356
3239
  "docs": {
2357
3240
  "stability": "experimental"
2358
3241
  },
2359
- "fqn": "cdktn.BooleanMap",
3242
+ "fqn": "cdktn.BooleanMapMap",
2360
3243
  "initializer": {
2361
3244
  "docs": {
2362
3245
  "stability": "experimental"
2363
3246
  },
2364
3247
  "locationInModule": {
2365
3248
  "filename": "src/complex-computed-list.ts",
2366
- "line": 170
3249
+ "line": 271
2367
3250
  },
2368
3251
  "parameters": [
2369
3252
  {
@@ -2387,7 +3270,7 @@
2387
3270
  "kind": "class",
2388
3271
  "locationInModule": {
2389
3272
  "filename": "src/complex-computed-list.ts",
2390
- "line": 166
3273
+ "line": 267
2391
3274
  },
2392
3275
  "methods": [
2393
3276
  {
@@ -2396,7 +3279,7 @@
2396
3279
  },
2397
3280
  "locationInModule": {
2398
3281
  "filename": "src/complex-computed-list.ts",
2399
- "line": 183
3282
+ "line": 285
2400
3283
  },
2401
3284
  "name": "computeFqn",
2402
3285
  "returns": {
@@ -2411,7 +3294,7 @@
2411
3294
  },
2412
3295
  "locationInModule": {
2413
3296
  "filename": "src/complex-computed-list.ts",
2414
- "line": 177
3297
+ "line": 278
2415
3298
  },
2416
3299
  "name": "lookup",
2417
3300
  "parameters": [
@@ -2424,7 +3307,7 @@
2424
3307
  ],
2425
3308
  "returns": {
2426
3309
  "type": {
2427
- "fqn": "cdktn.IResolvable"
3310
+ "fqn": "cdktn.BooleanMap"
2428
3311
  }
2429
3312
  }
2430
3313
  },
@@ -2472,7 +3355,7 @@
2472
3355
  }
2473
3356
  }
2474
3357
  ],
2475
- "name": "BooleanMap",
3358
+ "name": "BooleanMapMap",
2476
3359
  "properties": [
2477
3360
  {
2478
3361
  "docs": {
@@ -2517,7 +3400,7 @@
2517
3400
  },
2518
3401
  "locationInModule": {
2519
3402
  "filename": "src/complex-computed-list.ts",
2520
- "line": 172
3403
+ "line": 273
2521
3404
  },
2522
3405
  "name": "terraformAttribute",
2523
3406
  "protected": true,
@@ -2531,7 +3414,7 @@
2531
3414
  },
2532
3415
  "locationInModule": {
2533
3416
  "filename": "src/complex-computed-list.ts",
2534
- "line": 171
3417
+ "line": 272
2535
3418
  },
2536
3419
  "name": "terraformResource",
2537
3420
  "protected": true,
@@ -2540,314 +3423,459 @@
2540
3423
  }
2541
3424
  }
2542
3425
  ],
2543
- "symbolId": "src/complex-computed-list:BooleanMap"
3426
+ "symbolId": "src/complex-computed-list:BooleanMapMap"
2544
3427
  },
2545
- "cdktn.BooleanMapList": {
3428
+ "cdktn.BundleOptions": {
2546
3429
  "assembly": "cdktn",
2547
- "base": "cdktn.MapList",
3430
+ "datatype": true,
2548
3431
  "docs": {
2549
- "stability": "experimental"
3432
+ "remarks": "A struct rather than positional parameters: adding a field is additive,\nadding a method parameter is not, and `bundle` is called through JSII where\nthat distinction is a breaking-change boundary.",
3433
+ "stability": "experimental",
3434
+ "summary": "Options handed to an {@link IAssetBundler} when it runs."
2550
3435
  },
2551
- "fqn": "cdktn.BooleanMapList",
2552
- "initializer": {
2553
- "docs": {
2554
- "stability": "experimental"
2555
- },
2556
- "locationInModule": {
2557
- "filename": "src/complex-computed-list.ts",
2558
- "line": 685
3436
+ "fqn": "cdktn.BundleOptions",
3437
+ "kind": "interface",
3438
+ "locationInModule": {
3439
+ "filename": "src/assets.ts",
3440
+ "line": 249
3441
+ },
3442
+ "name": "BundleOptions",
3443
+ "properties": [
3444
+ {
3445
+ "abstract": true,
3446
+ "docs": {
3447
+ "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}.",
3448
+ "stability": "experimental",
3449
+ "summary": "A scratch directory the bundler may write into, owned and created by the caller."
3450
+ },
3451
+ "immutable": true,
3452
+ "locationInModule": {
3453
+ "filename": "src/assets.ts",
3454
+ "line": 266
3455
+ },
3456
+ "name": "outputDir",
3457
+ "type": {
3458
+ "primitive": "string"
3459
+ }
2559
3460
  },
2560
- "parameters": [
2561
- {
2562
- "name": "terraformResource",
2563
- "type": {
2564
- "fqn": "cdktn.IInterpolatingParent"
2565
- }
3461
+ {
3462
+ "abstract": true,
3463
+ "docs": {
3464
+ "remarks": "Exclusions (`exclude` / `ignoreStrategy`) are already applied: when any\nare configured this points at a filtered copy, not the original tree, so\nthe bundler reads exactly the file set the asset hash was taken over.",
3465
+ "stability": "experimental",
3466
+ "summary": "Absolute path to the asset's source file or directory. The bundler reads from here and must not modify it."
2566
3467
  },
2567
- {
2568
- "name": "terraformAttribute",
2569
- "type": {
2570
- "primitive": "string"
2571
- }
3468
+ "immutable": true,
3469
+ "locationInModule": {
3470
+ "filename": "src/assets.ts",
3471
+ "line": 258
2572
3472
  },
2573
- {
2574
- "name": "wrapsSet",
2575
- "type": {
2576
- "primitive": "boolean"
2577
- }
3473
+ "name": "source",
3474
+ "type": {
3475
+ "primitive": "string"
2578
3476
  }
2579
- ]
3477
+ }
3478
+ ],
3479
+ "symbolId": "src/assets:BundleOptions"
3480
+ },
3481
+ "cdktn.BundleOutputType": {
3482
+ "assembly": "cdktn",
3483
+ "docs": {
3484
+ "stability": "experimental",
3485
+ "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."
3486
+ },
3487
+ "fqn": "cdktn.BundleOutputType",
3488
+ "kind": "enum",
3489
+ "locationInModule": {
3490
+ "filename": "src/assets.ts",
3491
+ "line": 274
3492
+ },
3493
+ "members": [
3494
+ {
3495
+ "docs": {
3496
+ "remarks": "Packaged like an unbundled source directory. The default, and the only\nshape that predates archive support.",
3497
+ "stability": "experimental",
3498
+ "summary": "The output is a directory tree."
3499
+ },
3500
+ "name": "DIRECTORY"
3501
+ },
3502
+ {
3503
+ "docs": {
3504
+ "remarks": "A tarball or a deterministic `.zip`. Staged verbatim rather than\nre-archived, so `AssetType.FILE` no longer has to reject a bundler.",
3505
+ "stability": "experimental",
3506
+ "summary": "The output is a single file the bundler already produced in its final form."
3507
+ },
3508
+ "name": "FILE"
3509
+ }
3510
+ ],
3511
+ "name": "BundleOutputType",
3512
+ "symbolId": "src/assets:BundleOutputType"
3513
+ },
3514
+ "cdktn.BundleResult": {
3515
+ "assembly": "cdktn",
3516
+ "docs": {
3517
+ "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.",
3518
+ "stability": "experimental",
3519
+ "summary": "What a bundler produced, returned from {@link IAssetBundler.bundle}."
2580
3520
  },
3521
+ "fqn": "cdktn.BundleResult",
2581
3522
  "kind": "class",
2582
3523
  "locationInModule": {
2583
- "filename": "src/complex-computed-list.ts",
2584
- "line": 684
3524
+ "filename": "src/assets.ts",
3525
+ "line": 299
2585
3526
  },
2586
3527
  "methods": [
2587
3528
  {
2588
3529
  "docs": {
2589
- "stability": "experimental"
3530
+ "remarks": "Distinct from a thrown error, which is a hard failure.",
3531
+ "stability": "experimental",
3532
+ "summary": "The bundler declined to run here; the caller should fall back."
2590
3533
  },
2591
3534
  "locationInModule": {
2592
- "filename": "src/complex-computed-list.ts",
2593
- "line": 693
3535
+ "filename": "src/assets.ts",
3536
+ "line": 319
2594
3537
  },
2595
- "name": "get",
3538
+ "name": "declined",
3539
+ "returns": {
3540
+ "type": {
3541
+ "fqn": "cdktn.BundleResult"
3542
+ }
3543
+ },
3544
+ "static": true
3545
+ },
3546
+ {
3547
+ "docs": {
3548
+ "stability": "experimental",
3549
+ "summary": "A directory-tree artifact at `path`."
3550
+ },
3551
+ "locationInModule": {
3552
+ "filename": "src/assets.ts",
3553
+ "line": 303
3554
+ },
3555
+ "name": "directory",
2596
3556
  "parameters": [
2597
3557
  {
2598
- "name": "index",
3558
+ "name": "path",
2599
3559
  "type": {
2600
- "primitive": "number"
3560
+ "primitive": "string"
2601
3561
  }
2602
3562
  }
2603
3563
  ],
2604
3564
  "returns": {
2605
3565
  "type": {
2606
- "fqn": "cdktn.BooleanMap"
3566
+ "fqn": "cdktn.BundleResult"
2607
3567
  }
2608
- }
3568
+ },
3569
+ "static": true
3570
+ },
3571
+ {
3572
+ "docs": {
3573
+ "stability": "experimental",
3574
+ "summary": "A single-file artifact at `path` (a tarball, a `.zip`), staged verbatim."
3575
+ },
3576
+ "locationInModule": {
3577
+ "filename": "src/assets.ts",
3578
+ "line": 310
3579
+ },
3580
+ "name": "file",
3581
+ "parameters": [
3582
+ {
3583
+ "name": "path",
3584
+ "type": {
3585
+ "primitive": "string"
3586
+ }
3587
+ }
3588
+ ],
3589
+ "returns": {
3590
+ "type": {
3591
+ "fqn": "cdktn.BundleResult"
3592
+ }
3593
+ },
3594
+ "static": true
2609
3595
  }
2610
3596
  ],
2611
- "name": "BooleanMapList",
3597
+ "name": "BundleResult",
2612
3598
  "properties": [
2613
3599
  {
2614
3600
  "docs": {
2615
- "stability": "experimental"
3601
+ "stability": "experimental",
3602
+ "summary": "Whether the bundler declined to run, signalling the caller to fall back."
2616
3603
  },
3604
+ "immutable": true,
2617
3605
  "locationInModule": {
2618
- "filename": "src/complex-computed-list.ts",
2619
- "line": 687
3606
+ "filename": "src/assets.ts",
3607
+ "line": 336
2620
3608
  },
2621
- "name": "terraformAttribute",
2622
- "overrides": "cdktn.MapList",
2623
- "protected": true,
3609
+ "name": "isDeclined",
2624
3610
  "type": {
2625
- "primitive": "string"
3611
+ "primitive": "boolean"
2626
3612
  }
2627
3613
  },
2628
3614
  {
2629
3615
  "docs": {
2630
- "stability": "experimental"
3616
+ "stability": "experimental",
3617
+ "summary": "The artifact's shape, or undefined when {@link isDeclined}."
2631
3618
  },
3619
+ "immutable": true,
2632
3620
  "locationInModule": {
2633
- "filename": "src/complex-computed-list.ts",
2634
- "line": 686
3621
+ "filename": "src/assets.ts",
3622
+ "line": 326
2635
3623
  },
2636
- "name": "terraformResource",
2637
- "overrides": "cdktn.MapList",
2638
- "protected": true,
3624
+ "name": "outputType",
3625
+ "optional": true,
2639
3626
  "type": {
2640
- "fqn": "cdktn.IInterpolatingParent"
3627
+ "fqn": "cdktn.BundleOutputType"
2641
3628
  }
2642
3629
  },
2643
3630
  {
2644
3631
  "docs": {
2645
- "stability": "experimental"
2646
- },
2647
- "locationInModule": {
2648
- "filename": "src/complex-computed-list.ts",
2649
- "line": 688
3632
+ "stability": "experimental",
3633
+ "summary": "The artifact path, or undefined when {@link isDeclined}."
2650
3634
  },
2651
- "name": "wrapsSet",
2652
- "overrides": "cdktn.MapList",
2653
- "protected": true,
2654
- "type": {
2655
- "primitive": "boolean"
2656
- }
2657
- }
2658
- ],
2659
- "symbolId": "src/complex-computed-list:BooleanMapList"
2660
- },
2661
- "cdktn.BooleanMapMap": {
2662
- "assembly": "cdktn",
2663
- "docs": {
2664
- "stability": "experimental"
2665
- },
2666
- "fqn": "cdktn.BooleanMapMap",
2667
- "initializer": {
2668
- "docs": {
2669
- "stability": "experimental"
2670
- },
2671
- "locationInModule": {
2672
- "filename": "src/complex-computed-list.ts",
2673
- "line": 271
2674
- },
2675
- "parameters": [
2676
- {
2677
- "name": "terraformResource",
2678
- "type": {
2679
- "fqn": "cdktn.IInterpolatingParent"
2680
- }
3635
+ "immutable": true,
3636
+ "locationInModule": {
3637
+ "filename": "src/assets.ts",
3638
+ "line": 331
2681
3639
  },
2682
- {
2683
- "name": "terraformAttribute",
2684
- "type": {
2685
- "primitive": "string"
2686
- }
3640
+ "name": "path",
3641
+ "optional": true,
3642
+ "type": {
3643
+ "primitive": "string"
2687
3644
  }
2688
- ]
2689
- },
2690
- "interfaces": [
2691
- "cdktn.ITerraformAddressable",
2692
- "cdktn.IResolvable"
3645
+ }
2693
3646
  ],
3647
+ "symbolId": "src/assets:BundleResult"
3648
+ },
3649
+ "cdktn.BundlerKey": {
3650
+ "assembly": "cdktn",
3651
+ "docs": {
3652
+ "example": "const key = BundlerKey.of(\"docker\", image, command)\n .withEnv({ NODE_ENV: nodeEnv })\n .toString();",
3653
+ "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.",
3654
+ "stability": "experimental",
3655
+ "summary": "Builds an {@link IAssetBundler.bundlerKey} from an ordered set of parts."
3656
+ },
3657
+ "fqn": "cdktn.BundlerKey",
2694
3658
  "kind": "class",
2695
3659
  "locationInModule": {
2696
- "filename": "src/complex-computed-list.ts",
2697
- "line": 267
3660
+ "filename": "src/assets.ts",
3661
+ "line": 432
2698
3662
  },
2699
3663
  "methods": [
2700
3664
  {
2701
3665
  "docs": {
2702
- "stability": "experimental"
3666
+ "remarks": "Order is significant: it is part of what the key identifies.",
3667
+ "stability": "experimental",
3668
+ "summary": "Start a key from an ordered list of parts."
2703
3669
  },
2704
3670
  "locationInModule": {
2705
- "filename": "src/complex-computed-list.ts",
2706
- "line": 285
3671
+ "filename": "src/assets.ts",
3672
+ "line": 438
2707
3673
  },
2708
- "name": "computeFqn",
3674
+ "name": "of",
3675
+ "parameters": [
3676
+ {
3677
+ "name": "parts",
3678
+ "type": {
3679
+ "primitive": "string"
3680
+ },
3681
+ "variadic": true
3682
+ }
3683
+ ],
2709
3684
  "returns": {
2710
3685
  "type": {
2711
- "primitive": "string"
3686
+ "fqn": "cdktn.BundlerKey"
2712
3687
  }
2713
- }
3688
+ },
3689
+ "static": true,
3690
+ "variadic": true
2714
3691
  },
2715
3692
  {
2716
3693
  "docs": {
2717
- "stability": "experimental"
3694
+ "stability": "experimental",
3695
+ "summary": "Append parts, returning a new key."
2718
3696
  },
2719
3697
  "locationInModule": {
2720
- "filename": "src/complex-computed-list.ts",
2721
- "line": 278
3698
+ "filename": "src/assets.ts",
3699
+ "line": 451
2722
3700
  },
2723
- "name": "lookup",
3701
+ "name": "add",
2724
3702
  "parameters": [
2725
3703
  {
2726
- "name": "key",
3704
+ "name": "parts",
2727
3705
  "type": {
2728
3706
  "primitive": "string"
2729
- }
3707
+ },
3708
+ "variadic": true
2730
3709
  }
2731
3710
  ],
2732
3711
  "returns": {
2733
3712
  "type": {
2734
- "fqn": "cdktn.BooleanMap"
3713
+ "fqn": "cdktn.BundlerKey"
2735
3714
  }
2736
- }
3715
+ },
3716
+ "variadic": true
2737
3717
  },
2738
3718
  {
2739
3719
  "docs": {
2740
3720
  "stability": "experimental",
2741
- "summary": "Produce the Token's value at resolution time."
3721
+ "summary": "Render the collected parts to the string passed as `bundlerKey`."
2742
3722
  },
2743
3723
  "locationInModule": {
2744
- "filename": "src/complex-computed-list.ts",
2745
- "line": 43
3724
+ "filename": "src/assets.ts",
3725
+ "line": 469
2746
3726
  },
2747
- "name": "resolve",
2748
- "overrides": "cdktn.IResolvable",
2749
- "parameters": [
2750
- {
2751
- "name": "_context",
2752
- "type": {
2753
- "fqn": "cdktn.IResolveContext"
2754
- }
2755
- }
2756
- ],
3727
+ "name": "toString",
2757
3728
  "returns": {
2758
3729
  "type": {
2759
- "primitive": "any"
3730
+ "primitive": "string"
2760
3731
  }
2761
3732
  }
2762
3733
  },
2763
3734
  {
2764
3735
  "docs": {
2765
- "remarks": "Returns a reversible string representation.",
2766
3736
  "stability": "experimental",
2767
- "summary": "Return a string representation of this resolvable object."
3737
+ "summary": "Append `key=value` parts for a record, sorted by key so the result does not depend on property order."
2768
3738
  },
2769
3739
  "locationInModule": {
2770
- "filename": "src/complex-computed-list.ts",
2771
- "line": 47
3740
+ "filename": "src/assets.ts",
3741
+ "line": 459
2772
3742
  },
2773
- "name": "toString",
2774
- "overrides": "cdktn.IResolvable",
3743
+ "name": "withEnv",
3744
+ "parameters": [
3745
+ {
3746
+ "name": "entries",
3747
+ "type": {
3748
+ "collection": {
3749
+ "elementtype": {
3750
+ "primitive": "string"
3751
+ },
3752
+ "kind": "map"
3753
+ }
3754
+ }
3755
+ }
3756
+ ],
2775
3757
  "returns": {
2776
3758
  "type": {
2777
- "primitive": "string"
3759
+ "fqn": "cdktn.BundlerKey"
2778
3760
  }
2779
3761
  }
2780
3762
  }
2781
3763
  ],
2782
- "name": "BooleanMapMap",
2783
- "properties": [
3764
+ "name": "BundlerKey",
3765
+ "symbolId": "src/assets:BundlerKey"
3766
+ },
3767
+ "cdktn.ChainBundler": {
3768
+ "assembly": "cdktn",
3769
+ "docs": {
3770
+ "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.",
3771
+ "stability": "experimental",
3772
+ "summary": "Composes bundlers into a \"try each in order until one runs\" chain."
3773
+ },
3774
+ "fqn": "cdktn.ChainBundler",
3775
+ "interfaces": [
3776
+ "cdktn.IAssetBundler"
3777
+ ],
3778
+ "kind": "class",
3779
+ "locationInModule": {
3780
+ "filename": "src/assets.ts",
3781
+ "line": 494
3782
+ },
3783
+ "methods": [
2784
3784
  {
2785
3785
  "docs": {
2786
- "remarks": "If this returns an empty array the stack will not be attached.",
3786
+ "remarks": "earlier bundlers are preferred.",
2787
3787
  "stability": "experimental",
2788
- "summary": "The creation stack of this resolvable which will be appended to errors thrown during resolution."
3788
+ "summary": "Chain bundlers in the order given;"
2789
3789
  },
2790
- "immutable": true,
2791
3790
  "locationInModule": {
2792
- "filename": "src/complex-computed-list.ts",
2793
- "line": 19
3791
+ "filename": "src/assets.ts",
3792
+ "line": 498
2794
3793
  },
2795
- "name": "creationStack",
2796
- "overrides": "cdktn.IResolvable",
2797
- "type": {
2798
- "collection": {
2799
- "elementtype": {
2800
- "primitive": "string"
3794
+ "name": "of",
3795
+ "parameters": [
3796
+ {
3797
+ "name": "bundlers",
3798
+ "type": {
3799
+ "fqn": "cdktn.IAssetBundler"
2801
3800
  },
2802
- "kind": "array"
3801
+ "variadic": true
2803
3802
  }
2804
- }
3803
+ ],
3804
+ "returns": {
3805
+ "type": {
3806
+ "fqn": "cdktn.ChainBundler"
3807
+ }
3808
+ },
3809
+ "static": true,
3810
+ "variadic": true
2805
3811
  },
2806
3812
  {
2807
3813
  "docs": {
2808
- "stability": "experimental"
3814
+ "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.",
3815
+ "stability": "experimental",
3816
+ "summary": "Produce the artifact and return a {@link BundleResult} describing it."
2809
3817
  },
2810
- "immutable": true,
2811
3818
  "locationInModule": {
2812
- "filename": "src/complex-computed-list.ts",
2813
- "line": 35
3819
+ "filename": "src/assets.ts",
3820
+ "line": 532
2814
3821
  },
2815
- "name": "fqn",
2816
- "overrides": "cdktn.ITerraformAddressable",
2817
- "type": {
2818
- "primitive": "string"
3822
+ "name": "bundle",
3823
+ "overrides": "cdktn.IAssetBundler",
3824
+ "parameters": [
3825
+ {
3826
+ "name": "options",
3827
+ "type": {
3828
+ "fqn": "cdktn.BundleOptions"
3829
+ }
3830
+ }
3831
+ ],
3832
+ "returns": {
3833
+ "type": {
3834
+ "fqn": "cdktn.BundleResult"
3835
+ }
2819
3836
  }
2820
- },
3837
+ }
3838
+ ],
3839
+ "name": "ChainBundler",
3840
+ "properties": [
2821
3841
  {
2822
3842
  "docs": {
2823
- "stability": "experimental"
3843
+ "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`.",
3844
+ "stability": "experimental",
3845
+ "summary": "A value identifying the build, folded into the asset hash."
2824
3846
  },
3847
+ "immutable": true,
2825
3848
  "locationInModule": {
2826
- "filename": "src/complex-computed-list.ts",
2827
- "line": 273
3849
+ "filename": "src/assets.ts",
3850
+ "line": 502
2828
3851
  },
2829
- "name": "terraformAttribute",
2830
- "protected": true,
3852
+ "name": "bundlerKey",
3853
+ "optional": true,
3854
+ "overrides": "cdktn.IAssetBundler",
2831
3855
  "type": {
2832
3856
  "primitive": "string"
2833
3857
  }
2834
3858
  },
2835
3859
  {
2836
3860
  "docs": {
2837
- "stability": "experimental"
3861
+ "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.",
3862
+ "stability": "experimental",
3863
+ "summary": "The name a single-file artifact is staged under (e.g. `archive.zip`)."
2838
3864
  },
3865
+ "immutable": true,
2839
3866
  "locationInModule": {
2840
- "filename": "src/complex-computed-list.ts",
2841
- "line": 272
3867
+ "filename": "src/assets.ts",
3868
+ "line": 504
2842
3869
  },
2843
- "name": "terraformResource",
2844
- "protected": true,
3870
+ "name": "outputFileName",
3871
+ "optional": true,
3872
+ "overrides": "cdktn.IAssetBundler",
2845
3873
  "type": {
2846
- "fqn": "cdktn.IInterpolatingParent"
3874
+ "primitive": "string"
2847
3875
  }
2848
3876
  }
2849
3877
  ],
2850
- "symbolId": "src/complex-computed-list:BooleanMapMap"
3878
+ "symbolId": "src/assets:ChainBundler"
2851
3879
  },
2852
3880
  "cdktn.CloudBackend": {
2853
3881
  "assembly": "cdktn",
@@ -5409,7 +6437,7 @@
5409
6437
  "assembly": "cdktn",
5410
6438
  "base": "cdktn.TerraformResource",
5411
6439
  "docs": {
5412
- "remarks": "You can use the DataResource resource without requiring or configuring a provider.\n\nThe DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them.\n\nIt requires Terraform 1.4 or later.\n\nIt is also possible to generate these bindings by adding \"terraform.io/builtin/terraform\" to the \"terraformProviders\" key in your cdktf.json file and running \"cdktn get\".\n\nhttps://developer.hashicorp.com/terraform/language/resources/terraform-data",
6440
+ "remarks": "You can use the DataResource resource without requiring or configuring a provider.\n\nThe DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them.\n\nIt requires Terraform >=1.4.0 or OpenTofu >=1.6.0.\n\nIt is also possible to generate these bindings by adding \"terraform.io/builtin/terraform\" to the \"terraformProviders\" key in your cdktf.json file and running \"cdktn get\".\n\nhttps://developer.hashicorp.com/terraform/language/resources/terraform-data",
5413
6441
  "stability": "experimental",
5414
6442
  "summary": "The DataResource implements the standard resource lifecycle, but does not directly take any other actions."
5415
6443
  },
@@ -6687,7 +7715,7 @@
6687
7715
  },
6688
7716
  "locationInModule": {
6689
7717
  "filename": "src/terraform-iterator.ts",
6690
- "line": 506
7718
+ "line": 503
6691
7719
  },
6692
7720
  "parameters": [
6693
7721
  {
@@ -6746,7 +7774,7 @@
6746
7774
  "kind": "class",
6747
7775
  "locationInModule": {
6748
7776
  "filename": "src/terraform-iterator.ts",
6749
- "line": 505
7777
+ "line": 502
6750
7778
  },
6751
7779
  "name": "DynamicListTerraformIterator",
6752
7780
  "symbolId": "src/terraform-iterator:DynamicListTerraformIterator"
@@ -6767,25 +7795,130 @@
6767
7795
  "name": "EncodingOptions",
6768
7796
  "properties": [
6769
7797
  {
6770
- "abstract": true,
7798
+ "abstract": true,
7799
+ "docs": {
7800
+ "default": "- no display hint",
7801
+ "stability": "experimental",
7802
+ "summary": "A hint for the Token's purpose when stringifying it."
7803
+ },
7804
+ "immutable": true,
7805
+ "locationInModule": {
7806
+ "filename": "src/tokens/token.ts",
7807
+ "line": 345
7808
+ },
7809
+ "name": "displayHint",
7810
+ "optional": true,
7811
+ "type": {
7812
+ "primitive": "string"
7813
+ }
7814
+ }
7815
+ ],
7816
+ "symbolId": "src/tokens/token:EncodingOptions"
7817
+ },
7818
+ "cdktn.ExcludeIgnoreStrategy": {
7819
+ "assembly": "cdktn",
7820
+ "docs": {
7821
+ "stability": "experimental",
7822
+ "summary": "The default ignore strategy: exact paths, `*.ext` suffixes, and directories (with everything inside them)."
7823
+ },
7824
+ "fqn": "cdktn.ExcludeIgnoreStrategy",
7825
+ "initializer": {
7826
+ "docs": {
7827
+ "stability": "experimental"
7828
+ },
7829
+ "locationInModule": {
7830
+ "filename": "src/ignore-strategy.ts",
7831
+ "line": 94
7832
+ },
7833
+ "parameters": [
7834
+ {
7835
+ "name": "exclude",
7836
+ "type": {
7837
+ "collection": {
7838
+ "elementtype": {
7839
+ "primitive": "string"
7840
+ },
7841
+ "kind": "array"
7842
+ }
7843
+ }
7844
+ }
7845
+ ]
7846
+ },
7847
+ "interfaces": [
7848
+ "cdktn.IIgnoreStrategy"
7849
+ ],
7850
+ "kind": "class",
7851
+ "locationInModule": {
7852
+ "filename": "src/ignore-strategy.ts",
7853
+ "line": 85
7854
+ },
7855
+ "methods": [
7856
+ {
7857
+ "docs": {
7858
+ "stability": "experimental",
7859
+ "summary": "Whether the given entry should be excluded."
7860
+ },
7861
+ "locationInModule": {
7862
+ "filename": "src/ignore-strategy.ts",
7863
+ "line": 99
7864
+ },
7865
+ "name": "ignores",
7866
+ "overrides": "cdktn.IIgnoreStrategy",
7867
+ "parameters": [
7868
+ {
7869
+ "name": "query",
7870
+ "type": {
7871
+ "fqn": "cdktn.IgnoreQuery"
7872
+ }
7873
+ }
7874
+ ],
7875
+ "returns": {
7876
+ "type": {
7877
+ "primitive": "boolean"
7878
+ }
7879
+ }
7880
+ }
7881
+ ],
7882
+ "name": "ExcludeIgnoreStrategy",
7883
+ "properties": [
7884
+ {
7885
+ "docs": {
7886
+ "remarks": "Two strategies that return the same\n`cacheKey` must exclude the same paths.\n\nCallers such as `AssetStaging`'s result cache key on a JSON-serializable\nrepresentation of their inputs, which a strategy instance is not. Omit\nthis when the strategy's behavior can't be summarized this way; the\ncaller then has to treat every call as uncacheable.",
7887
+ "stability": "experimental",
7888
+ "summary": "A value identifying this strategy's exclusion behavior, suitable for folding into a cache key."
7889
+ },
7890
+ "immutable": true,
7891
+ "locationInModule": {
7892
+ "filename": "src/ignore-strategy.ts",
7893
+ "line": 88
7894
+ },
7895
+ "name": "cacheKey",
7896
+ "optional": true,
7897
+ "overrides": "cdktn.IIgnoreStrategy",
7898
+ "type": {
7899
+ "primitive": "string"
7900
+ }
7901
+ },
7902
+ {
6771
7903
  "docs": {
6772
- "default": "- no display hint",
7904
+ "remarks": "When `true` (the default), the walkers stop descending as soon as a\ndirectory is excluded — cheaper, and correct for a strategy whose\npatterns never re-include a path below an excluded parent.\n\nA strategy with negation patterns must set this to `false`:\n`.gitignore` / `.dockerignore` allow `node_modules` followed by\n`!node_modules/keep`, which is only reachable if the walk descends into\nthe excluded `node_modules` and asks about `node_modules/keep`. The\nexcluded directory entry itself is still omitted; only the descent\nchanges. Opting out costs a full walk of excluded subtrees.",
6773
7905
  "stability": "experimental",
6774
- "summary": "A hint for the Token's purpose when stringifying it."
7906
+ "summary": "Whether excluding a directory also excludes everything beneath it."
6775
7907
  },
6776
7908
  "immutable": true,
6777
7909
  "locationInModule": {
6778
- "filename": "src/tokens/token.ts",
6779
- "line": 345
7910
+ "filename": "src/ignore-strategy.ts",
7911
+ "line": 92
6780
7912
  },
6781
- "name": "displayHint",
7913
+ "name": "pruneExcludedDirectories",
6782
7914
  "optional": true,
7915
+ "overrides": "cdktn.IIgnoreStrategy",
6783
7916
  "type": {
6784
- "primitive": "string"
7917
+ "primitive": "boolean"
6785
7918
  }
6786
7919
  }
6787
7920
  ],
6788
- "symbolId": "src/tokens/token:EncodingOptions"
7921
+ "symbolId": "src/ignore-strategy:ExcludeIgnoreStrategy"
6789
7922
  },
6790
7923
  "cdktn.FileProvisioner": {
6791
7924
  "assembly": "cdktn",
@@ -11325,35 +12458,346 @@
11325
12458
  ],
11326
12459
  "symbolId": "src/backends/http-backend:HttpBackendConfig"
11327
12460
  },
11328
- "cdktn.IAnyProducer": {
12461
+ "cdktn.IAnyProducer": {
12462
+ "assembly": "cdktn",
12463
+ "docs": {
12464
+ "stability": "experimental",
12465
+ "summary": "Interface for lazy untyped value producers."
12466
+ },
12467
+ "fqn": "cdktn.IAnyProducer",
12468
+ "kind": "interface",
12469
+ "locationInModule": {
12470
+ "filename": "src/tokens/lazy.ts",
12471
+ "line": 41
12472
+ },
12473
+ "methods": [
12474
+ {
12475
+ "abstract": true,
12476
+ "docs": {
12477
+ "stability": "experimental",
12478
+ "summary": "Produce the value."
12479
+ },
12480
+ "locationInModule": {
12481
+ "filename": "src/tokens/lazy.ts",
12482
+ "line": 45
12483
+ },
12484
+ "name": "produce",
12485
+ "parameters": [
12486
+ {
12487
+ "name": "context",
12488
+ "type": {
12489
+ "fqn": "cdktn.IResolveContext"
12490
+ }
12491
+ }
12492
+ ],
12493
+ "returns": {
12494
+ "type": {
12495
+ "primitive": "any"
12496
+ }
12497
+ }
12498
+ }
12499
+ ],
12500
+ "name": "IAnyProducer",
12501
+ "symbolId": "src/tokens/lazy:IAnyProducer"
12502
+ },
12503
+ "cdktn.IAspect": {
12504
+ "assembly": "cdktn",
12505
+ "docs": {
12506
+ "stability": "experimental",
12507
+ "summary": "Represents an Aspect."
12508
+ },
12509
+ "fqn": "cdktn.IAspect",
12510
+ "kind": "interface",
12511
+ "locationInModule": {
12512
+ "filename": "src/aspect.ts",
12513
+ "line": 12
12514
+ },
12515
+ "methods": [
12516
+ {
12517
+ "abstract": true,
12518
+ "docs": {
12519
+ "stability": "experimental",
12520
+ "summary": "All aspects can visit an IConstruct."
12521
+ },
12522
+ "locationInModule": {
12523
+ "filename": "src/aspect.ts",
12524
+ "line": 16
12525
+ },
12526
+ "name": "visit",
12527
+ "parameters": [
12528
+ {
12529
+ "name": "node",
12530
+ "type": {
12531
+ "fqn": "constructs.IConstruct"
12532
+ }
12533
+ }
12534
+ ]
12535
+ }
12536
+ ],
12537
+ "name": "IAspect",
12538
+ "symbolId": "src/aspect:IAspect"
12539
+ },
12540
+ "cdktn.IAsset": {
12541
+ "assembly": "cdktn",
12542
+ "docs": {
12543
+ "stability": "experimental",
12544
+ "summary": "Common interface for all assets."
12545
+ },
12546
+ "fqn": "cdktn.IAsset",
12547
+ "kind": "interface",
12548
+ "locationInModule": {
12549
+ "filename": "src/assets.ts",
12550
+ "line": 17
12551
+ },
12552
+ "name": "IAsset",
12553
+ "properties": [
12554
+ {
12555
+ "abstract": true,
12556
+ "docs": {
12557
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
12558
+ "stability": "experimental",
12559
+ "summary": "A hash of this asset, available at construction time."
12560
+ },
12561
+ "immutable": true,
12562
+ "locationInModule": {
12563
+ "filename": "src/assets.ts",
12564
+ "line": 24
12565
+ },
12566
+ "name": "assetHash",
12567
+ "type": {
12568
+ "primitive": "string"
12569
+ }
12570
+ }
12571
+ ],
12572
+ "symbolId": "src/assets:IAsset"
12573
+ },
12574
+ "cdktn.IAssetBundler": {
12575
+ "assembly": "cdktn",
12576
+ "docs": {
12577
+ "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.",
12578
+ "stability": "experimental",
12579
+ "summary": "Transforms a source tree into a built artifact. Runs at synth, before the output is packaged and staged."
12580
+ },
12581
+ "fqn": "cdktn.IAssetBundler",
12582
+ "kind": "interface",
12583
+ "locationInModule": {
12584
+ "filename": "src/assets.ts",
12585
+ "line": 369
12586
+ },
12587
+ "methods": [
12588
+ {
12589
+ "abstract": true,
12590
+ "docs": {
12591
+ "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.",
12592
+ "stability": "experimental",
12593
+ "summary": "Produce the artifact and return a {@link BundleResult} describing it."
12594
+ },
12595
+ "locationInModule": {
12596
+ "filename": "src/assets.ts",
12597
+ "line": 415
12598
+ },
12599
+ "name": "bundle",
12600
+ "parameters": [
12601
+ {
12602
+ "name": "options",
12603
+ "type": {
12604
+ "fqn": "cdktn.BundleOptions"
12605
+ }
12606
+ }
12607
+ ],
12608
+ "returns": {
12609
+ "type": {
12610
+ "fqn": "cdktn.BundleResult"
12611
+ }
12612
+ }
12613
+ }
12614
+ ],
12615
+ "name": "IAssetBundler",
12616
+ "properties": [
12617
+ {
12618
+ "abstract": true,
12619
+ "docs": {
12620
+ "default": "- the build does not contribute to the hash",
12621
+ "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`.",
12622
+ "stability": "experimental",
12623
+ "summary": "A value identifying the build, folded into the asset hash."
12624
+ },
12625
+ "immutable": true,
12626
+ "locationInModule": {
12627
+ "filename": "src/assets.ts",
12628
+ "line": 385
12629
+ },
12630
+ "name": "bundlerKey",
12631
+ "optional": true,
12632
+ "type": {
12633
+ "primitive": "string"
12634
+ }
12635
+ },
12636
+ {
12637
+ "abstract": true,
12638
+ "docs": {
12639
+ "default": "- the source path's basename",
12640
+ "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.",
12641
+ "stability": "experimental",
12642
+ "summary": "The name a single-file artifact is staged under (e.g. `archive.zip`)."
12643
+ },
12644
+ "immutable": true,
12645
+ "locationInModule": {
12646
+ "filename": "src/assets.ts",
12647
+ "line": 402
12648
+ },
12649
+ "name": "outputFileName",
12650
+ "optional": true,
12651
+ "type": {
12652
+ "primitive": "string"
12653
+ }
12654
+ }
12655
+ ],
12656
+ "symbolId": "src/assets:IAssetBundler"
12657
+ },
12658
+ "cdktn.IAssetPackaging": {
12659
+ "assembly": "cdktn",
12660
+ "docs": {
12661
+ "remarks": "Packaging answers two independent questions: how the artifact is produced\n(copy, zip, tar.gz, ...) and whether the result is a directory or a single\nfile. A closed enum can only ever answer the second one, so it is an\ninterface rather than an enum — custom formats (e.g. `tar.bz2`) need no\ncore change.",
12662
+ "stability": "experimental",
12663
+ "summary": "How a staged asset is produced and what shape it takes on disk."
12664
+ },
12665
+ "fqn": "cdktn.IAssetPackaging",
12666
+ "kind": "interface",
12667
+ "locationInModule": {
12668
+ "filename": "src/assets.ts",
12669
+ "line": 94
12670
+ },
12671
+ "methods": [
12672
+ {
12673
+ "abstract": true,
12674
+ "docs": {
12675
+ "stability": "experimental",
12676
+ "summary": "Write the packaged result to `options.target`."
12677
+ },
12678
+ "locationInModule": {
12679
+ "filename": "src/assets.ts",
12680
+ "line": 134
12681
+ },
12682
+ "name": "pack",
12683
+ "parameters": [
12684
+ {
12685
+ "name": "options",
12686
+ "type": {
12687
+ "fqn": "cdktn.PackOptions"
12688
+ }
12689
+ }
12690
+ ]
12691
+ }
12692
+ ],
12693
+ "name": "IAssetPackaging",
12694
+ "properties": [
12695
+ {
12696
+ "abstract": true,
12697
+ "docs": {
12698
+ "remarks": "Independent of `producesDirectory` and `omitsDirectoryEntries`, both of\nwhich describe the output: a `tar.gz` packaging takes a directory source\nyet emits a single file. Bundler output is always a directory, so a\npackaging that is `false` here cannot stage it.",
12699
+ "stability": "experimental",
12700
+ "summary": "Whether `pack` accepts a directory as its `source`."
12701
+ },
12702
+ "immutable": true,
12703
+ "locationInModule": {
12704
+ "filename": "src/assets.ts",
12705
+ "line": 116
12706
+ },
12707
+ "name": "acceptsDirectorySource",
12708
+ "type": {
12709
+ "primitive": "boolean"
12710
+ }
12711
+ },
12712
+ {
12713
+ "abstract": true,
12714
+ "docs": {
12715
+ "stability": "experimental",
12716
+ "summary": "Appended to the staged artifact name, e.g. \".zip\", \"\", \".tar.bz2\"."
12717
+ },
12718
+ "immutable": true,
12719
+ "locationInModule": {
12720
+ "filename": "src/assets.ts",
12721
+ "line": 98
12722
+ },
12723
+ "name": "extension",
12724
+ "type": {
12725
+ "primitive": "string"
12726
+ }
12727
+ },
12728
+ {
12729
+ "abstract": true,
12730
+ "docs": {
12731
+ "remarks": "`hashPath`'s `archive` frame\nmust agree with this or the hash and the artifact describe different\nfile sets.\n\n`ZipPackaging` sets this because `archiveSync` never emits ZIP directory\nentries. A directory-producing packaging that mirrors the source tree\n(e.g. `DirectoryPackaging`) leaves this false, since its directories are\nreal entries on disk.",
12732
+ "stability": "experimental",
12733
+ "summary": "Whether `pack` emits an artifact with no directory entries of its own — only the ignore-strategy-aware source walk."
12734
+ },
12735
+ "immutable": true,
12736
+ "locationInModule": {
12737
+ "filename": "src/assets.ts",
12738
+ "line": 129
12739
+ },
12740
+ "name": "omitsDirectoryEntries",
12741
+ "type": {
12742
+ "primitive": "boolean"
12743
+ }
12744
+ },
12745
+ {
12746
+ "abstract": true,
12747
+ "docs": {
12748
+ "remarks": "Publishers branch on this to decide whether they upload one object or\nsync a tree.",
12749
+ "stability": "experimental",
12750
+ "summary": "Whether the staged result is a directory rather than a single file."
12751
+ },
12752
+ "immutable": true,
12753
+ "locationInModule": {
12754
+ "filename": "src/assets.ts",
12755
+ "line": 106
12756
+ },
12757
+ "name": "producesDirectory",
12758
+ "type": {
12759
+ "primitive": "boolean"
12760
+ }
12761
+ }
12762
+ ],
12763
+ "symbolId": "src/assets:IAssetPackaging"
12764
+ },
12765
+ "cdktn.IFragmentConcatenator": {
11329
12766
  "assembly": "cdktn",
11330
12767
  "docs": {
12768
+ "remarks": "Interface so it could potentially be exposed over jsii.",
11331
12769
  "stability": "experimental",
11332
- "summary": "Interface for lazy untyped value producers."
12770
+ "summary": "Function used to concatenate symbols in the target document language."
11333
12771
  },
11334
- "fqn": "cdktn.IAnyProducer",
12772
+ "fqn": "cdktn.IFragmentConcatenator",
11335
12773
  "kind": "interface",
11336
12774
  "locationInModule": {
11337
- "filename": "src/tokens/lazy.ts",
11338
- "line": 41
12775
+ "filename": "src/tokens/resolvable.ts",
12776
+ "line": 144
11339
12777
  },
11340
12778
  "methods": [
11341
12779
  {
11342
12780
  "abstract": true,
11343
12781
  "docs": {
11344
12782
  "stability": "experimental",
11345
- "summary": "Produce the value."
12783
+ "summary": "Join the fragment on the left and on the right."
11346
12784
  },
11347
12785
  "locationInModule": {
11348
- "filename": "src/tokens/lazy.ts",
11349
- "line": 45
12786
+ "filename": "src/tokens/resolvable.ts",
12787
+ "line": 148
11350
12788
  },
11351
- "name": "produce",
12789
+ "name": "join",
11352
12790
  "parameters": [
11353
12791
  {
11354
- "name": "context",
12792
+ "name": "left",
11355
12793
  "type": {
11356
- "fqn": "cdktn.IResolveContext"
12794
+ "primitive": "any"
12795
+ }
12796
+ },
12797
+ {
12798
+ "name": "right",
12799
+ "type": {
12800
+ "primitive": "any"
11357
12801
  }
11358
12802
  }
11359
12803
  ],
@@ -11364,94 +12808,94 @@
11364
12808
  }
11365
12809
  }
11366
12810
  ],
11367
- "name": "IAnyProducer",
11368
- "symbolId": "src/tokens/lazy:IAnyProducer"
12811
+ "name": "IFragmentConcatenator",
12812
+ "symbolId": "src/tokens/resolvable:IFragmentConcatenator"
11369
12813
  },
11370
- "cdktn.IAspect": {
12814
+ "cdktn.IIgnoreStrategy": {
11371
12815
  "assembly": "cdktn",
11372
12816
  "docs": {
12817
+ "remarks": "Core ships only the exact-path / `*.ext` / directory matcher used by\n`exclude` today (`ExcludeIgnoreStrategy`). Full glob, `.gitignore`, and\n`.dockerignore` parity can be implemented against this interface without\ncore taking on a glob parser.",
11373
12818
  "stability": "experimental",
11374
- "summary": "Represents an Aspect."
12819
+ "summary": "Decides whether a path relative to an asset root is excluded from staging and hashing."
11375
12820
  },
11376
- "fqn": "cdktn.IAspect",
12821
+ "fqn": "cdktn.IIgnoreStrategy",
11377
12822
  "kind": "interface",
11378
12823
  "locationInModule": {
11379
- "filename": "src/aspect.ts",
11380
- "line": 12
12824
+ "filename": "src/ignore-strategy.ts",
12825
+ "line": 41
11381
12826
  },
11382
12827
  "methods": [
11383
12828
  {
11384
12829
  "abstract": true,
11385
12830
  "docs": {
11386
12831
  "stability": "experimental",
11387
- "summary": "All aspects can visit an IConstruct."
12832
+ "summary": "Whether the given entry should be excluded."
11388
12833
  },
11389
12834
  "locationInModule": {
11390
- "filename": "src/aspect.ts",
11391
- "line": 16
12835
+ "filename": "src/ignore-strategy.ts",
12836
+ "line": 46
11392
12837
  },
11393
- "name": "visit",
12838
+ "name": "ignores",
11394
12839
  "parameters": [
11395
12840
  {
11396
- "name": "node",
12841
+ "docs": {
12842
+ "summary": "- the entry under consideration, see {@link IgnoreQuery}."
12843
+ },
12844
+ "name": "query",
11397
12845
  "type": {
11398
- "fqn": "constructs.IConstruct"
12846
+ "fqn": "cdktn.IgnoreQuery"
11399
12847
  }
11400
12848
  }
11401
- ]
12849
+ ],
12850
+ "returns": {
12851
+ "type": {
12852
+ "primitive": "boolean"
12853
+ }
12854
+ }
11402
12855
  }
11403
12856
  ],
11404
- "name": "IAspect",
11405
- "symbolId": "src/aspect:IAspect"
11406
- },
11407
- "cdktn.IFragmentConcatenator": {
11408
- "assembly": "cdktn",
11409
- "docs": {
11410
- "remarks": "Interface so it could potentially be exposed over jsii.",
11411
- "stability": "experimental",
11412
- "summary": "Function used to concatenate symbols in the target document language."
11413
- },
11414
- "fqn": "cdktn.IFragmentConcatenator",
11415
- "kind": "interface",
11416
- "locationInModule": {
11417
- "filename": "src/tokens/resolvable.ts",
11418
- "line": 144
11419
- },
11420
- "methods": [
12857
+ "name": "IIgnoreStrategy",
12858
+ "properties": [
11421
12859
  {
11422
12860
  "abstract": true,
11423
12861
  "docs": {
12862
+ "default": "- this strategy cannot be represented in a cache key",
12863
+ "remarks": "Two strategies that return the same\n`cacheKey` must exclude the same paths.\n\nCallers such as `AssetStaging`'s result cache key on a JSON-serializable\nrepresentation of their inputs, which a strategy instance is not. Omit\nthis when the strategy's behavior can't be summarized this way; the\ncaller then has to treat every call as uncacheable.",
11424
12864
  "stability": "experimental",
11425
- "summary": "Join the fragment on the left and on the right."
12865
+ "summary": "A value identifying this strategy's exclusion behavior, suitable for folding into a cache key."
11426
12866
  },
12867
+ "immutable": true,
11427
12868
  "locationInModule": {
11428
- "filename": "src/tokens/resolvable.ts",
11429
- "line": 148
12869
+ "filename": "src/ignore-strategy.ts",
12870
+ "line": 78
11430
12871
  },
11431
- "name": "join",
11432
- "parameters": [
11433
- {
11434
- "name": "left",
11435
- "type": {
11436
- "primitive": "any"
11437
- }
11438
- },
11439
- {
11440
- "name": "right",
11441
- "type": {
11442
- "primitive": "any"
11443
- }
11444
- }
11445
- ],
11446
- "returns": {
11447
- "type": {
11448
- "primitive": "any"
11449
- }
12872
+ "name": "cacheKey",
12873
+ "optional": true,
12874
+ "type": {
12875
+ "primitive": "string"
12876
+ }
12877
+ },
12878
+ {
12879
+ "abstract": true,
12880
+ "docs": {
12881
+ "default": "true",
12882
+ "remarks": "When `true` (the default), the walkers stop descending as soon as a\ndirectory is excluded — cheaper, and correct for a strategy whose\npatterns never re-include a path below an excluded parent.\n\nA strategy with negation patterns must set this to `false`:\n`.gitignore` / `.dockerignore` allow `node_modules` followed by\n`!node_modules/keep`, which is only reachable if the walk descends into\nthe excluded `node_modules` and asks about `node_modules/keep`. The\nexcluded directory entry itself is still omitted; only the descent\nchanges. Opting out costs a full walk of excluded subtrees.",
12883
+ "stability": "experimental",
12884
+ "summary": "Whether excluding a directory also excludes everything beneath it."
12885
+ },
12886
+ "immutable": true,
12887
+ "locationInModule": {
12888
+ "filename": "src/ignore-strategy.ts",
12889
+ "line": 64
12890
+ },
12891
+ "name": "pruneExcludedDirectories",
12892
+ "optional": true,
12893
+ "type": {
12894
+ "primitive": "boolean"
11450
12895
  }
11451
12896
  }
11452
12897
  ],
11453
- "name": "IFragmentConcatenator",
11454
- "symbolId": "src/tokens/resolvable:IFragmentConcatenator"
12898
+ "symbolId": "src/ignore-strategy:IIgnoreStrategy"
11455
12899
  },
11456
12900
  "cdktn.IImportableConfig": {
11457
12901
  "assembly": "cdktn",
@@ -12653,7 +14097,7 @@
12653
14097
  "kind": "interface",
12654
14098
  "locationInModule": {
12655
14099
  "filename": "src/tokens/string-fragments.ts",
12656
- "line": 218
14100
+ "line": 215
12657
14101
  },
12658
14102
  "methods": [
12659
14103
  {
@@ -12664,7 +14108,7 @@
12664
14108
  },
12665
14109
  "locationInModule": {
12666
14110
  "filename": "src/tokens/string-fragments.ts",
12667
- "line": 222
14111
+ "line": 219
12668
14112
  },
12669
14113
  "name": "mapToken",
12670
14114
  "parameters": [
@@ -12879,6 +14323,58 @@
12879
14323
  "name": "ITokenResolver",
12880
14324
  "symbolId": "src/tokens/resolvable:ITokenResolver"
12881
14325
  },
14326
+ "cdktn.IgnoreQuery": {
14327
+ "assembly": "cdktn",
14328
+ "datatype": true,
14329
+ "docs": {
14330
+ "remarks": "A struct rather than a positional `relativePath` string so the shape can\nevolve. `isDirectory` is carried from the outset because `.gitignore` /\n`.dockerignore` semantics turn on it: a `foo/` pattern matches a\ndirectory but not a file named `foo`, and a matcher cannot recover\nthat distinction from the path text alone.",
14331
+ "stability": "experimental",
14332
+ "summary": "A single entry presented to an {@link IIgnoreStrategy}."
14333
+ },
14334
+ "fqn": "cdktn.IgnoreQuery",
14335
+ "kind": "interface",
14336
+ "locationInModule": {
14337
+ "filename": "src/ignore-strategy.ts",
14338
+ "line": 14
14339
+ },
14340
+ "name": "IgnoreQuery",
14341
+ "properties": [
14342
+ {
14343
+ "abstract": true,
14344
+ "docs": {
14345
+ "remarks": "The tree walkers set this from `lstat`, so a strategy can honor\ndirectory-only patterns without stat-ing the path itself (which it has\nno root to resolve against). Excluding a directory also excludes\neverything below it, since the walkers stop descending once a directory\nis excluded.",
14346
+ "stability": "experimental",
14347
+ "summary": "Whether this entry is a directory rather than a file or symlink."
14348
+ },
14349
+ "immutable": true,
14350
+ "locationInModule": {
14351
+ "filename": "src/ignore-strategy.ts",
14352
+ "line": 29
14353
+ },
14354
+ "name": "isDirectory",
14355
+ "type": {
14356
+ "primitive": "boolean"
14357
+ }
14358
+ },
14359
+ {
14360
+ "abstract": true,
14361
+ "docs": {
14362
+ "stability": "experimental",
14363
+ "summary": "`/`-separated path relative to the asset root."
14364
+ },
14365
+ "immutable": true,
14366
+ "locationInModule": {
14367
+ "filename": "src/ignore-strategy.ts",
14368
+ "line": 18
14369
+ },
14370
+ "name": "relativePath",
14371
+ "type": {
14372
+ "primitive": "string"
14373
+ }
14374
+ }
14375
+ ],
14376
+ "symbolId": "src/ignore-strategy:IgnoreQuery"
14377
+ },
12882
14378
  "cdktn.ImportableResource": {
12883
14379
  "assembly": "cdktn",
12884
14380
  "base": "cdktn.TerraformElement",
@@ -13457,7 +14953,7 @@
13457
14953
  },
13458
14954
  "locationInModule": {
13459
14955
  "filename": "src/terraform-iterator.ts",
13460
- "line": 406
14956
+ "line": 403
13461
14957
  },
13462
14958
  "parameters": [
13463
14959
  {
@@ -13510,7 +15006,7 @@
13510
15006
  "kind": "class",
13511
15007
  "locationInModule": {
13512
15008
  "filename": "src/terraform-iterator.ts",
13513
- "line": 405
15009
+ "line": 402
13514
15010
  },
13515
15011
  "name": "ListTerraformIterator",
13516
15012
  "properties": [
@@ -13523,7 +15019,7 @@
13523
15019
  "immutable": true,
13524
15020
  "locationInModule": {
13525
15021
  "filename": "src/terraform-iterator.ts",
13526
- "line": 416
15022
+ "line": 413
13527
15023
  },
13528
15024
  "name": "key",
13529
15025
  "type": {
@@ -13538,7 +15034,7 @@
13538
15034
  "immutable": true,
13539
15035
  "locationInModule": {
13540
15036
  "filename": "src/terraform-iterator.ts",
13541
- "line": 423
15037
+ "line": 420
13542
15038
  },
13543
15039
  "name": "value",
13544
15040
  "type": {
@@ -14307,7 +15803,7 @@
14307
15803
  },
14308
15804
  "locationInModule": {
14309
15805
  "filename": "src/terraform-iterator.ts",
14310
- "line": 438
15806
+ "line": 435
14311
15807
  },
14312
15808
  "parameters": [
14313
15809
  {
@@ -14363,7 +15859,7 @@
14363
15859
  "kind": "class",
14364
15860
  "locationInModule": {
14365
15861
  "filename": "src/terraform-iterator.ts",
14366
- "line": 437
15862
+ "line": 434
14367
15863
  },
14368
15864
  "name": "MapTerraformIterator",
14369
15865
  "properties": [
@@ -14375,7 +15871,7 @@
14375
15871
  "immutable": true,
14376
15872
  "locationInModule": {
14377
15873
  "filename": "src/terraform-iterator.ts",
14378
- "line": 453
15874
+ "line": 450
14379
15875
  },
14380
15876
  "name": "key",
14381
15877
  "type": {
@@ -14390,7 +15886,7 @@
14390
15886
  "immutable": true,
14391
15887
  "locationInModule": {
14392
15888
  "filename": "src/terraform-iterator.ts",
14393
- "line": 460
15889
+ "line": 457
14394
15890
  },
14395
15891
  "name": "value",
14396
15892
  "type": {
@@ -16374,6 +17870,76 @@
16374
17870
  ],
16375
17871
  "symbolId": "src/backends/oss-backend:OssBackendConfig"
16376
17872
  },
17873
+ "cdktn.PackOptions": {
17874
+ "assembly": "cdktn",
17875
+ "datatype": true,
17876
+ "docs": {
17877
+ "remarks": "A struct rather than positional parameters: adding a struct field is\nadditive, adding a method parameter is not, and `pack` is called through\nJSII where that distinction is a breaking-change boundary.",
17878
+ "stability": "experimental",
17879
+ "summary": "Options for {@link IAssetPackaging.pack}."
17880
+ },
17881
+ "fqn": "cdktn.PackOptions",
17882
+ "kind": "interface",
17883
+ "locationInModule": {
17884
+ "filename": "src/assets.ts",
17885
+ "line": 144
17886
+ },
17887
+ "name": "PackOptions",
17888
+ "properties": [
17889
+ {
17890
+ "abstract": true,
17891
+ "docs": {
17892
+ "stability": "experimental",
17893
+ "summary": "Path to the resolved (already bundled, if applicable) source."
17894
+ },
17895
+ "immutable": true,
17896
+ "locationInModule": {
17897
+ "filename": "src/assets.ts",
17898
+ "line": 148
17899
+ },
17900
+ "name": "source",
17901
+ "type": {
17902
+ "primitive": "string"
17903
+ }
17904
+ },
17905
+ {
17906
+ "abstract": true,
17907
+ "docs": {
17908
+ "stability": "experimental",
17909
+ "summary": "Path the packaged result should be written to."
17910
+ },
17911
+ "immutable": true,
17912
+ "locationInModule": {
17913
+ "filename": "src/assets.ts",
17914
+ "line": 153
17915
+ },
17916
+ "name": "target",
17917
+ "type": {
17918
+ "primitive": "string"
17919
+ }
17920
+ },
17921
+ {
17922
+ "abstract": true,
17923
+ "docs": {
17924
+ "default": "- nothing is excluded",
17925
+ "remarks": "Must match the strategy used\nto hash the same source, or the hash and the artifact describe\ndifferent sets of files.",
17926
+ "stability": "experimental",
17927
+ "summary": "Entries to omit from the packaged result."
17928
+ },
17929
+ "immutable": true,
17930
+ "locationInModule": {
17931
+ "filename": "src/assets.ts",
17932
+ "line": 162
17933
+ },
17934
+ "name": "ignoreStrategy",
17935
+ "optional": true,
17936
+ "type": {
17937
+ "fqn": "cdktn.IIgnoreStrategy"
17938
+ }
17939
+ }
17940
+ ],
17941
+ "symbolId": "src/assets:PackOptions"
17942
+ },
16377
17943
  "cdktn.PgBackend": {
16378
17944
  "assembly": "cdktn",
16379
17945
  "base": "cdktn.TerraformBackend",
@@ -17220,7 +18786,7 @@
17220
18786
  },
17221
18787
  "locationInModule": {
17222
18788
  "filename": "src/terraform-iterator.ts",
17223
- "line": 467
18789
+ "line": 464
17224
18790
  },
17225
18791
  "parameters": [
17226
18792
  {
@@ -17234,7 +18800,7 @@
17234
18800
  "kind": "class",
17235
18801
  "locationInModule": {
17236
18802
  "filename": "src/terraform-iterator.ts",
17237
- "line": 466
18803
+ "line": 463
17238
18804
  },
17239
18805
  "name": "ResourceTerraformIterator",
17240
18806
  "properties": [
@@ -17247,7 +18813,7 @@
17247
18813
  "immutable": true,
17248
18814
  "locationInModule": {
17249
18815
  "filename": "src/terraform-iterator.ts",
17250
- "line": 485
18816
+ "line": 482
17251
18817
  },
17252
18818
  "name": "key",
17253
18819
  "type": {
@@ -17262,7 +18828,7 @@
17262
18828
  "immutable": true,
17263
18829
  "locationInModule": {
17264
18830
  "filename": "src/terraform-iterator.ts",
17265
- "line": 492
18831
+ "line": 489
17266
18832
  },
17267
18833
  "name": "value",
17268
18834
  "type": {
@@ -19421,18 +20987,84 @@
19421
20987
  "type": {
19422
20988
  "primitive": "string"
19423
20989
  }
19424
- },
20990
+ },
20991
+ {
20992
+ "abstract": true,
20993
+ "docs": {
20994
+ "stability": "experimental"
20995
+ },
20996
+ "immutable": true,
20997
+ "locationInModule": {
20998
+ "filename": "src/manifest.ts",
20999
+ "line": 20
21000
+ },
21001
+ "name": "stackMetadataPath",
21002
+ "type": {
21003
+ "primitive": "string"
21004
+ }
21005
+ },
21006
+ {
21007
+ "abstract": true,
21008
+ "docs": {
21009
+ "stability": "experimental"
21010
+ },
21011
+ "immutable": true,
21012
+ "locationInModule": {
21013
+ "filename": "src/manifest.ts",
21014
+ "line": 18
21015
+ },
21016
+ "name": "synthesizedStackPath",
21017
+ "type": {
21018
+ "primitive": "string"
21019
+ }
21020
+ },
21021
+ {
21022
+ "abstract": true,
21023
+ "docs": {
21024
+ "stability": "experimental"
21025
+ },
21026
+ "immutable": true,
21027
+ "locationInModule": {
21028
+ "filename": "src/manifest.ts",
21029
+ "line": 21
21030
+ },
21031
+ "name": "workingDirectory",
21032
+ "type": {
21033
+ "primitive": "string"
21034
+ }
21035
+ }
21036
+ ],
21037
+ "symbolId": "src/manifest:StackManifest"
21038
+ },
21039
+ "cdktn.StagedAsset": {
21040
+ "assembly": "cdktn",
21041
+ "datatype": true,
21042
+ "docs": {
21043
+ "remarks": "Deliberately narrower than a location: `path` and `isDirectory` are known\nonce staging runs, at synth time, before anything is published. Where an\nasset ends up — a bucket name, an object key, a URL — is resolved at\napply time and belongs on the publisher's own reference type instead.",
21044
+ "stability": "experimental",
21045
+ "summary": "A staged artifact, ready to hand to an `IAssetPublisher`."
21046
+ },
21047
+ "fqn": "cdktn.StagedAsset",
21048
+ "kind": "interface",
21049
+ "locationInModule": {
21050
+ "filename": "src/assets.ts",
21051
+ "line": 560
21052
+ },
21053
+ "name": "StagedAsset",
21054
+ "properties": [
19425
21055
  {
19426
21056
  "abstract": true,
19427
21057
  "docs": {
19428
- "stability": "experimental"
21058
+ "remarks": "The asset is not rebuilt or republished while this value is unchanged.",
21059
+ "stability": "experimental",
21060
+ "summary": "A hash on the content source, uniquely identifying this asset."
19429
21061
  },
19430
21062
  "immutable": true,
19431
21063
  "locationInModule": {
19432
- "filename": "src/manifest.ts",
19433
- "line": 20
21064
+ "filename": "src/assets.ts",
21065
+ "line": 566
19434
21066
  },
19435
- "name": "stackMetadataPath",
21067
+ "name": "assetHash",
19436
21068
  "type": {
19437
21069
  "primitive": "string"
19438
21070
  }
@@ -19440,35 +21072,38 @@
19440
21072
  {
19441
21073
  "abstract": true,
19442
21074
  "docs": {
19443
- "stability": "experimental"
21075
+ "remarks": "Publishers branch on this to decide whether they upload one object or\nsync a tree; see `IAssetPackaging.producesDirectory`.",
21076
+ "stability": "experimental",
21077
+ "summary": "Whether the staged artifact is a directory rather than a single file."
19444
21078
  },
19445
21079
  "immutable": true,
19446
21080
  "locationInModule": {
19447
- "filename": "src/manifest.ts",
19448
- "line": 18
21081
+ "filename": "src/assets.ts",
21082
+ "line": 579
19449
21083
  },
19450
- "name": "synthesizedStackPath",
21084
+ "name": "isDirectory",
19451
21085
  "type": {
19452
- "primitive": "string"
21086
+ "primitive": "boolean"
19453
21087
  }
19454
21088
  },
19455
21089
  {
19456
21090
  "abstract": true,
19457
21091
  "docs": {
19458
- "stability": "experimental"
21092
+ "stability": "experimental",
21093
+ "summary": "The path to the staged artifact, relative to the stack directory."
19459
21094
  },
19460
21095
  "immutable": true,
19461
21096
  "locationInModule": {
19462
- "filename": "src/manifest.ts",
19463
- "line": 21
21097
+ "filename": "src/assets.ts",
21098
+ "line": 571
19464
21099
  },
19465
- "name": "workingDirectory",
21100
+ "name": "path",
19466
21101
  "type": {
19467
21102
  "primitive": "string"
19468
21103
  }
19469
21104
  }
19470
21105
  ],
19471
- "symbolId": "src/manifest:StackManifest"
21106
+ "symbolId": "src/assets:StagedAsset"
19472
21107
  },
19473
21108
  "cdktn.StringConcat": {
19474
21109
  "assembly": "cdktn",
@@ -20945,7 +22580,7 @@
20945
22580
  },
20946
22581
  "locationInModule": {
20947
22582
  "filename": "src/terraform-asset.ts",
20948
- "line": 56
22583
+ "line": 142
20949
22584
  },
20950
22585
  "parameters": [
20951
22586
  {
@@ -20968,24 +22603,29 @@
20968
22603
  }
20969
22604
  ]
20970
22605
  },
22606
+ "interfaces": [
22607
+ "cdktn.IAsset"
22608
+ ],
20971
22609
  "kind": "class",
20972
22610
  "locationInModule": {
20973
22611
  "filename": "src/terraform-asset.ts",
20974
- "line": 41
22612
+ "line": 125
20975
22613
  },
20976
22614
  "name": "TerraformAsset",
20977
22615
  "properties": [
20978
22616
  {
20979
22617
  "docs": {
22618
+ "remarks": "Being a plain string, it can be used in construct IDs to force a new\nresource when the content hash changes.",
20980
22619
  "stability": "experimental",
20981
- "summary": "Name of the asset."
22620
+ "summary": "A hash of this asset, available at construction time."
20982
22621
  },
20983
22622
  "immutable": true,
20984
22623
  "locationInModule": {
20985
22624
  "filename": "src/terraform-asset.ts",
20986
- "line": 124
22625
+ "line": 129
20987
22626
  },
20988
- "name": "fileName",
22627
+ "name": "assetHash",
22628
+ "overrides": "cdktn.IAsset",
20989
22629
  "type": {
20990
22630
  "primitive": "string"
20991
22631
  }
@@ -20993,27 +22633,29 @@
20993
22633
  {
20994
22634
  "docs": {
20995
22635
  "stability": "experimental",
20996
- "summary": "The path relative to the root of the terraform directory in posix format Use this property to reference the asset."
22636
+ "summary": "Name of the asset."
20997
22637
  },
20998
22638
  "immutable": true,
20999
22639
  "locationInModule": {
21000
22640
  "filename": "src/terraform-asset.ts",
21001
- "line": 113
22641
+ "line": 248
21002
22642
  },
21003
- "name": "path",
22643
+ "name": "fileName",
21004
22644
  "type": {
21005
22645
  "primitive": "string"
21006
22646
  }
21007
22647
  },
21008
22648
  {
21009
22649
  "docs": {
21010
- "stability": "experimental"
22650
+ "stability": "experimental",
22651
+ "summary": "The path relative to the root of the terraform directory in posix format Use this property to reference the asset."
21011
22652
  },
22653
+ "immutable": true,
21012
22654
  "locationInModule": {
21013
22655
  "filename": "src/terraform-asset.ts",
21014
- "line": 45
22656
+ "line": 235
21015
22657
  },
21016
- "name": "assetHash",
22658
+ "name": "path",
21017
22659
  "type": {
21018
22660
  "primitive": "string"
21019
22661
  }
@@ -21024,7 +22666,7 @@
21024
22666
  },
21025
22667
  "locationInModule": {
21026
22668
  "filename": "src/terraform-asset.ts",
21027
- "line": 47
22669
+ "line": 131
21028
22670
  },
21029
22671
  "name": "type",
21030
22672
  "type": {
@@ -21044,7 +22686,7 @@
21044
22686
  "kind": "interface",
21045
22687
  "locationInModule": {
21046
22688
  "filename": "src/terraform-asset.ts",
21047
- "line": 22
22689
+ "line": 27
21048
22690
  },
21049
22691
  "name": "TerraformAssetConfig",
21050
22692
  "properties": [
@@ -21056,7 +22698,7 @@
21056
22698
  "immutable": true,
21057
22699
  "locationInModule": {
21058
22700
  "filename": "src/terraform-asset.ts",
21059
- "line": 24
22701
+ "line": 29
21060
22702
  },
21061
22703
  "name": "path",
21062
22704
  "type": {
@@ -21071,7 +22713,7 @@
21071
22713
  "immutable": true,
21072
22714
  "locationInModule": {
21073
22715
  "filename": "src/terraform-asset.ts",
21074
- "line": 28
22716
+ "line": 33
21075
22717
  },
21076
22718
  "name": "assetHash",
21077
22719
  "optional": true,
@@ -21079,6 +22721,105 @@
21079
22721
  "primitive": "string"
21080
22722
  }
21081
22723
  },
22724
+ {
22725
+ "abstract": true,
22726
+ "docs": {
22727
+ "default": "AssetHashType.SOURCE",
22728
+ "remarks": "`SOURCE` (the default) hashes the source path. `CUSTOM` uses the\n`assetHash` value verbatim and requires it to be set. `OUTPUT` hashes the\nsource too, unless a `bundler` is set — then it hashes the bundler's\nbuilt output, which forces an eager build (see `bundler`).\n\nIf `assetHash` is set, this must be `undefined` or `AssetHashType.CUSTOM`.",
22729
+ "stability": "experimental",
22730
+ "summary": "How the `assetHash` is derived."
22731
+ },
22732
+ "immutable": true,
22733
+ "locationInModule": {
22734
+ "filename": "src/terraform-asset.ts",
22735
+ "line": 46
22736
+ },
22737
+ "name": "assetHashType",
22738
+ "optional": true,
22739
+ "type": {
22740
+ "fqn": "cdktn.AssetHashType"
22741
+ }
22742
+ },
22743
+ {
22744
+ "abstract": true,
22745
+ "docs": {
22746
+ "default": "- the source is staged verbatim, with no build step",
22747
+ "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`.",
22748
+ "stability": "experimental",
22749
+ "summary": "A bundler that builds the source into an artifact before staging."
22750
+ },
22751
+ "immutable": true,
22752
+ "locationInModule": {
22753
+ "filename": "src/terraform-asset.ts",
22754
+ "line": 92
22755
+ },
22756
+ "name": "bundler",
22757
+ "optional": true,
22758
+ "type": {
22759
+ "fqn": "cdktn.IAssetBundler"
22760
+ }
22761
+ },
22762
+ {
22763
+ "abstract": true,
22764
+ "docs": {
22765
+ "default": "- nothing is excluded",
22766
+ "remarks": "See\n`AssetStagingOptions.exclude` for the accepted forms. Both the computed\nhash and the staged/packed content honor the exclusion. Cannot be\ncombined with `ignoreStrategy`, which replaces this matcher rather than\nlayering on top of it.",
22767
+ "stability": "experimental",
22768
+ "summary": "Paths to exclude from the asset, relative to `path`."
22769
+ },
22770
+ "immutable": true,
22771
+ "locationInModule": {
22772
+ "filename": "src/terraform-asset.ts",
22773
+ "line": 57
22774
+ },
22775
+ "name": "exclude",
22776
+ "optional": true,
22777
+ "type": {
22778
+ "collection": {
22779
+ "elementtype": {
22780
+ "primitive": "string"
22781
+ },
22782
+ "kind": "array"
22783
+ }
22784
+ }
22785
+ },
22786
+ {
22787
+ "abstract": true,
22788
+ "docs": {
22789
+ "default": "- no extra hash",
22790
+ "stability": "experimental",
22791
+ "summary": "Extra information to fold into the hash (e.g. build instructions and other inputs)."
22792
+ },
22793
+ "immutable": true,
22794
+ "locationInModule": {
22795
+ "filename": "src/terraform-asset.ts",
22796
+ "line": 79
22797
+ },
22798
+ "name": "extraHash",
22799
+ "optional": true,
22800
+ "type": {
22801
+ "primitive": "string"
22802
+ }
22803
+ },
22804
+ {
22805
+ "abstract": true,
22806
+ "docs": {
22807
+ "default": "- `exclude` is used with the built-in matcher",
22808
+ "remarks": "`!`-negation only takes effect if the strategy also sets\n`pruneExcludedDirectories: false`; otherwise an excluded directory is\npruned before its contents are ever checked against a re-include\npattern. See `IIgnoreStrategy.pruneExcludedDirectories`.",
22809
+ "stability": "experimental",
22810
+ "summary": "Exclusion matching, for callers that need `.gitignore` / `.dockerignore` parity (including `!`-negation) rather than the built-in exact-path / suffix / directory matcher. See `AssetStagingOptions.ignoreStrategy`."
22811
+ },
22812
+ "immutable": true,
22813
+ "locationInModule": {
22814
+ "filename": "src/terraform-asset.ts",
22815
+ "line": 71
22816
+ },
22817
+ "name": "ignoreStrategy",
22818
+ "optional": true,
22819
+ "type": {
22820
+ "fqn": "cdktn.IIgnoreStrategy"
22821
+ }
22822
+ },
21082
22823
  {
21083
22824
  "abstract": true,
21084
22825
  "docs": {
@@ -21087,7 +22828,7 @@
21087
22828
  "immutable": true,
21088
22829
  "locationInModule": {
21089
22830
  "filename": "src/terraform-asset.ts",
21090
- "line": 26
22831
+ "line": 31
21091
22832
  },
21092
22833
  "name": "type",
21093
22834
  "optional": true,
@@ -23466,7 +25207,7 @@
23466
25207
  "kind": "class",
23467
25208
  "locationInModule": {
23468
25209
  "filename": "src/terraform-iterator.ts",
23469
- "line": 70
25210
+ "line": 67
23470
25211
  },
23471
25212
  "methods": [
23472
25213
  {
@@ -23478,7 +25219,7 @@
23478
25219
  },
23479
25220
  "locationInModule": {
23480
25221
  "filename": "src/terraform-iterator.ts",
23481
- "line": 125
25222
+ "line": 122
23482
25223
  },
23483
25224
  "name": "fromComplexList",
23484
25225
  "parameters": [
@@ -23537,7 +25278,7 @@
23537
25278
  },
23538
25279
  "locationInModule": {
23539
25280
  "filename": "src/terraform-iterator.ts",
23540
- "line": 160
25281
+ "line": 157
23541
25282
  },
23542
25283
  "name": "fromDataSources",
23543
25284
  "parameters": [
@@ -23562,7 +25303,7 @@
23562
25303
  },
23563
25304
  "locationInModule": {
23564
25305
  "filename": "src/terraform-iterator.ts",
23565
- "line": 90
25306
+ "line": 87
23566
25307
  },
23567
25308
  "name": "fromList",
23568
25309
  "parameters": [
@@ -23626,7 +25367,7 @@
23626
25367
  },
23627
25368
  "locationInModule": {
23628
25369
  "filename": "src/terraform-iterator.ts",
23629
- "line": 135
25370
+ "line": 132
23630
25371
  },
23631
25372
  "name": "fromMap",
23632
25373
  "parameters": [
@@ -23689,7 +25430,7 @@
23689
25430
  },
23690
25431
  "locationInModule": {
23691
25432
  "filename": "src/terraform-iterator.ts",
23692
- "line": 150
25433
+ "line": 147
23693
25434
  },
23694
25435
  "name": "fromResources",
23695
25436
  "parameters": [
@@ -23715,7 +25456,7 @@
23715
25456
  },
23716
25457
  "locationInModule": {
23717
25458
  "filename": "src/terraform-iterator.ts",
23718
- "line": 307
25459
+ "line": 304
23719
25460
  },
23720
25461
  "name": "dynamic",
23721
25462
  "parameters": [
@@ -23745,7 +25486,7 @@
23745
25486
  },
23746
25487
  "locationInModule": {
23747
25488
  "filename": "src/terraform-iterator.ts",
23748
- "line": 369
25489
+ "line": 366
23749
25490
  },
23750
25491
  "name": "forExpressionForList",
23751
25492
  "parameters": [
@@ -23782,7 +25523,7 @@
23782
25523
  },
23783
25524
  "locationInModule": {
23784
25525
  "filename": "src/terraform-iterator.ts",
23785
- "line": 390
25526
+ "line": 387
23786
25527
  },
23787
25528
  "name": "forExpressionForMap",
23788
25529
  "parameters": [
@@ -23836,7 +25577,7 @@
23836
25577
  },
23837
25578
  "locationInModule": {
23838
25579
  "filename": "src/terraform-iterator.ts",
23839
- "line": 194
25580
+ "line": 191
23840
25581
  },
23841
25582
  "name": "getAny",
23842
25583
  "parameters": [
@@ -23863,7 +25604,7 @@
23863
25604
  },
23864
25605
  "locationInModule": {
23865
25606
  "filename": "src/terraform-iterator.ts",
23866
- "line": 250
25607
+ "line": 247
23867
25608
  },
23868
25609
  "name": "getAnyMap",
23869
25610
  "parameters": [
@@ -23895,7 +25636,7 @@
23895
25636
  },
23896
25637
  "locationInModule": {
23897
25638
  "filename": "src/terraform-iterator.ts",
23898
- "line": 186
25639
+ "line": 183
23899
25640
  },
23900
25641
  "name": "getBoolean",
23901
25642
  "parameters": [
@@ -23922,7 +25663,7 @@
23922
25663
  },
23923
25664
  "locationInModule": {
23924
25665
  "filename": "src/terraform-iterator.ts",
23925
- "line": 242
25666
+ "line": 239
23926
25667
  },
23927
25668
  "name": "getBooleanMap",
23928
25669
  "parameters": [
@@ -23954,7 +25695,7 @@
23954
25695
  },
23955
25696
  "locationInModule": {
23956
25697
  "filename": "src/terraform-iterator.ts",
23957
- "line": 202
25698
+ "line": 199
23958
25699
  },
23959
25700
  "name": "getList",
23960
25701
  "parameters": [
@@ -23986,7 +25727,7 @@
23986
25727
  },
23987
25728
  "locationInModule": {
23988
25729
  "filename": "src/terraform-iterator.ts",
23989
- "line": 218
25730
+ "line": 215
23990
25731
  },
23991
25732
  "name": "getMap",
23992
25733
  "parameters": [
@@ -24018,7 +25759,7 @@
24018
25759
  },
24019
25760
  "locationInModule": {
24020
25761
  "filename": "src/terraform-iterator.ts",
24021
- "line": 178
25762
+ "line": 175
24022
25763
  },
24023
25764
  "name": "getNumber",
24024
25765
  "parameters": [
@@ -24045,7 +25786,7 @@
24045
25786
  },
24046
25787
  "locationInModule": {
24047
25788
  "filename": "src/terraform-iterator.ts",
24048
- "line": 210
25789
+ "line": 207
24049
25790
  },
24050
25791
  "name": "getNumberList",
24051
25792
  "parameters": [
@@ -24077,7 +25818,7 @@
24077
25818
  },
24078
25819
  "locationInModule": {
24079
25820
  "filename": "src/terraform-iterator.ts",
24080
- "line": 234
25821
+ "line": 231
24081
25822
  },
24082
25823
  "name": "getNumberMap",
24083
25824
  "parameters": [
@@ -24109,7 +25850,7 @@
24109
25850
  },
24110
25851
  "locationInModule": {
24111
25852
  "filename": "src/terraform-iterator.ts",
24112
- "line": 170
25853
+ "line": 167
24113
25854
  },
24114
25855
  "name": "getString",
24115
25856
  "parameters": [
@@ -24136,7 +25877,7 @@
24136
25877
  },
24137
25878
  "locationInModule": {
24138
25879
  "filename": "src/terraform-iterator.ts",
24139
- "line": 226
25880
+ "line": 223
24140
25881
  },
24141
25882
  "name": "getStringMap",
24142
25883
  "parameters": [
@@ -24169,7 +25910,7 @@
24169
25910
  },
24170
25911
  "locationInModule": {
24171
25912
  "filename": "src/terraform-iterator.ts",
24172
- "line": 322
25913
+ "line": 319
24173
25914
  },
24174
25915
  "name": "keys",
24175
25916
  "returns": {
@@ -24186,7 +25927,7 @@
24186
25927
  },
24187
25928
  "locationInModule": {
24188
25929
  "filename": "src/terraform-iterator.ts",
24189
- "line": 346
25930
+ "line": 343
24190
25931
  },
24191
25932
  "name": "pluckProperty",
24192
25933
  "parameters": [
@@ -24214,7 +25955,7 @@
24214
25955
  },
24215
25956
  "locationInModule": {
24216
25957
  "filename": "src/terraform-iterator.ts",
24217
- "line": 334
25958
+ "line": 331
24218
25959
  },
24219
25960
  "name": "values",
24220
25961
  "returns": {
@@ -26329,7 +28070,7 @@
26329
28070
  },
26330
28071
  "locationInModule": {
26331
28072
  "filename": "src/terraform-resource.ts",
26332
- "line": 559
28073
+ "line": 561
26333
28074
  },
26334
28075
  "name": "addMoveTarget",
26335
28076
  "parameters": [
@@ -26689,7 +28430,7 @@
26689
28430
  },
26690
28431
  "locationInModule": {
26691
28432
  "filename": "src/terraform-resource.ts",
26692
- "line": 590
28433
+ "line": 592
26693
28434
  },
26694
28435
  "name": "moveFromId",
26695
28436
  "parameters": [
@@ -26711,7 +28452,7 @@
26711
28452
  },
26712
28453
  "locationInModule": {
26713
28454
  "filename": "src/terraform-resource.ts",
26714
- "line": 543
28455
+ "line": 545
26715
28456
  },
26716
28457
  "name": "moveTo",
26717
28458
  "parameters": [
@@ -26752,7 +28493,7 @@
26752
28493
  },
26753
28494
  "locationInModule": {
26754
28495
  "filename": "src/terraform-resource.ts",
26755
- "line": 567
28496
+ "line": 569
26756
28497
  },
26757
28498
  "name": "moveToId",
26758
28499
  "parameters": [
@@ -29945,7 +31686,7 @@
29945
31686
  "kind": "class",
29946
31687
  "locationInModule": {
29947
31688
  "filename": "src/tokens/string-fragments.ts",
29948
- "line": 30
31689
+ "line": 27
29949
31690
  },
29950
31691
  "methods": [
29951
31692
  {
@@ -29954,7 +31695,7 @@
29954
31695
  },
29955
31696
  "locationInModule": {
29956
31697
  "filename": "src/tokens/string-fragments.ts",
29957
- "line": 85
31698
+ "line": 82
29958
31699
  },
29959
31700
  "name": "addEscape",
29960
31701
  "parameters": [
@@ -29973,7 +31714,7 @@
29973
31714
  },
29974
31715
  "locationInModule": {
29975
31716
  "filename": "src/tokens/string-fragments.ts",
29976
- "line": 81
31717
+ "line": 78
29977
31718
  },
29978
31719
  "name": "addIntrinsic",
29979
31720
  "parameters": [
@@ -29995,7 +31736,7 @@
29995
31736
  },
29996
31737
  "locationInModule": {
29997
31738
  "filename": "src/tokens/string-fragments.ts",
29998
- "line": 65
31739
+ "line": 62
29999
31740
  },
30000
31741
  "name": "addLiteral",
30001
31742
  "parameters": [
@@ -30017,7 +31758,7 @@
30017
31758
  },
30018
31759
  "locationInModule": {
30019
31760
  "filename": "src/tokens/string-fragments.ts",
30020
- "line": 73
31761
+ "line": 70
30021
31762
  },
30022
31763
  "name": "addToken",
30023
31764
  "parameters": [
@@ -30038,7 +31779,7 @@
30038
31779
  },
30039
31780
  "locationInModule": {
30040
31781
  "filename": "src/tokens/string-fragments.ts",
30041
- "line": 89
31782
+ "line": 86
30042
31783
  },
30043
31784
  "name": "concat",
30044
31785
  "parameters": [
@@ -30058,7 +31799,7 @@
30058
31799
  },
30059
31800
  "locationInModule": {
30060
31801
  "filename": "src/tokens/string-fragments.ts",
30061
- "line": 194
31802
+ "line": 191
30062
31803
  },
30063
31804
  "name": "join",
30064
31805
  "parameters": [
@@ -30082,7 +31823,7 @@
30082
31823
  },
30083
31824
  "locationInModule": {
30084
31825
  "filename": "src/tokens/string-fragments.ts",
30085
- "line": 149
31826
+ "line": 146
30086
31827
  },
30087
31828
  "name": "mapTokens",
30088
31829
  "parameters": [
@@ -30110,7 +31851,7 @@
30110
31851
  "immutable": true,
30111
31852
  "locationInModule": {
30112
31853
  "filename": "src/tokens/string-fragments.ts",
30113
- "line": 135
31854
+ "line": 132
30114
31855
  },
30115
31856
  "name": "escapes",
30116
31857
  "type": {
@@ -30130,7 +31871,7 @@
30130
31871
  "immutable": true,
30131
31872
  "locationInModule": {
30132
31873
  "filename": "src/tokens/string-fragments.ts",
30133
- "line": 50
31874
+ "line": 47
30134
31875
  },
30135
31876
  "name": "firstValue",
30136
31877
  "type": {
@@ -30145,7 +31886,7 @@
30145
31886
  "immutable": true,
30146
31887
  "locationInModule": {
30147
31888
  "filename": "src/tokens/string-fragments.ts",
30148
- "line": 122
31889
+ "line": 119
30149
31890
  },
30150
31891
  "name": "intrinsic",
30151
31892
  "type": {
@@ -30165,7 +31906,7 @@
30165
31906
  "immutable": true,
30166
31907
  "locationInModule": {
30167
31908
  "filename": "src/tokens/string-fragments.ts",
30168
- "line": 57
31909
+ "line": 54
30169
31910
  },
30170
31911
  "name": "length",
30171
31912
  "type": {
@@ -30180,7 +31921,7 @@
30180
31921
  "immutable": true,
30181
31922
  "locationInModule": {
30182
31923
  "filename": "src/tokens/string-fragments.ts",
30183
- "line": 109
31924
+ "line": 106
30184
31925
  },
30185
31926
  "name": "literals",
30186
31927
  "type": {
@@ -30200,7 +31941,7 @@
30200
31941
  "immutable": true,
30201
31942
  "locationInModule": {
30202
31943
  "filename": "src/tokens/string-fragments.ts",
30203
- "line": 96
31944
+ "line": 93
30204
31945
  },
30205
31946
  "name": "tokens",
30206
31947
  "type": {
@@ -30220,7 +31961,7 @@
30220
31961
  "immutable": true,
30221
31962
  "locationInModule": {
30222
31963
  "filename": "src/tokens/string-fragments.ts",
30223
- "line": 39
31964
+ "line": 36
30224
31965
  },
30225
31966
  "name": "firstToken",
30226
31967
  "optional": true,
@@ -30853,32 +32594,25 @@
30853
32594
  "assembly": "cdktn",
30854
32595
  "docs": {
30855
32596
  "stability": "experimental",
30856
- "summary": "Class representing the contents of a return by an assertion."
32597
+ "summary": "The result of a testing matcher assertion."
30857
32598
  },
30858
32599
  "fqn": "cdktn.testingMatchers.AssertionReturn",
30859
32600
  "initializer": {
30860
32601
  "docs": {
30861
- "stability": "experimental",
30862
- "summary": "Create an AssertionReturn."
32602
+ "stability": "experimental"
30863
32603
  },
30864
32604
  "locationInModule": {
30865
32605
  "filename": "src/testing/matchers.ts",
30866
- "line": 33
32606
+ "line": 29
30867
32607
  },
30868
32608
  "parameters": [
30869
32609
  {
30870
- "docs": {
30871
- "summary": "- String message containing information about the result of the assertion."
30872
- },
30873
32610
  "name": "message",
30874
32611
  "type": {
30875
32612
  "primitive": "string"
30876
32613
  }
30877
32614
  },
30878
32615
  {
30879
- "docs": {
30880
- "summary": "- Boolean pass denoting the success of the assertion."
30881
- },
30882
32616
  "name": "pass",
30883
32617
  "type": {
30884
32618
  "primitive": "boolean"
@@ -30889,20 +32623,19 @@
30889
32623
  "kind": "class",
30890
32624
  "locationInModule": {
30891
32625
  "filename": "src/testing/matchers.ts",
30892
- "line": 27
32626
+ "line": 28
30893
32627
  },
30894
32628
  "name": "AssertionReturn",
30895
32629
  "namespace": "testingMatchers",
30896
32630
  "properties": [
30897
32631
  {
30898
32632
  "docs": {
30899
- "stability": "experimental",
30900
- "summary": "- String message containing information about the result of the assertion."
32633
+ "stability": "experimental"
30901
32634
  },
30902
32635
  "immutable": true,
30903
32636
  "locationInModule": {
30904
32637
  "filename": "src/testing/matchers.ts",
30905
- "line": 34
32638
+ "line": 30
30906
32639
  },
30907
32640
  "name": "message",
30908
32641
  "type": {
@@ -30911,13 +32644,12 @@
30911
32644
  },
30912
32645
  {
30913
32646
  "docs": {
30914
- "stability": "experimental",
30915
- "summary": "- Boolean pass denoting the success of the assertion."
32647
+ "stability": "experimental"
30916
32648
  },
30917
32649
  "immutable": true,
30918
32650
  "locationInModule": {
30919
32651
  "filename": "src/testing/matchers.ts",
30920
- "line": 35
32652
+ "line": 31
30921
32653
  },
30922
32654
  "name": "pass",
30923
32655
  "type": {
@@ -30937,7 +32669,7 @@
30937
32669
  "kind": "interface",
30938
32670
  "locationInModule": {
30939
32671
  "filename": "src/testing/matchers.ts",
30940
- "line": 14
32672
+ "line": 15
30941
32673
  },
30942
32674
  "name": "TerraformConstructor",
30943
32675
  "namespace": "testingMatchers",
@@ -30950,7 +32682,7 @@
30950
32682
  "immutable": true,
30951
32683
  "locationInModule": {
30952
32684
  "filename": "src/testing/matchers.ts",
30953
- "line": 15
32685
+ "line": 16
30954
32686
  },
30955
32687
  "name": "tfResourceType",
30956
32688
  "type": {
@@ -30959,8 +32691,45 @@
30959
32691
  }
30960
32692
  ],
30961
32693
  "symbolId": "src/testing/matchers:TerraformConstructor"
32694
+ },
32695
+ "cdktn.testingMatchers.ToPlanSuccessfullyOptions": {
32696
+ "assembly": "cdktn",
32697
+ "datatype": true,
32698
+ "docs": {
32699
+ "stability": "experimental"
32700
+ },
32701
+ "fqn": "cdktn.testingMatchers.ToPlanSuccessfullyOptions",
32702
+ "kind": "interface",
32703
+ "locationInModule": {
32704
+ "filename": "src/testing/matchers.ts",
32705
+ "line": 600
32706
+ },
32707
+ "name": "ToPlanSuccessfullyOptions",
32708
+ "namespace": "testingMatchers",
32709
+ "properties": [
32710
+ {
32711
+ "abstract": true,
32712
+ "docs": {
32713
+ "default": "true",
32714
+ "remarks": "Disable this for stacks whose\nbackend (e.g. s3, remote) is not reachable in the test environment and whose plan does not\ndepend on existing state.",
32715
+ "stability": "experimental",
32716
+ "summary": "Whether `init`/`plan` should use the stack's real backend."
32717
+ },
32718
+ "immutable": true,
32719
+ "locationInModule": {
32720
+ "filename": "src/testing/matchers.ts",
32721
+ "line": 607
32722
+ },
32723
+ "name": "backend",
32724
+ "optional": true,
32725
+ "type": {
32726
+ "primitive": "boolean"
32727
+ }
32728
+ }
32729
+ ],
32730
+ "symbolId": "src/testing/matchers:ToPlanSuccessfullyOptions"
30962
32731
  }
30963
32732
  },
30964
- "version": "0.25.0-pre.9",
30965
- "fingerprint": "kAfiCaNiZNBYPvGcCZmLWVmSJOJSb2VJCJrAzQ6KUFA="
32733
+ "version": "0.25.0",
32734
+ "fingerprint": "DoLceHIsgoztkSgIDnb6R5rbSJ3UVTeUWiaDLsEjyag="
30966
32735
  }