diff --git a/cdk/package-lock.json b/cdk/package-lock.json index 9094d23..123c81b 100644 --- a/cdk/package-lock.json +++ b/cdk/package-lock.json @@ -512,21 +512,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/aws-cdk-lib/node_modules/minimatch.orig": { - "name": "minimatch", - "version": "10.2.4", - "extraneous": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/aws-cdk-lib/node_modules/punycode": { "version": "2.3.1", "dev": true, @@ -928,9 +913,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -1235,9 +1220,9 @@ } }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "peer": true, diff --git a/cdk/package.json b/cdk/package.json index 6db1bc2..b04e02f 100644 --- a/cdk/package.json +++ b/cdk/package.json @@ -37,6 +37,8 @@ }, "overrides": { "ajv": "8.18.0", + "flatted": "3.4.2", + "picomatch": "2.3.2", "aws-cdk-lib": { "minimatch": "10.2.4" } diff --git a/cdk/requirements-build.txt b/cdk/requirements-build.txt index a09b152..2beb8fe 100644 --- a/cdk/requirements-build.txt +++ b/cdk/requirements-build.txt @@ -1,4 +1,3 @@ build==1.3.0 -setuptools==75.3.2 -wheel==0.45.1 - +setuptools==80.10.1 +wheel==0.46.2 diff --git a/docs/planning/app-integration/M0.md b/docs/planning/app-integration/M0.md index c31ff66..208bcfc 100644 --- a/docs/planning/app-integration/M0.md +++ b/docs/planning/app-integration/M0.md @@ -12,7 +12,7 @@ pack pinning (“pin to the most recent release”). GovTheory packs will be pinned to explicit versions: - AppTheory stable pin (expected): `v0.15.0` -- TableTheory stable pin (expected): `v1.5.0` +- TableTheory stable pin (expected): `v1.5.1` AppTheory must not depend on an ambiguous / unreleased TableTheory version if we expect other repos to `go get` the pinned tag successfully. diff --git a/go.mod b/go.mod index f7b2e70..a1b81ed 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/aws/jsii-runtime-go v1.127.0 github.com/oklog/ulid/v2 v2.1.1 github.com/stretchr/testify v1.11.1 - github.com/theory-cloud/tabletheory v1.5.0 + github.com/theory-cloud/tabletheory v1.5.1 go.uber.org/zap v1.27.1 gopkg.in/yaml.v3 v3.0.1 pgregory.net/rapid v1.2.0 diff --git a/go.sum b/go.sum index b33c354..837b9e1 100644 --- a/go.sum +++ b/go.sum @@ -73,8 +73,8 @@ github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/theory-cloud/tabletheory v1.5.0 h1:BrUpbkzr0os20c8g5DowX84qOF9w0a76sVkypaAPYrk= -github.com/theory-cloud/tabletheory v1.5.0/go.mod h1:SvW/SkYjgmUFp051IrtKmp5T9KTyHfKJIYCtSgzSLEo= +github.com/theory-cloud/tabletheory v1.5.1 h1:2AQpln+cKQ8XCawL3cRsF4lDGkBkTEzEM18Nxbcv6r8= +github.com/theory-cloud/tabletheory v1.5.1/go.mod h1:SvW/SkYjgmUFp051IrtKmp5T9KTyHfKJIYCtSgzSLEo= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/py/pyproject.toml b/py/pyproject.toml index 76d7aaf..fc5fa8b 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -11,7 +11,7 @@ readme = "README.md" license = "Apache-2.0" license-files = ["LICENSE"] dependencies = [ - "tabletheory-py @ https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/tabletheory_py-1.5.0-py3-none-any.whl", + "tabletheory-py @ https://github.com/theory-cloud/TableTheory/releases/download/v1.5.1/tabletheory_py-1.5.1-py3-none-any.whl", ] [tool.setuptools] diff --git a/scripts/verify-cdk-python-build.sh b/scripts/verify-cdk-python-build.sh index 803f63e..cabe506 100755 --- a/scripts/verify-cdk-python-build.sh +++ b/scripts/verify-cdk-python-build.sh @@ -24,6 +24,15 @@ fi export SOURCE_DATE_EPOCH="${epoch}" +build_requirement="$(awk -F'==' '$1=="build" {print $2}' cdk/requirements-build.txt)" +setuptools_requirement="$(awk -F'==' '$1=="setuptools" {print $2}' cdk/requirements-build.txt)" +wheel_requirement="$(awk -F'==' '$1=="wheel" {print $2}' cdk/requirements-build.txt)" + +if [[ -z "${build_requirement}" || -z "${setuptools_requirement}" || -z "${wheel_requirement}" ]]; then + echo "cdk-python-build: FAIL (cdk/requirements-build.txt must pin build, setuptools, and wheel)" >&2 + exit 1 +fi + mkdir -p dist if [[ ! -d "cdk/.venv" ]]; then @@ -118,6 +127,28 @@ PY cp LICENSE "${tmp_dir}/python/LICENSE" +TMP_PY_DIR="${tmp_dir}/python" \ +BUILD_REQUIREMENT="${build_requirement}" \ +SETUPTOOLS_REQUIREMENT="${setuptools_requirement}" \ +WHEEL_REQUIREMENT="${wheel_requirement}" \ +python3 - <<'PY' +import os +import re +from pathlib import Path + +pyproject = Path(os.environ["TMP_PY_DIR"]) / "pyproject.toml" +text = pyproject.read_text(encoding="utf-8") +expected = ( + f'requires = ["setuptools=={os.environ["SETUPTOOLS_REQUIREMENT"]}", ' + f'"wheel=={os.environ["WHEEL_REQUIREMENT"]}", ' + f'"build=={os.environ["BUILD_REQUIREMENT"]}"]' +) +updated = re.sub(r'^requires = \[.*\]$', expected, text, count=1, flags=re.MULTILINE) +if updated == text: + raise SystemExit("cdk-python-build: FAIL (unable to rewrite generated python build requirements)") +pyproject.write_text(updated, encoding="utf-8") +PY + TMP_PY_DIR="${tmp_dir}/python" python3 - <<'PY' import os from pathlib import Path diff --git a/ts/package-lock.json b/ts/package-lock.json index 537f110..0f68187 100644 --- a/ts/package-lock.json +++ b/ts/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-apigatewaymanagementapi": "^3.1015.0", - "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz" + "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.1/theory-cloud-tabletheory-ts-1.5.1.tgz" }, "devDependencies": { "@eslint/js": "9.39.2", @@ -1644,15 +1644,15 @@ } }, "node_modules/@theory-cloud/tabletheory-ts": { - "version": "1.5.0", - "resolved": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz", - "integrity": "sha512-EtzpNYFPqlEjL8l4vfV7jef3QnsVBwa1tsr+DJSFILFyotquQGBLzz6G22vLI80+79YRRWMZMqQxlyrbvSzufA==", + "version": "1.5.1", + "resolved": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.1/theory-cloud-tabletheory-ts-1.5.1.tgz", + "integrity": "sha512-zOIFo4u/WsYfc/y0VoKWFLf3Muf4EANMsnYpVipfSt3WOi79RCszEhyQUwMcGIZM7EmXKN6Na45Qh3GewY7dLQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-dynamodb": "^3.1002.0", "@aws-sdk/client-kms": "^3.1002.0", "@aws-sdk/client-sts": "^3.1002.0", - "yaml": "^2.8.2" + "yaml": "^2.8.3" }, "engines": { "node": ">=24" @@ -3188,10 +3188,25 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-xml-builder": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", + "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } + }, "node_modules/fast-xml-parser": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.8.tgz", - "integrity": "sha512-53jIF4N6u/pxvaL1eb/hEZts/cFLWZ92eCfLrNyCI0k38lettCG/Bs40W9pPwoPXyHQlKu2OUbQtiEIZK/J6Vw==", + "version": "5.5.9", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.9.tgz", + "integrity": "sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g==", "funding": [ { "type": "github", @@ -3200,7 +3215,9 @@ ], "license": "MIT", "dependencies": { - "strnum": "^2.1.2" + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.2.0", + "strnum": "^2.2.2" }, "bin": { "fxparser": "src/cli/cli.js" @@ -3282,9 +3299,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -4403,6 +4420,21 @@ "node": ">=8" } }, + "node_modules/path-expression-matcher": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.2.0.tgz", + "integrity": "sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5291,9 +5323,9 @@ } }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/ts/package.json b/ts/package.json index 776aea9..6a95a7f 100644 --- a/ts/package.json +++ b/ts/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "@aws-sdk/client-apigatewaymanagementapi": "^3.1015.0", - "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz" + "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.1/theory-cloud-tabletheory-ts-1.5.1.tgz" }, "overrides": { "@typescript-eslint/typescript-estree": { @@ -38,7 +38,9 @@ "eslint-plugin-import": { "minimatch": "3.1.4" }, - "fast-xml-parser": "5.3.8" + "fast-xml-parser": "5.5.9", + "flatted": "3.4.2", + "yaml": "2.8.3" }, "files": [ "dist",