@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
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "august/0.20.1/io/contracts.aug · Hello world with dependencies"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/hello/.aug-spec/august/0.20.1/io/contracts.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
search: false
|
|
10
|
+
pageClass: aug-example-page
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `august/0.20.1/io/contracts.aug`
|
|
14
|
+
|
|
15
|
+
[Hello world with dependencies](../../../../index.md) · Dependency source and specification
|
|
16
|
+
|
|
17
|
+
This is the exact dependency version used by this example.
|
|
18
|
+
|
|
19
|
+
::::: example-compare
|
|
20
|
+
|
|
21
|
+
:::: example-code
|
|
22
|
+
|
|
23
|
+
## Code {#code}
|
|
24
|
+
|
|
25
|
+
::: code-group
|
|
26
|
+
|
|
27
|
+
```aug [Indentation]
|
|
28
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
29
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
30
|
+
capability Console:
|
|
31
|
+
/** Write one line of text. @param value Text to display. */
|
|
32
|
+
write<T>(T value) uses Console.write
|
|
33
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
34
|
+
SystemConsole() implements Console:
|
|
35
|
+
write<T>(T value):
|
|
36
|
+
print(value=value)
|
|
37
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
38
|
+
capability FileReader:
|
|
39
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
40
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
41
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
42
|
+
capability FileWriter:
|
|
43
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
44
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
45
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
46
|
+
LocalFiles() implements FileReader, FileWriter:
|
|
47
|
+
read(string path):
|
|
48
|
+
return read_file(path=path)
|
|
49
|
+
write(string path, string content):
|
|
50
|
+
write_file(path=path, content=content)
|
|
51
|
+
/** Read command-line input through an explicit dependency. */
|
|
52
|
+
capability Arguments:
|
|
53
|
+
read() returns List<string> uses Arguments.read
|
|
54
|
+
/** Native command-line arguments. */
|
|
55
|
+
ProcessArguments() implements Arguments:
|
|
56
|
+
read():
|
|
57
|
+
return arguments()
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```aug [Braces]
|
|
61
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
62
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
63
|
+
capability Console {
|
|
64
|
+
/** Write one line of text. @param value Text to display. */
|
|
65
|
+
write<T>(T value) uses Console.write
|
|
66
|
+
}
|
|
67
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
68
|
+
SystemConsole() implements Console {
|
|
69
|
+
write<T>(T value) {
|
|
70
|
+
print(value=value)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
74
|
+
capability FileReader {
|
|
75
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
76
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
77
|
+
}
|
|
78
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
79
|
+
capability FileWriter {
|
|
80
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
81
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
82
|
+
}
|
|
83
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
84
|
+
LocalFiles() implements FileReader, FileWriter {
|
|
85
|
+
read(string path) {
|
|
86
|
+
return read_file(path=path)
|
|
87
|
+
}
|
|
88
|
+
write(string path, string content) {
|
|
89
|
+
write_file(path=path, content=content)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Read command-line input through an explicit dependency. */
|
|
93
|
+
capability Arguments {
|
|
94
|
+
read() returns List<string> uses Arguments.read
|
|
95
|
+
}
|
|
96
|
+
/** Native command-line arguments. */
|
|
97
|
+
ProcessArguments() implements Arguments {
|
|
98
|
+
read() {
|
|
99
|
+
return arguments()
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
:::
|
|
105
|
+
|
|
106
|
+
::::
|
|
107
|
+
|
|
108
|
+
:::: example-spec
|
|
109
|
+
|
|
110
|
+
## Compiled specification {#specification}
|
|
111
|
+
|
|
112
|
+
### `Console` · capability interface · [source](contracts.md#code) {#symbol-Console}
|
|
113
|
+
|
|
114
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
115
|
+
|
|
116
|
+
#### `Console.write` · [source](contracts.md#code) {#symbol-Console.write}
|
|
117
|
+
|
|
118
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.md#symbol-Console.write).
|
|
119
|
+
|
|
120
|
+
### `SystemConsole` · class · [source](contracts.md#code) {#symbol-SystemConsole}
|
|
121
|
+
|
|
122
|
+
The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.md#symbol-Console).
|
|
123
|
+
|
|
124
|
+
#### `SystemConsole.write` · [source](contracts.md#code) {#symbol-SystemConsole.write}
|
|
125
|
+
|
|
126
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
|
|
127
|
+
|
|
128
|
+
### `FileReader` · capability interface · [source](contracts.md#code) {#symbol-FileReader}
|
|
129
|
+
|
|
130
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
131
|
+
|
|
132
|
+
#### `FileReader.read` · [source](contracts.md#code) {#symbol-FileReader.read}
|
|
133
|
+
|
|
134
|
+
Read text. It takes `path` as a string (File path).
|
|
135
|
+
|
|
136
|
+
It returns `string`. It can call [`FileReader.read`](contracts.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
|
|
137
|
+
|
|
138
|
+
### `FileWriter` · capability interface · [source](contracts.md#code) {#symbol-FileWriter}
|
|
139
|
+
|
|
140
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
141
|
+
|
|
142
|
+
#### `FileWriter.write` · [source](contracts.md#code) {#symbol-FileWriter.write}
|
|
143
|
+
|
|
144
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
|
|
145
|
+
|
|
146
|
+
### `LocalFiles` · class · [source](contracts.md#code) {#symbol-LocalFiles}
|
|
147
|
+
|
|
148
|
+
Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.md#symbol-FileReader) and [`FileWriter`](contracts.md#symbol-FileWriter).
|
|
149
|
+
|
|
150
|
+
#### `LocalFiles.read` · [source](contracts.md#code) {#symbol-LocalFiles.read}
|
|
151
|
+
|
|
152
|
+
Read text. It takes `path` as a string (File path). Failures can raise `FileError` (The file could not be read). It returns `read_file` with `path`.
|
|
153
|
+
|
|
154
|
+
#### `LocalFiles.write` · [source](contracts.md#code) {#symbol-LocalFiles.write}
|
|
155
|
+
|
|
156
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). Failures can raise `FileError` (Writing failed). It calls `write_file` with `path` and `content`.
|
|
157
|
+
|
|
158
|
+
### `Arguments` · capability interface · [source](contracts.md#code) {#symbol-Arguments}
|
|
159
|
+
|
|
160
|
+
Read command-line input through an explicit dependency.
|
|
161
|
+
|
|
162
|
+
#### `Arguments.read` · [source](contracts.md#code) {#symbol-Arguments.read}
|
|
163
|
+
|
|
164
|
+
It returns `List<string>`. It can call [`Arguments.read`](contracts.md#symbol-Arguments.read).
|
|
165
|
+
|
|
166
|
+
### `ProcessArguments` · class · [source](contracts.md#code) {#symbol-ProcessArguments}
|
|
167
|
+
|
|
168
|
+
Native command-line arguments. It implements [`Arguments`](contracts.md#symbol-Arguments).
|
|
169
|
+
|
|
170
|
+
#### `ProcessArguments.read` · [source](contracts.md#code) {#symbol-ProcessArguments.read}
|
|
171
|
+
|
|
172
|
+
It returns `arguments`.
|
|
173
|
+
|
|
174
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
175
|
+
|
|
176
|
+
::::
|
|
177
|
+
|
|
178
|
+
:::::
|
|
@@ -10,9 +10,19 @@ outline: [2, 3]
|
|
|
10
10
|
|
|
11
11
|
# Hello world with dependencies
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
The application prints a greeting through an injected logger. Its entry point selects the providers, and each folder exposes a small public surface.
|
|
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
|
+
|
|
17
|
+
## Follow the program
|
|
18
|
+
|
|
19
|
+
Read [`main.aug`](main.md). Startup binds the console, logger, and application, then resolves the greeter and calls it.
|
|
20
|
+
|
|
21
|
+
Read [`app/greeter.aug`](app/greeter.md). The greeter receives its logger in the header and delegates the greeting to it. The interface states the console effect.
|
|
22
|
+
|
|
23
|
+
Read [`logging/export.aug`](logging/export.md). This is the logging folder's public surface. Callers can import the exported contract and provider.
|
|
24
|
+
|
|
25
|
+
Read [`logging/logger.aug`](logging/logger.md). The contract describes the log operation and its output capability; the console provider implements it.
|
|
16
26
|
|
|
17
27
|
## Project files
|
|
18
28
|
|
|
@@ -26,12 +36,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
|
|
|
26
36
|
|
|
27
37
|
## Try this project
|
|
28
38
|
|
|
29
|
-
|
|
39
|
+
[Download this project](/downloads/hello.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:
|
|
30
40
|
|
|
31
41
|
```sh
|
|
32
|
-
|
|
33
|
-
aug
|
|
34
|
-
aug
|
|
42
|
+
cd hello
|
|
43
|
+
aug check .
|
|
44
|
+
aug spec .
|
|
45
|
+
aug run .
|
|
35
46
|
```
|
|
36
47
|
|
|
37
48
|
[Browse all examples](../index.md)
|
|
@@ -33,18 +33,20 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
import Console from august.io
|
|
37
38
|
import Logger from logger
|
|
38
39
|
ConsoleLogger() implements Logger:
|
|
39
|
-
log(resolve Console console, string message)
|
|
40
|
+
log(resolve Console console, string message):
|
|
40
41
|
console.write(value=message)
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
```aug [Braces]
|
|
45
|
+
// aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
44
46
|
import Console from august.io
|
|
45
47
|
import Logger from logger
|
|
46
48
|
ConsoleLogger() implements Logger {
|
|
47
|
-
log(resolve Console console, string message)
|
|
49
|
+
log(resolve Console console, string message) {
|
|
48
50
|
console.write(value=message)
|
|
49
51
|
}
|
|
50
52
|
}
|
|
@@ -58,63 +60,17 @@ ConsoleLogger() implements Logger {
|
|
|
58
60
|
|
|
59
61
|
## Compiled specification {#specification}
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
### `ConsoleLogger` · class · [source](console.md#code) {#symbol-ConsoleLogger}
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
It implements [`Logger`](logger.md#symbol-Logger).
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
#### `ConsoleLogger.log` · [source](console.md#code) {#symbol-ConsoleLogger.log}
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
### Dependencies
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Satisfies [`Logger`](logger.md#symbol-Logger).
|
|
74
|
-
|
|
75
|
-
#### `ConsoleLogger.log` {#symbol-ConsoleLogger.log}
|
|
76
|
-
|
|
77
|
-
[source](console.md#code)
|
|
78
|
-
|
|
79
|
-
**Inputs**
|
|
80
|
-
|
|
81
|
-
- `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
82
|
-
- `message` (`string`) — required labeled input.
|
|
83
|
-
|
|
84
|
-
Returns: no value.
|
|
85
|
-
|
|
86
|
-
Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
87
|
-
|
|
88
|
-
**What it does**
|
|
89
|
-
|
|
90
|
-
- Call [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `message`.
|
|
91
|
-
|
|
92
|
-
**Author documentation**
|
|
93
|
-
|
|
94
|
-
Writes one message.
|
|
95
|
-
|
|
96
|
-
**Parameters**
|
|
97
|
-
- `message`: Text to write.
|
|
98
|
-
|
|
99
|
-
### Dependencies used by this file
|
|
100
|
-
|
|
101
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
102
|
-
|
|
103
|
-
#### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
104
|
-
|
|
105
|
-
Capability interface from `august.io`.
|
|
106
|
-
|
|
107
|
-
- [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
108
|
-
|
|
109
|
-
#### [`Logger`](logger.md#symbol-Logger)
|
|
110
|
-
|
|
111
|
-
Interface from `logger`.
|
|
112
|
-
|
|
113
|
-
Used as a type or provider.
|
|
114
|
-
|
|
115
|
-
### Shared language rules
|
|
116
|
-
|
|
117
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
73
|
+
It uses [`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.md#symbol-Logger) from `logger`.
|
|
118
74
|
|
|
119
75
|
::::
|
|
120
76
|
|
|
@@ -33,11 +33,13 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
export Logger from logger
|
|
37
38
|
export ConsoleLogger from console
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
```aug [Braces]
|
|
42
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
41
43
|
export Logger from logger
|
|
42
44
|
export ConsoleLogger from console
|
|
43
45
|
```
|
|
@@ -50,21 +52,9 @@ export ConsoleLogger from console
|
|
|
50
52
|
|
|
51
53
|
## Compiled specification {#specification}
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
### Exports
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- Export `Logger` from this folder.
|
|
58
|
-
- Export `ConsoleLogger` from this folder.
|
|
59
|
-
|
|
60
|
-
### Folder exports
|
|
61
|
-
|
|
62
|
-
- Export the declaration `Logger` from [`logger.aug`](logger.md#symbol-Logger).
|
|
63
|
-
- Export the declaration `ConsoleLogger` from [`console.aug`](console.md#symbol-ConsoleLogger).
|
|
64
|
-
|
|
65
|
-
### Shared language rules
|
|
66
|
-
|
|
67
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
57
|
+
Export the declaration `Logger` from [`logger.aug`](logger.md#symbol-Logger). Export the declaration `ConsoleLogger` from [`console.aug`](console.md#symbol-ConsoleLogger).
|
|
68
58
|
|
|
69
59
|
::::
|
|
70
60
|
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
import Console from august.io
|
|
37
38
|
/** Writes messages to an application log. */
|
|
38
39
|
interface Logger:
|
|
@@ -44,6 +45,7 @@ interface Logger:
|
|
|
44
45
|
```
|
|
45
46
|
|
|
46
47
|
```aug [Braces]
|
|
48
|
+
// aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
47
49
|
import Console from august.io
|
|
48
50
|
/** Writes messages to an application log. */
|
|
49
51
|
interface Logger {
|
|
@@ -63,57 +65,17 @@ interface Logger {
|
|
|
63
65
|
|
|
64
66
|
## Compiled specification {#specification}
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
### In this file
|
|
69
|
-
|
|
70
|
-
- [`Logger`](logger.md#symbol-Logger) is an interface.
|
|
71
|
-
|
|
72
|
-
### `Logger` {#symbol-Logger}
|
|
73
|
-
|
|
74
|
-
[source](logger.md#code)
|
|
75
|
-
|
|
76
|
-
Interface.
|
|
77
|
-
|
|
78
|
-
**Author documentation**
|
|
68
|
+
### `Logger` · interface · [source](logger.md#code) {#symbol-Logger}
|
|
79
69
|
|
|
80
70
|
Writes messages to an application log.
|
|
81
71
|
|
|
82
|
-
#### `Logger.log` {#symbol-Logger.log}
|
|
83
|
-
|
|
84
|
-
[source](logger.md#code)
|
|
85
|
-
|
|
86
|
-
**Inputs**
|
|
87
|
-
|
|
88
|
-
- `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
89
|
-
- `message` (`string`) — required labeled input.
|
|
90
|
-
|
|
91
|
-
Returns: no value.
|
|
92
|
-
|
|
93
|
-
Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
94
|
-
|
|
95
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
96
|
-
|
|
97
|
-
**Author documentation**
|
|
98
|
-
|
|
99
|
-
Writes one message.
|
|
100
|
-
|
|
101
|
-
**Parameters**
|
|
102
|
-
- `message`: Text to write.
|
|
103
|
-
|
|
104
|
-
### Dependencies used by this file
|
|
105
|
-
|
|
106
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
107
|
-
|
|
108
|
-
#### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
109
|
-
|
|
110
|
-
Capability interface from `august.io`.
|
|
72
|
+
#### `Logger.log` · [source](logger.md#code) {#symbol-Logger.log}
|
|
111
73
|
|
|
112
|
-
- [`Console.write`](../dependencies/august/0.
|
|
74
|
+
Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
113
75
|
|
|
114
|
-
###
|
|
76
|
+
### Dependencies
|
|
115
77
|
|
|
116
|
-
|
|
78
|
+
It uses [`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`.
|
|
117
79
|
|
|
118
80
|
::::
|
|
119
81
|
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
import Console and SystemConsole from august.io
|
|
37
38
|
implement Console with SystemConsole
|
|
38
39
|
import Logger from logging
|
|
@@ -45,6 +46,7 @@ greeter.greet(name="AugScript")
|
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
```aug [Braces]
|
|
49
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
48
50
|
import Console and SystemConsole from august.io
|
|
49
51
|
implement Console with SystemConsole
|
|
50
52
|
import Logger from logging
|
|
@@ -64,51 +66,19 @@ greeter.greet(name="AugScript")
|
|
|
64
66
|
|
|
65
67
|
## Compiled specification {#specification}
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
### Providers
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
`Console` is provided by [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger). The same instance is shared.
|
|
70
72
|
|
|
71
|
-
-
|
|
72
|
-
- Run 2 other startup steps in source order.
|
|
73
|
+
`app` is provided by [`Greeter`](app/greeter.md#symbol-Greeter). The same instance is shared. It requires bindings for `Logger`.
|
|
73
74
|
|
|
74
|
-
###
|
|
75
|
+
### Startup
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
It sets `greeter` to the instance provided for `app`. It passes `"AugScript"` to [`greeter.greet`](app/greeter.md#symbol-Greeter.greet), using injected `Console`.
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
- Provide [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
|
|
80
|
-
- Provide [`Greeter`](app/greeter.md#symbol-Greeter) when `app` is requested. Reuse one instance. Required dependencies: `Logger`.
|
|
79
|
+
### Dependencies
|
|
81
80
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- Set `greeter` to the instance provided for `app`.
|
|
85
|
-
- Call [`Greeter.greet`](app/greeter.md#symbol-Greeter.greet) on `greeter` with `name` = `"AugScript"`; inject `console` from `Console`.
|
|
86
|
-
|
|
87
|
-
### Dependencies used by this file
|
|
88
|
-
|
|
89
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
90
|
-
|
|
91
|
-
#### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
|
|
92
|
-
|
|
93
|
-
Class from `august.io`.
|
|
94
|
-
|
|
95
|
-
Used as a type or provider.
|
|
96
|
-
|
|
97
|
-
#### [`Greeter`](app/greeter.md#symbol-Greeter)
|
|
98
|
-
|
|
99
|
-
Class from `app`.
|
|
100
|
-
|
|
101
|
-
- [`Greeter.greet`](app/greeter.md#symbol-Greeter.greet) (`name`: `string`) → `void`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
102
|
-
|
|
103
|
-
#### [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger)
|
|
104
|
-
|
|
105
|
-
Class from `logging`.
|
|
106
|
-
|
|
107
|
-
Used as a type or provider.
|
|
108
|
-
|
|
109
|
-
### Shared language rules
|
|
110
|
-
|
|
111
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
81
|
+
It uses [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app/greeter.md#symbol-Greeter) ([`greet`](app/greeter.md#symbol-Greeter.greet)) from `app`. It uses [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger) from `logging`.
|
|
112
82
|
|
|
113
83
|
::::
|
|
114
84
|
|
|
@@ -12,7 +12,7 @@ outline: [2, 3]
|
|
|
12
12
|
|
|
13
13
|
Serve the typed JSON endpoint used in the throughput measurements.
|
|
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/http-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:
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
|
-
|
|
29
|
-
aug
|
|
30
|
-
aug
|
|
28
|
+
cd http-benchmark
|
|
29
|
+
aug check .
|
|
30
|
+
aug spec .
|
|
31
|
+
aug run .
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
|
|
@@ -29,11 +29,13 @@ 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 reply from routes
|
|
33
34
|
serve reply on port 0
|
|
34
35
|
```
|
|
35
36
|
|
|
36
37
|
```aug [Braces]
|
|
38
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
37
39
|
import reply from routes
|
|
38
40
|
serve reply on port 0
|
|
39
41
|
```
|
|
@@ -46,33 +48,17 @@ serve reply on port 0
|
|
|
46
48
|
|
|
47
49
|
## Compiled specification {#specification}
|
|
48
50
|
|
|
49
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
50
|
-
|
|
51
|
-
### In this file
|
|
52
|
-
|
|
53
|
-
- Serve 1 HTTP route.
|
|
54
|
-
|
|
55
51
|
### HTTP configuration
|
|
56
52
|
|
|
57
53
|
Listen on `127.0.0.1`. Limit request bodies to 1048576 bytes and buffered responses to 4194304 bytes.
|
|
58
54
|
|
|
59
|
-
### Startup
|
|
60
|
-
|
|
61
|
-
- Serve [`reply`](routes.md#symbol-reply) on port `0`.
|
|
62
|
-
|
|
63
|
-
### Dependencies used by this file
|
|
64
|
-
|
|
65
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
66
|
-
|
|
67
|
-
#### [`reply`](routes.md#symbol-reply)
|
|
68
|
-
|
|
69
|
-
Function from `routes`.
|
|
55
|
+
### Startup
|
|
70
56
|
|
|
71
|
-
|
|
57
|
+
It serves [`reply`](routes.md#symbol-reply) on port `0`.
|
|
72
58
|
|
|
73
|
-
###
|
|
59
|
+
### Dependencies
|
|
74
60
|
|
|
75
|
-
|
|
61
|
+
It uses [`reply`](routes.md#symbol-reply) from `routes`.
|
|
76
62
|
|
|
77
63
|
::::
|
|
78
64
|
|
|
@@ -29,14 +29,16 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
+
// aug-spec: "routes.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
32
33
|
record Reply(int id, string message)
|
|
33
|
-
endpoint GET "/bench" as reply()
|
|
34
|
+
endpoint GET "/bench" as reply():
|
|
34
35
|
return Reply(id=7, message="hello")
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
```aug [Braces]
|
|
39
|
+
// aug-spec: "routes.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
38
40
|
record Reply(int id, string message)
|
|
39
|
-
endpoint GET "/bench" as reply()
|
|
41
|
+
endpoint GET "/bench" as reply() {
|
|
40
42
|
return Reply(id=7, message="hello")
|
|
41
43
|
}
|
|
42
44
|
```
|
|
@@ -49,39 +51,15 @@ endpoint GET "/bench" as reply() returns Reply {
|
|
|
49
51
|
|
|
50
52
|
## Compiled specification {#specification}
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
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.
|
|
53
55
|
|
|
54
|
-
###
|
|
56
|
+
### `Reply` · immutable record · [source](routes.md#code) {#symbol-Reply}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
- [`reply`](routes.md#symbol-reply) handles `GET` `/bench` returning `Reply`.
|
|
58
|
+
It takes `id` as an integer, kept read-only and `message` as a string, kept read-only.
|
|
58
59
|
|
|
59
|
-
### `
|
|
60
|
+
### `reply` · [source](routes.md#code) {#symbol-reply}
|
|
60
61
|
|
|
61
|
-
[
|
|
62
|
-
|
|
63
|
-
Immutable record.
|
|
64
|
-
|
|
65
|
-
**Inputs**
|
|
66
|
-
|
|
67
|
-
- `id` (`int`) — required labeled input — stored as `id` and read-only after initialization.
|
|
68
|
-
- `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
|
|
69
|
-
|
|
70
|
-
### `reply` {#symbol-reply}
|
|
71
|
-
|
|
72
|
-
[source](routes.md#code)
|
|
73
|
-
|
|
74
|
-
Returns: [`Reply`](routes.md#symbol-Reply).
|
|
75
|
-
|
|
76
|
-
HTTP route: `GET` `/bench`. Use status 200 when the handler returns a body; a returned HttpResponse can set its own status. An unhandled request failure returns status 500 and cancels its request tasks.
|
|
77
|
-
|
|
78
|
-
**What it does**
|
|
79
|
-
|
|
80
|
-
- Return call [`Reply`](routes.md#symbol-Reply) with `id` = `7`; `message` = `"hello"`.
|
|
81
|
-
|
|
82
|
-
### Shared language rules
|
|
83
|
-
|
|
84
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
62
|
+
`reply` handles `GET /bench`. It returns a [`Reply`](routes.md#symbol-Reply) with `id` `7` and `message` `"hello"`.
|
|
85
63
|
|
|
86
64
|
::::
|
|
87
65
|
|