@greenpandastudios/aug-cli 0.19.0

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 (414) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/THIRD_PARTY_NOTICES.md +18 -0
  4. package/bin/aug.mjs +3 -0
  5. package/docs/api/crypto.md +351 -0
  6. package/docs/api/io.md +207 -0
  7. package/docs/api/json.md +21 -0
  8. package/docs/api/memory.md +109 -0
  9. package/docs/api/time.md +54 -0
  10. package/docs/api/web.md +184 -0
  11. package/docs/assets/benchmarks/execution.svg +2978 -0
  12. package/docs/assets/benchmarks/http.svg +1674 -0
  13. package/docs/assets/benchmarks/improvements.svg +2315 -0
  14. package/docs/assets/benchmarks/memory.svg +1891 -0
  15. package/docs/benchmark-baseline.json +1087 -0
  16. package/docs/benchmark-results.json +91123 -0
  17. package/docs/benchmarks.json +38 -0
  18. package/docs/compatibility.md +42 -0
  19. package/docs/concurrency-implementation.md +18 -0
  20. package/docs/diagnostics.md +97 -0
  21. package/docs/docker.md +35 -0
  22. package/docs/example-projects.json +26 -0
  23. package/docs/examples/approved-design/counters.md +253 -0
  24. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
  25. package/docs/examples/approved-design/domain/app.md +165 -0
  26. package/docs/examples/approved-design/domain/export.md +83 -0
  27. package/docs/examples/approved-design/domain/models.md +80 -0
  28. package/docs/examples/approved-design/domain/numbers.md +248 -0
  29. package/docs/examples/approved-design/index.md +39 -0
  30. package/docs/examples/approved-design/main-yaml.md +24 -0
  31. package/docs/examples/approved-design/main.md +215 -0
  32. package/docs/examples/benchmark/index.md +33 -0
  33. package/docs/examples/benchmark/main-yaml.md +17 -0
  34. package/docs/examples/benchmark/main.md +117 -0
  35. package/docs/examples/cli-args/index.md +32 -0
  36. package/docs/examples/cli-args/main.md +107 -0
  37. package/docs/examples/collections/index.md +32 -0
  38. package/docs/examples/collections/main.md +118 -0
  39. package/docs/examples/collections-benchmark/index.md +34 -0
  40. package/docs/examples/collections-benchmark/main.md +115 -0
  41. package/docs/examples/cpu-benchmark/index.md +34 -0
  42. package/docs/examples/cpu-benchmark/main.md +90 -0
  43. package/docs/examples/developer-workflow/calculator.md +357 -0
  44. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
  45. package/docs/examples/developer-workflow/index.md +37 -0
  46. package/docs/examples/developer-workflow/logging/console.md +124 -0
  47. package/docs/examples/developer-workflow/logging/export.md +70 -0
  48. package/docs/examples/developer-workflow/logging/logger.md +111 -0
  49. package/docs/examples/developer-workflow/main.md +172 -0
  50. package/docs/examples/drop/index.md +33 -0
  51. package/docs/examples/drop/main.md +85 -0
  52. package/docs/examples/drop/resource.md +95 -0
  53. package/docs/examples/errors/errors.md +85 -0
  54. package/docs/examples/errors/index.md +33 -0
  55. package/docs/examples/errors/main.md +92 -0
  56. package/docs/examples/ffi/index.md +33 -0
  57. package/docs/examples/ffi/main.md +75 -0
  58. package/docs/examples/ffi/native.md +93 -0
  59. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
  60. package/docs/examples/generic-di/index.md +33 -0
  61. package/docs/examples/generic-di/main.md +111 -0
  62. package/docs/examples/generic-di/types.md +180 -0
  63. package/docs/examples/generics/index.md +33 -0
  64. package/docs/examples/generics/main.md +120 -0
  65. package/docs/examples/generics/types.md +189 -0
  66. package/docs/examples/hello/app/export.md +67 -0
  67. package/docs/examples/hello/app/greeter.md +190 -0
  68. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
  69. package/docs/examples/hello/index.md +37 -0
  70. package/docs/examples/hello/logging/console.md +121 -0
  71. package/docs/examples/hello/logging/export.md +71 -0
  72. package/docs/examples/hello/logging/logger.md +120 -0
  73. package/docs/examples/hello/main.md +115 -0
  74. package/docs/examples/http-benchmark/index.md +35 -0
  75. package/docs/examples/http-benchmark/main.md +79 -0
  76. package/docs/examples/http-benchmark/routes.md +88 -0
  77. package/docs/examples/index.md +60 -0
  78. package/docs/examples/interceptors/app.md +250 -0
  79. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
  80. package/docs/examples/interceptors/index.md +35 -0
  81. package/docs/examples/interceptors/interceptors.md +284 -0
  82. package/docs/examples/interceptors/logging.md +155 -0
  83. package/docs/examples/interceptors/main.md +162 -0
  84. package/docs/examples/json-benchmark/data.md +71 -0
  85. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
  86. package/docs/examples/json-benchmark/index.md +35 -0
  87. package/docs/examples/json-benchmark/main.md +131 -0
  88. package/docs/examples/new-syntax/console.md +118 -0
  89. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
  90. package/docs/examples/new-syntax/greeter.md +145 -0
  91. package/docs/examples/new-syntax/index.md +36 -0
  92. package/docs/examples/new-syntax/logger.md +111 -0
  93. package/docs/examples/new-syntax/main.md +135 -0
  94. package/docs/examples/new-syntax/math.md +79 -0
  95. package/docs/examples/oidc-login/client/contracts.md +151 -0
  96. package/docs/examples/oidc-login/client/endpoints.md +263 -0
  97. package/docs/examples/oidc-login/client/export.md +107 -0
  98. package/docs/examples/oidc-login/client/login.md +515 -0
  99. package/docs/examples/oidc-login/client/logout.md +249 -0
  100. package/docs/examples/oidc-login/client/protocol.md +595 -0
  101. package/docs/examples/oidc-login/client/session.md +297 -0
  102. package/docs/examples/oidc-login/client/views.md +144 -0
  103. package/docs/examples/oidc-login/common/export.md +115 -0
  104. package/docs/examples/oidc-login/common/headers.md +162 -0
  105. package/docs/examples/oidc-login/common/keys.md +336 -0
  106. package/docs/examples/oidc-login/common/settings.md +116 -0
  107. package/docs/examples/oidc-login/common/views.md +103 -0
  108. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
  109. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
  110. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
  111. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
  112. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
  113. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
  114. package/docs/examples/oidc-login/index.md +57 -0
  115. package/docs/examples/oidc-login/main-yaml.md +28 -0
  116. package/docs/examples/oidc-login/main.md +283 -0
  117. package/docs/examples/oidc-login/provider/authorization.md +457 -0
  118. package/docs/examples/oidc-login/provider/contracts.md +267 -0
  119. package/docs/examples/oidc-login/provider/credentials.md +148 -0
  120. package/docs/examples/oidc-login/provider/discovery.md +215 -0
  121. package/docs/examples/oidc-login/provider/export.md +131 -0
  122. package/docs/examples/oidc-login/provider/token.md +364 -0
  123. package/docs/examples/oidc-login/provider/userinfo.md +228 -0
  124. package/docs/examples/oidc-login/provider/views.md +137 -0
  125. package/docs/examples/ownership/counter.md +140 -0
  126. package/docs/examples/ownership/index.md +33 -0
  127. package/docs/examples/ownership/main.md +90 -0
  128. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
  129. package/docs/examples/ownership-transfer/index.md +33 -0
  130. package/docs/examples/ownership-transfer/main.md +125 -0
  131. package/docs/examples/ownership-transfer/resource.md +150 -0
  132. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
  133. package/docs/examples/packages-app/index.md +34 -0
  134. package/docs/examples/packages-app/main-yaml.md +18 -0
  135. package/docs/examples/packages-app/main.md +80 -0
  136. package/docs/examples/packages-math/aug-package-json.md +24 -0
  137. package/docs/examples/packages-math/index.md +36 -0
  138. package/docs/examples/packages-math/package-json.md +25 -0
  139. package/docs/examples/packages-math/src/arithmetic.md +121 -0
  140. package/docs/examples/packages-math/src/export.md +63 -0
  141. package/docs/examples/startup-benchmark/index.md +34 -0
  142. package/docs/examples/startup-benchmark/main.md +68 -0
  143. package/docs/examples/visibility/counter.md +142 -0
  144. package/docs/examples/visibility/index.md +33 -0
  145. package/docs/examples/visibility/main.md +96 -0
  146. package/docs/examples.json +47 -0
  147. package/docs/getting-started.md +5 -0
  148. package/docs/grammar.md +136 -0
  149. package/docs/implementation-map.md +106 -0
  150. package/docs/index.md +46 -0
  151. package/docs/language-conformance.md +30 -0
  152. package/docs/language-constructs.md +1461 -0
  153. package/docs/language-design-audit.md +147 -0
  154. package/docs/maintaining-docs.md +43 -0
  155. package/docs/packages.md +184 -0
  156. package/docs/performance.md +535 -0
  157. package/docs/production-readiness.md +39 -0
  158. package/docs/reference.md +361 -0
  159. package/docs/release-review.md +23 -0
  160. package/docs/releasing.md +79 -0
  161. package/docs/roadmap.md +13 -0
  162. package/docs/specifications.md +86 -0
  163. package/docs/testing.md +120 -0
  164. package/docs/tooling.md +197 -0
  165. package/docs/web-implementation-plan.md +39 -0
  166. package/docs/web-library-gaps.md +27 -0
  167. package/docs/web.md +197 -0
  168. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  169. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  170. package/examples/approved-design/.aug-spec/manifest.json +14 -0
  171. package/examples/approved-design/counters.aug +22 -0
  172. package/examples/approved-design/counters.aug.md +177 -0
  173. package/examples/approved-design/domain/app.aug +12 -0
  174. package/examples/approved-design/domain/app.aug.md +97 -0
  175. package/examples/approved-design/domain/export.aug +5 -0
  176. package/examples/approved-design/domain/export.aug.md +25 -0
  177. package/examples/approved-design/domain/models.aug +2 -0
  178. package/examples/approved-design/domain/models.aug.md +30 -0
  179. package/examples/approved-design/domain/numbers.aug +29 -0
  180. package/examples/approved-design/domain/numbers.aug.md +141 -0
  181. package/examples/approved-design/main.aug +26 -0
  182. package/examples/approved-design/main.aug.md +108 -0
  183. package/examples/approved-design/main.yaml +8 -0
  184. package/examples/benchmark/.aug-spec/manifest.json +7 -0
  185. package/examples/benchmark/main.aug +17 -0
  186. package/examples/benchmark/main.aug.md +43 -0
  187. package/examples/benchmark/main.yaml +1 -0
  188. package/examples/cli-args/.aug-spec/manifest.json +7 -0
  189. package/examples/cli-args/main.aug +15 -0
  190. package/examples/cli-args/main.aug.md +38 -0
  191. package/examples/collections/.aug-spec/manifest.json +7 -0
  192. package/examples/collections/main.aug +18 -0
  193. package/examples/collections/main.aug.md +43 -0
  194. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  195. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  196. package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
  197. package/examples/developer-workflow/calculator.aug +55 -0
  198. package/examples/developer-workflow/calculator.aug.md +228 -0
  199. package/examples/developer-workflow/logging/console.aug +8 -0
  200. package/examples/developer-workflow/logging/console.aug.md +67 -0
  201. package/examples/developer-workflow/logging/export.aug +2 -0
  202. package/examples/developer-workflow/logging/export.aug.md +19 -0
  203. package/examples/developer-workflow/logging/logger.aug +6 -0
  204. package/examples/developer-workflow/logging/logger.aug.md +57 -0
  205. package/examples/developer-workflow/main.aug +25 -0
  206. package/examples/developer-workflow/main.aug.md +79 -0
  207. package/examples/drop/.aug-spec/manifest.json +8 -0
  208. package/examples/drop/main.aug +3 -0
  209. package/examples/drop/main.aug.md +35 -0
  210. package/examples/drop/resource.aug +8 -0
  211. package/examples/drop/resource.aug.md +44 -0
  212. package/examples/errors/.aug-spec/manifest.json +8 -0
  213. package/examples/errors/errors.aug +6 -0
  214. package/examples/errors/errors.aug.md +33 -0
  215. package/examples/errors/main.aug +7 -0
  216. package/examples/errors/main.aug.md +36 -0
  217. package/examples/ffi/.aug-spec/manifest.json +8 -0
  218. package/examples/ffi/main.aug +2 -0
  219. package/examples/ffi/main.aug.md +27 -0
  220. package/examples/ffi/native.aug +6 -0
  221. package/examples/ffi/native.aug.md +43 -0
  222. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  223. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  224. package/examples/generic-di/.aug-spec/manifest.json +10 -0
  225. package/examples/generic-di/main.aug +9 -0
  226. package/examples/generic-di/main.aug.md +49 -0
  227. package/examples/generic-di/types.aug +17 -0
  228. package/examples/generic-di/types.aug.md +124 -0
  229. package/examples/generics/.aug-spec/manifest.json +8 -0
  230. package/examples/generics/main.aug +9 -0
  231. package/examples/generics/main.aug.md +58 -0
  232. package/examples/generics/types.aug +19 -0
  233. package/examples/generics/types.aug.md +132 -0
  234. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  235. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  236. package/examples/hello/.aug-spec/manifest.json +14 -0
  237. package/examples/hello/app/export.aug +1 -0
  238. package/examples/hello/app/export.aug.md +17 -0
  239. package/examples/hello/app/greeter.aug +22 -0
  240. package/examples/hello/app/greeter.aug.md +109 -0
  241. package/examples/hello/logging/console.aug +7 -0
  242. package/examples/hello/logging/console.aug.md +65 -0
  243. package/examples/hello/logging/export.aug +2 -0
  244. package/examples/hello/logging/export.aug.md +19 -0
  245. package/examples/hello/logging/logger.aug +9 -0
  246. package/examples/hello/logging/logger.aug.md +59 -0
  247. package/examples/hello/main.aug +9 -0
  248. package/examples/hello/main.aug.md +49 -0
  249. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  250. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  251. package/examples/interceptors/.aug-spec/manifest.json +12 -0
  252. package/examples/interceptors/app.aug +28 -0
  253. package/examples/interceptors/app.aug.md +162 -0
  254. package/examples/interceptors/interceptors.aug +40 -0
  255. package/examples/interceptors/interceptors.aug.md +180 -0
  256. package/examples/interceptors/logging.aug +12 -0
  257. package/examples/interceptors/logging.aug.md +96 -0
  258. package/examples/interceptors/main.aug +22 -0
  259. package/examples/interceptors/main.aug.md +76 -0
  260. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  261. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  262. package/examples/new-syntax/.aug-spec/manifest.json +13 -0
  263. package/examples/new-syntax/console.aug +7 -0
  264. package/examples/new-syntax/console.aug.md +63 -0
  265. package/examples/new-syntax/greeter.aug +10 -0
  266. package/examples/new-syntax/greeter.aug.md +89 -0
  267. package/examples/new-syntax/logger.aug +6 -0
  268. package/examples/new-syntax/logger.aug.md +57 -0
  269. package/examples/new-syntax/main.aug +12 -0
  270. package/examples/new-syntax/main.aug.md +64 -0
  271. package/examples/new-syntax/math.aug +3 -0
  272. package/examples/new-syntax/math.aug.md +29 -0
  273. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
  274. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
  275. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
  276. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
  277. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
  278. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
  279. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
  280. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
  281. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
  282. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
  283. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
  284. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
  285. package/examples/oidc-login/.aug-spec/manifest.json +40 -0
  286. package/examples/oidc-login/README.md +29 -0
  287. package/examples/oidc-login/client/contracts.aug +7 -0
  288. package/examples/oidc-login/client/contracts.aug.md +80 -0
  289. package/examples/oidc-login/client/endpoints.aug +21 -0
  290. package/examples/oidc-login/client/endpoints.aug.md +161 -0
  291. package/examples/oidc-login/client/export.aug +7 -0
  292. package/examples/oidc-login/client/export.aug.md +29 -0
  293. package/examples/oidc-login/client/login.aug +58 -0
  294. package/examples/oidc-login/client/login.aug.md +331 -0
  295. package/examples/oidc-login/client/logout.aug +18 -0
  296. package/examples/oidc-login/client/logout.aug.md +150 -0
  297. package/examples/oidc-login/client/protocol.aug +106 -0
  298. package/examples/oidc-login/client/protocol.aug.md +326 -0
  299. package/examples/oidc-login/client/session.aug +34 -0
  300. package/examples/oidc-login/client/session.aug.md +155 -0
  301. package/examples/oidc-login/client/views.aug +21 -0
  302. package/examples/oidc-login/client/views.aug.md +68 -0
  303. package/examples/oidc-login/common/export.aug +9 -0
  304. package/examples/oidc-login/common/export.aug.md +33 -0
  305. package/examples/oidc-login/common/headers.aug +11 -0
  306. package/examples/oidc-login/common/headers.aug.md +79 -0
  307. package/examples/oidc-login/common/keys.aug +37 -0
  308. package/examples/oidc-login/common/keys.aug.md +207 -0
  309. package/examples/oidc-login/common/settings.aug +4 -0
  310. package/examples/oidc-login/common/settings.aug.md +47 -0
  311. package/examples/oidc-login/common/views.aug +16 -0
  312. package/examples/oidc-login/common/views.aug.md +34 -0
  313. package/examples/oidc-login/main.aug +39 -0
  314. package/examples/oidc-login/main.aug.md +166 -0
  315. package/examples/oidc-login/main.yaml +12 -0
  316. package/examples/oidc-login/provider/authorization.aug +59 -0
  317. package/examples/oidc-login/provider/authorization.aug.md +264 -0
  318. package/examples/oidc-login/provider/contracts.aug +15 -0
  319. package/examples/oidc-login/provider/contracts.aug.md +193 -0
  320. package/examples/oidc-login/provider/credentials.aug +10 -0
  321. package/examples/oidc-login/provider/credentials.aug.md +64 -0
  322. package/examples/oidc-login/provider/discovery.aug +13 -0
  323. package/examples/oidc-login/provider/discovery.aug.md +133 -0
  324. package/examples/oidc-login/provider/export.aug +13 -0
  325. package/examples/oidc-login/provider/export.aug.md +41 -0
  326. package/examples/oidc-login/provider/token.aug +37 -0
  327. package/examples/oidc-login/provider/token.aug.md +223 -0
  328. package/examples/oidc-login/provider/userinfo.aug +26 -0
  329. package/examples/oidc-login/provider/userinfo.aug.md +104 -0
  330. package/examples/oidc-login/provider/views.aug +18 -0
  331. package/examples/oidc-login/provider/views.aug.md +63 -0
  332. package/examples/ownership/.aug-spec/manifest.json +8 -0
  333. package/examples/ownership/counter.aug +14 -0
  334. package/examples/ownership/counter.aug.md +85 -0
  335. package/examples/ownership/main.aug +4 -0
  336. package/examples/ownership/main.aug.md +38 -0
  337. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  338. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  339. package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
  340. package/examples/ownership-transfer/main.aug +9 -0
  341. package/examples/ownership-transfer/main.aug.md +63 -0
  342. package/examples/ownership-transfer/resource.aug +16 -0
  343. package/examples/ownership-transfer/resource.aug.md +89 -0
  344. package/examples/packages/README.md +15 -0
  345. package/examples/packages/app/.aug-spec/manifest.json +9 -0
  346. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
  347. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
  348. package/examples/packages/app/main.aug +2 -0
  349. package/examples/packages/app/main.aug.md +33 -0
  350. package/examples/packages/app/main.yaml +2 -0
  351. package/examples/packages/math/.aug-spec/manifest.json +8 -0
  352. package/examples/packages/math/README.md +3 -0
  353. package/examples/packages/math/aug-package.json +8 -0
  354. package/examples/packages/math/package.json +9 -0
  355. package/examples/packages/math/src/arithmetic.aug +8 -0
  356. package/examples/packages/math/src/arithmetic.aug.md +63 -0
  357. package/examples/packages/math/src/export.aug +1 -0
  358. package/examples/packages/math/src/export.aug.md +17 -0
  359. package/examples/visibility/.aug-spec/manifest.json +8 -0
  360. package/examples/visibility/counter.aug +14 -0
  361. package/examples/visibility/counter.aug.md +87 -0
  362. package/examples/visibility/main.aug +7 -0
  363. package/examples/visibility/main.aug.md +39 -0
  364. package/package.json +50 -0
  365. package/runtime/aug_crypto.c +121 -0
  366. package/runtime/aug_html.c +93 -0
  367. package/runtime/aug_http.c +829 -0
  368. package/runtime/aug_json.c +165 -0
  369. package/runtime/aug_runtime.c +792 -0
  370. package/runtime/aug_runtime.h +245 -0
  371. package/runtime/aug_tasks.c +172 -0
  372. package/runtime/aug_time.c +5 -0
  373. package/runtime/aug_values.c +80 -0
  374. package/scripts/bootstrap-native.mjs +121 -0
  375. package/scripts/native-dependencies.lock.json +65 -0
  376. package/scripts/native-home.mjs +11 -0
  377. package/src/actions.js +109 -0
  378. package/src/ast.js +19 -0
  379. package/src/builtins.js +93 -0
  380. package/src/checker.js +2896 -0
  381. package/src/cli.js +344 -0
  382. package/src/codegen.js +1159 -0
  383. package/src/config.js +149 -0
  384. package/src/continuation.js +110 -0
  385. package/src/di.js +24 -0
  386. package/src/documentation.js +27 -0
  387. package/src/editor.js +782 -0
  388. package/src/effects.js +29 -0
  389. package/src/fixes.js +222 -0
  390. package/src/formatter.js +296 -0
  391. package/src/freshness.js +154 -0
  392. package/src/help.js +212 -0
  393. package/src/html.js +27 -0
  394. package/src/http-policies.js +90 -0
  395. package/src/inference.js +16 -0
  396. package/src/interceptors.js +70 -0
  397. package/src/javadoc.js +67 -0
  398. package/src/lexer.js +199 -0
  399. package/src/libraries.js +31 -0
  400. package/src/lsp.js +180 -0
  401. package/src/native.js +144 -0
  402. package/src/navigation.js +162 -0
  403. package/src/openapi.js +220 -0
  404. package/src/ownership.js +232 -0
  405. package/src/package-manager.js +299 -0
  406. package/src/parser.js +1155 -0
  407. package/src/policies.js +130 -0
  408. package/src/project-init.js +19 -0
  409. package/src/project.js +292 -0
  410. package/src/schemas.js +62 -0
  411. package/src/semantic.js +255 -0
  412. package/src/spec.js +738 -0
  413. package/src/testing.js +186 -0
  414. package/src/types.js +10 -0
