@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.
Files changed (459) hide show
  1. package/README.md +9 -6
  2. package/THIRD_PARTY_NOTICES.md +4 -0
  3. package/bin/aug.mjs +12 -2
  4. package/docs/about.md +27 -0
  5. package/docs/api/crypto.md +103 -69
  6. package/docs/api/io.md +35 -33
  7. package/docs/api/json.md +3 -3
  8. package/docs/api/memory.md +23 -19
  9. package/docs/api/time.md +10 -9
  10. package/docs/api/web.md +33 -38
  11. package/docs/compatibility.md +3 -3
  12. package/docs/contributing-benchmarks.md +38 -0
  13. package/docs/dev-containers.md +95 -0
  14. package/docs/diagnostics.md +15 -5
  15. package/docs/docker.md +174 -12
  16. package/docs/editor.md +35 -0
  17. package/docs/example-projects.json +206 -24
  18. package/docs/examples/approved-design/counters.md +34 -126
  19. package/docs/examples/approved-design/dependencies/august/0.20.1/io/contracts.md +178 -0
  20. package/docs/examples/approved-design/domain/app.md +13 -77
  21. package/docs/examples/approved-design/domain/export.md +5 -19
  22. package/docs/examples/approved-design/domain/models.md +4 -23
  23. package/docs/examples/approved-design/domain/numbers.md +24 -114
  24. package/docs/examples/approved-design/index.md +16 -7
  25. package/docs/examples/approved-design/main.md +19 -96
  26. package/docs/examples/benchmark/index.md +6 -5
  27. package/docs/examples/benchmark/main.md +7 -35
  28. package/docs/examples/cli-args/index.md +6 -5
  29. package/docs/examples/cli-args/main.md +6 -31
  30. package/docs/examples/collections/index.md +6 -5
  31. package/docs/examples/collections/main.md +7 -35
  32. package/docs/examples/collections-benchmark/index.md +6 -5
  33. package/docs/examples/collections-benchmark/main.md +7 -35
  34. package/docs/examples/cpu-benchmark/index.md +6 -5
  35. package/docs/examples/cpu-benchmark/main.md +5 -24
  36. package/docs/examples/developer-workflow/calculator.md +39 -186
  37. package/docs/examples/developer-workflow/dependencies/august/0.20.1/io/contracts.md +178 -0
  38. package/docs/examples/developer-workflow/index.md +16 -7
  39. package/docs/examples/developer-workflow/logging/console.md +10 -56
  40. package/docs/examples/developer-workflow/logging/export.md +4 -14
  41. package/docs/examples/developer-workflow/logging/logger.md +7 -43
  42. package/docs/examples/developer-workflow/main.md +17 -69
  43. package/docs/examples/drop/index.md +6 -5
  44. package/docs/examples/drop/main.md +7 -27
  45. package/docs/examples/drop/resource.md +7 -30
  46. package/docs/examples/errors/errors.md +7 -27
  47. package/docs/examples/errors/index.md +6 -5
  48. package/docs/examples/errors/main.md +7 -28
  49. package/docs/examples/ffi/index.md +6 -5
  50. package/docs/examples/ffi/main.md +6 -20
  51. package/docs/examples/ffi/native.md +8 -34
  52. package/docs/examples/generic-di/dependencies/august/0.20.1/io/contracts.md +178 -0
  53. package/docs/examples/generic-di/index.md +6 -5
  54. package/docs/examples/generic-di/main.md +9 -39
  55. package/docs/examples/generic-di/types.md +23 -92
  56. package/docs/examples/generics/index.md +6 -5
  57. package/docs/examples/generics/main.md +10 -47
  58. package/docs/examples/generics/types.md +25 -100
  59. package/docs/examples/hello/app/export.md +4 -12
  60. package/docs/examples/hello/app/greeter.md +13 -91
  61. package/docs/examples/hello/dependencies/august/0.20.1/io/contracts.md +178 -0
  62. package/docs/examples/hello/index.md +17 -6
  63. package/docs/examples/hello/logging/console.md +10 -54
  64. package/docs/examples/hello/logging/export.md +4 -14
  65. package/docs/examples/hello/logging/logger.md +7 -45
  66. package/docs/examples/hello/main.md +9 -39
  67. package/docs/examples/http-benchmark/index.md +6 -5
  68. package/docs/examples/http-benchmark/main.md +6 -20
  69. package/docs/examples/http-benchmark/routes.md +9 -31
  70. package/docs/examples/index.md +46 -29
  71. package/docs/examples/interceptors/app.md +20 -139
  72. package/docs/examples/interceptors/dependencies/august/0.20.1/io/contracts.md +178 -0
  73. package/docs/examples/interceptors/index.md +6 -5
  74. package/docs/examples/interceptors/interceptors.md +24 -148
  75. package/docs/examples/interceptors/logging.md +13 -76
  76. package/docs/examples/interceptors/main.md +10 -65
  77. package/docs/examples/json-benchmark/data.md +4 -20
  78. package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  79. package/docs/examples/json-benchmark/index.md +7 -5
  80. package/docs/examples/json-benchmark/main-yaml.md +20 -0
  81. package/docs/examples/json-benchmark/main.md +10 -49
  82. package/docs/examples/new-syntax/console.md +10 -52
  83. package/docs/examples/new-syntax/dependencies/august/0.20.1/io/contracts.md +178 -0
  84. package/docs/examples/new-syntax/greeter.md +13 -71
  85. package/docs/examples/new-syntax/index.md +6 -5
  86. package/docs/examples/new-syntax/logger.md +7 -43
  87. package/docs/examples/new-syntax/main.md +10 -53
  88. package/docs/examples/new-syntax/math.md +6 -24
  89. package/docs/examples/oidc-login/client/contracts.md +10 -61
  90. package/docs/examples/oidc-login/client/endpoints.md +32 -154
  91. package/docs/examples/oidc-login/client/export.md +5 -23
  92. package/docs/examples/oidc-login/client/login.md +234 -344
  93. package/docs/examples/oidc-login/client/logout.md +38 -143
  94. package/docs/examples/oidc-login/client/protocol.md +183 -304
  95. package/docs/examples/oidc-login/client/session.md +41 -149
  96. package/docs/examples/oidc-login/client/views.md +13 -58
  97. package/docs/examples/oidc-login/common/export.md +6 -26
  98. package/docs/examples/oidc-login/common/headers.md +42 -72
  99. package/docs/examples/oidc-login/common/keys.md +40 -164
  100. package/docs/examples/oidc-login/common/settings.md +24 -40
  101. package/docs/examples/oidc-login/common/views.md +7 -28
  102. package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
  103. package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  104. package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
  105. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
  106. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
  107. package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
  108. package/docs/examples/oidc-login/index.md +8 -7
  109. package/docs/examples/oidc-login/main-yaml.md +7 -0
  110. package/docs/examples/oidc-login/main.md +26 -153
  111. package/docs/examples/oidc-login/provider/authorization.md +232 -275
  112. package/docs/examples/oidc-login/provider/contracts.md +24 -146
  113. package/docs/examples/oidc-login/provider/credentials.md +24 -57
  114. package/docs/examples/oidc-login/provider/discovery.md +48 -122
  115. package/docs/examples/oidc-login/provider/export.md +11 -37
  116. package/docs/examples/oidc-login/provider/token.md +159 -237
  117. package/docs/examples/oidc-login/provider/userinfo.md +47 -102
  118. package/docs/examples/oidc-login/provider/views.md +13 -53
  119. package/docs/examples/ownership/counter.md +17 -63
  120. package/docs/examples/ownership/index.md +6 -5
  121. package/docs/examples/ownership/main.md +7 -30
  122. package/docs/examples/ownership-transfer/dependencies/august/0.20.1/io/contracts.md +178 -0
  123. package/docs/examples/ownership-transfer/index.md +6 -5
  124. package/docs/examples/ownership-transfer/main.md +10 -52
  125. package/docs/examples/ownership-transfer/resource.md +15 -67
  126. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
  127. package/docs/examples/packages-app/index.md +7 -6
  128. package/docs/examples/packages-app/main.md +7 -25
  129. package/docs/examples/packages-math/aug-package-json.md +1 -1
  130. package/docs/examples/packages-math/index.md +7 -6
  131. package/docs/examples/packages-math/src/arithmetic.md +12 -50
  132. package/docs/examples/packages-math/src/export.md +4 -12
  133. package/docs/examples/startup-benchmark/index.md +6 -5
  134. package/docs/examples/startup-benchmark/main.md +5 -17
  135. package/docs/examples/visibility/counter.md +19 -67
  136. package/docs/examples/visibility/index.md +6 -5
  137. package/docs/examples/visibility/main.md +7 -31
  138. package/docs/examples/weather-api/forecasts.md +168 -0
  139. package/docs/examples/weather-api/index.md +42 -0
  140. package/docs/examples/weather-api/main-yaml.md +21 -0
  141. package/docs/examples/weather-api/main.md +65 -0
  142. package/docs/examples.json +10 -0
  143. package/docs/getting-started.md +105 -2
  144. package/docs/grammar.md +6 -4
  145. package/docs/guides/change-a-module.md +64 -0
  146. package/docs/guides/index.md +27 -0
  147. package/docs/index.md +51 -29
  148. package/docs/language-conformance.md +1 -1
  149. package/docs/language-constructs.md +22 -22
  150. package/docs/language-design-audit.md +1 -1
  151. package/docs/learn/data-and-errors.md +77 -0
  152. package/docs/learn/index.md +30 -0
  153. package/docs/learn/modules-and-dependencies.md +73 -0
  154. package/docs/learn/state-and-tests.md +71 -0
  155. package/docs/learn/values-and-functions.md +62 -0
  156. package/docs/lesson-failures.json +8 -0
  157. package/docs/maintaining-docs.md +16 -4
  158. package/docs/packages.md +72 -126
  159. package/docs/performance.md +13 -41
  160. package/docs/production-readiness.md +5 -4
  161. package/docs/public/downloads/approved-design.zip +0 -0
  162. package/docs/public/downloads/benchmark.zip +0 -0
  163. package/docs/public/downloads/cli-args.zip +0 -0
  164. package/docs/public/downloads/collections-benchmark.zip +0 -0
  165. package/docs/public/downloads/collections.zip +0 -0
  166. package/docs/public/downloads/cpu-benchmark.zip +0 -0
  167. package/docs/public/downloads/developer-workflow.zip +0 -0
  168. package/docs/public/downloads/drop.zip +0 -0
  169. package/docs/public/downloads/errors.zip +0 -0
  170. package/docs/public/downloads/ffi.zip +0 -0
  171. package/docs/public/downloads/generic-di.zip +0 -0
  172. package/docs/public/downloads/generics.zip +0 -0
  173. package/docs/public/downloads/hello.zip +0 -0
  174. package/docs/public/downloads/http-benchmark.zip +0 -0
  175. package/docs/public/downloads/interceptors.zip +0 -0
  176. package/docs/public/downloads/json-benchmark.zip +0 -0
  177. package/docs/public/downloads/new-syntax.zip +0 -0
  178. package/docs/public/downloads/oidc-login.zip +0 -0
  179. package/docs/public/downloads/ownership-transfer.zip +0 -0
  180. package/docs/public/downloads/ownership.zip +0 -0
  181. package/docs/public/downloads/packages-app.zip +0 -0
  182. package/docs/public/downloads/packages-math.zip +0 -0
  183. package/docs/public/downloads/startup-benchmark.zip +0 -0
  184. package/docs/public/downloads/visibility.zip +0 -0
  185. package/docs/public/downloads/weather-api.zip +0 -0
  186. package/docs/reference.md +23 -17
  187. package/docs/releasing.md +29 -15
  188. package/docs/research/code-to-natural-language.md +108 -0
  189. package/docs/research/ecosystem-workflow.md +41 -0
  190. package/docs/research/wiki-editorial-design.md +71 -0
  191. package/docs/roadmap.md +1 -1
  192. package/docs/specifications.md +27 -11
  193. package/docs/testing.md +19 -5
  194. package/docs/tooling.md +25 -12
  195. package/docs/weather-api.md +65 -0
  196. package/docs/web.md +50 -18
  197. package/docs/writing-docs.md +49 -0
  198. package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  199. package/examples/approved-design/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  200. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  201. package/examples/approved-design/counters.aug +5 -4
  202. package/examples/approved-design/counters.aug.md +25 -132
  203. package/examples/approved-design/domain/app.aug +2 -1
  204. package/examples/approved-design/domain/app.aug.md +10 -80
  205. package/examples/approved-design/domain/export.aug +1 -0
  206. package/examples/approved-design/domain/export.aug.md +4 -20
  207. package/examples/approved-design/domain/models.aug +1 -0
  208. package/examples/approved-design/domain/models.aug.md +3 -25
  209. package/examples/approved-design/domain/numbers.aug +3 -2
  210. package/examples/approved-design/domain/numbers.aug.md +19 -116
  211. package/examples/approved-design/main.aug +1 -0
  212. package/examples/approved-design/main.aug.md +12 -95
  213. package/examples/benchmark/.aug-spec/manifest.json +1 -1
  214. package/examples/benchmark/main.aug +1 -0
  215. package/examples/benchmark/main.aug.md +6 -36
  216. package/examples/cli-args/.aug-spec/manifest.json +1 -1
  217. package/examples/cli-args/main.aug +1 -0
  218. package/examples/cli-args/main.aug.md +5 -32
  219. package/examples/collections/.aug-spec/manifest.json +1 -1
  220. package/examples/collections/main.aug +1 -0
  221. package/examples/collections/main.aug.md +6 -36
  222. package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  223. package/examples/developer-workflow/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  224. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  225. package/examples/developer-workflow/calculator.aug +3 -2
  226. package/examples/developer-workflow/calculator.aug.md +28 -189
  227. package/examples/developer-workflow/logging/console.aug +2 -1
  228. package/examples/developer-workflow/logging/console.aug.md +7 -57
  229. package/examples/developer-workflow/logging/export.aug +1 -0
  230. package/examples/developer-workflow/logging/export.aug.md +3 -15
  231. package/examples/developer-workflow/logging/logger.aug +1 -0
  232. package/examples/developer-workflow/logging/logger.aug.md +6 -46
  233. package/examples/developer-workflow/main.aug +1 -0
  234. package/examples/developer-workflow/main.aug.md +10 -68
  235. package/examples/drop/.aug-spec/manifest.json +1 -1
  236. package/examples/drop/main.aug +1 -0
  237. package/examples/drop/main.aug.md +6 -28
  238. package/examples/drop/resource.aug +1 -0
  239. package/examples/drop/resource.aug.md +6 -34
  240. package/examples/errors/.aug-spec/manifest.json +1 -1
  241. package/examples/errors/errors.aug +2 -1
  242. package/examples/errors/errors.aug.md +4 -27
  243. package/examples/errors/main.aug +1 -0
  244. package/examples/errors/main.aug.md +6 -29
  245. package/examples/ffi/.aug-spec/manifest.json +1 -1
  246. package/examples/ffi/main.aug +1 -0
  247. package/examples/ffi/main.aug.md +5 -21
  248. package/examples/ffi/native.aug +2 -1
  249. package/examples/ffi/native.aug.md +5 -35
  250. package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  251. package/examples/generic-di/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  252. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  253. package/examples/generic-di/main.aug +1 -0
  254. package/examples/generic-di/main.aug.md +8 -40
  255. package/examples/generic-di/types.aug +3 -2
  256. package/examples/generic-di/types.aug.md +18 -97
  257. package/examples/generics/.aug-spec/manifest.json +1 -1
  258. package/examples/generics/main.aug +1 -0
  259. package/examples/generics/main.aug.md +9 -48
  260. package/examples/generics/types.aug +4 -3
  261. package/examples/generics/types.aug.md +18 -104
  262. package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  263. package/examples/hello/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  264. package/examples/hello/.aug-spec/manifest.json +3 -3
  265. package/examples/hello/app/export.aug +1 -0
  266. package/examples/hello/app/export.aug.md +3 -13
  267. package/examples/hello/app/greeter.aug +2 -1
  268. package/examples/hello/app/greeter.aug.md +10 -94
  269. package/examples/hello/logging/console.aug +2 -1
  270. package/examples/hello/logging/console.aug.md +7 -55
  271. package/examples/hello/logging/export.aug +1 -0
  272. package/examples/hello/logging/export.aug.md +3 -15
  273. package/examples/hello/logging/logger.aug +1 -0
  274. package/examples/hello/logging/logger.aug.md +6 -48
  275. package/examples/hello/main.aug +1 -0
  276. package/examples/hello/main.aug.md +8 -40
  277. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  278. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  279. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  280. package/examples/interceptors/app.aug +3 -2
  281. package/examples/interceptors/app.aug.md +15 -141
  282. package/examples/interceptors/interceptors.aug +3 -2
  283. package/examples/interceptors/interceptors.aug.md +19 -152
  284. package/examples/interceptors/logging.aug +2 -1
  285. package/examples/interceptors/logging.aug.md +10 -79
  286. package/examples/interceptors/main.aug +1 -0
  287. package/examples/interceptors/main.aug.md +9 -66
  288. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  289. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  290. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  291. package/examples/new-syntax/console.aug +2 -1
  292. package/examples/new-syntax/console.aug.md +7 -53
  293. package/examples/new-syntax/greeter.aug +2 -1
  294. package/examples/new-syntax/greeter.aug.md +10 -74
  295. package/examples/new-syntax/logger.aug +1 -0
  296. package/examples/new-syntax/logger.aug.md +6 -46
  297. package/examples/new-syntax/main.aug +1 -0
  298. package/examples/new-syntax/main.aug.md +9 -54
  299. package/examples/new-syntax/math.aug +2 -1
  300. package/examples/new-syntax/math.aug.md +3 -24
  301. package/examples/oidc-login/.aug-spec/manifest.json +13 -13
  302. package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
  303. package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
  304. package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
  305. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
  306. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
  307. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
  308. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
  309. package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
  310. package/examples/oidc-login/aug.lock.json +100 -0
  311. package/examples/oidc-login/client/contracts.aug +1 -0
  312. package/examples/oidc-login/client/contracts.aug.md +9 -66
  313. package/examples/oidc-login/client/endpoints.aug +6 -5
  314. package/examples/oidc-login/client/endpoints.aug.md +13 -145
  315. package/examples/oidc-login/client/export.aug +1 -0
  316. package/examples/oidc-login/client/export.aug.md +4 -24
  317. package/examples/oidc-login/client/login.aug +7 -6
  318. package/examples/oidc-login/client/login.aug.md +25 -303
  319. package/examples/oidc-login/client/logout.aug +5 -4
  320. package/examples/oidc-login/client/logout.aug.md +13 -135
  321. package/examples/oidc-login/client/protocol.aug +7 -6
  322. package/examples/oidc-login/client/protocol.aug.md +36 -283
  323. package/examples/oidc-login/client/session.aug +5 -4
  324. package/examples/oidc-login/client/session.aug.md +12 -139
  325. package/examples/oidc-login/client/views.aug +3 -2
  326. package/examples/oidc-login/client/views.aug.md +8 -57
  327. package/examples/oidc-login/common/export.aug +1 -0
  328. package/examples/oidc-login/common/export.aug.md +5 -27
  329. package/examples/oidc-login/common/headers.aug +4 -3
  330. package/examples/oidc-login/common/headers.aug.md +9 -67
  331. package/examples/oidc-login/common/keys.aug +6 -5
  332. package/examples/oidc-login/common/keys.aug.md +29 -165
  333. package/examples/oidc-login/common/settings.aug +2 -1
  334. package/examples/oidc-login/common/settings.aug.md +5 -39
  335. package/examples/oidc-login/common/views.aug +2 -1
  336. package/examples/oidc-login/common/views.aug.md +4 -28
  337. package/examples/oidc-login/main.aug +6 -16
  338. package/examples/oidc-login/main.aug.md +17 -146
  339. package/examples/oidc-login/main.yaml +7 -0
  340. package/examples/oidc-login/provider/authorization.aug +7 -6
  341. package/examples/oidc-login/provider/authorization.aug.md +23 -238
  342. package/examples/oidc-login/provider/contracts.aug +1 -0
  343. package/examples/oidc-login/provider/contracts.aug.md +23 -158
  344. package/examples/oidc-login/provider/credentials.aug +3 -2
  345. package/examples/oidc-login/provider/credentials.aug.md +9 -53
  346. package/examples/oidc-login/provider/discovery.aug +4 -3
  347. package/examples/oidc-login/provider/discovery.aug.md +11 -118
  348. package/examples/oidc-login/provider/export.aug +1 -0
  349. package/examples/oidc-login/provider/export.aug.md +6 -34
  350. package/examples/oidc-login/provider/token.aug +6 -5
  351. package/examples/oidc-login/provider/token.aug.md +16 -204
  352. package/examples/oidc-login/provider/userinfo.aug +4 -3
  353. package/examples/oidc-login/provider/userinfo.aug.md +10 -92
  354. package/examples/oidc-login/provider/views.aug +3 -2
  355. package/examples/oidc-login/provider/views.aug.md +8 -52
  356. package/examples/ownership/.aug-spec/manifest.json +1 -1
  357. package/examples/ownership/counter.aug +3 -2
  358. package/examples/ownership/counter.aug.md +12 -66
  359. package/examples/ownership/main.aug +1 -0
  360. package/examples/ownership/main.aug.md +6 -31
  361. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  362. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  363. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  364. package/examples/ownership-transfer/main.aug +1 -0
  365. package/examples/ownership-transfer/main.aug.md +9 -53
  366. package/examples/ownership-transfer/resource.aug +2 -1
  367. package/examples/ownership-transfer/resource.aug.md +12 -71
  368. package/examples/packages/app/.aug-spec/manifest.json +1 -1
  369. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
  370. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
  371. package/examples/packages/app/main.aug +1 -0
  372. package/examples/packages/app/main.aug.md +6 -26
  373. package/examples/packages/math/.aug-spec/manifest.json +1 -1
  374. package/examples/packages/math/aug-package.json +1 -1
  375. package/examples/packages/math/src/arithmetic.aug +2 -1
  376. package/examples/packages/math/src/arithmetic.aug.md +9 -51
  377. package/examples/packages/math/src/export.aug +1 -0
  378. package/examples/packages/math/src/export.aug.md +3 -13
  379. package/examples/visibility/.aug-spec/manifest.json +1 -1
  380. package/examples/visibility/counter.aug +4 -3
  381. package/examples/visibility/counter.aug.md +12 -68
  382. package/examples/visibility/main.aug +1 -0
  383. package/examples/visibility/main.aug.md +6 -32
  384. package/examples/weather-api/.aug-spec/manifest.json +8 -0
  385. package/examples/weather-api/AGENTS.md +17 -0
  386. package/examples/weather-api/README.md +19 -0
  387. package/examples/weather-api/forecasts.aug +47 -0
  388. package/examples/weather-api/forecasts.aug.md +32 -0
  389. package/examples/weather-api/main.aug +4 -0
  390. package/examples/weather-api/main.aug.md +15 -0
  391. package/examples/weather-api/main.yaml +5 -0
  392. package/examples/weather-api/weather.http +5 -0
  393. package/package.json +3 -4
  394. package/scripts/bootstrap-native.mjs +181 -106
  395. package/scripts/native-setup.mjs +98 -0
  396. package/scripts/native-toolchain.mjs +28 -0
  397. package/src/builtins.js +1 -1
  398. package/src/checker.js +259 -72
  399. package/src/cli.js +114 -20
  400. package/src/codegen.js +1 -1
  401. package/src/config.js +1 -1
  402. package/src/contracts.js +10 -0
  403. package/src/editor.js +71 -16
  404. package/src/fixes.js +90 -2
  405. package/src/formatter.js +19 -8
  406. package/src/git-packages.js +110 -0
  407. package/src/help.js +24 -23
  408. package/src/http-contracts.js +14 -0
  409. package/src/http-policies.js +5 -5
  410. package/src/libraries.js +1 -1
  411. package/src/lsp.js +14 -5
  412. package/src/native.js +19 -13
  413. package/src/navigation.js +4 -2
  414. package/src/openapi.js +5 -4
  415. package/src/package-locking.js +45 -0
  416. package/src/package-manager.js +251 -67
  417. package/src/parser.js +13 -5
  418. package/src/policies.js +3 -3
  419. package/src/project-init.js +78 -4
  420. package/src/project.js +9 -7
  421. package/src/semantic.js +46 -2
  422. package/src/snippets.js +59 -0
  423. package/src/spec-hints.js +56 -0
  424. package/src/spec-tree.js +241 -0
  425. package/src/spec.js +626 -303
  426. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
  427. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
  428. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
  429. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
  430. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
  431. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
  432. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
  433. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
  434. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
  435. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
  436. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
  437. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
  438. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
  439. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
  440. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  441. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  442. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  443. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  444. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  445. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  446. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  447. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  448. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
  449. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
  450. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
  451. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
  452. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
  453. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
  454. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  455. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  456. /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
  457. /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  458. /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  459. /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
