@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
@@ -1,791 +0,0 @@
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
- - [`Crypto`](contracts.aug.md#symbol-Crypto) is a capability interface.
10
- - [`_aug_crypto_random`](contracts.aug.md#symbol-_aug_crypto_random) is a function returning `Bytes`.
11
- - [`_aug_crypto_sha256`](contracts.aug.md#symbol-_aug_crypto_sha256) is a function returning `Bytes`.
12
- - [`_aug_crypto_generate_rsa`](contracts.aug.md#symbol-_aug_crypto_generate_rsa) is a function returning `RsaPrivateKey`.
13
- - [`_aug_crypto_public_rsa`](contracts.aug.md#symbol-_aug_crypto_public_rsa) is a function returning `RsaPublicKey`.
14
- - [`_aug_crypto_sign_rsa`](contracts.aug.md#symbol-_aug_crypto_sign_rsa) is a function returning `Bytes`.
15
- - [`_aug_crypto_verify_rsa`](contracts.aug.md#symbol-_aug_crypto_verify_rsa) is a function returning `bool`.
16
- - [`_aug_crypto_decode_base64url`](contracts.aug.md#symbol-_aug_crypto_decode_base64url) is a function returning `Bytes`.
17
- - [`_aug_crypto_equal`](contracts.aug.md#symbol-_aug_crypto_equal) is a function returning `bool`.
18
- - [`_aug_crypto_export_rsa`](contracts.aug.md#symbol-_aug_crypto_export_rsa) is a function returning `Tuple<Bytes,Bytes>`.
19
- - [`_aug_crypto_import_rsa`](contracts.aug.md#symbol-_aug_crypto_import_rsa) is a function returning `RsaPublicKey`.
20
- - [`_aug_crypto_password_hash`](contracts.aug.md#symbol-_aug_crypto_password_hash) is a function returning `Bytes`.
21
- - [`GnuTlsCrypto`](contracts.aug.md#symbol-GnuTlsCrypto) is a class implementing `Crypto`.
22
-
23
- <a id="symbol-Crypto"></a>
24
-
25
- ## `Crypto`
26
-
27
- [source](contracts.aug#L3)
28
-
29
- Capability interface.
30
-
31
- **Author documentation**
32
-
33
- Explicit permission for native cryptographic operations. Keys and bytes are immutable.
34
-
35
- <a id="symbol-Crypto.random"></a>
36
-
37
- ### `Crypto.random`
38
-
39
- [source](contracts.aug#L5)
40
-
41
- **Inputs**
42
-
43
- - `size` (`int`) — required labeled input.
44
-
45
- Returns: `Bytes`.
46
-
47
- Capabilities: [`Crypto.random`](contracts.aug.md#symbol-Crypto.random).
48
-
49
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
50
-
51
- Interface contract. A selected implementation supplies the behavior.
52
-
53
- **Author documentation**
54
-
55
- Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
56
-
57
- <a id="symbol-Crypto.sha256"></a>
58
-
59
- ### `Crypto.sha256`
60
-
61
- [source](contracts.aug#L7)
62
-
63
- **Inputs**
64
-
65
- - `input` (`Bytes`) — required labeled input.
66
-
67
- Returns: `Bytes`.
68
-
69
- Capabilities: [`Crypto.sha256`](contracts.aug.md#symbol-Crypto.sha256).
70
-
71
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
72
-
73
- Interface contract. A selected implementation supplies the behavior.
74
-
75
- **Author documentation**
76
-
77
- Hash the complete input using SHA-256.
78
-
79
- <a id="symbol-Crypto.generateRsa"></a>
80
-
81
- ### `Crypto.generateRsa`
82
-
83
- [source](contracts.aug#L9)
84
-
85
- Returns: `RsaPrivateKey`.
86
-
87
- Capabilities: [`Crypto.generateRsa`](contracts.aug.md#symbol-Crypto.generateRsa).
88
-
89
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
90
-
91
- Interface contract. A selected implementation supplies the behavior.
92
-
93
- **Author documentation**
94
-
95
- Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
96
-
97
- <a id="symbol-Crypto.publicRsa"></a>
98
-
99
- ### `Crypto.publicRsa`
100
-
101
- [source](contracts.aug#L11)
102
-
103
- **Inputs**
104
-
105
- - `key` (`RsaPrivateKey`) — required labeled input.
106
-
107
- Returns: `RsaPublicKey`.
108
-
109
- Capabilities: [`Crypto.publicRsa`](contracts.aug.md#symbol-Crypto.publicRsa).
110
-
111
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
112
-
113
- Interface contract. A selected implementation supplies the behavior.
114
-
115
- **Author documentation**
116
-
117
- Export the corresponding public key as an opaque immutable value.
118
-
119
- <a id="symbol-Crypto.signRsa"></a>
120
-
121
- ### `Crypto.signRsa`
122
-
123
- [source](contracts.aug#L13)
124
-
125
- **Inputs**
126
-
127
- - `key` (`RsaPrivateKey`) — required labeled input.
128
- - `input` (`Bytes`) — required labeled input.
129
-
130
- Returns: `Bytes`.
131
-
132
- Capabilities: [`Crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa).
133
-
134
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
135
-
136
- Interface contract. A selected implementation supplies the behavior.
137
-
138
- **Author documentation**
139
-
140
- Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
141
-
142
- <a id="symbol-Crypto.verifyRsa"></a>
143
-
144
- ### `Crypto.verifyRsa`
145
-
146
- [source](contracts.aug#L15)
147
-
148
- **Inputs**
149
-
150
- - `publicKey` (`RsaPublicKey`) — required labeled input.
151
- - `input` (`Bytes`) — required labeled input.
152
- - `signature` (`Bytes`) — required labeled input.
153
-
154
- Returns: `bool`.
155
-
156
- Capabilities: [`Crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa).
157
-
158
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
159
-
160
- Interface contract. A selected implementation supplies the behavior.
161
-
162
- **Author documentation**
163
-
164
- Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
165
-
166
- <a id="symbol-Crypto.decodeBase64url"></a>
167
-
168
- ### `Crypto.decodeBase64url`
169
-
170
- [source](contracts.aug#L17)
171
-
172
- **Inputs**
173
-
174
- - `input` (`string`) — required labeled input.
175
-
176
- Returns: `Bytes`.
177
-
178
- Capabilities: [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url).
179
-
180
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
181
-
182
- Interface contract. A selected implementation supplies the behavior.
183
-
184
- **Author documentation**
185
-
186
- Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
187
-
188
- <a id="symbol-Crypto.equal"></a>
189
-
190
- ### `Crypto.equal`
191
-
192
- [source](contracts.aug#L19)
193
-
194
- **Inputs**
195
-
196
- - `left` (`Bytes`) — required labeled input.
197
- - `right` (`Bytes`) — required labeled input.
198
-
199
- Returns: `bool`.
200
-
201
- Capabilities: [`Crypto.equal`](contracts.aug.md#symbol-Crypto.equal).
202
-
203
- Interface contract. A selected implementation supplies the behavior.
204
-
205
- **Author documentation**
206
-
207
- Compare bytes without early exit on their contents. Length remains observable.
208
-
209
- <a id="symbol-Crypto.exportRsa"></a>
210
-
211
- ### `Crypto.exportRsa`
212
-
213
- [source](contracts.aug#L21)
214
-
215
- **Inputs**
216
-
217
- - `publicKey` (`RsaPublicKey`) — required labeled input.
218
-
219
- Returns: `Tuple<Bytes,Bytes>`.
220
-
221
- Capabilities: [`Crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa).
222
-
223
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
224
-
225
- Interface contract. A selected implementation supplies the behavior.
226
-
227
- **Author documentation**
228
-
229
- Export unsigned big-endian modulus and exponent for an RSA JWK.
230
-
231
- <a id="symbol-Crypto.importRsa"></a>
232
-
233
- ### `Crypto.importRsa`
234
-
235
- [source](contracts.aug#L23)
236
-
237
- **Inputs**
238
-
239
- - `modulus` (`Bytes`) — required labeled input.
240
- - `exponent` (`Bytes`) — required labeled input.
241
-
242
- Returns: `RsaPublicKey`.
243
-
244
- Capabilities: [`Crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa).
245
-
246
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
247
-
248
- Interface contract. A selected implementation supplies the behavior.
249
-
250
- **Author documentation**
251
-
252
- Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
253
-
254
- <a id="symbol-Crypto.passwordHash"></a>
255
-
256
- ### `Crypto.passwordHash`
257
-
258
- [source](contracts.aug#L25)
259
-
260
- **Inputs**
261
-
262
- - `password` (`Bytes`) — required labeled input.
263
- - `salt` (`Bytes`) — required labeled input.
264
- - `iterations` (`int`) — required labeled input.
265
-
266
- Returns: `Bytes`.
267
-
268
- Capabilities: [`Crypto.passwordHash`](contracts.aug.md#symbol-Crypto.passwordHash).
269
-
270
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
271
-
272
- Interface contract. A selected implementation supplies the behavior.
273
-
274
- **Author documentation**
275
-
276
- PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
277
-
278
- <a id="symbol-GnuTlsCrypto"></a>
279
-
280
- ## `GnuTlsCrypto`
281
-
282
- [source](contracts.aug#L40)
283
-
284
- Behavioral class.
285
-
286
- Satisfies [`Crypto`](contracts.aug.md#symbol-Crypto).
287
-
288
- **Author documentation**
289
-
290
- GnuTLS-backed capability adapter. Its constructor performs no I/O or key generation.
291
-
292
- <a id="symbol-GnuTlsCrypto.random"></a>
293
-
294
- ### `GnuTlsCrypto.random`
295
-
296
- [source](contracts.aug#L41)
297
-
298
- **Inputs**
299
-
300
- - `size` (`int`) — required labeled input.
301
-
302
- Returns: `Bytes`.
303
-
304
- Capabilities: [`Crypto.random`](contracts.aug.md#symbol-Crypto.random).
305
-
306
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
307
-
308
- **What it does**
309
-
310
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
311
- - Return call [`_aug_crypto_random`](contracts.aug.md#symbol-_aug_crypto_random) with `size` = `size`.
312
-
313
- **Author documentation**
314
-
315
- Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
316
-
317
- <a id="symbol-GnuTlsCrypto.sha256"></a>
318
-
319
- ### `GnuTlsCrypto.sha256`
320
-
321
- [source](contracts.aug#L44)
322
-
323
- **Inputs**
324
-
325
- - `input` (`Bytes`) — required labeled input.
326
-
327
- Returns: `Bytes`.
328
-
329
- Capabilities: [`Crypto.sha256`](contracts.aug.md#symbol-Crypto.sha256).
330
-
331
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
332
-
333
- **What it does**
334
-
335
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
336
- - Return call [`_aug_crypto_sha256`](contracts.aug.md#symbol-_aug_crypto_sha256) with `input` = `input`.
337
-
338
- **Author documentation**
339
-
340
- Hash the complete input using SHA-256.
341
-
342
- <a id="symbol-GnuTlsCrypto.generateRsa"></a>
343
-
344
- ### `GnuTlsCrypto.generateRsa`
345
-
346
- [source](contracts.aug#L47)
347
-
348
- Returns: `RsaPrivateKey`.
349
-
350
- Capabilities: [`Crypto.generateRsa`](contracts.aug.md#symbol-Crypto.generateRsa).
351
-
352
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
353
-
354
- **What it does**
355
-
356
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
357
- - Return call [`_aug_crypto_generate_rsa`](contracts.aug.md#symbol-_aug_crypto_generate_rsa).
358
-
359
- **Author documentation**
360
-
361
- Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
362
-
363
- <a id="symbol-GnuTlsCrypto.publicRsa"></a>
364
-
365
- ### `GnuTlsCrypto.publicRsa`
366
-
367
- [source](contracts.aug#L50)
368
-
369
- **Inputs**
370
-
371
- - `key` (`RsaPrivateKey`) — required labeled input.
372
-
373
- Returns: `RsaPublicKey`.
374
-
375
- Capabilities: [`Crypto.publicRsa`](contracts.aug.md#symbol-Crypto.publicRsa).
376
-
377
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
378
-
379
- **What it does**
380
-
381
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
382
- - Return call [`_aug_crypto_public_rsa`](contracts.aug.md#symbol-_aug_crypto_public_rsa) with `key` = `key`.
383
-
384
- **Author documentation**
385
-
386
- Export the corresponding public key as an opaque immutable value.
387
-
388
- <a id="symbol-GnuTlsCrypto.signRsa"></a>
389
-
390
- ### `GnuTlsCrypto.signRsa`
391
-
392
- [source](contracts.aug#L53)
393
-
394
- **Inputs**
395
-
396
- - `key` (`RsaPrivateKey`) — required labeled input.
397
- - `input` (`Bytes`) — required labeled input.
398
-
399
- Returns: `Bytes`.
400
-
401
- Capabilities: [`Crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa).
402
-
403
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
404
-
405
- **What it does**
406
-
407
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
408
- - Return call [`_aug_crypto_sign_rsa`](contracts.aug.md#symbol-_aug_crypto_sign_rsa) with `key` = `key`; `input` = `input`.
409
-
410
- **Author documentation**
411
-
412
- Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
413
-
414
- <a id="symbol-GnuTlsCrypto.verifyRsa"></a>
415
-
416
- ### `GnuTlsCrypto.verifyRsa`
417
-
418
- [source](contracts.aug#L56)
419
-
420
- **Inputs**
421
-
422
- - `publicKey` (`RsaPublicKey`) — required labeled input.
423
- - `input` (`Bytes`) — required labeled input.
424
- - `signature` (`Bytes`) — required labeled input.
425
-
426
- Returns: `bool`.
427
-
428
- Capabilities: [`Crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa).
429
-
430
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
431
-
432
- **What it does**
433
-
434
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
435
- - Return call [`_aug_crypto_verify_rsa`](contracts.aug.md#symbol-_aug_crypto_verify_rsa) with `publicKey` = `publicKey`; `input` = `input`; `signature` = `signature`.
436
-
437
- **Author documentation**
438
-
439
- Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
440
-
441
- <a id="symbol-GnuTlsCrypto.decodeBase64url"></a>
442
-
443
- ### `GnuTlsCrypto.decodeBase64url`
444
-
445
- [source](contracts.aug#L59)
446
-
447
- **Inputs**
448
-
449
- - `input` (`string`) — required labeled input.
450
-
451
- Returns: `Bytes`.
452
-
453
- Capabilities: [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url).
454
-
455
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
456
-
457
- **What it does**
458
-
459
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
460
- - Return call [`_aug_crypto_decode_base64url`](contracts.aug.md#symbol-_aug_crypto_decode_base64url) with `input` = `input`.
461
-
462
- **Author documentation**
463
-
464
- Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
465
-
466
- <a id="symbol-GnuTlsCrypto.equal"></a>
467
-
468
- ### `GnuTlsCrypto.equal`
469
-
470
- [source](contracts.aug#L62)
471
-
472
- **Inputs**
473
-
474
- - `left` (`Bytes`) — required labeled input.
475
- - `right` (`Bytes`) — required labeled input.
476
-
477
- Returns: `bool`.
478
-
479
- Capabilities: [`Crypto.equal`](contracts.aug.md#symbol-Crypto.equal).
480
-
481
- **What it does**
482
-
483
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
484
- - Return call [`_aug_crypto_equal`](contracts.aug.md#symbol-_aug_crypto_equal) with `left` = `left`; `right` = `right`.
485
-
486
- **Author documentation**
487
-
488
- Compare bytes without early exit on their contents. Length remains observable.
489
-
490
- <a id="symbol-GnuTlsCrypto.exportRsa"></a>
491
-
492
- ### `GnuTlsCrypto.exportRsa`
493
-
494
- [source](contracts.aug#L65)
495
-
496
- **Inputs**
497
-
498
- - `publicKey` (`RsaPublicKey`) — required labeled input.
499
-
500
- Returns: `Tuple<Bytes,Bytes>`.
501
-
502
- Capabilities: [`Crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa).
503
-
504
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
505
-
506
- **What it does**
507
-
508
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
509
- - Return call [`_aug_crypto_export_rsa`](contracts.aug.md#symbol-_aug_crypto_export_rsa) with `publicKey` = `publicKey`.
510
-
511
- **Author documentation**
512
-
513
- Export unsigned big-endian modulus and exponent for an RSA JWK.
514
-
515
- <a id="symbol-GnuTlsCrypto.importRsa"></a>
516
-
517
- ### `GnuTlsCrypto.importRsa`
518
-
519
- [source](contracts.aug#L68)
520
-
521
- **Inputs**
522
-
523
- - `modulus` (`Bytes`) — required labeled input.
524
- - `exponent` (`Bytes`) — required labeled input.
525
-
526
- Returns: `RsaPublicKey`.
527
-
528
- Capabilities: [`Crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa).
529
-
530
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
531
-
532
- **What it does**
533
-
534
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
535
- - Return call [`_aug_crypto_import_rsa`](contracts.aug.md#symbol-_aug_crypto_import_rsa) with `modulus` = `modulus`; `exponent` = `exponent`.
536
-
537
- **Author documentation**
538
-
539
- Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
540
-
541
- <a id="symbol-GnuTlsCrypto.passwordHash"></a>
542
-
543
- ### `GnuTlsCrypto.passwordHash`
544
-
545
- [source](contracts.aug#L71)
546
-
547
- **Inputs**
548
-
549
- - `password` (`Bytes`) — required labeled input.
550
- - `salt` (`Bytes`) — required labeled input.
551
- - `iterations` (`int`) — required labeled input.
552
-
553
- Returns: `Bytes`.
554
-
555
- Capabilities: [`Crypto.passwordHash`](contracts.aug.md#symbol-Crypto.passwordHash).
556
-
557
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
558
-
559
- **What it does**
560
-
561
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
562
- - Return call [`_aug_crypto_password_hash`](contracts.aug.md#symbol-_aug_crypto_password_hash) with `password` = `password`; `salt` = `salt`; `iterations` = `iterations`.
563
-
564
- **Author documentation**
565
-
566
- PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
567
-
568
- <a id="symbol-_aug_crypto_random"></a>
569
-
570
- ## `_aug_crypto_random`
571
-
572
- [source](contracts.aug#L27)
573
-
574
- Private to its defining scope.
575
-
576
- **Inputs**
577
-
578
- - `size` (`int`) — required labeled input.
579
-
580
- Returns: `Bytes`.
581
-
582
- Capabilities: [`Crypto.random`](contracts.aug.md#symbol-Crypto.random).
583
-
584
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
585
-
586
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
587
-
588
- <a id="symbol-_aug_crypto_sha256"></a>
589
-
590
- ## `_aug_crypto_sha256`
591
-
592
- [source](contracts.aug#L28)
593
-
594
- Private to its defining scope.
595
-
596
- **Inputs**
597
-
598
- - `input` (`Bytes`) — required labeled input.
599
-
600
- Returns: `Bytes`.
601
-
602
- Capabilities: [`Crypto.sha256`](contracts.aug.md#symbol-Crypto.sha256).
603
-
604
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
605
-
606
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
607
-
608
- <a id="symbol-_aug_crypto_generate_rsa"></a>
609
-
610
- ## `_aug_crypto_generate_rsa`
611
-
612
- [source](contracts.aug#L29)
613
-
614
- Private to its defining scope.
615
-
616
- Returns: `RsaPrivateKey`.
617
-
618
- Capabilities: [`Crypto.generateRsa`](contracts.aug.md#symbol-Crypto.generateRsa).
619
-
620
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
621
-
622
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
623
-
624
- <a id="symbol-_aug_crypto_public_rsa"></a>
625
-
626
- ## `_aug_crypto_public_rsa`
627
-
628
- [source](contracts.aug#L30)
629
-
630
- Private to its defining scope.
631
-
632
- **Inputs**
633
-
634
- - `key` (`RsaPrivateKey`) — required labeled input.
635
-
636
- Returns: `RsaPublicKey`.
637
-
638
- Capabilities: [`Crypto.publicRsa`](contracts.aug.md#symbol-Crypto.publicRsa).
639
-
640
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
641
-
642
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
643
-
644
- <a id="symbol-_aug_crypto_sign_rsa"></a>
645
-
646
- ## `_aug_crypto_sign_rsa`
647
-
648
- [source](contracts.aug#L31)
649
-
650
- Private to its defining scope.
651
-
652
- **Inputs**
653
-
654
- - `key` (`RsaPrivateKey`) — required labeled input.
655
- - `input` (`Bytes`) — required labeled input.
656
-
657
- Returns: `Bytes`.
658
-
659
- Capabilities: [`Crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa).
660
-
661
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
662
-
663
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
664
-
665
- <a id="symbol-_aug_crypto_verify_rsa"></a>
666
-
667
- ## `_aug_crypto_verify_rsa`
668
-
669
- [source](contracts.aug#L32)
670
-
671
- Private to its defining scope.
672
-
673
- **Inputs**
674
-
675
- - `publicKey` (`RsaPublicKey`) — required labeled input.
676
- - `input` (`Bytes`) — required labeled input.
677
- - `signature` (`Bytes`) — required labeled input.
678
-
679
- Returns: `bool`.
680
-
681
- Capabilities: [`Crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa).
682
-
683
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
684
-
685
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
686
-
687
- <a id="symbol-_aug_crypto_decode_base64url"></a>
688
-
689
- ## `_aug_crypto_decode_base64url`
690
-
691
- [source](contracts.aug#L33)
692
-
693
- Private to its defining scope.
694
-
695
- **Inputs**
696
-
697
- - `input` (`string`) — required labeled input.
698
-
699
- Returns: `Bytes`.
700
-
701
- Capabilities: [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url).
702
-
703
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
704
-
705
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
706
-
707
- <a id="symbol-_aug_crypto_equal"></a>
708
-
709
- ## `_aug_crypto_equal`
710
-
711
- [source](contracts.aug#L34)
712
-
713
- Private to its defining scope.
714
-
715
- **Inputs**
716
-
717
- - `left` (`Bytes`) — required labeled input.
718
- - `right` (`Bytes`) — required labeled input.
719
-
720
- Returns: `bool`.
721
-
722
- Capabilities: [`Crypto.equal`](contracts.aug.md#symbol-Crypto.equal).
723
-
724
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
725
-
726
- <a id="symbol-_aug_crypto_export_rsa"></a>
727
-
728
- ## `_aug_crypto_export_rsa`
729
-
730
- [source](contracts.aug#L35)
731
-
732
- Private to its defining scope.
733
-
734
- **Inputs**
735
-
736
- - `publicKey` (`RsaPublicKey`) — required labeled input.
737
-
738
- Returns: `Tuple<Bytes,Bytes>`.
739
-
740
- Capabilities: [`Crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa).
741
-
742
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
743
-
744
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
745
-
746
- <a id="symbol-_aug_crypto_import_rsa"></a>
747
-
748
- ## `_aug_crypto_import_rsa`
749
-
750
- [source](contracts.aug#L36)
751
-
752
- Private to its defining scope.
753
-
754
- **Inputs**
755
-
756
- - `modulus` (`Bytes`) — required labeled input.
757
- - `exponent` (`Bytes`) — required labeled input.
758
-
759
- Returns: `RsaPublicKey`.
760
-
761
- Capabilities: [`Crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa).
762
-
763
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
764
-
765
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
766
-
767
- <a id="symbol-_aug_crypto_password_hash"></a>
768
-
769
- ## `_aug_crypto_password_hash`
770
-
771
- [source](contracts.aug#L37)
772
-
773
- Private to its defining scope.
774
-
775
- **Inputs**
776
-
777
- - `password` (`Bytes`) — required labeled input.
778
- - `salt` (`Bytes`) — required labeled input.
779
- - `iterations` (`int`) — required labeled input.
780
-
781
- Returns: `Bytes`.
782
-
783
- Capabilities: [`Crypto.passwordHash`](contracts.aug.md#symbol-Crypto.passwordHash).
784
-
785
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
786
-
787
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
788
-
789
- ## Shared language rules
790
-
791
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.