@@ -0,0 +1,63 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `views.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`ProviderLogin`](views.aug.md#symbol-ProviderLogin) is a function returning `Html`.
10
+ - [`ProviderFailure`](views.aug.md#symbol-ProviderFailure) is a function returning `Html`.
11
+
12
+ <a id="symbol-ProviderLogin"></a>
13
+
14
+ ## `ProviderLogin`
15
+
16
+ [source](views.aug#L3)
17
+
18
+ **Inputs**
19
+
20
+ - `requestId` (`string`) — required labeled input.
21
+ - `csrf` (`string`) — required labeled input.
22
+ - `message` (`string`) — required labeled input.
23
+ - `submit` (`HttpAction`) — required labeled input.
24
+
25
+ Returns: `Html`.
26
+
27
+ **What it does**
28
+
29
+ - Return the server component [`Page`](../common/views.aug.md#symbol-Page) with `title` = `"Sign in with the August provider"` containing the HTML element `p` containing `message` (rendered on the server with embedded text escaped), the HTML element `p` with `style` = `"background:#f3f5f9;padding:12px;border-radius:8px"` containing `Demo account: `, the HTML element `strong` containing `ada` (rendered on the server with embedded text escaped), ` · password `, the HTML element `strong` containing `august-demo` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped), the HTML element `form` with `method` = `"post"`, `action` = `"/provider/login"`, `onSubmit` = `submit` containing the HTML element `input` with `type` = `"hidden"`, `name` = `"request_id"`, `value` = `requestId` (rendered on the server with embedded text escaped), the HTML element `input` with `type` = `"hidden"`, `name` = `"csrf"`, `value` = `csrf` (rendered on the server with embedded text escaped), the HTML element `p` containing the HTML element `label` with `for` = `"username"` containing `Username` (rendered on the server with embedded text escaped), the HTML element `br` (rendered on the server with embedded text escaped), the HTML element `input` with `id` = `"username"`, `name` = `"username"`, `autocomplete` = `"username"`, `value` = `"ada"`, `maxlength` = `"64"`, `required` = `true`, `style` = `"padding:10px;width:90%"` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped), the HTML element `p` containing the HTML element `label` with `for` = `"password"` containing `Password` (rendered on the server with embedded text escaped), the HTML element `br` (rendered on the server with embedded text escaped), the HTML element `input` with `id` = `"password"`, `type` = `"password"`, `name` = `"password"`, `autocomplete` = `"current-password"`, `maxlength` = `"256"`, `required` = `true`, `style` = `"padding:10px;width:90%"` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped), the HTML element `button` with `type` = `"submit"`, `style` = `"padding:12px 20px;border:0;border-radius:9px;background:#4852d7;color:white;font:inherit"` containing `Sign in and return to the app` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped), the HTML element `p` with `style` = `"font-size:14px;color:#677189"` containing `The provider and app run in the same executable. Authorization codes still travel through the OpenID Connect protocol.` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped).
30
+
31
+ **Author documentation**
32
+
33
+ A server form with a checked HTTP action. The browser submits to the provider endpoint.
34
+
35
+ <a id="symbol-ProviderFailure"></a>
36
+
37
+ ## `ProviderFailure`
38
+
39
+ [source](views.aug#L17)
40
+
41
+ **Inputs**
42
+
43
+ - `message` (`string`) — required labeled input.
44
+
45
+ Returns: `Html`.
46
+
47
+ **What it does**
48
+
49
+ - Return the server component [`Page`](../common/views.aug.md#symbol-Page) with `title` = `"Sign-in could not continue"` containing the HTML element `p` containing `message` (rendered on the server with embedded text escaped), the HTML element `a` with `href` = `"/login/start"` containing `Start a new sign-in` (rendered on the server with embedded text escaped) (rendered on the server with embedded text escaped).
50
+
51
+ ## Dependencies used by this file
52
+
53
+ Only referenced types and operations appear here. Each name links to its complete specification.
54
+
55
+ ### [`Page`](../common/views.aug.md#symbol-Page)
56
+
57
+ Function from `common`.
58
+
59
+ - [`Page`](../common/views.aug.md#symbol-Page) (`title`: `string`, `children`: `List<Html>`) → `Html`.
60
+
61
+ ## Shared language rules
62
+
63
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,8 @@
1
+ {
2
+ "format": 1,
3
+ "files": [
4
+ "counter.aug.md",
5
+ "main.aug.md"
6
+ ],
7
+ "digest": "963a9ed380d8c2dcd5cb2f8545a9ace3770b304d6bb172d08a25283afc8b72a7"
8
+ }
@@ -0,0 +1,14 @@
1
+ Counter(mutable int value) implements ICounter {
2
+ increment() changes self {
3
+ borrow self {
4
+ value = value + 1
5
+ }
6
+ }
7
+ read() returns int {
8
+ return value
9
+ }
10
+ }
11
+ interface ICounter {
12
+ increment() changes self
13
+ read() returns int
14
+ }
@@ -0,0 +1,85 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `counter.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`Counter`](counter.aug.md#symbol-Counter) is a class implementing `ICounter`.
10
+ - [`ICounter`](counter.aug.md#symbol-ICounter) is an interface.
11
+
12
+ <a id="symbol-Counter"></a>
13
+
14
+ ## `Counter`
15
+
16
+ [source](counter.aug#L1)
17
+
18
+ Behavioral class.
19
+
20
+ Satisfies [`ICounter`](counter.aug.md#symbol-ICounter).
21
+
22
+ **Inputs**
23
+
24
+ - `value` (`int`) — required labeled input — stored as `value` and mutable.
25
+
26
+ <a id="symbol-Counter.increment"></a>
27
+
28
+ ### `Counter.increment`
29
+
30
+ [source](counter.aug#L2)
31
+
32
+ Returns: no value.
33
+
34
+ May change: `self`.
35
+
36
+ **What it does**
37
+
38
+ - Grant exclusive mutable access to `self` for this block, then end the borrow:
39
+ - Set `value` to `value` plus `1`.
40
+
41
+ <a id="symbol-Counter.read"></a>
42
+
43
+ ### `Counter.read`
44
+
45
+ [source](counter.aug#L7)
46
+
47
+ Returns: `int`.
48
+
49
+ **What it does**
50
+
51
+ - Return `value`.
52
+
53
+ <a id="symbol-ICounter"></a>
54
+
55
+ ## `ICounter`
56
+
57
+ [source](counter.aug#L11)
58
+
59
+ Interface.
60
+
61
+ <a id="symbol-ICounter.increment"></a>
62
+
63
+ ### `ICounter.increment`
64
+
65
+ [source](counter.aug#L12)
66
+
67
+ Returns: no value.
68
+
69
+ May change: `self`.
70
+
71
+ Interface contract. A selected implementation supplies the behavior.
72
+
73
+ <a id="symbol-ICounter.read"></a>
74
+
75
+ ### `ICounter.read`
76
+
77
+ [source](counter.aug#L13)
78
+
79
+ Returns: `int`.
80
+
81
+ Interface contract. A selected implementation supplies the behavior.
82
+
83
+ ## Shared language rules
84
+
85
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,4 @@
1
+ import Counter from counter
2
+ own Counter counter = Counter(value=1)
3
+ counter.increment()
4
+ print(value=counter.read())
@@ -0,0 +1,38 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `main.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - Run 3 other startup steps in source order.
10
+
11
+ ## Startup, in source order
12
+
13
+ - Set `counter` of type [`Counter`](counter.aug.md#symbol-Counter) to call [`Counter`](counter.aug.md#symbol-Counter) with `value` = `1`.
14
+ - This variable owns the value.
15
+ - Call [`Counter.increment`](counter.aug.md#symbol-Counter.increment) on `counter`.
16
+ - Call `print` with `value` = call [`Counter.read`](counter.aug.md#symbol-Counter.read) on `counter`.
17
+
18
+ ## Dependencies used by this file
19
+
20
+ Only referenced types and operations appear here. Each name links to its complete specification.
21
+
22
+ ### [`Counter`](counter.aug.md#symbol-Counter)
23
+
24
+ Class from `counter`.
25
+
26
+ - Construct with `value`: `int` → [`Counter`](counter.aug.md#symbol-Counter).
27
+ - [`Counter.increment`](counter.aug.md#symbol-Counter.increment) (no caller inputs) → `void`; changes `self`.
28
+ - [`Counter.read`](counter.aug.md#symbol-Counter.read) (no caller inputs) → `int`.
29
+
30
+ ## Built-in operations used by this file
31
+
32
+ - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
33
+
34
+ [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
35
+
36
+ ## Shared language rules
37
+
38
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,36 @@
1
+ // Generated by aug spec. This is a copy of the installed dependency source.
2
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
3
+ capability Console:
4
+ /** Write one line of text. @param value Text to display. */
5
+ write<T>(T value) uses Console.write
6
+
7
+ /** The native standard-output adapter. Construction performs no output. */
8
+ SystemConsole() implements Console:
9
+ write<T>(T value):
10
+ print(value=value)
11
+
12
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
13
+ capability FileReader:
14
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
15
+ read(string path) returns string uses FileReader.read unless FileError
16
+
17
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
18
+ capability FileWriter:
19
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
20
+ write(string path, string content) uses FileWriter.write unless FileError
21
+
22
+ /** Native files. Operations are explicit; construction opens no files. */
23
+ LocalFiles() implements FileReader, FileWriter:
24
+ read(string path) returns string unless FileError:
25
+ return read_file(path=path)
26
+ write(string path, string content) unless FileError:
27
+ write_file(path=path, content=content)
28
+
29
+ /** Read command-line input through an explicit dependency. */
30
+ capability Arguments:
31
+ read() returns List<string> uses Arguments.read
32
+
33
+ /** Native command-line arguments. */
34
+ ProcessArguments() implements Arguments:
35
+ read() returns List<string>:
36
+ return arguments()
@@ -0,0 +1,316 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `contracts.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`Console`](contracts.aug.md#symbol-Console) is a capability interface.
10
+ - [`SystemConsole`](contracts.aug.md#symbol-SystemConsole) is a class implementing `Console`.
11
+ - [`FileReader`](contracts.aug.md#symbol-FileReader) is a capability interface.
12
+ - [`FileWriter`](contracts.aug.md#symbol-FileWriter) is a capability interface.
13
+ - [`LocalFiles`](contracts.aug.md#symbol-LocalFiles) is a class implementing `FileReader`, `FileWriter`.
14
+ - [`Arguments`](contracts.aug.md#symbol-Arguments) is a capability interface.
15
+ - [`ProcessArguments`](contracts.aug.md#symbol-ProcessArguments) is a class implementing `Arguments`.
16
+
17
+ <a id="symbol-Console"></a>
18
+
19
+ ## `Console`
20
+
21
+ [source](contracts.aug#L3)
22
+
23
+ Capability interface.
24
+
25
+ **Author documentation**
26
+
27
+ Permission to write to a console, provided by an explicitly selected adapter.
28
+
29
+ <a id="symbol-Console.write"></a>
30
+
31
+ ### `Console.write`
32
+
33
+ [source](contracts.aug#L5)
34
+
35
+ Type parameters: `T`.
36
+
37
+ **Inputs**
38
+
39
+ - `value` (`T`) — required labeled input.
40
+
41
+ Returns: no value.
42
+
43
+ Capabilities: [`Console.write`](contracts.aug.md#symbol-Console.write).
44
+
45
+ Interface contract. A selected implementation supplies the behavior.
46
+
47
+ **Author documentation**
48
+
49
+ Write one line of text.
50
+
51
+ **Parameters**
52
+ - `value`: Text to display.
53
+
54
+ <a id="symbol-SystemConsole"></a>
55
+
56
+ ## `SystemConsole`
57
+
58
+ [source](contracts.aug#L8)
59
+
60
+ Behavioral class.
61
+
62
+ Satisfies [`Console`](contracts.aug.md#symbol-Console).
63
+
64
+ **Author documentation**
65
+
66
+ The native standard-output adapter. Construction performs no output.
67
+
68
+ <a id="symbol-SystemConsole.write"></a>
69
+
70
+ ### `SystemConsole.write`
71
+
72
+ [source](contracts.aug#L9)
73
+
74
+ Type parameters: `T`.
75
+
76
+ **Inputs**
77
+
78
+ - `value` (`T`) — required labeled input.
79
+
80
+ Returns: no value.
81
+
82
+ Capabilities: [`Console.write`](contracts.aug.md#symbol-Console.write).
83
+
84
+ **What it does**
85
+
86
+ - Call `print` with `value` = `value`.
87
+
88
+ **Author documentation**
89
+
90
+ Write one line of text.
91
+
92
+ **Parameters**
93
+ - `value`: Text to display.
94
+
95
+ <a id="symbol-FileReader"></a>
96
+
97
+ ## `FileReader`
98
+
99
+ [source](contracts.aug#L13)
100
+
101
+ Capability interface.
102
+
103
+ **Author documentation**
104
+
105
+ Read UTF-8 text through an explicitly selected filesystem adapter.
106
+
107
+ <a id="symbol-FileReader.read"></a>
108
+
109
+ ### `FileReader.read`
110
+
111
+ [source](contracts.aug#L15)
112
+
113
+ **Inputs**
114
+
115
+ - `path` (`string`) — required labeled input.
116
+
117
+ Returns: `string`.
118
+
119
+ Capabilities: [`FileReader.read`](contracts.aug.md#symbol-FileReader.read).
120
+
121
+ Can fail with `FileError`. Callers must catch or propagate these errors.
122
+
123
+ Interface contract. A selected implementation supplies the behavior.
124
+
125
+ **Author documentation**
126
+
127
+ Read text.
128
+
129
+ **Parameters**
130
+ - `path`: File path.
131
+
132
+ **Throws**
133
+ - `FileError`: The file could not be read.
134
+
135
+ <a id="symbol-FileWriter"></a>
136
+
137
+ ## `FileWriter`
138
+
139
+ [source](contracts.aug#L18)
140
+
141
+ Capability interface.
142
+
143
+ **Author documentation**
144
+
145
+ Write UTF-8 text through an explicitly selected filesystem adapter.
146
+
147
+ <a id="symbol-FileWriter.write"></a>
148
+
149
+ ### `FileWriter.write`
150
+
151
+ [source](contracts.aug#L20)
152
+
153
+ **Inputs**
154
+
155
+ - `path` (`string`) — required labeled input.
156
+ - `content` (`string`) — required labeled input.
157
+
158
+ Returns: no value.
159
+
160
+ Capabilities: [`FileWriter.write`](contracts.aug.md#symbol-FileWriter.write).
161
+
162
+ Can fail with `FileError`. Callers must catch or propagate these errors.
163
+
164
+ Interface contract. A selected implementation supplies the behavior.
165
+
166
+ **Author documentation**
167
+
168
+ Write text.
169
+
170
+ **Parameters**
171
+ - `path`: File path.
172
+ - `content`: Text.
173
+
174
+ **Throws**
175
+ - `FileError`: Writing failed.
176
+
177
+ <a id="symbol-LocalFiles"></a>
178
+
179
+ ## `LocalFiles`
180
+
181
+ [source](contracts.aug#L23)
182
+
183
+ Behavioral class.
184
+
185
+ Satisfies [`FileReader`](contracts.aug.md#symbol-FileReader), [`FileWriter`](contracts.aug.md#symbol-FileWriter).
186
+
187
+ **Author documentation**
188
+
189
+ Native files. Operations are explicit; construction opens no files.
190
+
191
+ <a id="symbol-LocalFiles.read"></a>
192
+
193
+ ### `LocalFiles.read`
194
+
195
+ [source](contracts.aug#L24)
196
+
197
+ **Inputs**
198
+
199
+ - `path` (`string`) — required labeled input.
200
+
201
+ Returns: `string`.
202
+
203
+ Capabilities: [`FileReader.read`](contracts.aug.md#symbol-FileReader.read).
204
+
205
+ Can fail with `FileError`. Callers must catch or propagate these errors.
206
+
207
+ **What it does**
208
+
209
+ - Return call `read_file` with `path` = `path`.
210
+
211
+ **Author documentation**
212
+
213
+ Read text.
214
+
215
+ **Parameters**
216
+ - `path`: File path.
217
+
218
+ **Throws**
219
+ - `FileError`: The file could not be read.
220
+
221
+ <a id="symbol-LocalFiles.write"></a>
222
+
223
+ ### `LocalFiles.write`
224
+
225
+ [source](contracts.aug#L26)
226
+
227
+ **Inputs**
228
+
229
+ - `path` (`string`) — required labeled input.
230
+ - `content` (`string`) — required labeled input.
231
+
232
+ Returns: no value.
233
+
234
+ Capabilities: [`FileWriter.write`](contracts.aug.md#symbol-FileWriter.write).
235
+
236
+ Can fail with `FileError`. Callers must catch or propagate these errors.
237
+
238
+ **What it does**
239
+
240
+ - Call `write_file` with `path` = `path`; `content` = `content`.
241
+
242
+ **Author documentation**
243
+
244
+ Write text.
245
+
246
+ **Parameters**
247
+ - `path`: File path.
248
+ - `content`: Text.
249
+
250
+ **Throws**
251
+ - `FileError`: Writing failed.
252
+
253
+ <a id="symbol-Arguments"></a>
254
+
255
+ ## `Arguments`
256
+
257
+ [source](contracts.aug#L30)
258
+
259
+ Capability interface.
260
+
261
+ **Author documentation**
262
+
263
+ Read command-line input through an explicit dependency.
264
+
265
+ <a id="symbol-Arguments.read"></a>
266
+
267
+ ### `Arguments.read`
268
+
269
+ [source](contracts.aug#L31)
270
+
271
+ Returns: `List<string>`.
272
+
273
+ Capabilities: [`Arguments.read`](contracts.aug.md#symbol-Arguments.read).
274
+
275
+ Interface contract. A selected implementation supplies the behavior.
276
+
277
+ <a id="symbol-ProcessArguments"></a>
278
+
279
+ ## `ProcessArguments`
280
+
281
+ [source](contracts.aug#L34)
282
+
283
+ Behavioral class.
284
+
285
+ Satisfies [`Arguments`](contracts.aug.md#symbol-Arguments).
286
+
287
+ **Author documentation**
288
+
289
+ Native command-line arguments.
290
+
291
+ <a id="symbol-ProcessArguments.read"></a>
292
+
293
+ ### `ProcessArguments.read`
294
+
295
+ [source](contracts.aug#L35)
296
+
297
+ Returns: `List<string>`.
298
+
299
+ Capabilities: [`Arguments.read`](contracts.aug.md#symbol-Arguments.read).
300
+
301
+ **What it does**
302
+
303
+ - Return call `arguments`.
304
+
305
+ ## Built-in operations used by this file
306
+
307
+ - `arguments` (no inputs) → `List<string>`: Composition arguments. Other callables receive the Arguments capability.
308
+ - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
309
+ - `read_file` (`path`: `string`) → `string`: Root-only UTF-8 text input. Other callables receive FileReader. Invalid Unicode and NUL raise FileError. Can fail with `FileError`.
310
+ - `write_file` (`path`: `string`, `content`: `string`) → `void`: Root-only UTF-8 text output. Other callables receive FileWriter. Can fail with `FileError`.
311
+
312
+ [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
313
+
314
+ ## Shared language rules
315
+
316
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,10 @@
1
+ {
2
+ "format": 1,
3
+ "files": [
4
+ ".aug-spec/august/0.19.0/io/contracts.aug",
5
+ ".aug-spec/august/0.19.0/io/contracts.aug.md",
6
+ "main.aug.md",
7
+ "resource.aug.md"
8
+ ],
9
+ "digest": "0647bd67edecc9f86adc5dfccefbfac3fb6aa5d23e2e010c4bb4e657d37bb259"
10
+ }
@@ -0,0 +1,9 @@
1
+ import Console and SystemConsole from august.io
2
+ implement Console with SystemConsole
3
+ import Resource from resource
4
+ import make from resource
5
+ import consume from resource
6
+ own Resource first = make()
7
+ consume(value=first)
8
+ own Resource second = make()
9
+ print(value="end of main")
@@ -0,0 +1,63 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `main.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - Register 1 dependency provider before startup.
10
+ - Run 4 other startup steps in source order.
11
+
12
+ ## Dependency providers
13
+
14
+ Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
15
+
16
+ - Provide [`SystemConsole`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
17
+
18
+ ## Startup, in source order
19
+
20
+ - Set `first` of type [`Resource`](resource.aug.md#symbol-Resource) to call [`make`](resource.aug.md#symbol-make).
21
+ - This variable owns the value.
22
+ - Call [`consume`](resource.aug.md#symbol-consume) with `value` = `first`; inject `console` from `Console`.
23
+ - Set `second` of type [`Resource`](resource.aug.md#symbol-Resource) to call [`make`](resource.aug.md#symbol-make).
24
+ - This variable owns the value.
25
+ - Call `print` with `value` = `"end of main"`.
26
+
27
+ ## Dependencies used by this file
28
+
29
+ Only referenced types and operations appear here. Each name links to its complete specification.
30
+
31
+ ### [`SystemConsole`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-SystemConsole)
32
+
33
+ Class from `august.io`.
34
+
35
+ Used as a type or provider.
36
+
37
+ ### [`Resource`](resource.aug.md#symbol-Resource)
38
+
39
+ Class from `resource`.
40
+
41
+ Used as a type or provider.
42
+
43
+ ### [`consume`](resource.aug.md#symbol-consume)
44
+
45
+ Function from `resource`.
46
+
47
+ - [`consume`](resource.aug.md#symbol-consume) (`value`: [`Resource`](resource.aug.md#symbol-Resource)) → `void`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
48
+
49
+ ### [`make`](resource.aug.md#symbol-make)
50
+
51
+ Function from `resource`.
52
+
53
+ - [`make`](resource.aug.md#symbol-make) (no caller inputs) → [`Resource`](resource.aug.md#symbol-Resource).
54
+
55
+ ## Built-in operations used by this file
56
+
57
+ - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
58
+
59
+ [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
60
+
61
+ ## Shared language rules
62
+
63
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,16 @@
1
+ import Console from august.io
2
+ Resource() implements IResource {
3
+ drop() {
4
+ pass
5
+ }
6
+ }
7
+ interface IResource {
8
+ pass
9
+ }
10
+ make() returns own Resource {
11
+ own Resource value = Resource()
12
+ return value
13
+ }
14
+ consume(resolve Console console, own Resource value) uses Console.write {
15
+ console.write(value="consumed")
16
+ }