@@ -31,6 +31,7 @@ pageClass: aug-example-page
31
31
  ::: code-group
32
32
 
33
33
  ```aug [Indentation]
34
+ // aug-spec: "interceptors.aug.md" explains this file. Read it before changes; refresh with aug spec.
34
35
  import Console from august.io
35
36
  import Logger from logging
36
37
  /** Raised when a numeric input fails validation. */
@@ -43,7 +44,7 @@ ValidationError(string message) implements Error:
43
44
  */
44
45
  interceptor Audit<T>(resolve Logger logger):
45
46
  /** Wrap a call without changing its result. */
46
- around(resolve Console console) returns T uses Console.write:
47
+ around(resolve Console console):
47
48
  logger.log(message="before")
48
49
  T result = next()
49
50
  logger.log(message="after")
@@ -54,7 +55,7 @@ interceptor Positive<T>():
54
55
  * @param y The target argument selected by a mapping such as y=x.
55
56
  * @throws ValidationError When the selected value is negative.
56
57
  */
57
- around(int y) returns T unless ValidationError:
58
+ around(int y) returns T:
58
59
  if y < 0:
59
60
  throw ValidationError(message="value must be nonnegative")
60
61
  return next()
@@ -66,6 +67,7 @@ interceptor AddOne<T>():
66
67
  ```
