@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
package/docs/api/io.md
CHANGED
|
@@ -6,15 +6,9 @@ editLink: false
|
|
|
6
6
|
|
|
7
7
|
# august.io
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Console and file capabilities supplied with the compiler. Import names from `august.io`.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- [SystemConsole](#api-SystemConsole)
|
|
13
|
-
- [FileReader](#api-FileReader)
|
|
14
|
-
- [FileWriter](#api-FileWriter)
|
|
15
|
-
- [LocalFiles](#api-LocalFiles)
|
|
16
|
-
- [Arguments](#api-Arguments)
|
|
17
|
-
- [ProcessArguments](#api-ProcessArguments)
|
|
11
|
+
The signatures below include checked results and failures, including those inferred from a body. See [packages](../packages.md) for revision pinning and [language constructs](../language-constructs.md) for built-in value types.
|
|
18
12
|
|
|
19
13
|
## Console {#api-Console}
|
|
20
14
|
|
|
@@ -24,12 +18,12 @@ capability Console
|
|
|
24
18
|
|
|
25
19
|
Permission to write to a console, provided by an explicitly selected adapter.
|
|
26
20
|
|
|
27
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L3)
|
|
28
22
|
|
|
29
23
|
### Console.write
|
|
30
24
|
|
|
31
25
|
```text
|
|
32
|
-
write<T>(T value)
|
|
26
|
+
write<T>(T value)
|
|
33
27
|
```
|
|
34
28
|
|
|
35
29
|
Write one line of text.
|
|
@@ -37,7 +31,9 @@ Write one line of text.
|
|
|
37
31
|
**Parameters**
|
|
38
32
|
- `value`: Text to display.
|
|
39
33
|
|
|
40
|
-
|
|
34
|
+
Requires `Console.write`.
|
|
35
|
+
|
|
36
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L5)
|
|
41
37
|
|
|
42
38
|
## SystemConsole {#api-SystemConsole}
|
|
43
39
|
|
|
@@ -47,7 +43,7 @@ SystemConsole() implements Console
|
|
|
47
43
|
|
|
48
44
|
The native standard-output adapter. Construction performs no output.
|
|
49
45
|
|
|
50
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
46
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L8)
|
|
51
47
|
|
|
52
48
|
### SystemConsole.write
|
|
53
49
|
|
|
@@ -60,9 +56,9 @@ Write one line of text.
|
|
|
60
56
|
**Parameters**
|
|
61
57
|
- `value`: Text to display.
|
|
62
58
|
|
|
63
|
-
|
|
59
|
+
Requires `Console.write`.
|
|
64
60
|
|
|
65
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
61
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L9)
|
|
66
62
|
|
|
67
63
|
## FileReader {#api-FileReader}
|
|
68
64
|
|
|
@@ -72,12 +68,12 @@ capability FileReader
|
|
|
72
68
|
|
|
73
69
|
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
74
70
|
|
|
75
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
71
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L13)
|
|
76
72
|
|
|
77
73
|
### FileReader.read
|
|
78
74
|
|
|
79
75
|
```text
|
|
80
|
-
read(string path) returns string
|
|
76
|
+
read(string path) returns string unless FileError
|
|
81
77
|
```
|
|
82
78
|
|
|
83
79
|
Read text.
|
|
@@ -88,7 +84,9 @@ Read text.
|
|
|
88
84
|
**Throws**
|
|
89
85
|
- `FileError`: The file could not be read.
|
|
90
86
|
|
|
91
|
-
|
|
87
|
+
Requires `FileReader.read`.
|
|
88
|
+
|
|
89
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L15)
|
|
92
90
|
|
|
93
91
|
## FileWriter {#api-FileWriter}
|
|
94
92
|
|
|
@@ -98,12 +96,12 @@ capability FileWriter
|
|
|
98
96
|
|
|
99
97
|
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
100
98
|
|
|
101
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
99
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L18)
|
|
102
100
|
|
|
103
101
|
### FileWriter.write
|
|
104
102
|
|
|
105
103
|
```text
|
|
106
|
-
write(string path, string content)
|
|
104
|
+
write(string path, string content) unless FileError
|
|
107
105
|
```
|
|
108
106
|
|
|
109
107
|
Write text.
|
|
@@ -115,7 +113,9 @@ Write text.
|
|
|
115
113
|
**Throws**
|
|
116
114
|
- `FileError`: Writing failed.
|
|
117
115
|
|
|
118
|
-
|
|
116
|
+
Requires `FileWriter.write`.
|
|
117
|
+
|
|
118
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L20)
|
|
119
119
|
|
|
120
120
|
## LocalFiles {#api-LocalFiles}
|
|
121
121
|
|
|
@@ -125,7 +125,7 @@ LocalFiles() implements FileReader, FileWriter
|
|
|
125
125
|
|
|
126
126
|
Native files. Operations are explicit; construction opens no files.
|
|
127
127
|
|
|
128
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
128
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L23)
|
|
129
129
|
|
|
130
130
|
### LocalFiles.read
|
|
131
131
|
|
|
@@ -141,9 +141,9 @@ Read text.
|
|
|
141
141
|
**Throws**
|
|
142
142
|
- `FileError`: The file could not be read.
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
Requires `FileReader.read`.
|
|
145
145
|
|
|
146
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
146
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L24)
|
|
147
147
|
|
|
148
148
|
### LocalFiles.write
|
|
149
149
|
|
|
@@ -160,9 +160,9 @@ Write text.
|
|
|
160
160
|
**Throws**
|
|
161
161
|
- `FileError`: Writing failed.
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
Requires `FileWriter.write`.
|
|
164
164
|
|
|
165
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
165
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L26)
|
|
166
166
|
|
|
167
167
|
## Arguments {#api-Arguments}
|
|
168
168
|
|
|
@@ -172,17 +172,19 @@ capability Arguments
|
|
|
172
172
|
|
|
173
173
|
Read command-line input through an explicit dependency.
|
|
174
174
|
|
|
175
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
175
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L30)
|
|
176
176
|
|
|
177
177
|
### Arguments.read
|
|
178
178
|
|
|
179
179
|
```text
|
|
180
|
-
read() returns List<string>
|
|
180
|
+
read() returns List<string>
|
|
181
181
|
```
|
|
182
182
|
|
|
183
|
-
The signature declares inputs, result, effects and checked errors.
|
|
184
183
|
|
|
185
|
-
|
|
184
|
+
|
|
185
|
+
Requires `Arguments.read`.
|
|
186
|
+
|
|
187
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L31)
|
|
186
188
|
|
|
187
189
|
## ProcessArguments {#api-ProcessArguments}
|
|
188
190
|
|
|
@@ -192,7 +194,7 @@ ProcessArguments() implements Arguments
|
|
|
192
194
|
|
|
193
195
|
Native command-line arguments.
|
|
194
196
|
|
|
195
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#
|
|
197
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L34)
|
|
196
198
|
|
|
197
199
|
### ProcessArguments.read
|
|
198
200
|
|
|
@@ -200,8 +202,8 @@ Native command-line arguments.
|
|
|
200
202
|
read() returns List<string>
|
|
201
203
|
```
|
|
202
204
|
|
|
203
|
-
The signature declares inputs, result, effects and checked errors.
|
|
204
205
|
|
|
205
|
-
Inferred capabilities: `Arguments.read`.
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
Requires `Arguments.read`.
|
|
208
|
+
|
|
209
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L35)
|
package/docs/api/json.md
CHANGED
|
@@ -6,9 +6,9 @@ editLink: false
|
|
|
6
6
|
|
|
7
7
|
# august.json
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Install this source library with `aug add https://github.com/GreenPandaStudios/augscript/src/stdlib/json --as json`, then import its public names from `json`.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The signatures below include checked results and failures, including those inferred from a body. See [packages](../packages.md) for revision pinning and [language constructs](../language-constructs.md) for built-in value types.
|
|
12
12
|
|
|
13
13
|
## parse {#api-parse}
|
|
14
14
|
|
|
@@ -18,4 +18,4 @@ parse(string input) returns Json unless JsonError
|
|
|
18
18
|
|
|
19
19
|
Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError.
|
|
20
20
|
|
|
21
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/json/contracts.aug#
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/json/contracts.aug#L4)
|
package/docs/api/memory.md
CHANGED
|
@@ -6,11 +6,9 @@ editLink: false
|
|
|
6
6
|
|
|
7
7
|
# august.memory
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Install this source library with `aug add https://github.com/GreenPandaStudios/augscript/src/stdlib/memory --as memory`, then import its public names from `memory`.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- [ExpiringStore](#api-ExpiringStore)
|
|
13
|
-
- [MemoryStore](#api-MemoryStore)
|
|
11
|
+
The signatures below include checked results and failures, including those inferred from a body. See [packages](../packages.md) for revision pinning and [language constructs](../language-constructs.md) for built-in value types.
|
|
14
12
|
|
|
15
13
|
## StoreFull {#api-StoreFull}
|
|
16
14
|
|
|
@@ -20,7 +18,7 @@ StoreFull() implements Error
|
|
|
20
18
|
|
|
21
19
|
The bounded store could not accept another live entry.
|
|
22
20
|
|
|
23
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L3)
|
|
24
22
|
|
|
25
23
|
## ExpiringStore {#api-ExpiringStore}
|
|
26
24
|
|
|
@@ -30,37 +28,43 @@ capability ExpiringStore<T implements Data>
|
|
|
30
28
|
|
|
31
29
|
A bounded, expiring capability for immutable values. Each generic DI binding has its own table.
|
|
32
30
|
|
|
33
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
31
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L8)
|
|
34
32
|
|
|
35
33
|
### ExpiringStore.put
|
|
36
34
|
|
|
37
35
|
```text
|
|
38
|
-
put(string key, T value, int expires, int now)
|
|
36
|
+
put(string key, T value, int expires, int now) unless StoreFull
|
|
39
37
|
```
|
|
40
38
|
|
|
41
39
|
Remove expired entries, then store at most 512 live entries. Time is supplied by the caller.
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
Requires `ExpiringStore.put`.
|
|
42
|
+
|
|
43
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L10)
|
|
44
44
|
|
|
45
45
|
### ExpiringStore.take
|
|
46
46
|
|
|
47
47
|
```text
|
|
48
|
-
take(string key, int now) returns optional T
|
|
48
|
+
take(string key, int now) returns optional T
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Atomically remove a value. Expired or absent entries return null.
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Requires `ExpiringStore.take`.
|
|
54
|
+
|
|
55
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L12)
|
|
54
56
|
|
|
55
57
|
### ExpiringStore.get
|
|
56
58
|
|
|
57
59
|
```text
|
|
58
|
-
get(string key, int now) returns optional T
|
|
60
|
+
get(string key, int now) returns optional T
|
|
59
61
|
```
|
|
60
62
|
|
|
61
63
|
Read a live value without consuming it.
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
Requires `ExpiringStore.get`.
|
|
66
|
+
|
|
67
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L14)
|
|
64
68
|
|
|
65
69
|
## MemoryStore {#api-MemoryStore}
|
|
66
70
|
|
|
@@ -70,7 +74,7 @@ MemoryStore<T implements Data>() implements ExpiringStore<T>
|
|
|
70
74
|
|
|
71
75
|
A synchronized table with short critical sections and no I/O while locked.
|
|
72
76
|
|
|
73
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
77
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L17)
|
|
74
78
|
|
|
75
79
|
### MemoryStore.put
|
|
76
80
|
|
|
@@ -80,9 +84,9 @@ put(string key, T value, int expires, int now) unless StoreFull
|
|
|
80
84
|
|
|
81
85
|
Remove expired entries, then store at most 512 live entries. Time is supplied by the caller.
|
|
82
86
|
|
|
83
|
-
|
|
87
|
+
Requires `ExpiringStore<T>.put`.
|
|
84
88
|
|
|
85
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
89
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L19)
|
|
86
90
|
|
|
87
91
|
### MemoryStore.take
|
|
88
92
|
|
|
@@ -92,9 +96,9 @@ take(string key, int now) returns optional T
|
|
|
92
96
|
|
|
93
97
|
Atomically remove a value. Expired or absent entries return null.
|
|
94
98
|
|
|
95
|
-
|
|
99
|
+
Requires `ExpiringStore<T>.take`.
|
|
96
100
|
|
|
97
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
101
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L28)
|
|
98
102
|
|
|
99
103
|
### MemoryStore.get
|
|
100
104
|
|
|
@@ -104,6 +108,6 @@ get(string key, int now) returns optional T
|
|
|
104
108
|
|
|
105
109
|
Read a live value without consuming it.
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
Requires `ExpiringStore<T>.get`.
|
|
108
112
|
|
|
109
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#
|
|
113
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/memory/store.aug#L37)
|
package/docs/api/time.md
CHANGED
|
@@ -6,10 +6,9 @@ editLink: false
|
|
|
6
6
|
|
|
7
7
|
# august.time
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Install this source library with `aug add https://github.com/GreenPandaStudios/augscript/src/stdlib/time --as time`, then import its public names from `time`.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- [SystemClock](#api-SystemClock)
|
|
11
|
+
The signatures below include checked results and failures, including those inferred from a body. See [packages](../packages.md) for revision pinning and [language constructs](../language-constructs.md) for built-in value types.
|
|
13
12
|
|
|
14
13
|
## Clock {#api-Clock}
|
|
15
14
|
|
|
@@ -19,17 +18,19 @@ capability Clock
|
|
|
19
18
|
|
|
20
19
|
An explicit clock dependency makes time-based behavior replaceable in tests.
|
|
21
20
|
|
|
22
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#L3)
|
|
23
22
|
|
|
24
23
|
### Clock.now
|
|
25
24
|
|
|
26
25
|
```text
|
|
27
|
-
now() returns int
|
|
26
|
+
now() returns int unless TimeError
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read whole Unix seconds in UTC.
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
Requires `Clock.now`.
|
|
32
|
+
|
|
33
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#L5)
|
|
33
34
|
|
|
34
35
|
## SystemClock {#api-SystemClock}
|
|
35
36
|
|
|
@@ -39,7 +40,7 @@ SystemClock() implements Clock
|
|
|
39
40
|
|
|
40
41
|
Operating-system wall clock.
|
|
41
42
|
|
|
42
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#
|
|
43
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#L8)
|
|
43
44
|
|
|
44
45
|
### SystemClock.now
|
|
45
46
|
|
|
@@ -49,6 +50,6 @@ now() returns int unless TimeError
|
|
|
49
50
|
|
|
50
51
|
Read whole Unix seconds in UTC.
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
Requires `Clock.now`.
|
|
53
54
|
|
|
54
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#
|
|
55
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/time/contracts.aug#L9)
|
package/docs/api/web.md
CHANGED
|
@@ -6,18 +6,9 @@ editLink: false
|
|
|
6
6
|
|
|
7
7
|
# august.web
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- [Authentication](#api-Authentication)
|
|
13
|
-
- [Authorization](#api-Authorization)
|
|
14
|
-
- [RequestLogger](#api-RequestLogger)
|
|
15
|
-
- [WebRequestLogger](#api-WebRequestLogger)
|
|
16
|
-
- [HttpClient](#api-HttpClient)
|
|
17
|
-
- [WebHttpClient](#api-WebHttpClient)
|
|
18
|
-
- [redirect](#api-redirect)
|
|
19
|
-
- [urlEncode](#api-urlEncode)
|
|
20
|
-
- [cookie](#api-cookie)
|
|
9
|
+
Install this source library with `aug add https://github.com/GreenPandaStudios/augscript/src/stdlib/web --as web`, then import its public names from `web`.
|
|
10
|
+
|
|
11
|
+
The signatures below include checked results and failures, including those inferred from a body. See [packages](../packages.md) for revision pinning and [language constructs](../language-constructs.md) for built-in value types.
|
|
21
12
|
|
|
22
13
|
## Principal {#api-Principal}
|
|
23
14
|
|
|
@@ -27,7 +18,7 @@ record Principal(string subject, List<string> permissions)
|
|
|
27
18
|
|
|
28
19
|
Immutable identity returned by an explicitly injected authentication adapter.
|
|
29
20
|
|
|
30
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L3)
|
|
31
22
|
|
|
32
23
|
## Authentication {#api-Authentication}
|
|
33
24
|
|
|
@@ -37,17 +28,17 @@ capability Authentication
|
|
|
37
28
|
|
|
38
29
|
Verify the request's credentials. null means unauthenticated; adapter failures raise HttpError.
|
|
39
30
|
|
|
40
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
31
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L6)
|
|
41
32
|
|
|
42
33
|
### Authentication.authenticate
|
|
43
34
|
|
|
44
35
|
```text
|
|
45
|
-
authenticate(HttpRequest request) returns optional Principal
|
|
36
|
+
authenticate(HttpRequest request) returns optional Principal unless HttpError
|
|
46
37
|
```
|
|
47
38
|
|
|
48
|
-
The signature declares inputs, result, effects and checked errors.
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
|
|
41
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L7)
|
|
51
42
|
|
|
52
43
|
## Authorization {#api-Authorization}
|
|
53
44
|
|
|
@@ -57,17 +48,17 @@ capability Authorization
|
|
|
57
48
|
|
|
58
49
|
Decide whether a verified identity has one named permission.
|
|
59
50
|
|
|
60
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
51
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L10)
|
|
61
52
|
|
|
62
53
|
### Authorization.authorize
|
|
63
54
|
|
|
64
55
|
```text
|
|
65
|
-
authorize(Principal identity, string permission) returns bool
|
|
56
|
+
authorize(Principal identity, string permission) returns bool unless HttpError
|
|
66
57
|
```
|
|
67
58
|
|
|
68
|
-
The signature declares inputs, result, effects and checked errors.
|
|
69
59
|
|
|
70
|
-
|
|
60
|
+
|
|
61
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L11)
|
|
71
62
|
|
|
72
63
|
## RequestLogger {#api-RequestLogger}
|
|
73
64
|
|
|
@@ -77,17 +68,19 @@ capability RequestLogger
|
|
|
77
68
|
|
|
78
69
|
Observe a completed HTTP exchange, including failures and disconnects.
|
|
79
70
|
|
|
80
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
71
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L14)
|
|
81
72
|
|
|
82
73
|
### RequestLogger.complete
|
|
83
74
|
|
|
84
75
|
```text
|
|
85
|
-
complete(string method, string path, int status, int milliseconds)
|
|
76
|
+
complete(string method, string path, int status, int milliseconds)
|
|
86
77
|
```
|
|
87
78
|
|
|
88
|
-
The signature declares inputs, result, effects and checked errors.
|
|
89
79
|
|
|
90
|
-
|
|
80
|
+
|
|
81
|
+
Requires `RequestLogger.complete`.
|
|
82
|
+
|
|
83
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L15)
|
|
91
84
|
|
|
92
85
|
## WebRequestLogger {#api-WebRequestLogger}
|
|
93
86
|
|
|
@@ -97,7 +90,7 @@ WebRequestLogger() implements RequestLogger
|
|
|
97
90
|
|
|
98
91
|
Emit escaped JSON request metadata to standard error. Credentials and query strings are excluded.
|
|
99
92
|
|
|
100
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
93
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L19)
|
|
101
94
|
|
|
102
95
|
### WebRequestLogger.complete
|
|
103
96
|
|
|
@@ -105,11 +98,11 @@ Emit escaped JSON request metadata to standard error. Credentials and query stri
|
|
|
105
98
|
complete(string method, string path, int status, int milliseconds)
|
|
106
99
|
```
|
|
107
100
|
|
|
108
|
-
The signature declares inputs, result, effects and checked errors.
|
|
109
101
|
|
|
110
|
-
Inferred capabilities: `RequestLogger.complete`.
|
|
111
102
|
|
|
112
|
-
|
|
103
|
+
Requires `RequestLogger.complete`.
|
|
104
|
+
|
|
105
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L20)
|
|
113
106
|
|
|
114
107
|
## HttpClient {#api-HttpClient}
|
|
115
108
|
|
|
@@ -119,17 +112,19 @@ capability HttpClient
|
|
|
119
112
|
|
|
120
113
|
An explicit outbound network capability. TLS verifies the peer and redirects are returned to the caller.
|
|
121
114
|
|
|
122
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
115
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L25)
|
|
123
116
|
|
|
124
117
|
### HttpClient.request
|
|
125
118
|
|
|
126
119
|
```text
|
|
127
|
-
request(string method, string url, optional Headers headers, optional Bytes body) returns HttpResponse<Bytes>
|
|
120
|
+
request(string method, string url, optional Headers headers, optional Bytes body) returns HttpResponse<Bytes> unless HttpError
|
|
128
121
|
```
|
|
129
122
|
|
|
130
123
|
Perform an HTTP request with bounded bytes. Inside a task, waiting suspends the task's C stack.
|
|
131
124
|
|
|
132
|
-
|
|
125
|
+
Requires `HttpClient.request`.
|
|
126
|
+
|
|
127
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L27)
|
|
133
128
|
|
|
134
129
|
## WebHttpClient {#api-WebHttpClient}
|
|
135
130
|
|
|
@@ -139,7 +134,7 @@ WebHttpClient() implements HttpClient
|
|
|
139
134
|
|
|
140
135
|
Native libwebsockets transport. No socket is opened by construction.
|
|
141
136
|
|
|
142
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
137
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L32)
|
|
143
138
|
|
|
144
139
|
### WebHttpClient.request
|
|
145
140
|
|
|
@@ -149,9 +144,9 @@ request(string method, string url, optional Headers headers, optional Bytes body
|
|
|
149
144
|
|
|
150
145
|
Perform an HTTP request with bounded bytes. Inside a task, waiting suspends the task's C stack.
|
|
151
146
|
|
|
152
|
-
|
|
147
|
+
Requires `HttpClient.request`.
|
|
153
148
|
|
|
154
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
149
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L33)
|
|
155
150
|
|
|
156
151
|
## redirect {#api-redirect}
|
|
157
152
|
|
|
@@ -161,7 +156,7 @@ redirect(string location, optional int status) returns HttpResponse<string> unle
|
|
|
161
156
|
|
|
162
157
|
Return a redirect with an explicit status. Location is checked as a header value.
|
|
163
158
|
|
|
164
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
159
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L38)
|
|
165
160
|
|
|
166
161
|
## urlEncode {#api-urlEncode}
|
|
167
162
|
|
|
@@ -171,7 +166,7 @@ urlEncode(string input) returns string unless HttpError
|
|
|
171
166
|
|
|
172
167
|
Encode a UTF-8 value as one URL query or form component using RFC 3986 unreserved characters.
|
|
173
168
|
|
|
174
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
169
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L50)
|
|
175
170
|
|
|
176
171
|
## cookie {#api-cookie}
|
|
177
172
|
|
|
@@ -181,4 +176,4 @@ cookie(string name, string value, string path, int maxAge, bool secure) returns
|
|
|
181
176
|
|
|
182
177
|
Construct an HttpOnly, SameSite=Lax session cookie. Secure defaults are chosen explicitly at the call site. Values and paths reject delimiters and controls. maxAge=0 clears the cookie.
|
|
183
178
|
|
|
184
|
-
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#
|
|
179
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/web/contracts.aug#L56)
|
package/docs/compatibility.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Compatibility and supported platforms
|
|
2
2
|
|
|
3
|
-
August 0.
|
|
3
|
+
August 0.20 is a preview. This page states the proposed 1.0 compatibility contract and the evidence still needed before it takes effect. The [roadmap](roadmap.md) tracks that release gate.
|
|
4
4
|
|
|
5
5
|
The [ownership and task conformance page](language-conformance.md) records executable candidate behavior for moves, aliasing, cleanup, cancellation, and delayed errors.
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ The [ownership and task conformance page](language-conformance.md) records execu
|
|
|
10
10
|
| --- | --- |
|
|
11
11
|
| August source | Accepted syntax, import visibility, labeled calls, types, ownership, effects, checked errors, tasks, and same-file tests keep their documented meaning through 1.x. Minor releases can add syntax or APIs. |
|
|
12
12
|
| CLI and project files | Documented `aug` commands, `main.yaml` keys, `aug-package.json`, and `aug.lock.json` retain compatible reading within 1.x. New fields have defaults; removing or changing a field requires a major release. |
|
|
13
|
-
| First-party packages | CLI, standard, web, and crypto packages use one exact version. A release tests installed tarballs together; mixing versions is unsupported.
|
|
13
|
+
| First-party packages | CLI, standard, web, and crypto packages use one exact version. A release tests installed tarballs together; mixing versions is unsupported. Explicit user manifests currently require the exact compiler version and retain their own public `export.aug` surface. |
|
|
14
14
|
| Generated specifications | `aug spec` remains deterministic for a given compiler and project. Text and layout can improve between versions; tools should link to source and declarations rather than parse Markdown prose. |
|
|
15
15
|
| Native boundary | `extern C` uses documented C-width mappings and the target platform's C ABI. The generated C runtime and `AugValue` layout are compiler-private today. Before 1.0, the project must either publish and test a versioned adapter ABI or keep that runtime surface private and verify that public `extern C` adapters need no private structure. |
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ A change that makes valid 1.x source fail to compile, changes its observable beh
|
|
|
18
18
|
|
|
19
19
|
## Migration between versions
|
|
20
20
|
|
|
21
|
-
Each release documents source, configuration, package, and native changes in the changelog. When spelling can be changed safely, `aug migrate PROJECT` performs or suggests the edit. For changes requiring a choice, the diagnostic explains the alternatives without rewriting behavior silently. Upgrade the
|
|
21
|
+
Each release documents source, configuration, package, and native changes in the changelog. When spelling can be changed safely, `aug migrate PROJECT` performs or suggests the edit. For changes requiring a choice, the diagnostic explains the alternatives without rewriting behavior silently. Upgrade the compiler and extension together; update source dependencies deliberately with `aug install --update`, then run:
|
|
22
22
|
|
|
23
23
|
```sh
|
|
24
24
|
aug check PROJECT
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Maintain the comparison suite
|
|
2
|
+
|
|
3
|
+
This contributor workflow updates the recorded measurements and charts. Work in the August source workspace with Node 24+, Python and a C11 compiler. Application developers can [download the measured programs](examples/index.md#measured-programs) and use [the project benchmark commands](performance.md#benchmark-your-own-project).
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
npm ci
|
|
7
|
+
node scripts/bootstrap-native.mjs
|
|
8
|
+
npm run bench:compare
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Set `AUG_BENCH_PYTHON=/path/to/python3` or `CC=/path/to/clang` to select the reference interpreter/compiler. `AUG_NATIVE_HOME` selects the native dependency cache. The raw result file records versions and a source fingerprint. Compilation timings are included separately from executable run time.
|
|
12
|
+
|
|
13
|
+
For core/JSON only, extract the smaller native source dependencies and omit HTTP:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
node scripts/bootstrap-native.mjs --extract-only --only minicoro,yyjson
|
|
17
|
+
npm run bench:compare -- --skip-http
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The full suite writes `docs/benchmark-results.json`; a core-only run writes `.aug-build/benchmarks/results-core.json` and preserves the complete wiki measurements. Focus on selected workloads while trying your own changes:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
npm run bench:compare -- --only cpu,collections-200k
|
|
24
|
+
npm run bench:compare -- --only http --http-requests 10000
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Focused runs write `.aug-build/benchmarks/results-focused.json`. Use `--output PATH` to keep separate reports. Render graphs, tables and the exact source examples from the full result file using Python 3.12+:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
python3 -m venv .aug-build/benchmark-plotting
|
|
31
|
+
.aug-build/benchmark-plotting/bin/python -m pip install -r benchmarks/plot-requirements.txt
|
|
32
|
+
.aug-build/benchmark-plotting/bin/python scripts/render-benchmarks.py
|
|
33
|
+
.aug-build/benchmark-plotting/bin/python scripts/render-benchmarks.py --check
|
|
34
|
+
npm run docs:build
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The plot environment is isolated and ignored; published documentation includes the rendered graphs and needs no Python installation. Review this page's environment, interpretations and limitations when replacing measurements. Short exploratory runs can use `--iterations 3 --warmup 1 --http-rounds 1 --http-requests 1000`; they have less statistical coverage.
|
|
38
|
+
|