@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
|
@@ -1,177 +1,70 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `counters.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`State`](counters.aug.md#symbol-State) is an interface.
|
|
10
|
-
- [`_Initial`](counters.aug.md#symbol-_Initial) is a class implementing `State`.
|
|
11
|
-
- [`_Updated`](counters.aug.md#symbol-_Updated) is a class implementing `State`.
|
|
12
|
-
- [`Counter`](counters.aug.md#symbol-Counter) is an interface.
|
|
13
|
-
- [`_Counter`](counters.aug.md#symbol-_Counter) is a class implementing `Counter`.
|
|
14
|
-
- [`Counters`](counters.aug.md#symbol-Counters) declares 2 providers.
|
|
3
|
+
# `counters.aug`
|
|
15
4
|
|
|
16
5
|
<a id="symbol-State"></a>
|
|
17
|
-
|
|
18
|
-
## `State`
|
|
19
|
-
|
|
20
|
-
[source](counters.aug#L2)
|
|
21
|
-
|
|
22
|
-
Interface.
|
|
23
|
-
|
|
24
|
-
**Author documentation**
|
|
6
|
+
## `State` · interface · [source](counters.aug#L3)
|
|
25
7
|
|
|
26
8
|
Reading state has no mutation effect.
|
|
27
9
|
|
|
28
10
|
<a id="symbol-State.read"></a>
|
|
11
|
+
### `State.read` · [source](counters.aug#L4)
|
|
29
12
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
[source](counters.aug#L3)
|
|
33
|
-
|
|
34
|
-
Returns: `int`.
|
|
35
|
-
|
|
36
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
13
|
+
It returns `int`.
|
|
37
14
|
|
|
38
15
|
<a id="symbol-Counter"></a>
|
|
39
|
-
|
|
40
|
-
## `Counter`
|
|
41
|
-
|
|
42
|
-
[source](counters.aug#L11)
|
|
43
|
-
|
|
44
|
-
Interface.
|
|
45
|
-
|
|
46
|
-
**Author documentation**
|
|
16
|
+
## `Counter` · interface · [source](counters.aug#L12)
|
|
47
17
|
|
|
48
18
|
A mutable counter with an explicit transition contract.
|
|
49
19
|
|
|
50
20
|
<a id="symbol-Counter.increment"></a>
|
|
21
|
+
### `Counter.increment` · [source](counters.aug#L13)
|
|
51
22
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
[source](counters.aug#L12)
|
|
55
|
-
|
|
56
|
-
Returns: no value.
|
|
57
|
-
|
|
58
|
-
May change: `self`.
|
|
59
|
-
|
|
60
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
23
|
+
It may change `self`.
|
|
61
24
|
|
|
62
25
|
<a id="symbol-Counter.value"></a>
|
|
26
|
+
### `Counter.value` · [source](counters.aug#L14)
|
|
63
27
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
[source](counters.aug#L13)
|
|
67
|
-
|
|
68
|
-
Returns: `int`.
|
|
69
|
-
|
|
70
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
28
|
+
It returns `int`.
|
|
71
29
|
|
|
72
30
|
<a id="symbol-Counters"></a>
|
|
73
|
-
|
|
74
|
-
## `Counters`
|
|
75
|
-
|
|
76
|
-
[source](counters.aug#L20)
|
|
77
|
-
|
|
78
|
-
**Author documentation**
|
|
31
|
+
## `Counters` · [source](counters.aug#L21)
|
|
79
32
|
|
|
80
33
|
The complete counter composition; its mutable state belongs to each scope.
|
|
81
34
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- Provide [`_Initial`](counters.aug.md#symbol-_Initial) when `State` is requested. Reuse one instance.
|
|
85
|
-
- Provide [`_Counter`](counters.aug.md#symbol-_Counter) when `Counter` is requested. Reuse one instance per explicit scope. Permit explicit shared mutation. Required dependencies: `State`.
|
|
35
|
+
These providers are registered before startup. `State` is provided by [`_Initial`](counters.aug.md#symbol-_Initial). The same instance is shared. `Counter` is provided by [`_Counter`](counters.aug.md#symbol-_Counter). Each scope shares one instance. Shared mutation is allowed. It requires bindings for `State`.
|
|
86
36
|
|
|
87
37
|
<a id="symbol-_Initial"></a>
|
|
38
|
+
## `_Initial` · class · [source](counters.aug#L5)
|
|
88
39
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
[source](counters.aug#L4)
|
|
92
|
-
|
|
93
|
-
Behavioral class, private to this file.
|
|
94
|
-
|
|
95
|
-
Satisfies [`State`](counters.aug.md#symbol-State).
|
|
40
|
+
It implements [`State`](counters.aug.md#symbol-State). It is private to this file.
|
|
96
41
|
|
|
97
42
|
<a id="symbol-_Initial.read"></a>
|
|
43
|
+
### `_Initial.read` · [source](counters.aug#L6)
|
|
98
44
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
[source](counters.aug#L5)
|
|
102
|
-
|
|
103
|
-
Returns: `int`.
|
|
104
|
-
|
|
105
|
-
**What it does**
|
|
106
|
-
|
|
107
|
-
- Return `0`.
|
|
45
|
+
It returns `0`.
|
|
108
46
|
|
|
109
47
|
<a id="symbol-_Updated"></a>
|
|
48
|
+
## `_Updated` · class · [source](counters.aug#L8)
|
|
110
49
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
[source](counters.aug#L7)
|
|
114
|
-
|
|
115
|
-
Behavioral class, private to this file.
|
|
116
|
-
|
|
117
|
-
Satisfies [`State`](counters.aug.md#symbol-State).
|
|
118
|
-
|
|
119
|
-
**Inputs**
|
|
120
|
-
|
|
121
|
-
- `count` (`int`) — required labeled input — stored as `count` and read-only after initialization.
|
|
50
|
+
It implements [`State`](counters.aug.md#symbol-State). It is private to this file. It takes `count` as an integer, kept read-only.
|
|
122
51
|
|
|
123
52
|
<a id="symbol-_Updated.read"></a>
|
|
53
|
+
### `_Updated.read` · [source](counters.aug#L9)
|
|
124
54
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
[source](counters.aug#L8)
|
|
128
|
-
|
|
129
|
-
Returns: `int`.
|
|
130
|
-
|
|
131
|
-
**What it does**
|
|
132
|
-
|
|
133
|
-
- Return `count`.
|
|
55
|
+
It returns `count`.
|
|
134
56
|
|
|
135
57
|
<a id="symbol-_Counter"></a>
|
|
58
|
+
## `_Counter` · class · [source](counters.aug#L15)
|
|
136
59
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
[source](counters.aug#L14)
|
|
140
|
-
|
|
141
|
-
Behavioral class, private to this file.
|
|
142
|
-
|
|
143
|
-
Satisfies [`Counter`](counters.aug.md#symbol-Counter).
|
|
144
|
-
|
|
145
|
-
**Inputs**
|
|
146
|
-
|
|
147
|
-
- `initial` ([`State`](counters.aug.md#symbol-State)) — injected; callers omit it — stored as `_state` (private) and mutable.
|
|
60
|
+
It implements [`Counter`](counters.aug.md#symbol-Counter). It is private to this file. The `_state` dependency is injected as [`State`](counters.aug.md#symbol-State) and stored mutably and privately.
|
|
148
61
|
|
|
149
62
|
<a id="symbol-_Counter.increment"></a>
|
|
63
|
+
### `_Counter.increment` · [source](counters.aug#L16)
|
|
150
64
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
[source](counters.aug#L15)
|
|
154
|
-
|
|
155
|
-
Returns: no value.
|
|
156
|
-
|
|
157
|
-
May change: `self`.
|
|
158
|
-
|
|
159
|
-
**What it does**
|
|
160
|
-
|
|
161
|
-
- Set `_state` to call [`_Updated`](counters.aug.md#symbol-_Updated) with `count` = (call [`State.read`](counters.aug.md#symbol-State.read) on `_state` plus `1`).
|
|
65
|
+
It may change `self`. It sets `_state` to a [`_Updated`](counters.aug.md#symbol-_Updated) with `count` from [`_state.read`](counters.aug.md#symbol-State.read) plus `1`.
|
|
162
66
|
|
|
163
67
|
<a id="symbol-_Counter.value"></a>
|
|
68
|
+
### `_Counter.value` · [source](counters.aug#L18)
|
|
164
69
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
[source](counters.aug#L17)
|
|
168
|
-
|
|
169
|
-
Returns: `int`.
|
|
170
|
-
|
|
171
|
-
**What it does**
|
|
172
|
-
|
|
173
|
-
- Return call [`State.read`](counters.aug.md#symbol-State.read) on `_state`.
|
|
174
|
-
|
|
175
|
-
## Shared language rules
|
|
176
|
-
|
|
177
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
70
|
+
It returns [`_state.read`](counters.aug.md#symbol-State.read).
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
import Console from august.io
|
|
2
3
|
import Fruit from models
|
|
3
4
|
/** The application's explicit startup operation. */
|
|
@@ -6,7 +7,7 @@ interface Application:
|
|
|
6
7
|
start() uses Console.write
|
|
7
8
|
/** Construction stores dependencies; start performs the visible external work. */
|
|
8
9
|
ApplicationImpl(resolve Console console) implements Application:
|
|
9
|
-
start()
|
|
10
|
+
start() :
|
|
10
11
|
fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
|
|
11
12
|
for item in fruit:
|
|
12
13
|
console.write(value=item.name)
|
|
@@ -1,97 +1,27 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `app.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`Application`](app.aug.md#symbol-Application) is an interface.
|
|
10
|
-
- [`ApplicationImpl`](app.aug.md#symbol-ApplicationImpl) is a class implementing `Application`.
|
|
3
|
+
# `app.aug`
|
|
11
4
|
|
|
12
5
|
<a id="symbol-Application"></a>
|
|
13
|
-
|
|
14
|
-
## `Application`
|
|
15
|
-
|
|
16
|
-
[source](app.aug#L4)
|
|
17
|
-
|
|
18
|
-
Interface.
|
|
19
|
-
|
|
20
|
-
**Author documentation**
|
|
6
|
+
## `Application` · interface · [source](app.aug#L5)
|
|
21
7
|
|
|
22
8
|
The application's explicit startup operation.
|
|
23
9
|
|
|
24
10
|
<a id="symbol-Application.start"></a>
|
|
11
|
+
### `Application.start` · [source](app.aug#L7)
|
|
25
12
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
[source](app.aug#L6)
|
|
29
|
-
|
|
30
|
-
Returns: no value.
|
|
31
|
-
|
|
32
|
-
Capabilities: [`Console.write`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
33
|
-
|
|
34
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
35
|
-
|
|
36
|
-
**Author documentation**
|
|
37
|
-
|
|
38
|
-
Writes the fruit names through the selected console.
|
|
13
|
+
Writes the fruit names through the selected console. It can call [`Console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
|
|
39
14
|
|
|
40
15
|
<a id="symbol-ApplicationImpl"></a>
|
|
16
|
+
## `ApplicationImpl` · class · [source](app.aug#L9)
|
|
41
17
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
[source](app.aug#L8)
|
|
45
|
-
|
|
46
|
-
Behavioral class.
|
|
47
|
-
|
|
48
|
-
Satisfies [`Application`](app.aug.md#symbol-Application).
|
|
49
|
-
|
|
50
|
-
**Author documentation**
|
|
51
|
-
|
|
52
|
-
Construction stores dependencies; start performs the visible external work.
|
|
53
|
-
|
|
54
|
-
**Inputs**
|
|
55
|
-
|
|
56
|
-
- `console` ([`Console`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it — stored as `console` and read-only after initialization.
|
|
18
|
+
Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.aug.md#symbol-Application). The `console` dependency is injected as [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) and stored read-only.
|
|
57
19
|
|
|
58
20
|
<a id="symbol-ApplicationImpl.start"></a>
|
|
21
|
+
### `ApplicationImpl.start` · [source](app.aug#L10)
|
|
59
22
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
[source](app.aug#L9)
|
|
63
|
-
|
|
64
|
-
Returns: no value.
|
|
65
|
-
|
|
66
|
-
Capabilities: [`console.write`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
67
|
-
|
|
68
|
-
**What it does**
|
|
69
|
-
|
|
70
|
-
- Set `fruit` to a list containing call [`Fruit`](models.aug.md#symbol-Fruit) with `code` = `1`; `name` = `"apple"`, call [`Fruit`](models.aug.md#symbol-Fruit) with `name` = `"pear"`; `code` = `2`.
|
|
71
|
-
- For each `item` in a snapshot of `fruit`, in iteration order:
|
|
72
|
-
- Call [`Console.write`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write) on `console` with `value` = `name` of `item`.
|
|
73
|
-
|
|
74
|
-
**Author documentation**
|
|
75
|
-
|
|
76
|
-
Writes the fruit names through the selected console.
|
|
77
|
-
|
|
78
|
-
## Dependencies used by this file
|
|
79
|
-
|
|
80
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
81
|
-
|
|
82
|
-
### [`Console`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
|
|
83
|
-
|
|
84
|
-
Capability interface from `august.io`.
|
|
85
|
-
|
|
86
|
-
- [`Console.write`](../.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
87
|
-
|
|
88
|
-
### [`Fruit`](models.aug.md#symbol-Fruit)
|
|
89
|
-
|
|
90
|
-
Record from `models`.
|
|
91
|
-
|
|
92
|
-
- Construct with `code`: `int`, `name`: `string` → [`Fruit`](models.aug.md#symbol-Fruit).
|
|
93
|
-
- Read `name` (`string`).
|
|
23
|
+
Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.aug.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.aug.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
|
|
94
24
|
|
|
95
|
-
##
|
|
25
|
+
## Dependencies
|
|
96
26
|
|
|
97
|
-
|
|
27
|
+
It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Fruit`](models.aug.md#symbol-Fruit) (`name`) from `models`.
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `export.aug`
|
|
3
|
+
# `export.aug`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Exports
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Export the declaration `Application` from [`app.aug`](app.aug.md#symbol-Application). Export the declaration `ApplicationImpl` from [`app.aug`](app.aug.md#symbol-ApplicationImpl). Export the declaration `Fruit` from [`models.aug`](models.aug.md#symbol-Fruit). Export the declaration `double` from [`numbers.aug`](numbers.aug.md#symbol-double).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- Export `ApplicationImpl` from this folder.
|
|
11
|
-
- Export `Fruit` from this folder.
|
|
12
|
-
- Export `double` from this folder.
|
|
13
|
-
- Export `RangeError` from this folder.
|
|
14
|
-
|
|
15
|
-
## Folder exports
|
|
16
|
-
|
|
17
|
-
- Export the declaration `Application` from [`app.aug`](app.aug.md#symbol-Application).
|
|
18
|
-
- Export the declaration `ApplicationImpl` from [`app.aug`](app.aug.md#symbol-ApplicationImpl).
|
|
19
|
-
- Export the declaration `Fruit` from [`models.aug`](models.aug.md#symbol-Fruit).
|
|
20
|
-
- Export the declaration `double` from [`numbers.aug`](numbers.aug.md#symbol-double).
|
|
21
|
-
- Export the declaration `RangeError` from [`numbers.aug`](numbers.aug.md#symbol-RangeError).
|
|
22
|
-
|
|
23
|
-
## Shared language rules
|
|
24
|
-
|
|
25
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
9
|
+
Export the declaration `RangeError` from [`numbers.aug`](numbers.aug.md#symbol-RangeError).
|
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `models.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`Fruit`](models.aug.md#symbol-Fruit) is an immutable record.
|
|
3
|
+
# `models.aug`
|
|
10
4
|
|
|
11
5
|
<a id="symbol-Fruit"></a>
|
|
6
|
+
## `Fruit` · immutable record · [source](models.aug#L3)
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[source](models.aug#L2)
|
|
16
|
-
|
|
17
|
-
Immutable record.
|
|
18
|
-
|
|
19
|
-
**Author documentation**
|
|
20
|
-
|
|
21
|
-
Immutable fruit data, with public construction labels and structural equality.
|
|
22
|
-
|
|
23
|
-
**Inputs**
|
|
24
|
-
|
|
25
|
-
- `code` (`int`) — required labeled input — stored as `code` and read-only after initialization.
|
|
26
|
-
- `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
|
|
27
|
-
|
|
28
|
-
## Shared language rules
|
|
29
|
-
|
|
30
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
8
|
+
Immutable fruit data, with public construction labels and structural equality. It takes `code` as an integer, kept read-only and `name` as a string, kept read-only.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
// aug-spec: "numbers.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
/** Raised when an input is outside the operation's domain. */
|
|
2
3
|
RangeError(int value) implements Error:
|
|
3
4
|
pass
|
|
4
5
|
/** A pure validation layer, shared by any compatible callable. */
|
|
5
6
|
interceptor Positive<T>():
|
|
6
|
-
around(int amount) returns T
|
|
7
|
+
around(int amount) returns T :
|
|
7
8
|
if amount < 0:
|
|
8
9
|
throw RangeError(value=amount)
|
|
9
10
|
return next()
|
|
@@ -14,7 +15,7 @@ interceptor Positive<T>():
|
|
|
14
15
|
* @throws RangeError A validation layer rejected a negative input.
|
|
15
16
|
*/
|
|
16
17
|
[Positive]
|
|
17
|
-
double(int amount)
|
|
18
|
+
double(int amount) :
|
|
18
19
|
return amount * 2
|
|
19
20
|
test double:
|
|
20
21
|
when "positive":
|
|
@@ -1,141 +1,44 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `numbers.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`RangeError`](numbers.aug.md#symbol-RangeError) is a class implementing `Error`.
|
|
10
|
-
- [`Positive`](numbers.aug.md#symbol-Positive) is an interceptor.
|
|
11
|
-
- [`double`](numbers.aug.md#symbol-double) is a function returning `int`.
|
|
12
|
-
- [`test double`](numbers.aug.md#symbol-test%20double) is a same-file test suite.
|
|
3
|
+
# `numbers.aug`
|
|
13
4
|
|
|
14
5
|
<a id="symbol-RangeError"></a>
|
|
6
|
+
## `RangeError` · class · [source](numbers.aug#L3)
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[source](numbers.aug#L2)
|
|
19
|
-
|
|
20
|
-
Behavioral class.
|
|
21
|
-
|
|
22
|
-
Satisfies `Error`.
|
|
23
|
-
|
|
24
|
-
**Author documentation**
|
|
25
|
-
|
|
26
|
-
Raised when an input is outside the operation's domain.
|
|
27
|
-
|
|
28
|
-
**Inputs**
|
|
29
|
-
|
|
30
|
-
- `value` (`int`) — required labeled input — stored as `value` and read-only after initialization.
|
|
8
|
+
Raised when an input is outside the operation's domain. It implements `Error`. It takes `value` as an integer, kept read-only.
|
|
31
9
|
|
|
32
10
|
<a id="symbol-Positive"></a>
|
|
11
|
+
## `Positive` · interceptor · [source](numbers.aug#L6)
|
|
33
12
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[source](numbers.aug#L5)
|
|
37
|
-
|
|
38
|
-
Function or constructor middleware.
|
|
39
|
-
|
|
40
|
-
Type parameters: `T`.
|
|
41
|
-
|
|
42
|
-
**Author documentation**
|
|
43
|
-
|
|
44
|
-
A pure validation layer, shared by any compatible callable.
|
|
45
|
-
|
|
46
|
-
Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
|
|
13
|
+
A pure validation layer, shared by any compatible callable. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
|
|
47
14
|
|
|
48
15
|
<a id="symbol-Positive.around"></a>
|
|
16
|
+
### `Positive.around` · [source](numbers.aug#L7)
|
|
49
17
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
[source](numbers.aug#L6)
|
|
53
|
-
|
|
54
|
-
**Inputs**
|
|
55
|
-
|
|
56
|
-
- `amount` (`int`) — required labeled input.
|
|
57
|
-
|
|
58
|
-
Returns: `T`.
|
|
59
|
-
|
|
60
|
-
Can fail with `RangeError`. Callers must catch or propagate these errors.
|
|
61
|
-
|
|
62
|
-
**What it does**
|
|
63
|
-
|
|
64
|
-
- If `amount` is less than `0`:
|
|
65
|
-
- Fail with call [`RangeError`](numbers.aug.md#symbol-RangeError) with `value` = `amount`. Transfer control to a matching catch or propagate the failure.
|
|
66
|
-
- Return call `next`.
|
|
18
|
+
It takes `amount` as an integer. Failures can raise [`RangeError`](numbers.aug.md#symbol-RangeError). If `amount` is negative, it raises a [`RangeError`](numbers.aug.md#symbol-RangeError) with `value` from `amount`. It returns `next`.
|
|
67
19
|
|
|
68
20
|
<a id="symbol-double"></a>
|
|
21
|
+
## `double` · [source](numbers.aug#L18)
|
|
69
22
|
|
|
70
|
-
|
|
23
|
+
Double a nonnegative amount. It takes `amount` as an integer (Integer to double). It returns `int` — Twice the amount, with defined integer wrapping. Failures can raise [`RangeError`](numbers.aug.md#symbol-RangeError) (A validation layer rejected a negative input).
|
|
71
24
|
|
|
72
|
-
[
|
|
73
|
-
|
|
74
|
-
**Inputs**
|
|
75
|
-
|
|
76
|
-
- `amount` (`int`) — required labeled input.
|
|
77
|
-
|
|
78
|
-
Returns: `int`.
|
|
79
|
-
|
|
80
|
-
Can fail with `RangeError`. Callers must catch or propagate these errors.
|
|
81
|
-
|
|
82
|
-
**Interceptors, in execution order**
|
|
83
|
-
|
|
84
|
-
1. Call [`Positive.around`](numbers.aug.md#symbol-Positive.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
|
|
85
|
-
|
|
86
|
-
The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
|
|
87
|
-
|
|
88
|
-
**What it does**
|
|
89
|
-
|
|
90
|
-
- Return `amount` times `2`.
|
|
91
|
-
|
|
92
|
-
**Author documentation**
|
|
93
|
-
|
|
94
|
-
Double a nonnegative amount.
|
|
95
|
-
|
|
96
|
-
**Returns** Twice the amount, with defined integer wrapping.
|
|
97
|
-
|
|
98
|
-
**Parameters**
|
|
99
|
-
- `amount`: Integer to double.
|
|
100
|
-
|
|
101
|
-
**Throws**
|
|
102
|
-
- `RangeError`: A validation layer rejected a negative input.
|
|
25
|
+
Layers run in the declared order. Call [`Positive.around`](numbers.aug.md#symbol-Positive.around). It returns `amount` times `2`.
|
|
103
26
|
|
|
104
27
|
<a id="symbol-test double"></a>
|
|
28
|
+
## `test double` · [source](numbers.aug#L20)
|
|
105
29
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
[source](numbers.aug#L19)
|
|
109
|
-
|
|
110
|
-
Same-file function tests for [`double`](numbers.aug.md#symbol-double). Each case gets isolated setup and dependency bindings.
|
|
111
|
-
|
|
112
|
-
### Group `positive`
|
|
113
|
-
|
|
114
|
-
#### `doubles`
|
|
115
|
-
|
|
116
|
-
[source](numbers.aug#L21)
|
|
117
|
-
|
|
118
|
-
Run once for each row of a tuple containing `0`, `0`; a tuple containing `3`, `6`; a tuple containing `7`, `14`. Bind row positions to `input`, `expected`.
|
|
119
|
-
|
|
120
|
-
- Call `assert` with (call [`double`](numbers.aug.md#symbol-double) with `amount` = `input` equals `expected`).
|
|
121
|
-
|
|
122
|
-
#### `rejects_negative`
|
|
30
|
+
Tests [`double`](numbers.aug.md#symbol-double). Each case gets fresh setup and dependencies.
|
|
123
31
|
|
|
124
|
-
|
|
32
|
+
### `positive`
|
|
125
33
|
|
|
126
|
-
|
|
127
|
-
- Try these operations:
|
|
128
|
-
- Call [`double`](numbers.aug.md#symbol-double) with `amount` = `-1`.
|
|
129
|
-
- If they fail with [`RangeError`](numbers.aug.md#symbol-RangeError), name the failure `error` and recover:
|
|
130
|
-
- Set `rejected` to `value` of `error` equals `-1`.
|
|
131
|
-
- Call `assert` with `rejected` = `rejected`.
|
|
34
|
+
#### `doubles` · [source](numbers.aug#L22)
|
|
132
35
|
|
|
133
|
-
|
|
36
|
+
Run once for each row of a tuple containing `0`, `0`; a tuple containing `3`, `6`; a tuple containing `7`, `14`. Bind row positions to `input`, `expected`. The test requires [`double`](numbers.aug.md#symbol-double) with `amount` from `input` equals `expected`.
|
|
134
37
|
|
|
135
|
-
|
|
38
|
+
#### `rejects_negative` · [source](numbers.aug#L24)
|
|
136
39
|
|
|
137
|
-
|
|
40
|
+
It sets `rejected` to `false`.
|
|
138
41
|
|
|
139
|
-
|
|
42
|
+
It tries to call [`double`](numbers.aug.md#symbol-double) with `amount` `-1`. If this work raises [`RangeError`](numbers.aug.md#symbol-RangeError) as `error`, it sets `rejected` to `error.value` equals `-1`. The test requires `rejected` is true.
|
|
140
43
|
|
|
141
|
-
|
|
44
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
import Console and SystemConsole from august.io
|
|
2
3
|
import Application and ApplicationImpl and Fruit and double and RangeError from domain
|
|
3
4
|
import Counter and Counters from counters
|