67
68
 
68
69
  ```aug [Braces]
70
+ // aug-spec: "interceptors.aug.md" explains this file. Read it before changes; refresh with aug spec.
69
71
  import Console from august.io
70
72
  import Logger from logging
71
73
  /** Raised when a numeric input fails validation. */
@@ -79,7 +81,7 @@ ValidationError(string message) implements Error {
79
81
  */
80
82
  interceptor Audit<T>(resolve Logger logger) {
81
83
  /** Wrap a call without changing its result. */
82
- around(resolve Console console) returns T uses Console.write {
84
+ around(resolve Console console) {
83
85
  logger.log(message="before")
84
86
  T result = next()
85
87
  logger.log(message="after")
@@ -92,7 +94,7 @@ interceptor Positive<T>() {
92
94
  * @param y The target argument selected by a mapping such as y=x.
93
95
  * @throws ValidationError When the selected value is negative.
94
96
  */
95
- around(int y) returns T unless ValidationError {
97
+ around(int y) returns T {
96
98
  if y < 0 {
97
99
  throw ValidationError(message="value must be nonnegative")
98
100
  }
@@ -116,168 +118,42 @@ interceptor AddOne<T>() {
116
118
 
117
119
  ## Compiled specification {#specification}
118
120
 
119
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
120
-
121
- ### In this file
122
-
123
- - [`ValidationError`](interceptors.md#symbol-ValidationError) is a class implementing `Error`.
124
- - [`Audit`](interceptors.md#symbol-Audit) is an interceptor.
125
- - [`Positive`](interceptors.md#symbol-Positive) is an interceptor.
126
- - [`AddOne`](interceptors.md#symbol-AddOne) is an interceptor.
127
-
128
- ### `ValidationError` {#symbol-ValidationError}
129
-
130
- [source](interceptors.md#code)
131
-
132
- Behavioral class.
133
-
134
- Satisfies `Error`.
135
-
136
- **Author documentation**
137
-
138
- Raised when a numeric input fails validation.
139
-
140
- **Inputs**
141
-
142
- - `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
143
-
144
- ### `Audit` {#symbol-Audit}
145
-
146
- [source](interceptors.md#code)
147
-
148
- Function or constructor middleware.
121
+ ### `ValidationError` · class · [source](interceptors.md#code) {#symbol-ValidationError}
149
122
 
150
- Type parameters: `T`.
123
+ Raised when a numeric input fails validation. It implements `Error`. It takes `message` as a string, kept read-only.
151
124
 
152
- **Author documentation**
125
+ ### `Audit` · interceptor · [source](interceptors.md#code) {#symbol-Audit}
153
126
 
154
127
  Logs before and after a successful call.
155
- Generic T is inferred from the annotated function or constructor.
156
-
157
- **Parameters**
158
- - `logger`: Shared application logger, injected for each fresh instance.
159
-
160
- **Inputs**
161
-
162
- - `logger` ([`Logger`](logging.md#symbol-Logger)) — injected; callers omit it — stored as `logger` and read-only after initialization.
163
-
164
- Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
165
-
166
- #### `Audit.around` {#symbol-Audit.around}
167
-
168
- [source](interceptors.md#code)
169
-
170
- **Inputs**
171
-
172
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
173
-
174
- Returns: `T`.
175
-
176
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
177
-
178
- **What it does**
179
-
180
- - Call [`Logger.log`](logging.md#symbol-Logger.log) on `logger` with `message` = `"before"`; inject `console` from `console`.
181
- - Set `result` of type `T` to call `next`.
182
- - Call [`Logger.log`](logging.md#symbol-Logger.log) on `logger` with `message` = `"after"`; inject `console` from `console`.
183
- - Return `result`.
184
-
185
- **Author documentation**
186
-
187
- Wrap a call without changing its result.
188
-
189
- ### `Positive` {#symbol-Positive}
190
-
191
- [source](interceptors.md#code)
192
-
193
- Function or constructor middleware.
194
-
195
- Type parameters: `T`.
196
-
197
- **Author documentation**
198
-
199
- Rejects negative numbers before the target executes.
200
-
201
- Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
202
-
203
- #### `Positive.around` {#symbol-Positive.around}
204
-
205
- [source](interceptors.md#code)
206
-
207
- **Inputs**
208
-
209
- - `y` (`int`) — required labeled input.
210
-
211
- Returns: `T`.
212
-
213
- Can fail with `ValidationError`. Callers must catch or propagate these errors.
214
-
215
- **What it does**
216
-
217
- - If `y` is less than `0`:
218
- - Fail with call [`ValidationError`](interceptors.md#symbol-ValidationError) with `message` = `"value must be nonnegative"`. Transfer control to a matching catch or propagate the failure.
219
- - Return call `next`.
220
-
221
- **Author documentation**
222
-
223
- **Parameters**
224
- - `y`: The target argument selected by a mapping such as y=x.
225
-
226
- **Throws**
227
- - `ValidationError`: When the selected value is negative.
228
-
229
- ### `AddOne` {#symbol-AddOne}
230
-
231
- [source](interceptors.md#code)
232
-
233
- Function or constructor middleware.
234
-
235
- Type parameters: `T`.
236
-
237
- **Author documentation**
238
-
239
- Adds one to the selected input before forwarding the call.
240
-
241
- Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
242
-
243
- #### `AddOne.around` {#symbol-AddOne.around}
244
-
245
- [source](interceptors.md#code)
246
-
247
- **Inputs**
248
-
249
- - `y` (`int`) — required labeled input.
250
-
251
- Returns: `T`.
128
+ Generic T is inferred from the annotated function or constructor. The type parameters are `T`.
252
129
 
253
- **What it does**
130
+ The `logger` dependency is injected as [`Logger`](logging.md#symbol-Logger) and stored read-only. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
254
131
 
255
- - Return call `next` with `y` = (`y` plus `1`).
132
+ #### `Audit.around` · [source](interceptors.md#code) {#symbol-Audit.around}
256
133
 
257
- **Author documentation**
134
+ Wrap a call without changing its result. It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection.
258
135
 
259
- **Parameters**
260
- - `y`: The input to increment.
136
+ It passes `"before"` to [`logger.log`](logging.md#symbol-Logger.log), using injected `console`. It sets `result` of type `T` to `next`. It passes `"after"` to [`logger.log`](logging.md#symbol-Logger.log), using injected `console`. It returns `result`.
261
137
 
262
- ### Dependencies used by this file
138
+ ### `Positive` · interceptor · [source](interceptors.md#code) {#symbol-Positive}
263
139
 
264
- Only referenced types and operations appear here. Each name links to its complete specification.
140
+ Rejects negative numbers before the target executes. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
265
141
 
266
- #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
142
+ #### `Positive.around` · [source](interceptors.md#code) {#symbol-Positive.around}
267
143
 
268
- Capability interface from `august.io`.
144
+ It takes `y` as an integer (the target argument selected by a mapping such as y=x). Failures can raise [`ValidationError`](interceptors.md#symbol-ValidationError) (when the selected value is negative). If `y` is negative, it raises a [`ValidationError`](interceptors.md#symbol-ValidationError) with `message` `"value must be nonnegative"`. It returns `next`.
269
145
 
270
- - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
146
+ ### `AddOne` · interceptor · [source](interceptors.md#code) {#symbol-AddOne}
271
147
 
272
- #### [`Logger`](logging.md#symbol-Logger)
148
+ Adds one to the selected input before forwarding the call. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
273
149
 
274
- Interface from `logging`.
150
+ #### `AddOne.around` · [source](interceptors.md#code) {#symbol-AddOne.around}
275
151
 
276
- - [`Logger.log`](logging.md#symbol-Logger.log) (`message`: `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).
152
+ It takes `y` as an integer (the input to increment). It returns `next` with `y` from `y` plus `1`.
277
153
 
278
- ### Shared language rules
154
+ ### Dependencies
279
155
 
280
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
156
+ 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`](logging.md#symbol-Logger) ([`log`](logging.md#symbol-Logger.log)) from `logging`.
281
157
 
282
158
  ::::
283
159
 
@@ -31,6 +31,7 @@ pageClass: aug-example-page
31
31
  ::: code-group
32
32
 
33
33
  ```aug [Indentation]
34
+ // aug-spec: "logging.aug.md" explains this file. Read it before changes; refresh with aug spec.
34
35
  import Console from august.io
35
36
  /** Writes a message to the application log. */
36
37
  interface Logger:
@@ -38,11 +39,12 @@ interface Logger:
38
39
  log(resolve Console console, string message) uses Console.write
39
40
  /** Console logger shared by interceptor instances and the application. */
40
41
  ConsoleLogger() implements Logger:
41
- log(resolve Console console, string message) uses Console.write:
42
+ log(resolve Console console, string message):
42
43
  console.write(value=message)
43
44
  ```
44
45
 
45
46
  ```aug [Braces]
47
+ // aug-spec: "logging.aug.md" explains this file. Read it before changes; refresh with aug spec.
46
48
  import Console from august.io
47
49
  /** Writes a message to the application log. */
48
50
  interface Logger {
@@ -51,7 +53,7 @@ interface Logger {
51
53
  }
52
54
  /** Console logger shared by interceptor instances and the application. */
53
55
  ConsoleLogger() implements Logger {
54
- log(resolve Console console, string message) uses Console.write {
56
+ log(resolve Console console, string message) {
55
57
  console.write(value=message)
56
58
  }
57
59
  }
@@ -65,90 +67,25 @@ ConsoleLogger() implements Logger {
65
67
 
66
68
  ## Compiled specification {#specification}
67
69
 
68
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
69
-
70
- ### In this file
71
-
72
- - [`Logger`](logging.md#symbol-Logger) is an interface.
73
- - [`ConsoleLogger`](logging.md#symbol-ConsoleLogger) is a class implementing `Logger`.
74
-
75
- ### `Logger` {#symbol-Logger}
76
-
77
- [source](logging.md#code)
78
-
79
- Interface.
80
-
81
- **Author documentation**
70
+ ### `Logger` · interface · [source](logging.md#code) {#symbol-Logger}
82
71
 
83
72
  Writes a message to the application log.
84
73
 
85
- #### `Logger.log` {#symbol-Logger.log}
86
-
87
- [source](logging.md#code)
88
-
89
- **Inputs**
90
-
91
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
92
- - `message` (`string`) — required labeled input.
93
-
94
- Returns: no value.
95
-
96
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
97
-
98
- Interface contract. A selected implementation supplies the behavior.
99
-
100
- **Author documentation**
101
-
102
- **Parameters**
103
- - `message`: Text to display.
104
-
105
- ### `ConsoleLogger` {#symbol-ConsoleLogger}
106
-
107
- [source](logging.md#code)
108
-
109
- Behavioral class.
110
-
111
- Satisfies [`Logger`](logging.md#symbol-Logger).
112
-
113
- **Author documentation**
114
-
115
- Console logger shared by interceptor instances and the application.
116
-
117
- #### `ConsoleLogger.log` {#symbol-ConsoleLogger.log}
118
-
119
- [source](logging.md#code)
120
-
121
- **Inputs**
122
-
123
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
124
- - `message` (`string`) — required labeled input.
125
-
126
- Returns: no value.
127
-
128
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
129
-
130
- **What it does**
131
-
132
- - Call [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `message`.
133
-
134
- **Author documentation**
135
-
136
- **Parameters**
137
- - `message`: Text to display.
74
+ #### `Logger.log` · [source](logging.md#code) {#symbol-Logger.log}
138
75
 
139
- ### Dependencies used by this file
76
+ It takes `message` as a string (Text to display). 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).
140
77
 
141
- Only referenced types and operations appear here. Each name links to its complete specification.
78
+ ### `ConsoleLogger` · class · [source](logging.md#code) {#symbol-ConsoleLogger}
142
79
 
143
- #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
80
+ Console logger shared by interceptor instances and the application. It implements [`Logger`](logging.md#symbol-Logger).
144
81
 
145
- Capability interface from `august.io`.
82
+ #### `ConsoleLogger.log` · [source](logging.md#code) {#symbol-ConsoleLogger.log}
146
83
 
147
- - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
84
+ It takes `message` as a string (Text to display). 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).
148
85
 
149
- ### Shared language rules
86
+ ### Dependencies
150
87
 
151
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
88
+ 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`.
152
89
 
153
90
  ::::
154
91
 
@@ -31,6 +31,7 @@ pageClass: aug-example-page
31
31
  ::: code-group
32
32
 
33
33
  ```aug [Indentation]
34
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
34
35
  import Console and SystemConsole from august.io
35
36
  implement Console with SystemConsole
36
37
  import Logger from logging
@@ -52,6 +53,7 @@ catch ValidationError error:
52
53
  ```
53
54
 
54
55
  ```aug [Braces]
56
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
55
57
  import Console and SystemConsole from august.io
56
58
  implement Console with SystemConsole
57
59
  import Logger from logging
@@ -84,78 +86,21 @@ catch ValidationError error {
84
86
 
85
87
  ## Compiled specification {#specification}
86
88
 
87
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
89
+ ### Providers
88
90
 
89
- ### In this file
91
+ `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.md#symbol-ConsoleLogger). The same instance is shared.
90
92
 
91
- - Register 2 dependency providers before startup.
92
- - Run startup operations with checked error recovery.
93
- - Run 2 other startup steps in source order.
93
+ ### Startup
94
94
 
95
- ### Dependency providers
95
+ It prints [`describe`](app.md#symbol-describe) with `label` `"value"` and `x` `6` using injected `Logger` for `logger` and `Console` for `console`. If this work raises [`ValidationError`](interceptors.md#symbol-ValidationError), it prints `"rejected"`. It sets `greeter` to a [`Greeter`](app.md#symbol-Greeter) with `name` `"AugScript"` using injected `Logger` for `_logger`. It prints [`greeter.greet`](app.md#symbol-Greeter.greet) using injected `Logger` for `logger` and `Console` for `console`.
96
96
 
97
- Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
97
+ It tries to call [`describe`](app.md#symbol-describe) with `x` `-1` and `label` `"invalid"` using injected `Logger` for `logger` and `Console` for `console`. If this work raises [`ValidationError`](interceptors.md#symbol-ValidationError), it prints `"rejected"`.
98
98
 
99
- - Provide [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
100
- - Provide [`ConsoleLogger`](logging.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
99
+ ### Dependencies
101
100
 
102
- ### Startup, in source order
101
+ It uses [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app.md#symbol-Greeter) ([`greet`](app.md#symbol-Greeter.greet)) and [`describe`](app.md#symbol-describe) from `app`. It uses [`ValidationError`](interceptors.md#symbol-ValidationError) from `interceptors`. It uses [`ConsoleLogger`](logging.md#symbol-ConsoleLogger) from `logging`.
103
102
 
104
- - Try these operations:
105
- - Call `print` with `value` = call [`describe`](app.md#symbol-describe) with `label` = `"value"`; `x` = `6`; inject `logger` from `Logger`, `console` from `Console`.
106
- - If they fail with [`ValidationError`](interceptors.md#symbol-ValidationError), name the failure `error` and recover:
107
- - Call `print` with `value` = `"rejected"`.
108
- - Set `greeter` to call [`Greeter`](app.md#symbol-Greeter) with `name` = `"AugScript"`; inject `_logger` from `Logger`.
109
- - Call `print` with `value` = call [`Greeter.greet`](app.md#symbol-Greeter.greet) on `greeter`; inject `logger` from `Logger`, `console` from `Console`.
110
- - Try these operations:
111
- - Call [`describe`](app.md#symbol-describe) with `x` = `-1`; `label` = `"invalid"`; inject `logger` from `Logger`, `console` from `Console`.
112
- - If they fail with [`ValidationError`](interceptors.md#symbol-ValidationError), name the failure `error` and recover:
113
- - Call `print` with `value` = `"rejected"`.
114
-
115
- ### Dependencies used by this file
116
-
117
- Only referenced types and operations appear here. Each name links to its complete specification.
118
-
119
- #### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
120
-
121
- Class from `august.io`.
122
-
123
- Used as a type or provider.
124
-
125
- #### [`Greeter`](app.md#symbol-Greeter)
126
-
127
- Class from `app`.
128
-
129
- - Construct with `name`: `string` → [`Greeter`](app.md#symbol-Greeter).
130
- - [`Greeter.greet`](app.md#symbol-Greeter.greet) (no caller inputs) → `string`; inject `logger`: [`Logger`](logging.md#symbol-Logger), `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).
131
-
132
- #### [`describe`](app.md#symbol-describe)
133
-
134
- Function from `app`.
135
-
136
- - [`describe`](app.md#symbol-describe) (`x`: `int`, `label`: `string`) → `string`; inject `logger`: [`Logger`](logging.md#symbol-Logger), `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); can fail with `ValidationError`.
137
-
138
- #### [`ValidationError`](interceptors.md#symbol-ValidationError)
139
-
140
- Class from `interceptors`.
141
-
142
- Used as a type or provider.
143
-
144
- #### [`ConsoleLogger`](logging.md#symbol-ConsoleLogger)
145
-
146
- Class from `logging`.
147
-
148
- Used as a type or provider.
149
-
150
- ### Built-in operations used by this file
151
-
152
- - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
153
-
154
- [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
155
-
156
- ### Shared language rules
157
-
158
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
103
+ Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
159
104
 
160
105
  ::::
161
106
 
@@ -29,10 +29,12 @@ pageClass: aug-example-page
29
29
  ::: code-group
30
30
 
31
31
  ```aug [Indentation]
32
+ // aug-spec: "data.aug.md" explains this file. Read it before changes; refresh with aug spec.
32
33
  record Payload(int id, string message, List<int> values)
33
34
  ```
34
35
 
35
36
  ```aug [Braces]
37
+ // aug-spec: "data.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
38
  record Payload(int id, string message, List<int> values)
37
39
  ```
38
40
 
@@ -44,27 +46,9 @@ record Payload(int id, string message, List<int> values)
44
46
 
45
47
  ## Compiled specification {#specification}
46
48
 
47
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
49
+ ### `Payload` · immutable record · [source](data.md#code) {#symbol-Payload}
48
50
 
49
- ### In this file
50
-
51
- - [`Payload`](data.md#symbol-Payload) is an immutable record.
52
-
53
- ### `Payload` {#symbol-Payload}
54
-
55
- [source](data.md#code)
56
-
57
- Immutable record.
58
-
59
- **Inputs**
60
-
61
- - `id` (`int`) — required labeled input — stored as `id` and read-only after initialization.
62
- - `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
63
- - `values` (`List<int>`) — required labeled input — stored as `values` and read-only after initialization.
64
-
65
- ### Shared language rules
66
-
67
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
51
+ It takes `id` as an integer, kept read-only, `message` as a string, kept read-only, and `values` as `List<int>`, kept read-only.
68
52
 
69
53
  ::::
70
54
 
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: "packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug · JSON benchmark"
3
+ generated: true
4
+ source: "benchmarks/json/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/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
+ # `packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug`
14
+
15
+ [JSON benchmark](../../../../../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
+ extern C value pure _aug_json_parse(string input) returns Json unless JsonError
29
+ /** Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError. */
30
+ parse(string input) returns Json unless JsonError:
31
+ unsafe:
32
+ return _aug_json_parse(input)
33
+ ```
34
+
35
+ ```aug [Braces]
36
+ extern C value pure _aug_json_parse(string input) returns Json unless JsonError
37
+ /** Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError. */
38
+ parse(string input) returns Json unless JsonError {
39
+ unsafe {
40
+ return _aug_json_parse(input)
41
+ }
42
+ }
43
+ ```
44
+
45
+ :::
46
+
47
+ ::::
48
+
49
+ :::: example-spec
50
+
51
+ ## Compiled specification {#specification}
52
+
53
+ ### `parse` · [source](contracts.md#code) {#symbol-parse}
54
+
55
+ Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError. It takes `input` as a string. Failures can raise `JsonError`.
56
+
57
+ Within an unsafe block, it returns [`_aug_json_parse`](contracts.md#symbol-_aug_json_parse) with `input`. Native operations must satisfy their declared C contracts.
58
+
59
+ ### `_aug_json_parse` · [source](contracts.md#code) {#symbol-_aug_json_parse}
60
+
61
+ It is private to its defining scope. It takes `input` as a string. It returns `Json`. Failures can raise `JsonError`.
62
+
63
+ Native C implementation; only its declared contract is visible here.
64
+
65
+ ::::
66
+
67
+ :::::
@@ -12,22 +12,24 @@ outline: [2, 3]
12
12
 
13
13
  Parse, decode, and serialize a typed record 5,000 times.
14
14
 
15
- Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
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
 
19
19
  - [`main.aug`](main.md)
20
20
  - [`data.aug`](data.md)
21
21
 
22
+ - [`main.yaml`](main-yaml.md)
22
23
 
23
24
  ## Try this project
24
25
 
25
- From a repository checkout with August installed:
26
+ [Download this project](/downloads/json-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
27
 
27
28
  ```sh
28
- aug check benchmarks/json
29
- aug spec benchmarks/json
30
- aug run benchmarks/json
29
+ cd json-benchmark
30
+ aug check .
31
+ aug spec .
32
+ aug run .
31
33
  ```
32
34
 
33
35
  See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "main.yaml · JSON benchmark"
3
+ generated: true
4
+ source: "benchmarks/json/main.yaml"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ ---
10
+
11
+ # `main.yaml`
12
+
13
+ [JSON benchmark](index.md) · Project configuration
14
+
15
+ ```yaml
16
+
17
+
18
+ packages:
19
+ json: "https://github.com/GreenPandaStudios/augscript/src/stdlib/json#v0.19.0"
20
+ ```