@greenpandastudios/aug-cli 0.19.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/THIRD_PARTY_NOTICES.md +4 -0
- package/bin/aug.mjs +12 -2
- package/docs/about.md +27 -0
- package/docs/api/crypto.md +103 -69
- package/docs/api/io.md +35 -33
- package/docs/api/json.md +3 -3
- package/docs/api/memory.md +23 -19
- package/docs/api/time.md +10 -9
- package/docs/api/web.md +33 -38
- package/docs/compatibility.md +3 -3
- package/docs/contributing-benchmarks.md +38 -0
- package/docs/dev-containers.md +95 -0
- package/docs/diagnostics.md +15 -5
- package/docs/docker.md +174 -12
- package/docs/editor.md +35 -0
- package/docs/example-projects.json +206 -24
- package/docs/examples/approved-design/counters.md +34 -126
- package/docs/examples/approved-design/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/approved-design/domain/app.md +13 -77
- package/docs/examples/approved-design/domain/export.md +5 -19
- package/docs/examples/approved-design/domain/models.md +4 -23
- package/docs/examples/approved-design/domain/numbers.md +24 -114
- package/docs/examples/approved-design/index.md +16 -7
- package/docs/examples/approved-design/main.md +19 -96
- package/docs/examples/benchmark/index.md +6 -5
- package/docs/examples/benchmark/main.md +7 -35
- package/docs/examples/cli-args/index.md +6 -5
- package/docs/examples/cli-args/main.md +6 -31
- package/docs/examples/collections/index.md +6 -5
- package/docs/examples/collections/main.md +7 -35
- package/docs/examples/collections-benchmark/index.md +6 -5
- package/docs/examples/collections-benchmark/main.md +7 -35
- package/docs/examples/cpu-benchmark/index.md +6 -5
- package/docs/examples/cpu-benchmark/main.md +5 -24
- package/docs/examples/developer-workflow/calculator.md +39 -186
- package/docs/examples/developer-workflow/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/developer-workflow/index.md +16 -7
- package/docs/examples/developer-workflow/logging/console.md +10 -56
- package/docs/examples/developer-workflow/logging/export.md +4 -14
- package/docs/examples/developer-workflow/logging/logger.md +7 -43
- package/docs/examples/developer-workflow/main.md +17 -69
- package/docs/examples/drop/index.md +6 -5
- package/docs/examples/drop/main.md +7 -27
- package/docs/examples/drop/resource.md +7 -30
- package/docs/examples/errors/errors.md +7 -27
- package/docs/examples/errors/index.md +6 -5
- package/docs/examples/errors/main.md +7 -28
- package/docs/examples/ffi/index.md +6 -5
- package/docs/examples/ffi/main.md +6 -20
- package/docs/examples/ffi/native.md +8 -34
- package/docs/examples/generic-di/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/generic-di/index.md +6 -5
- package/docs/examples/generic-di/main.md +9 -39
- package/docs/examples/generic-di/types.md +23 -92
- package/docs/examples/generics/index.md +6 -5
- package/docs/examples/generics/main.md +10 -47
- package/docs/examples/generics/types.md +25 -100
- package/docs/examples/hello/app/export.md +4 -12
- package/docs/examples/hello/app/greeter.md +13 -91
- package/docs/examples/hello/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/hello/index.md +17 -6
- package/docs/examples/hello/logging/console.md +10 -54
- package/docs/examples/hello/logging/export.md +4 -14
- package/docs/examples/hello/logging/logger.md +7 -45
- package/docs/examples/hello/main.md +9 -39
- package/docs/examples/http-benchmark/index.md +6 -5
- package/docs/examples/http-benchmark/main.md +6 -20
- package/docs/examples/http-benchmark/routes.md +9 -31
- package/docs/examples/index.md +46 -29
- package/docs/examples/interceptors/app.md +20 -139
- package/docs/examples/interceptors/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/interceptors/index.md +6 -5
- package/docs/examples/interceptors/interceptors.md +24 -148
- package/docs/examples/interceptors/logging.md +13 -76
- package/docs/examples/interceptors/main.md +10 -65
- package/docs/examples/json-benchmark/data.md +4 -20
- package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/json-benchmark/index.md +7 -5
- package/docs/examples/json-benchmark/main-yaml.md +20 -0
- package/docs/examples/json-benchmark/main.md +10 -49
- package/docs/examples/new-syntax/console.md +10 -52
- package/docs/examples/new-syntax/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/new-syntax/greeter.md +13 -71
- package/docs/examples/new-syntax/index.md +6 -5
- package/docs/examples/new-syntax/logger.md +7 -43
- package/docs/examples/new-syntax/main.md +10 -53
- package/docs/examples/new-syntax/math.md +6 -24
- package/docs/examples/oidc-login/client/contracts.md +10 -61
- package/docs/examples/oidc-login/client/endpoints.md +32 -154
- package/docs/examples/oidc-login/client/export.md +5 -23
- package/docs/examples/oidc-login/client/login.md +234 -344
- package/docs/examples/oidc-login/client/logout.md +38 -143
- package/docs/examples/oidc-login/client/protocol.md +183 -304
- package/docs/examples/oidc-login/client/session.md +41 -149
- package/docs/examples/oidc-login/client/views.md +13 -58
- package/docs/examples/oidc-login/common/export.md +6 -26
- package/docs/examples/oidc-login/common/headers.md +42 -72
- package/docs/examples/oidc-login/common/keys.md +40 -164
- package/docs/examples/oidc-login/common/settings.md +24 -40
- package/docs/examples/oidc-login/common/views.md +7 -28
- package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
- package/docs/examples/oidc-login/index.md +8 -7
- package/docs/examples/oidc-login/main-yaml.md +7 -0
- package/docs/examples/oidc-login/main.md +26 -153
- package/docs/examples/oidc-login/provider/authorization.md +232 -275
- package/docs/examples/oidc-login/provider/contracts.md +24 -146
- package/docs/examples/oidc-login/provider/credentials.md +24 -57
- package/docs/examples/oidc-login/provider/discovery.md +48 -122
- package/docs/examples/oidc-login/provider/export.md +11 -37
- package/docs/examples/oidc-login/provider/token.md +159 -237
- package/docs/examples/oidc-login/provider/userinfo.md +47 -102
- package/docs/examples/oidc-login/provider/views.md +13 -53
- package/docs/examples/ownership/counter.md +17 -63
- package/docs/examples/ownership/index.md +6 -5
- package/docs/examples/ownership/main.md +7 -30
- package/docs/examples/ownership-transfer/dependencies/august/0.20.1/io/contracts.md +178 -0
- package/docs/examples/ownership-transfer/index.md +6 -5
- package/docs/examples/ownership-transfer/main.md +10 -52
- package/docs/examples/ownership-transfer/resource.md +15 -67
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
- package/docs/examples/packages-app/index.md +7 -6
- package/docs/examples/packages-app/main.md +7 -25
- package/docs/examples/packages-math/aug-package-json.md +1 -1
- package/docs/examples/packages-math/index.md +7 -6
- package/docs/examples/packages-math/src/arithmetic.md +12 -50
- package/docs/examples/packages-math/src/export.md +4 -12
- package/docs/examples/startup-benchmark/index.md +6 -5
- package/docs/examples/startup-benchmark/main.md +5 -17
- package/docs/examples/visibility/counter.md +19 -67
- package/docs/examples/visibility/index.md +6 -5
- package/docs/examples/visibility/main.md +7 -31
- package/docs/examples/weather-api/forecasts.md +168 -0
- package/docs/examples/weather-api/index.md +42 -0
- package/docs/examples/weather-api/main-yaml.md +21 -0
- package/docs/examples/weather-api/main.md +65 -0
- package/docs/examples.json +10 -0
- package/docs/getting-started.md +105 -2
- package/docs/grammar.md +6 -4
- package/docs/guides/change-a-module.md +64 -0
- package/docs/guides/index.md +27 -0
- package/docs/index.md +51 -29
- package/docs/language-conformance.md +1 -1
- package/docs/language-constructs.md +22 -22
- package/docs/language-design-audit.md +1 -1
- package/docs/learn/data-and-errors.md +77 -0
- package/docs/learn/index.md +30 -0
- package/docs/learn/modules-and-dependencies.md +73 -0
- package/docs/learn/state-and-tests.md +71 -0
- package/docs/learn/values-and-functions.md +62 -0
- package/docs/lesson-failures.json +8 -0
- package/docs/maintaining-docs.md +16 -4
- package/docs/packages.md +72 -126
- package/docs/performance.md +13 -41
- package/docs/production-readiness.md +5 -4
- package/docs/public/downloads/approved-design.zip +0 -0
- package/docs/public/downloads/benchmark.zip +0 -0
- package/docs/public/downloads/cli-args.zip +0 -0
- package/docs/public/downloads/collections-benchmark.zip +0 -0
- package/docs/public/downloads/collections.zip +0 -0
- package/docs/public/downloads/cpu-benchmark.zip +0 -0
- package/docs/public/downloads/developer-workflow.zip +0 -0
- package/docs/public/downloads/drop.zip +0 -0
- package/docs/public/downloads/errors.zip +0 -0
- package/docs/public/downloads/ffi.zip +0 -0
- package/docs/public/downloads/generic-di.zip +0 -0
- package/docs/public/downloads/generics.zip +0 -0
- package/docs/public/downloads/hello.zip +0 -0
- package/docs/public/downloads/http-benchmark.zip +0 -0
- package/docs/public/downloads/interceptors.zip +0 -0
- package/docs/public/downloads/json-benchmark.zip +0 -0
- package/docs/public/downloads/new-syntax.zip +0 -0
- package/docs/public/downloads/oidc-login.zip +0 -0
- package/docs/public/downloads/ownership-transfer.zip +0 -0
- package/docs/public/downloads/ownership.zip +0 -0
- package/docs/public/downloads/packages-app.zip +0 -0
- package/docs/public/downloads/packages-math.zip +0 -0
- package/docs/public/downloads/startup-benchmark.zip +0 -0
- package/docs/public/downloads/visibility.zip +0 -0
- package/docs/public/downloads/weather-api.zip +0 -0
- package/docs/reference.md +23 -17
- package/docs/releasing.md +29 -15
- package/docs/research/code-to-natural-language.md +108 -0
- package/docs/research/ecosystem-workflow.md +41 -0
- package/docs/research/wiki-editorial-design.md +71 -0
- package/docs/roadmap.md +1 -1
- package/docs/specifications.md +27 -11
- package/docs/testing.md +19 -5
- package/docs/tooling.md +25 -12
- package/docs/weather-api.md +65 -0
- package/docs/web.md +50 -18
- package/docs/writing-docs.md +49 -0
- package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
- package/examples/approved-design/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/approved-design/.aug-spec/manifest.json +3 -3
- package/examples/approved-design/counters.aug +5 -4
- package/examples/approved-design/counters.aug.md +25 -132
- package/examples/approved-design/domain/app.aug +2 -1
- package/examples/approved-design/domain/app.aug.md +10 -80
- package/examples/approved-design/domain/export.aug +1 -0
- package/examples/approved-design/domain/export.aug.md +4 -20
- package/examples/approved-design/domain/models.aug +1 -0
- package/examples/approved-design/domain/models.aug.md +3 -25
- package/examples/approved-design/domain/numbers.aug +3 -2
- package/examples/approved-design/domain/numbers.aug.md +19 -116
- package/examples/approved-design/main.aug +1 -0
- package/examples/approved-design/main.aug.md +12 -95
- package/examples/benchmark/.aug-spec/manifest.json +1 -1
- package/examples/benchmark/main.aug +1 -0
- package/examples/benchmark/main.aug.md +6 -36
- package/examples/cli-args/.aug-spec/manifest.json +1 -1
- package/examples/cli-args/main.aug +1 -0
- package/examples/cli-args/main.aug.md +5 -32
- package/examples/collections/.aug-spec/manifest.json +1 -1
- package/examples/collections/main.aug +1 -0
- package/examples/collections/main.aug.md +6 -36
- package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
- package/examples/developer-workflow/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
- package/examples/developer-workflow/calculator.aug +3 -2
- package/examples/developer-workflow/calculator.aug.md +28 -189
- package/examples/developer-workflow/logging/console.aug +2 -1
- package/examples/developer-workflow/logging/console.aug.md +7 -57
- package/examples/developer-workflow/logging/export.aug +1 -0
- package/examples/developer-workflow/logging/export.aug.md +3 -15
- package/examples/developer-workflow/logging/logger.aug +1 -0
- package/examples/developer-workflow/logging/logger.aug.md +6 -46
- package/examples/developer-workflow/main.aug +1 -0
- package/examples/developer-workflow/main.aug.md +10 -68
- package/examples/drop/.aug-spec/manifest.json +1 -1
- package/examples/drop/main.aug +1 -0
- package/examples/drop/main.aug.md +6 -28
- package/examples/drop/resource.aug +1 -0
- package/examples/drop/resource.aug.md +6 -34
- package/examples/errors/.aug-spec/manifest.json +1 -1
- package/examples/errors/errors.aug +2 -1
- package/examples/errors/errors.aug.md +4 -27
- package/examples/errors/main.aug +1 -0
- package/examples/errors/main.aug.md +6 -29
- package/examples/ffi/.aug-spec/manifest.json +1 -1
- package/examples/ffi/main.aug +1 -0
- package/examples/ffi/main.aug.md +5 -21
- package/examples/ffi/native.aug +2 -1
- package/examples/ffi/native.aug.md +5 -35
- package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
- package/examples/generic-di/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/generic-di/.aug-spec/manifest.json +3 -3
- package/examples/generic-di/main.aug +1 -0
- package/examples/generic-di/main.aug.md +8 -40
- package/examples/generic-di/types.aug +3 -2
- package/examples/generic-di/types.aug.md +18 -97
- package/examples/generics/.aug-spec/manifest.json +1 -1
- package/examples/generics/main.aug +1 -0
- package/examples/generics/main.aug.md +9 -48
- package/examples/generics/types.aug +4 -3
- package/examples/generics/types.aug.md +18 -104
- package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
- package/examples/hello/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/hello/.aug-spec/manifest.json +3 -3
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +3 -13
- package/examples/hello/app/greeter.aug +2 -1
- package/examples/hello/app/greeter.aug.md +10 -94
- package/examples/hello/logging/console.aug +2 -1
- package/examples/hello/logging/console.aug.md +7 -55
- package/examples/hello/logging/export.aug +1 -0
- package/examples/hello/logging/export.aug.md +3 -15
- package/examples/hello/logging/logger.aug +1 -0
- package/examples/hello/logging/logger.aug.md +6 -48
- package/examples/hello/main.aug +1 -0
- package/examples/hello/main.aug.md +8 -40
- package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
- package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/interceptors/.aug-spec/manifest.json +3 -3
- package/examples/interceptors/app.aug +3 -2
- package/examples/interceptors/app.aug.md +15 -141
- package/examples/interceptors/interceptors.aug +3 -2
- package/examples/interceptors/interceptors.aug.md +19 -152
- package/examples/interceptors/logging.aug +2 -1
- package/examples/interceptors/logging.aug.md +10 -79
- package/examples/interceptors/main.aug +1 -0
- package/examples/interceptors/main.aug.md +9 -66
- package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
- package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/new-syntax/.aug-spec/manifest.json +3 -3
- package/examples/new-syntax/console.aug +2 -1
- package/examples/new-syntax/console.aug.md +7 -53
- package/examples/new-syntax/greeter.aug +2 -1
- package/examples/new-syntax/greeter.aug.md +10 -74
- package/examples/new-syntax/logger.aug +1 -0
- package/examples/new-syntax/logger.aug.md +6 -46
- package/examples/new-syntax/main.aug +1 -0
- package/examples/new-syntax/main.aug.md +9 -54
- package/examples/new-syntax/math.aug +2 -1
- package/examples/new-syntax/math.aug.md +3 -24
- package/examples/oidc-login/.aug-spec/manifest.json +13 -13
- package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
- package/examples/oidc-login/aug.lock.json +100 -0
- package/examples/oidc-login/client/contracts.aug +1 -0
- package/examples/oidc-login/client/contracts.aug.md +9 -66
- package/examples/oidc-login/client/endpoints.aug +6 -5
- package/examples/oidc-login/client/endpoints.aug.md +13 -145
- package/examples/oidc-login/client/export.aug +1 -0
- package/examples/oidc-login/client/export.aug.md +4 -24
- package/examples/oidc-login/client/login.aug +7 -6
- package/examples/oidc-login/client/login.aug.md +25 -303
- package/examples/oidc-login/client/logout.aug +5 -4
- package/examples/oidc-login/client/logout.aug.md +13 -135
- package/examples/oidc-login/client/protocol.aug +7 -6
- package/examples/oidc-login/client/protocol.aug.md +36 -283
- package/examples/oidc-login/client/session.aug +5 -4
- package/examples/oidc-login/client/session.aug.md +12 -139
- package/examples/oidc-login/client/views.aug +3 -2
- package/examples/oidc-login/client/views.aug.md +8 -57
- package/examples/oidc-login/common/export.aug +1 -0
- package/examples/oidc-login/common/export.aug.md +5 -27
- package/examples/oidc-login/common/headers.aug +4 -3
- package/examples/oidc-login/common/headers.aug.md +9 -67
- package/examples/oidc-login/common/keys.aug +6 -5
- package/examples/oidc-login/common/keys.aug.md +29 -165
- package/examples/oidc-login/common/settings.aug +2 -1
- package/examples/oidc-login/common/settings.aug.md +5 -39
- package/examples/oidc-login/common/views.aug +2 -1
- package/examples/oidc-login/common/views.aug.md +4 -28
- package/examples/oidc-login/main.aug +6 -16
- package/examples/oidc-login/main.aug.md +17 -146
- package/examples/oidc-login/main.yaml +7 -0
- package/examples/oidc-login/provider/authorization.aug +7 -6
- package/examples/oidc-login/provider/authorization.aug.md +23 -238
- package/examples/oidc-login/provider/contracts.aug +1 -0
- package/examples/oidc-login/provider/contracts.aug.md +23 -158
- package/examples/oidc-login/provider/credentials.aug +3 -2
- package/examples/oidc-login/provider/credentials.aug.md +9 -53
- package/examples/oidc-login/provider/discovery.aug +4 -3
- package/examples/oidc-login/provider/discovery.aug.md +11 -118
- package/examples/oidc-login/provider/export.aug +1 -0
- package/examples/oidc-login/provider/export.aug.md +6 -34
- package/examples/oidc-login/provider/token.aug +6 -5
- package/examples/oidc-login/provider/token.aug.md +16 -204
- package/examples/oidc-login/provider/userinfo.aug +4 -3
- package/examples/oidc-login/provider/userinfo.aug.md +10 -92
- package/examples/oidc-login/provider/views.aug +3 -2
- package/examples/oidc-login/provider/views.aug.md +8 -52
- package/examples/ownership/.aug-spec/manifest.json +1 -1
- package/examples/ownership/counter.aug +3 -2
- package/examples/ownership/counter.aug.md +12 -66
- package/examples/ownership/main.aug +1 -0
- package/examples/ownership/main.aug.md +6 -31
- package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
- package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
- package/examples/ownership-transfer/main.aug +1 -0
- package/examples/ownership-transfer/main.aug.md +9 -53
- package/examples/ownership-transfer/resource.aug +2 -1
- package/examples/ownership-transfer/resource.aug.md +12 -71
- package/examples/packages/app/.aug-spec/manifest.json +1 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
- package/examples/packages/app/main.aug +1 -0
- package/examples/packages/app/main.aug.md +6 -26
- package/examples/packages/math/.aug-spec/manifest.json +1 -1
- package/examples/packages/math/aug-package.json +1 -1
- package/examples/packages/math/src/arithmetic.aug +2 -1
- package/examples/packages/math/src/arithmetic.aug.md +9 -51
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +3 -13
- package/examples/visibility/.aug-spec/manifest.json +1 -1
- package/examples/visibility/counter.aug +4 -3
- package/examples/visibility/counter.aug.md +12 -68
- package/examples/visibility/main.aug +1 -0
- package/examples/visibility/main.aug.md +6 -32
- package/examples/weather-api/.aug-spec/manifest.json +8 -0
- package/examples/weather-api/AGENTS.md +17 -0
- package/examples/weather-api/README.md +19 -0
- package/examples/weather-api/forecasts.aug +47 -0
- package/examples/weather-api/forecasts.aug.md +32 -0
- package/examples/weather-api/main.aug +4 -0
- package/examples/weather-api/main.aug.md +15 -0
- package/examples/weather-api/main.yaml +5 -0
- package/examples/weather-api/weather.http +5 -0
- package/package.json +3 -4
- package/scripts/bootstrap-native.mjs +181 -106
- package/scripts/native-setup.mjs +98 -0
- package/scripts/native-toolchain.mjs +28 -0
- package/src/builtins.js +1 -1
- package/src/checker.js +259 -72
- package/src/cli.js +114 -20
- package/src/codegen.js +1 -1
- package/src/config.js +1 -1
- package/src/contracts.js +10 -0
- package/src/editor.js +71 -16
- package/src/fixes.js +90 -2
- package/src/formatter.js +19 -8
- package/src/git-packages.js +110 -0
- package/src/help.js +24 -23
- package/src/http-contracts.js +14 -0
- package/src/http-policies.js +5 -5
- package/src/libraries.js +1 -1
- package/src/lsp.js +14 -5
- package/src/native.js +19 -13
- package/src/navigation.js +4 -2
- package/src/openapi.js +5 -4
- package/src/package-locking.js +45 -0
- package/src/package-manager.js +251 -67
- package/src/parser.js +13 -5
- package/src/policies.js +3 -3
- package/src/project-init.js +78 -4
- package/src/project.js +9 -7
- package/src/semantic.js +46 -2
- package/src/snippets.js +59 -0
- package/src/spec-hints.js +56 -0
- package/src/spec-tree.js +241 -0
- package/src/spec.js +626 -303
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
|
@@ -29,8 +29,9 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
+
// aug-spec: "arithmetic.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
32
33
|
/** Add two integers. @param left First value. @param right Second value. @return Their sum. */
|
|
33
|
-
add(int left, int right)
|
|
34
|
+
add(int left, int right):
|
|
34
35
|
return left + right
|
|
35
36
|
test add:
|
|
36
37
|
when "addition":
|
|
@@ -39,8 +40,9 @@ test add:
|
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
```aug [Braces]
|
|
43
|
+
// aug-spec: "arithmetic.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
42
44
|
/** Add two integers. @param left First value. @param right Second value. @return Their sum. */
|
|
43
|
-
add(int left, int right)
|
|
45
|
+
add(int left, int right) {
|
|
44
46
|
return left + right
|
|
45
47
|
}
|
|
46
48
|
test add {
|
|
@@ -60,61 +62,21 @@ test add {
|
|
|
60
62
|
|
|
61
63
|
## Compiled specification {#specification}
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
### `add` · [source](arithmetic.md#code) {#symbol-add}
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
Add two integers. It takes `left` as an integer (First value) and `right` as an integer (Second value). It returns `int` — Their sum. It returns `left` plus `right`.
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
- [`test add`](arithmetic.md#symbol-test-20-add) is a same-file test suite.
|
|
69
|
+
### `test add` · [source](arithmetic.md#code) {#symbol-test-20-add}
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
Tests [`add`](arithmetic.md#symbol-add). Each case gets fresh setup and dependencies.
|
|
71
72
|
|
|
72
|
-
|
|
73
|
+
#### `addition`
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
##### `adds_two_integers` · [source](arithmetic.md#code)
|
|
75
76
|
|
|
76
|
-
- `left`
|
|
77
|
-
- `right` (`int`) — required labeled input.
|
|
77
|
+
The test requires [`add`](arithmetic.md#symbol-add) with `left` `2` and `right` `3` equals `5`.
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
**What it does**
|
|
82
|
-
|
|
83
|
-
- Return `left` plus `right`.
|
|
84
|
-
|
|
85
|
-
**Author documentation**
|
|
86
|
-
|
|
87
|
-
Add two integers.
|
|
88
|
-
|
|
89
|
-
**Returns** Their sum.
|
|
90
|
-
|
|
91
|
-
**Parameters**
|
|
92
|
-
- `left`: First value.
|
|
93
|
-
- `right`: Second value.
|
|
94
|
-
|
|
95
|
-
### `test add` {#symbol-test-20-add}
|
|
96
|
-
|
|
97
|
-
[source](arithmetic.md#code)
|
|
98
|
-
|
|
99
|
-
Same-file function tests for [`add`](arithmetic.md#symbol-add). Each case gets isolated setup and dependency bindings.
|
|
100
|
-
|
|
101
|
-
#### Group `addition`
|
|
102
|
-
|
|
103
|
-
##### `adds_two_integers`
|
|
104
|
-
|
|
105
|
-
[source](arithmetic.md#code)
|
|
106
|
-
|
|
107
|
-
- Call `assert` with (call [`add`](arithmetic.md#symbol-add) with `left` = `2`; `right` = `3` equals `5`).
|
|
108
|
-
|
|
109
|
-
### Built-in operations used by this file
|
|
110
|
-
|
|
111
|
-
- `assert` (`condition`: `bool`) → `void`: Assert a bool in a test case or its setup. Catching an assertion failure cannot make the case pass; every case must execute an assertion.
|
|
112
|
-
|
|
113
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
114
|
-
|
|
115
|
-
### Shared language rules
|
|
116
|
-
|
|
117
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
79
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
118
80
|
|
|
119
81
|
::::
|
|
120
82
|
|
|
@@ -29,10 +29,12 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
32
33
|
export add from arithmetic
|
|
33
34
|
```
|
|
34
35
|
|
|
35
36
|
```aug [Braces]
|
|
37
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
38
|
export add from arithmetic
|
|
37
39
|
```
|
|
38
40
|
|
|
@@ -44,19 +46,9 @@ export add from arithmetic
|
|
|
44
46
|
|
|
45
47
|
## Compiled specification {#specification}
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
### Exports
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- Export `add` from this folder.
|
|
52
|
-
|
|
53
|
-
### Folder exports
|
|
54
|
-
|
|
55
|
-
- Export the declaration `add` from [`arithmetic.aug`](arithmetic.md#symbol-add).
|
|
56
|
-
|
|
57
|
-
### Shared language rules
|
|
58
|
-
|
|
59
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
51
|
+
Export the declaration `add` from [`arithmetic.aug`](arithmetic.md#symbol-add).
|
|
60
52
|
|
|
61
53
|
::::
|
|
62
54
|
|
|
@@ -12,7 +12,7 @@ outline: [2, 3]
|
|
|
12
12
|
|
|
13
13
|
The small program used to measure process startup.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
|
|
16
16
|
|
|
17
17
|
## Project files
|
|
18
18
|
|
|
@@ -21,12 +21,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
|
|
|
21
21
|
|
|
22
22
|
## Try this project
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
[Download this project](/downloads/startup-benchmark.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
|
-
|
|
28
|
-
aug
|
|
29
|
-
aug
|
|
27
|
+
cd startup-benchmark
|
|
28
|
+
aug check .
|
|
29
|
+
aug spec .
|
|
30
|
+
aug run .
|
|
30
31
|
```
|
|
31
32
|
|
|
32
33
|
See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
|
|
@@ -28,10 +28,12 @@ pageClass: aug-example-page
|
|
|
28
28
|
::: code-group
|
|
29
29
|
|
|
30
30
|
```aug [Indentation]
|
|
31
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
31
32
|
print(value=7)
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
```aug [Braces]
|
|
36
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
35
37
|
print(value=7)
|
|
36
38
|
```
|
|
37
39
|
|
|
@@ -43,25 +45,11 @@ print(value=7)
|
|
|
43
45
|
|
|
44
46
|
## Compiled specification {#specification}
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
### Startup
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
It prints `7`.
|
|
49
51
|
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
### Startup, in source order
|
|
53
|
-
|
|
54
|
-
- Call `print` with `value` = `7`.
|
|
55
|
-
|
|
56
|
-
### Built-in operations used by this file
|
|
57
|
-
|
|
58
|
-
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
59
|
-
|
|
60
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
61
|
-
|
|
62
|
-
### Shared language rules
|
|
63
|
-
|
|
64
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
52
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
65
53
|
|
|
66
54
|
::::
|
|
67
55
|
|
|
@@ -29,30 +29,32 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
+
// aug-spec: "counter.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
32
33
|
interface ICounter:
|
|
33
34
|
label() returns string
|
|
34
35
|
Counter(mutable int value) implements ICounter:
|
|
35
|
-
_label()
|
|
36
|
+
_label():
|
|
36
37
|
return _prefix()
|
|
37
|
-
label()
|
|
38
|
+
label():
|
|
38
39
|
return self._label()
|
|
39
|
-
_prefix()
|
|
40
|
+
_prefix():
|
|
40
41
|
return "count"
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
```aug [Braces]
|
|
45
|
+
// aug-spec: "counter.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
44
46
|
interface ICounter {
|
|
45
47
|
label() returns string
|
|
46
48
|
}
|
|
47
49
|
Counter(mutable int value) implements ICounter {
|
|
48
|
-
_label()
|
|
50
|
+
_label() {
|
|
49
51
|
return _prefix()
|
|
50
52
|
}
|
|
51
|
-
label()
|
|
53
|
+
label() {
|
|
52
54
|
return self._label()
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
|
-
_prefix()
|
|
57
|
+
_prefix() {
|
|
56
58
|
return "count"
|
|
57
59
|
}
|
|
58
60
|
```
|
|
@@ -65,77 +67,27 @@ _prefix() returns string {
|
|
|
65
67
|
|
|
66
68
|
## Compiled specification {#specification}
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
### `ICounter` · interface · [source](counter.md#code) {#symbol-ICounter}
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
#### `ICounter.label` · [source](counter.md#code) {#symbol-ICounter.label}
|
|
71
73
|
|
|
72
|
-
|
|
73
|
-
- [`Counter`](counter.md#symbol-Counter) is a class implementing `ICounter`.
|
|
74
|
-
- [`_prefix`](counter.md#symbol-_prefix) is a function returning `string`.
|
|
74
|
+
It returns `string`.
|
|
75
75
|
|
|
76
|
-
### `
|
|
76
|
+
### `Counter` · class · [source](counter.md#code) {#symbol-Counter}
|
|
77
77
|
|
|
78
|
-
[
|
|
78
|
+
It implements [`ICounter`](counter.md#symbol-ICounter). It takes `value` as an integer, kept mutable.
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
#### `Counter._label` · [source](counter.md#code) {#symbol-Counter._label}
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
It is private to its defining scope. It returns [`_prefix`](counter.md#symbol-_prefix).
|
|
83
83
|
|
|
84
|
-
[source](counter.md#code)
|
|
84
|
+
#### `Counter.label` · [source](counter.md#code) {#symbol-Counter.label}
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
It returns [`self._label`](counter.md#symbol-Counter._label).
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
### `_prefix` · [source](counter.md#code) {#symbol-_prefix}
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
[source](counter.md#code)
|
|
93
|
-
|
|
94
|
-
Behavioral class.
|
|
95
|
-
|
|
96
|
-
Satisfies [`ICounter`](counter.md#symbol-ICounter).
|
|
97
|
-
|
|
98
|
-
**Inputs**
|
|
99
|
-
|
|
100
|
-
- `value` (`int`) — required labeled input — stored as `value` and mutable.
|
|
101
|
-
|
|
102
|
-
#### `Counter._label` {#symbol-Counter._label}
|
|
103
|
-
|
|
104
|
-
[source](counter.md#code)
|
|
105
|
-
|
|
106
|
-
Private to its defining scope.
|
|
107
|
-
|
|
108
|
-
Returns: `string`.
|
|
109
|
-
|
|
110
|
-
**What it does**
|
|
111
|
-
|
|
112
|
-
- Return call [`_prefix`](counter.md#symbol-_prefix).
|
|
113
|
-
|
|
114
|
-
#### `Counter.label` {#symbol-Counter.label}
|
|
115
|
-
|
|
116
|
-
[source](counter.md#code)
|
|
117
|
-
|
|
118
|
-
Returns: `string`.
|
|
119
|
-
|
|
120
|
-
**What it does**
|
|
121
|
-
|
|
122
|
-
- Return call [`Counter._label`](counter.md#symbol-Counter._label) on `self`.
|
|
123
|
-
|
|
124
|
-
### `_prefix` {#symbol-_prefix}
|
|
125
|
-
|
|
126
|
-
[source](counter.md#code)
|
|
127
|
-
|
|
128
|
-
Private to its defining scope.
|
|
129
|
-
|
|
130
|
-
Returns: `string`.
|
|
131
|
-
|
|
132
|
-
**What it does**
|
|
133
|
-
|
|
134
|
-
- Return `"count"`.
|
|
135
|
-
|
|
136
|
-
### Shared language rules
|
|
137
|
-
|
|
138
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
90
|
+
It is private to its defining scope. It returns `"count"`.
|
|
139
91
|
|
|
140
92
|
::::
|
|
141
93
|
|
|
@@ -12,7 +12,7 @@ outline: [2, 3]
|
|
|
12
12
|
|
|
13
13
|
Keep underscore-prefixed implementation details inside their scope.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
|
|
16
16
|
|
|
17
17
|
## Project files
|
|
18
18
|
|
|
@@ -22,12 +22,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
|
|
|
22
22
|
|
|
23
23
|
## Try this project
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
[Download this project](/downloads/visibility.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
|
-
|
|
29
|
-
aug
|
|
30
|
-
aug
|
|
28
|
+
cd visibility
|
|
29
|
+
aug check .
|
|
30
|
+
aug spec .
|
|
31
|
+
aug run .
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
[Browse all examples](../index.md)
|
|
@@ -29,6 +29,7 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
32
33
|
import Counter from counter
|
|
33
34
|
counter = Counter(value=1)
|
|
34
35
|
print(value=counter.label())
|
|
@@ -38,6 +39,7 @@ print(value=counter.value)
|
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
```aug [Braces]
|
|
42
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
41
43
|
import Counter from counter
|
|
42
44
|
counter = Counter(value=1)
|
|
43
45
|
print(value=counter.label())
|
|
@@ -55,41 +57,15 @@ print(value=counter.value)
|
|
|
55
57
|
|
|
56
58
|
## Compiled specification {#specification}
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
### Startup
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
It sets `counter` to a [`Counter`](counter.md#symbol-Counter) with `value` `1`. It prints [`counter.label`](counter.md#symbol-Counter.label). With temporary permission to change `counter`, it sets `counter.value` to `2`. It prints `counter.value`.
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
### Dependencies
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
It uses [`Counter`](counter.md#symbol-Counter) ([`label`](counter.md#symbol-Counter.label) and `value`) from `counter`.
|
|
65
67
|
|
|
66
|
-
-
|
|
67
|
-
- Call `print` with `value` = call [`Counter.label`](counter.md#symbol-Counter.label) on `counter`.
|
|
68
|
-
- Grant exclusive mutable access to `counter` for this block, then end the borrow:
|
|
69
|
-
- Set `value` of `counter` to `2`.
|
|
70
|
-
- Call `print` with `value` = `value` of `counter`.
|
|
71
|
-
|
|
72
|
-
### Dependencies used by this file
|
|
73
|
-
|
|
74
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
75
|
-
|
|
76
|
-
#### [`Counter`](counter.md#symbol-Counter)
|
|
77
|
-
|
|
78
|
-
Class from `counter`.
|
|
79
|
-
|
|
80
|
-
- Construct with `value`: `int` → [`Counter`](counter.md#symbol-Counter).
|
|
81
|
-
- Read `value` (`int`); its owner can change it.
|
|
82
|
-
- [`Counter.label`](counter.md#symbol-Counter.label) (no caller inputs) → `string`.
|
|
83
|
-
|
|
84
|
-
### Built-in operations used by this file
|
|
85
|
-
|
|
86
|
-
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
87
|
-
|
|
88
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
89
|
-
|
|
90
|
-
### Shared language rules
|
|
91
|
-
|
|
92
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
68
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
93
69
|
|
|
94
70
|
::::
|
|
95
71
|
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "forecasts.aug · Weather API"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/weather-api/forecasts.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `forecasts.aug`
|
|
13
|
+
|
|
14
|
+
[Weather API](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`forecasts.aug`](forecasts.md)
|
|
20
|
+
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
::::: example-compare
|
|
24
|
+
|
|
25
|
+
:::: example-code
|
|
26
|
+
|
|
27
|
+
## Code {#code}
|
|
28
|
+
|
|
29
|
+
::: code-group
|
|
30
|
+
|
|
31
|
+
```aug [Indentation]
|
|
32
|
+
// aug-spec: "forecasts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
33
|
+
/** The JSON shape returned by the forecast endpoint. Temperatures use whole degrees. */
|
|
34
|
+
record WeatherForecast(string date, int temperatureC, int temperatureF, string summary)
|
|
35
|
+
/** Return five simulated forecasts. Fixed data keeps the example and its tests reproducible. */
|
|
36
|
+
endpoint GET "/weatherforecast" as weatherForecast():
|
|
37
|
+
return [
|
|
38
|
+
WeatherForecast(
|
|
39
|
+
date="2026-01-01",
|
|
40
|
+
temperatureC=0,
|
|
41
|
+
temperatureF=32,
|
|
42
|
+
summary="Freezing"
|
|
43
|
+
),
|
|
44
|
+
WeatherForecast(
|
|
45
|
+
date="2026-01-02",
|
|
46
|
+
temperatureC=10,
|
|
47
|
+
temperatureF=50,
|
|
48
|
+
summary="Cool"
|
|
49
|
+
),
|
|
50
|
+
WeatherForecast(
|
|
51
|
+
date="2026-01-03",
|
|
52
|
+
temperatureC=20,
|
|
53
|
+
temperatureF=68,
|
|
54
|
+
summary="Mild"
|
|
55
|
+
),
|
|
56
|
+
WeatherForecast(
|
|
57
|
+
date="2026-01-04",
|
|
58
|
+
temperatureC=30,
|
|
59
|
+
temperatureF=86,
|
|
60
|
+
summary="Warm"
|
|
61
|
+
),
|
|
62
|
+
WeatherForecast(
|
|
63
|
+
date="2026-01-05",
|
|
64
|
+
temperatureC=35,
|
|
65
|
+
temperatureF=95,
|
|
66
|
+
summary="Hot"
|
|
67
|
+
)
|
|
68
|
+
]
|
|
69
|
+
test endpoint weatherForecast client:
|
|
70
|
+
when "forecasts":
|
|
71
|
+
it "returns_json":
|
|
72
|
+
response = client.request(method="GET", path="/weatherforecast")
|
|
73
|
+
assert(condition=response.status == 200)
|
|
74
|
+
it "rejects_other_methods":
|
|
75
|
+
response = client.request(method="POST", path="/weatherforecast")
|
|
76
|
+
assert(condition=response.status == 405)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
```aug [Braces]
|
|
80
|
+
// aug-spec: "forecasts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
81
|
+
/** The JSON shape returned by the forecast endpoint. Temperatures use whole degrees. */
|
|
82
|
+
record WeatherForecast(string date, int temperatureC, int temperatureF, string summary)
|
|
83
|
+
/** Return five simulated forecasts. Fixed data keeps the example and its tests reproducible. */
|
|
84
|
+
endpoint GET "/weatherforecast" as weatherForecast() {
|
|
85
|
+
return [
|
|
86
|
+
WeatherForecast(
|
|
87
|
+
date="2026-01-01",
|
|
88
|
+
temperatureC=0,
|
|
89
|
+
temperatureF=32,
|
|
90
|
+
summary="Freezing"
|
|
91
|
+
),
|
|
92
|
+
WeatherForecast(
|
|
93
|
+
date="2026-01-02",
|
|
94
|
+
temperatureC=10,
|
|
95
|
+
temperatureF=50,
|
|
96
|
+
summary="Cool"
|
|
97
|
+
),
|
|
98
|
+
WeatherForecast(
|
|
99
|
+
date="2026-01-03",
|
|
100
|
+
temperatureC=20,
|
|
101
|
+
temperatureF=68,
|
|
102
|
+
summary="Mild"
|
|
103
|
+
),
|
|
104
|
+
WeatherForecast(
|
|
105
|
+
date="2026-01-04",
|
|
106
|
+
temperatureC=30,
|
|
107
|
+
temperatureF=86,
|
|
108
|
+
summary="Warm"
|
|
109
|
+
),
|
|
110
|
+
WeatherForecast(
|
|
111
|
+
date="2026-01-05",
|
|
112
|
+
temperatureC=35,
|
|
113
|
+
temperatureF=95,
|
|
114
|
+
summary="Hot"
|
|
115
|
+
)
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
test endpoint weatherForecast client {
|
|
119
|
+
when "forecasts" {
|
|
120
|
+
it "returns_json" {
|
|
121
|
+
response = client.request(method="GET", path="/weatherforecast")
|
|
122
|
+
assert(condition=response.status == 200)
|
|
123
|
+
}
|
|
124
|
+
it "rejects_other_methods" {
|
|
125
|
+
response = client.request(method="POST", path="/weatherforecast")
|
|
126
|
+
assert(condition=response.status == 405)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
:::
|
|
133
|
+
|
|
134
|
+
::::
|
|
135
|
+
|
|
136
|
+
:::: example-spec
|
|
137
|
+
|
|
138
|
+
## Compiled specification {#specification}
|
|
139
|
+
|
|
140
|
+
Plain handler results default to HTTP 200 unless another status is declared. HttpResponse values choose their own status. Unhandled request failures return HTTP 500 and cancel the request tasks.
|
|
141
|
+
|
|
142
|
+
### `WeatherForecast` · immutable record · [source](forecasts.md#code) {#symbol-WeatherForecast}
|
|
143
|
+
|
|
144
|
+
The JSON shape returned by the forecast endpoint. Temperatures use whole degrees. It takes `date` as a string, kept read-only, `temperatureC` and `temperatureF` as integers, kept read-only, and `summary` as a string, kept read-only.
|
|
145
|
+
|
|
146
|
+
### `weatherForecast` · [source](forecasts.md#code) {#symbol-weatherForecast}
|
|
147
|
+
|
|
148
|
+
`weatherForecast` handles `GET /weatherforecast`. Return five simulated forecasts. Fixed data keeps the example and its tests reproducible. It returns a list of 5 [`WeatherForecast`](forecasts.md#symbol-WeatherForecast) records, with `(date, temperatureC, temperatureF, summary)` values of `("2026-01-01", 0, 32, "Freezing")`, `("2026-01-02", 10, 50, "Cool")`, `("2026-01-03", 20, 68, "Mild")`, `("2026-01-04", 30, 86, "Warm")`, and `("2026-01-05", 35, 95, "Hot")`, in that order.
|
|
149
|
+
|
|
150
|
+
### `test weatherForecast client` · [source](forecasts.md#code) {#symbol-test-20-weatherForecast-20-client}
|
|
151
|
+
|
|
152
|
+
Tests [`weatherForecast`](forecasts.md#symbol-weatherForecast). Each case gets fresh setup and dependencies.
|
|
153
|
+
|
|
154
|
+
#### `forecasts`
|
|
155
|
+
|
|
156
|
+
##### `returns_json` · [source](forecasts.md#code)
|
|
157
|
+
|
|
158
|
+
It sets `response` to `client.request` with `method` `"GET"` and `path` `"/weatherforecast"`. The test requires `response.status` equals `200`.
|
|
159
|
+
|
|
160
|
+
##### `rejects_other_methods` · [source](forecasts.md#code)
|
|
161
|
+
|
|
162
|
+
It sets `response` to `client.request` with `method` `"POST"` and `path` `"/weatherforecast"`. The test requires `response.status` equals `405`.
|
|
163
|
+
|
|
164
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
165
|
+
|
|
166
|
+
::::
|
|
167
|
+
|
|
168
|
+
:::::
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Weather API"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/weather-api"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Weather API
|
|
12
|
+
|
|
13
|
+
Serve five simulated forecasts as typed JSON. The record, endpoint, and tests share a file; main.aug starts the listener and main.yaml enables OpenAPI.
|
|
14
|
+
|
|
15
|
+
Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
|
|
16
|
+
|
|
17
|
+
## Follow the program
|
|
18
|
+
|
|
19
|
+
Read [`main.aug`](main.md). Import the forecast endpoint and serve it on port 8787.
|
|
20
|
+
|
|
21
|
+
Read [`forecasts.aug`](forecasts.md). Read the response record, five fixed forecasts, and cases that exercise the endpoint pipeline.
|
|
22
|
+
|
|
23
|
+
## Project files
|
|
24
|
+
|
|
25
|
+
- [`main.aug`](main.md)
|
|
26
|
+
- [`forecasts.aug`](forecasts.md)
|
|
27
|
+
|
|
28
|
+
- [`main.yaml`](main-yaml.md)
|
|
29
|
+
|
|
30
|
+
## Try this project
|
|
31
|
+
|
|
32
|
+
[Download this project](/downloads/weather-api.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
cd weather-api
|
|
36
|
+
aug check .
|
|
37
|
+
aug spec .
|
|
38
|
+
aug test .
|
|
39
|
+
aug run .
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.yaml · Weather API"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/weather-api/main.yaml"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# `main.yaml`
|
|
12
|
+
|
|
13
|
+
[Weather API](index.md) · Project configuration
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
block_style: indent
|
|
17
|
+
openapi:
|
|
18
|
+
enabled: true
|
|
19
|
+
title: "Weather forecast API"
|
|
20
|
+
version: "0.1.0"
|
|
21
|
+
```
|