@alchemy.run/pkg 2.0.0-beta.79 → 2.0.0-beta.81

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 (57) hide show
  1. package/README.md +17 -5
  2. package/dist/Manifest.d.ts.map +1 -1
  3. package/dist/Manifest.js.map +1 -1
  4. package/dist/Protocol.d.ts +3 -3
  5. package/dist/Protocol.d.ts.map +1 -1
  6. package/dist/Protocol.js +6 -15
  7. package/dist/Protocol.js.map +1 -1
  8. package/dist/Registry/Bindings.d.ts.map +1 -1
  9. package/dist/Registry/Bindings.js.map +1 -1
  10. package/dist/Registry/GitHub.d.ts +7 -7
  11. package/dist/Registry/GitHub.d.ts.map +1 -1
  12. package/dist/Registry/GitHub.js +20 -45
  13. package/dist/Registry/GitHub.js.map +1 -1
  14. package/dist/Registry/Handler.d.ts +5 -5
  15. package/dist/Registry/Handler.d.ts.map +1 -1
  16. package/dist/Registry/Handler.js +26 -27
  17. package/dist/Registry/Handler.js.map +1 -1
  18. package/dist/Registry/KVCache.d.ts.map +1 -1
  19. package/dist/Registry/KVCache.js +1 -1
  20. package/dist/Registry/KVCache.js.map +1 -1
  21. package/dist/Registry/Sweep.d.ts +1 -1
  22. package/dist/Registry/Sweep.d.ts.map +1 -1
  23. package/dist/Registry/Sweep.js +3 -8
  24. package/dist/Registry/Sweep.js.map +1 -1
  25. package/dist/Registry/Tags.d.ts +8 -8
  26. package/dist/Registry/Tags.d.ts.map +1 -1
  27. package/dist/Registry/Tags.js +1 -1
  28. package/dist/Registry/Tags.js.map +1 -1
  29. package/dist/Registry.d.ts +2 -2
  30. package/dist/Registry.d.ts.map +1 -1
  31. package/dist/Registry.js +1 -1
  32. package/dist/Registry.js.map +1 -1
  33. package/dist/cli/bin.d.ts +8 -4
  34. package/dist/cli/bin.d.ts.map +1 -1
  35. package/dist/cli/bin.js +22 -10
  36. package/dist/cli/bin.js.map +1 -1
  37. package/dist/cli/pack.d.ts +11 -4
  38. package/dist/cli/pack.d.ts.map +1 -1
  39. package/dist/cli/pack.js +91 -30
  40. package/dist/cli/pack.js.map +1 -1
  41. package/dist/cli/publish.d.ts +1 -1
  42. package/dist/cli/publish.d.ts.map +1 -1
  43. package/dist/cli/publish.js +6 -2
  44. package/dist/cli/publish.js.map +1 -1
  45. package/package.json +23 -23
  46. package/src/Manifest.ts +1 -3
  47. package/src/Protocol.ts +15 -31
  48. package/src/Registry/Bindings.ts +1 -4
  49. package/src/Registry/GitHub.ts +34 -86
  50. package/src/Registry/Handler.ts +46 -90
  51. package/src/Registry/KVCache.ts +6 -17
  52. package/src/Registry/Sweep.ts +13 -26
  53. package/src/Registry/Tags.ts +8 -16
  54. package/src/Registry.ts +5 -15
  55. package/src/cli/bin.ts +35 -20
  56. package/src/cli/pack.ts +142 -82
  57. package/src/cli/publish.ts +16 -23
package/README.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  Preview packages for pull requests. A Cloudflare Worker registry that verifies every publication against the GitHub Actions run that produced it, plus the `pkg` CLI that packs workspace packages and publishes them from CI.
4
4
 
5
- Install URLs look like `https://pkg.alchemy.run/<name>/<tag>`, where `<tag>` is a commit SHA, a short SHA, `branch:<name>`, or `pr:<number>`:
5
+ Install URLs look like `https://pkg.alchemy.run/<name>/<tag>`, where `<tag>` is a commit SHA, a short SHA, `branch:<name>`, `pr:<number>`, or `pr:<number>:<short-sha>` for PR revisions:
6
6
 
7
7
  ```sh
8
- pnpm install https://pkg.alchemy.run/alchemy/pr:1516
8
+ pnpm install https://pkg.alchemy.run/alchemy/pr:1516:163c051
9
9
  pnpm install https://pkg.alchemy.run/alchemy/branch:main
10
10
  pnpm install https://pkg.alchemy.run/alchemy/163c051
11
11
  ```
@@ -18,7 +18,7 @@ Every publication is a GitHub Actions **run**. The registry never trusts what a
18
18
  2. `pkg pack` prints the artifact name, `pkg-manifest-<sha256 of the manifest>`, as the `artifact-name` step output for the upload. Only the job's runtime token can add artifacts to the run, and the runner exposes that token to actions alone, which is why the upload is its own step. The artifact is GitHub's record that this run vouched for exactly these package hashes.
19
19
  3. Requests name the run they come from (repository, run id, attempt) and nothing else. The registry fetches the run through the App, requires it to be in progress, lists its artifacts, and refuses any manifest whose hash is not vouched for. Someone naming another run can only ever get that run's own manifest accepted, which changes nothing.
20
20
  4. One idempotent publish either answers with the tarballs it lacks, which the CLI uploads before publishing again, or points the tags, posts a "Preview packages" check run on the commit, and for pull requests updates the sticky comment. The manifest's `head` has to be the run's head commit, so a `pull_request` job must check out `github.event.pull_request.head.sha` rather than the merge commit.
21
- 5. A run from a fork gets only the `pr:<number>` tag. Commit and branch tags are shared by every publisher, and a fork can run any commit, including one the repository already published, so it may not write them.
21
+ 5. Install commands for all pull requests use the `pr:<number>:<short-sha>` tag, using the first seven characters of the run's head commit. New commits get distinct URLs; rerunning the same commit can update its tag. Fork runs get only this tag. Commit and branch tags are shared by every publisher, and a fork can run any commit, including one the repository already published, so it may not write them.
22
22
 
23
23
  ## The `pkg` CLI
24
24
 
@@ -42,7 +42,19 @@ pkg publish --dir .pkg --registry https://pkg.alchemy.run
42
42
 
43
43
  A group is `NAME=GLOB` or `NAME[Collapsed]=GLOB`. Globs support `*` as a whole path segment and `{a,b}` alternatives, so `./submodules/distilled/packages/{core,aws}` lists exactly those two. Repeat `--group` with the same name to add more directories to one group. `Collapsed` renders that group inside a closed `<details>` block in the install comment, for long lists of secondary packages.
44
44
 
45
- For each non-private package under a group's glob, `pack`:
45
+ On pull requests, `pack` compares the PR base SHA with HEAD and selects changed packages, their transitive dependents, and all dependencies required by that set. Dependency edges use all four dependency sections between packages matched by `--group`; include all candidate workspace packages in those groups. Adding an unchanged dependency does not pull in its unrelated dependents. A changed submodule pointer selects all configured packages inside it.
46
+
47
+ Pushes and local runs pack everything by default. Use `--since <ref>` to select changes explicitly, or `--all` to force every package. Repository-specific labels belong in the workflow: this repository maps `force-ci` to `--all`. Root package manifests, lockfiles, workspace configuration, TypeScript configuration, `turbo.json`, and the package-preview workflows invalidate everything. Add shared build inputs with repeatable `--rebuild-all-path 'scripts/**'` (exact paths and directory prefixes ending in `/**` are supported).
48
+
49
+ ```sh
50
+ pkg pack --group 'Distilled=./packages/*' --since origin/main
51
+ ```
52
+
53
+ Git comparisons require the base commit locally (`actions/checkout` with `fetch-depth: 0`); unavailable refs fail rather than silently publish an incomplete set. The comparison includes added and deleted paths, including both sides of moves. Only committed changes are considered.
54
+
55
+ `pack` writes an empty manifest when nothing is affected, clearing previous output, and exposes `package-count` alongside `artifact-name` in GitHub step outputs. Skip artifact upload and publication when `package-count` is `0`; `publish` also treats an empty manifest as a no-op.
56
+
57
+ For each selected non-private package, `pack`:
46
58
 
47
59
  - packs in dependency order and rewrites every dependency on another packed package to that package's immutable tarball URL, `https://<registry>/<name>/-/<sha256>.tgz`, so a tarball's bytes depend only on its source and its dependencies' bytes and identical builds deduplicate across commits, pull requests, and repositories;
48
60
  - repacks with fixed timestamps and no ownership so identical inputs hash identically, letting the registry skip uploads it already has;
@@ -108,7 +120,7 @@ The contract lives in `@alchemy.run/pkg/Protocol` as an Effect `HttpApi`. The Wo
108
120
 
109
121
  ## Policy
110
122
 
111
- `repos` lists the repositories allowed to publish. A publication may contain any package; every package gets the commit, short commit, `branch:<name>`, and `pr:<number>` tags of the run that produced it, and nothing in the manifest can name a different commit. A package built from a submodule is therefore tagged with the publishing repository's commit; dependency links between tarballs use content URLs and do not involve commits at all.
123
+ `repos` lists the repositories allowed to publish. A publication may contain any package; same-repository runs get commit, short commit, `branch:<name>`, `pr:<number>`, and `pr:<number>:<short-sha>` tags as applicable, while fork runs get only `pr:<number>:<short-sha>`. Nothing in the manifest can name a different commit. A package built from a submodule is therefore tagged with the publishing repository's commit; dependency links between tarballs use content URLs and do not involve commits at all.
112
124
 
113
125
  ## Cleanup
114
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,eAOvB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,SAAS,eAErB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;IAE1B,sDAAsD;;IAEtD,0EAA0E;;;IAG1E,uDAAuD;;IAEvD,kDAAkD;;IAElD,6BAA6B;;EAE7B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,iFAAiF;AACjF,eAAO,MAAM,aAAa;;IAExB,yDAAyD;;EAEzD,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;QATnB,yDAAyD;;;IAYzD,uEAAuE;;IAEvE;;;;OAIG;;;;QAnCH,sDAAsD;;QAEtD,0EAA0E;;;QAG1E,uDAAuD;;QAEvD,kDAAkD;;QAElD,6BAA6B;;;EA6B7B,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAE5C,eAAO,MAAM,YAAY;;;;QAxBvB,yDAAyD;;;IAYzD,uEAAuE;;IAEvE;;;;OAIG;;;;QAnCH,sDAAsD;;QAEtD,0EAA0E;;;QAG1E,uDAAuD;;QAEvD,kDAAkD;;QAElD,6BAA6B;;;GAgC4B,CAAC;AAE5D,eAAO,MAAM,aAAa,sBAAsB,CAAC"}
1
+ {"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,eAKvB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,SAAS,eAErB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;IAE1B,sDAAsD;;IAEtD,0EAA0E;;;IAG1E,uDAAuD;;IAEvD,kDAAkD;;IAElD,6BAA6B;;EAE7B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,iFAAiF;AACjF,eAAO,MAAM,aAAa;;IAExB,yDAAyD;;EAEzD,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;QATnB,yDAAyD;;;IAYzD,uEAAuE;;IAEvE;;;;OAIG;;;;QAnCH,sDAAsD;;QAEtD,0EAA0E;;;QAG1E,uDAAuD;;QAEvD,kDAAkD;;QAElD,6BAA6B;;;EA6B7B,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAE5C,eAAO,MAAM,YAAY;;;;QAxBvB,yDAAyD;;;IAYzD,uEAAuE;;IAEvE;;;;OAIG;;;;QAnCH,sDAAsD;;QAEtD,0EAA0E;;;QAG1E,uDAAuD;;QAEvD,kDAAkD;;QAElD,6BAA6B;;;GAgC4B,CAAC;AAE5D,eAAO,MAAM,aAAa,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,SAAS,CACd,4DAA4D,CAC7D,EACD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CACxB,CACF,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CACxE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,WAAW;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,KAAK,EAAE,SAAS;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC,CAAC;AAGH,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,SAAS;IACf,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC,OAAO;CAC1B,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IACnC,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,SAAS,CAAC,4DAA4D,CAAC,EAC9E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CACxB,CACF,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CACxE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,WAAW;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,KAAK,EAAE,SAAS;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC,CAAC;AAGH,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,SAAS;IACf,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC,OAAO;CAC1B,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IACnC,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC"}
@@ -1,7 +1,7 @@
1
+ import * as HttpApi from "effect/http-api/HttpApi";
2
+ import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint";
3
+ import * as HttpApiGroup from "effect/http-api/HttpApiGroup";
1
4
  import * as Schema from "effect/Schema";
2
- import * as HttpApi from "effect/unstable/httpapi/HttpApi";
3
- import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
4
- import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
5
5
  /**
6
6
  * The HTTP contract between the `pkg` CLI and the registry Worker, as an
7
7
  * `HttpApi`. The Worker implements it with `HttpApiBuilder`; the CLI calls
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAC;AAIrE;;;;GAIG;AAEH;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;EAIjB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,WACzB,CAAC;AAE3B,6BAA6B;AAC7B,eAAO,MAAM,MAAM,eAElB,CAAC;AAEF,eAAO,MAAM,UAAU;;;EAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;;;;AAEhD,mEAAmE;AACnE,qBAAa,UAAW,SAAQ,eAI/B;CAAG;;;;AAEJ,mFAAmF;AACnF,qBAAa,SAAU,SAAQ,cAI9B;CAAG;;;;AAEJ,yEAAyE;AACzE,qBAAa,gBAAiB,SAAQ,qBAIrC;CAAG;;;;;;;AAEJ,wCAAwC;AACxC,qBAAa,eAAgB,SAAQ,oBAIpC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,oBAIpC;CAAG;;;;AAEJ,6DAA6D;AAC7D,qBAAa,QAAS,SAAQ,aAI7B;CAAG;AAEJ,eAAO,MAAM,gBAAgB;;;IAG3B,wCAAwC;;;EAGxC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;QAN1B,wCAAwC;;;;EAQxC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;QAhBlB,wCAAwC;;;;0KA2BxC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;EAK1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;iJAUzB,CAAC;AAEF,eAAO,MAAM,MAAM;;yBAEjB,CAAC;;;;;;;;;;;;QAxDD,wCAAwC;;;;;;;;;;;;;;;;;AA0D1C,qBAAa,QAAS,SAAQ,aAET;CAAG;;;;AAExB,qBAAa,MAAO,SAAQ,WAAuC;CAAG;;AAEtE,qBAAa,MAAO,SAAQ,WAA6C;CAAG;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,UAAU,aAAc,MAAM,QAAQ,MAAM,UAAU,MAAM,WACd,CAAC"}
1
+ {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAE7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC;;;;GAIG;AAEH;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;EAIjB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,WAA6B,CAAC;AAEjF,6BAA6B;AAC7B,eAAO,MAAM,MAAM,eAAuE,CAAC;AAE3F,eAAO,MAAM,UAAU;;;EAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;;;;AAEhD,mEAAmE;AACnE,qBAAa,UAAW,SAAQ,eAI/B;CAAG;;;;AAEJ,mFAAmF;AACnF,qBAAa,SAAU,SAAQ,cAI9B;CAAG;;;;AAEJ,yEAAyE;AACzE,qBAAa,gBAAiB,SAAQ,qBAIrC;CAAG;;;;;;;AAEJ,wCAAwC;AACxC,qBAAa,eAAgB,SAAQ,oBAIpC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,oBAIpC;CAAG;;;;AAEJ,6DAA6D;AAC7D,qBAAa,QAAS,SAAQ,aAI7B;CAAG;AAEJ,eAAO,MAAM,gBAAgB;;;IAG3B,wCAAwC;;;EAGxC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;QAN1B,wCAAwC;;;;EAQxC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;QAhBlB,wCAAwC;;;;0KAoBxC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;EAK1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;iJAMxB,CAAC;AAEH,eAAO,MAAM,MAAM;;yBAEjB,CAAC;;;;;;;;;;;;QA7CD,wCAAwC;;;;;;;;;;;;;;;;;AA+C1C,qBAAa,QAAS,SAAQ,aAA6D;CAAG;;;;AAE9F,qBAAa,MAAO,SAAQ,WAAuC;CAAG;;AAEtE,qBAAa,MAAO,SAAQ,WAA6C;CAAG;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,UAAU,aAAc,MAAM,QAAQ,MAAM,UAAU,MAAM,WACd,CAAC"}
package/dist/Protocol.js CHANGED
@@ -1,8 +1,8 @@
1
+ import * as HttpApi from "effect/http-api/HttpApi";
2
+ import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint";
3
+ import * as HttpApiGroup from "effect/http-api/HttpApiGroup";
4
+ import * as HttpApiSchema from "effect/http-api/HttpApiSchema";
1
5
  import * as Schema from "effect/Schema";
2
- import * as HttpApi from "effect/unstable/httpapi/HttpApi";
3
- import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
4
- import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
5
- import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
6
6
  import { PackageName } from "./Manifest.js";
7
7
  /**
8
8
  * The HTTP contract between the `pkg` CLI and the registry Worker, as an
@@ -67,14 +67,7 @@ export const PublishResponse = Schema.Struct({
67
67
  export const publish = HttpApiEndpoint.post("publish", "/api/publish", {
68
68
  payload: Schema.Struct({ run: RunRef, manifest: Schema.String }),
69
69
  success: PublishResponse,
70
- error: [
71
- BadRequest,
72
- Forbidden,
73
- RunNotInProgress,
74
- MissingTarballs,
75
- PackageTooLarge,
76
- Upstream,
77
- ],
70
+ error: [BadRequest, Forbidden, RunNotInProgress, MissingTarballs, PackageTooLarge, Upstream],
78
71
  });
79
72
  export const TarballResponse = Schema.Struct({
80
73
  name: Schema.String,
@@ -97,9 +90,7 @@ export const uploadTarball = HttpApiEndpoint.put("uploadTarball", "/api/tarballs
97
90
  export const health = HttpApiEndpoint.get("health", "/api/health", {
98
91
  success: Schema.Struct({ ok: Schema.Boolean }),
99
92
  });
100
- export class Registry extends HttpApiGroup.make("Registry")
101
- .add(publish)
102
- .add(uploadTarball) {
93
+ export class Registry extends HttpApiGroup.make("Registry").add(publish).add(uploadTarball) {
103
94
  }
104
95
  export class Health extends HttpApiGroup.make("Health").add(health) {
105
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.js","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Protocol.js","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Bindings.d.ts","sourceRoot":"","sources":["../../src/Registry/Bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,MAAM;IACjB;;;;OAIG;;IAEH;;;;OAIG;;IAEH,+DAA+D;;EAE/D,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;QAvBnB;;;;WAIG;;QAEH;;;;WAIG;;QAEH,+DAA+D;;;IAa/D;;;;OAIG;;IAEH,4CAA4C;;;;;EAK5C,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,UAAU,CAAC,WAAW,EACtB,MAAM,GAAG,KAAK,GAAG,OAAO,CACzB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC/D;;;;;;;;;;;;;;;qBAYoB,eAAe;qBACf,QAAQ,CAAC,QAAQ,CAAC,GAAG,iBAAiB;;AAX3D;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,mBAME;CAAG;AAEzC,mEAAmE;AACnE,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C,uDAAuD;AACvD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,mEAAmE;AACnE,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,eAAO,MAAM,WAAW,mBAAoB,CAAC;AAC7C,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D,2EAA2E;AAC3E,eAAO,MAAM,YAAY,mBAAqB,CAAC;AAE/C,6EAA6E;AAC7E,eAAO,MAAM,eAAe,mBAAoB,CAAC;AAEjD,uEAAuE;AACvE,eAAO,MAAM,MAAM,mFAAyD,CAAC;AAE7E,eAAO,MAAM,UAAU,SAAU,MAAM,UAAU,MAAM,WACV,CAAC;AAU9C,mDAAmD;AACnD,eAAO,MAAM,QAAQ,qFAAqD,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,KAAK,sFAAmC,CAAC"}
1
+ {"version":3,"file":"Bindings.d.ts","sourceRoot":"","sources":["../../src/Registry/Bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,MAAM;IACjB;;;;OAIG;;IAEH;;;;OAIG;;IAEH,+DAA+D;;EAE/D,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;QAvBnB;;;;WAIG;;QAEH;;;;WAIG;;QAEH,+DAA+D;;;IAa/D;;;;OAIG;;IAEH,4CAA4C;;;;;EAK5C,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC/D;;;;;;;;;;;;;;;qBAYoB,eAAe;qBACf,QAAQ,CAAC,QAAQ,CAAC,GAAG,iBAAiB;;AAX3D;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,mBAME;CAAG;AAEzC,mEAAmE;AACnE,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C,uDAAuD;AACvD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,mEAAmE;AACnE,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,eAAO,MAAM,WAAW,mBAAoB,CAAC;AAC7C,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D,2EAA2E;AAC3E,eAAO,MAAM,YAAY,mBAAqB,CAAC;AAE/C,6EAA6E;AAC7E,eAAO,MAAM,eAAe,mBAAoB,CAAC;AAEjD,uEAAuE;AACvE,eAAO,MAAM,MAAM,mFAAyD,CAAC;AAE7E,eAAO,MAAM,UAAU,SAAU,MAAM,UAAU,MAAM,WACV,CAAC;AAU9C,mDAAmD;AACnD,eAAO,MAAM,QAAQ,qFAAqD,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,KAAK,sFAAmC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Bindings.js","sourceRoot":"","sources":["../../src/Registry/Bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC,kBAAkB;IAC9B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAC9D,CAAC,CAAC;AAGH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM;IACd;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACpD,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;CACH,CAAC,CAAC;AAmBH;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,OAAO,EAMhD,CAAC,iCAAiC,CAAC;CAAG;AAEzC,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE9C,mEAAmE;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,yDAAyD;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE/C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjD,uEAAuE;AACvE,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CACzD,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC;AAE9C,2EAA2E;AAC3E,wEAAwE;AACxE,0DAA0D;AAC1D,MAAM,UAAU,GACd,OAAO,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;IACxE,CAAC,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3E,CAAC,CAAC,SAAS,CAAC;AAEhB,mDAAmD;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"Bindings.js","sourceRoot":"","sources":["../../src/Registry/Bindings.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
+ import * as crypto from "node:crypto";
1
2
  import * as Github from "@distilled.cloud/github";
2
3
  import * as Actions from "@distilled.cloud/github/actions";
3
4
  import * as Apps from "@distilled.cloud/github/apps";
4
5
  import * as Checks from "@distilled.cloud/github/checks";
5
6
  import * as Issues from "@distilled.cloud/github/issues";
6
7
  import * as Pulls from "@distilled.cloud/github/pulls";
7
- import * as Repos from "@distilled.cloud/github/repos";
8
8
  import * as Context from "effect/Context";
9
9
  import * as Effect from "effect/Effect";
10
+ import * as HttpClient from "effect/http/HttpClient";
10
11
  import * as Layer from "effect/Layer";
11
- import * as HttpClient from "effect/unstable/http/HttpClient";
12
- import * as crypto from "node:crypto";
13
12
  import { RegistryConfig } from "./Bindings.ts";
14
13
  declare const CryptoError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
15
14
  readonly _tag: "CryptoError";
@@ -67,10 +66,11 @@ declare const GitHubApp_base: Context.ServiceClass<GitHubApp, "@alchemy.run/pkg/
67
66
  */
68
67
  listRunArtifacts: (repo: string, runId: number, name: string) => Effect.Effect<Actions.ListWorkflowRunArtifactsResponseArtifactsList, AppNotInstalled | import("effect/Config").ConfigError | CryptoError | Apps.Forbidden | Apps.NotFound | Apps.UnprocessableEntity | Github.GithubOpError, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
69
68
  /**
70
- * Pull requests against `repo` whose head is `sha` in `headRepo`, the
71
- * repository the commit was pushed to.
69
+ * Open pull requests against `repo` whose head is `sha` in `headRepo`, the
70
+ * repository the commit was pushed to. Commit-associated PR lookups can
71
+ * return no results for forks, so discover candidates by owner and branch.
72
72
  */
73
- pullRequestsForCommit: (repo: string, headRepo: string, sha: string) => Effect.Effect<Repos.PullRequestSimple[], AppNotInstalled | import("effect/Config").ConfigError | CryptoError | Apps.Forbidden | Apps.NotFound | Apps.UnprocessableEntity | Repos.ListPullRequestsAssociatedWithCommitError, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
73
+ pullRequestsForCommit: (repo: string, headRepo: string, headBranch: string, sha: string) => Effect.Effect<Pulls.PullRequestSimple[], AppNotInstalled | import("effect/Config").ConfigError | CryptoError | Apps.Forbidden | Apps.NotFound | Apps.UnprocessableEntity | Pulls.ListError, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
74
74
  getPullRequest: (repo: string, number: number) => Effect.Effect<Pulls.PullRequest, AppNotInstalled | import("effect/Config").ConfigError | CryptoError | Apps.Forbidden | Apps.NotFound | Apps.UnprocessableEntity | Pulls.GetError, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
75
75
  /**
76
76
  * Publish a completed check run on `headSha`. GitHub shows the newest run
@@ -87,7 +87,7 @@ declare const GitHubApp_base: Context.ServiceClass<GitHubApp, "@alchemy.run/pkg/
87
87
  * Create or update the comment on `issue` whose body starts with
88
88
  * `marker`, looking through the first five pages of comments.
89
89
  */
90
- upsertComment: (repo: string, issue: number, marker: string, body: string) => Effect.Effect<void, AppNotInstalled | Github.BadGateway | import("effect/Config").ConfigError | Github.ConfigError | CryptoError | Apps.Forbidden | Issues.Forbidden | Github.GatewayTimeout | Github.GithubParseError | Github.Gone | Issues.Gone | import("effect/unstable/http/HttpClientError").HttpClientError | Github.InternalServerError | Apps.NotFound | Issues.NotFound | Github.ServiceUnavailable | Github.TooManyRequests | Github.Unauthorized | Github.UnknownGithubError | Apps.UnprocessableEntity | Issues.UnprocessableEntity, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
90
+ upsertComment: (repo: string, issue: number, marker: string, body: string) => Effect.Effect<void, AppNotInstalled | Github.BadGateway | import("effect/Config").ConfigError | Github.ConfigError | CryptoError | Apps.Forbidden | Issues.Forbidden | Github.GatewayTimeout | Github.GithubParseError | Github.Gone | Issues.Gone | import("effect/http/HttpClientError").HttpClientError | Github.InternalServerError | Apps.NotFound | Issues.NotFound | Github.ServiceUnavailable | Github.TooManyRequests | Github.Unauthorized | Github.UnknownGithubError | Apps.UnprocessableEntity | Issues.UnprocessableEntity, import("alchemy/Cloudflare/Providers").Providers | import("alchemy/Cloudflare/KV/ReadWriteNamespace").ReadWriteNamespace | import("alchemy").RuntimeContext>;
91
91
  }>;
92
92
  export declare class GitHubApp extends GitHubApp_base {
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GitHub.d.ts","sourceRoot":"","sources":["../../src/Registry/GitHub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AAGvD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAI1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAkB,cAAc,EAAE,MAAM,eAAe,CAAC;;;;AAG/D,qBAAa,WAAY,SAAQ,iBAAgC;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;IACA,IAAa,OAAO,WAEnB;CACF;AAED,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,QAAS,MAAM,wDAKxC,CAAC;AAEL,wEAAwE;AACxE,eAAO,MAAM,OAAO,WACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAC1B,MAAM,CAAC,SAAS,8CAanB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,cAAc,aACf,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,UAC7D,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,WA6B5D,CAAC;AAgBF,eAAO,MAAM,aAAa,aACd,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,UAC7D,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,SACpD;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,WASvD,CAAC;AAEf,wEAAwE;AACxE,eAAO,MAAM,QAAQ,UAAW;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,WAAqE,CAAC;;mBA0FpD,MAAM,SAAS,MAAM;IAMpC;;;OAGG;6BACsB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAW5D;;;OAGG;kCAC2B,MAAM,YAAY,MAAM,OAAO,MAAM;2BAmB5C,MAAM,UAAU,MAAM;IAG7C;;;OAGG;2BAEK,MAAM,SACL;QACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B;IAkBH;;;OAGG;0BAEK,MAAM,SACL,MAAM,UACL,MAAM,QACR,MAAM;;AAmDlB,qBAAa,SAAU,SAAQ,cAGE;CAAG;AAEpC,eAAO,MAAM,aAAa,uEAAgC,CAAC"}
1
+ {"version":3,"file":"GitHub.d.ts","sourceRoot":"","sources":["../../src/Registry/GitHub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AAGvD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAI1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAkB,cAAc,EAAE,MAAM,eAAe,CAAC;;;;AAG/D,qBAAa,WAAY,SAAQ,iBAAgC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;CAAG;;;;AAEjG,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;IACA,IAAa,OAAO,WAEnB;CACF;AAED,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,QAAS,MAAM,wDAIxC,CAAC;AAEL,wEAAwE;AACxE,eAAO,MAAM,OAAO,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,MAAM,CAAC,SAAS,8CAU1E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,cAAc,aACf,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,UAC7D,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,WAsB5D,CAAC;AAgBF,eAAO,MAAM,aAAa,aACd,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,UAC7D,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,SACpD;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,WASvD,CAAC;AAEf,wEAAwE;AACxE,eAAO,MAAM,QAAQ,UAAW;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,WAAqE,CAAC;;mBAgFpD,MAAM,SAAS,MAAM;IAGpC;;;OAGG;6BACsB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAM5D;;;;OAIG;kCAC2B,MAAM,YAAY,MAAM,cAAc,MAAM,OAAO,MAAM;2BAqBhE,MAAM,UAAU,MAAM;IAG7C;;;OAGG;2BAEK,MAAM,SACL;QACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B;IAkBH;;;OAGG;0BACmB,MAAM,SAAS,MAAM,UAAU,MAAM,QAAQ,MAAM;;AAmC7E,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,eAAO,MAAM,aAAa,uEAAgC,CAAC"}
@@ -1,10 +1,10 @@
1
+ import * as crypto from "node:crypto";
1
2
  import * as Github from "@distilled.cloud/github";
2
3
  import * as Actions from "@distilled.cloud/github/actions";
3
4
  import * as Apps from "@distilled.cloud/github/apps";
4
5
  import * as Checks from "@distilled.cloud/github/checks";
5
6
  import * as Issues from "@distilled.cloud/github/issues";
6
7
  import * as Pulls from "@distilled.cloud/github/pulls";
7
- import * as Repos from "@distilled.cloud/github/repos";
8
8
  import * as Arr from "effect/Array";
9
9
  import * as Clock from "effect/Clock";
10
10
  import * as Context from "effect/Context";
@@ -12,14 +12,13 @@ import * as Data from "effect/Data";
12
12
  import * as DateTime from "effect/DateTime";
13
13
  import * as Duration from "effect/Duration";
14
14
  import * as Effect from "effect/Effect";
15
- import * as Encoding from "effect/Encoding";
15
+ import { Base64Url } from "effect/encoding";
16
+ import * as HttpClient from "effect/http/HttpClient";
16
17
  import * as Layer from "effect/Layer";
17
18
  import * as Option from "effect/Option";
18
19
  import * as Redacted from "effect/Redacted";
19
20
  import * as Schema from "effect/Schema";
20
21
  import * as Stream from "effect/Stream";
21
- import * as HttpClient from "effect/unstable/http/HttpClient";
22
- import * as crypto from "node:crypto";
23
22
  import { COMMENT_MARKER, RegistryConfig } from "./Bindings.js";
24
23
  import * as KVCache from "./KVCache.js";
25
24
  export class CryptoError extends Data.TaggedError("CryptoError") {
@@ -37,11 +36,11 @@ export const importPrivateKey = (pem) => Effect.try({
37
36
  /** Sign a compact RS256 JWT, used to authenticate as the GitHub App. */
38
37
  export const signJwt = (claims, key) => Effect.try({
39
38
  try: () => {
40
- const header = Encoding.encodeBase64Url(JSON.stringify({ alg: "RS256", typ: "JWT" }));
41
- const payload = Encoding.encodeBase64Url(JSON.stringify(claims));
39
+ const header = Base64Url.encode(JSON.stringify({ alg: "RS256", typ: "JWT" }));
40
+ const payload = Base64Url.encode(JSON.stringify(claims));
42
41
  const input = `${header}.${payload}`;
43
42
  const signature = crypto.sign("sha256", Buffer.from(input), key);
44
- return `${input}.${Encoding.encodeBase64Url(new Uint8Array(signature))}`;
43
+ return `${input}.${Base64Url.encode(new Uint8Array(signature))}`;
45
44
  },
46
45
  catch: (cause) => new CryptoError({ message: `signing failed: ${cause}` }),
47
46
  });
@@ -58,12 +57,7 @@ export const renderInstalls = (packages, groups) => {
58
57
  // what make GitHub render it.
59
58
  return Object.entries(Arr.groupBy(packages, (pkg) => pkg.group))
60
59
  .flatMap(([group, members]) => {
61
- const installs = members.flatMap(({ url }) => [
62
- "```sh",
63
- `pnpm install ${url}`,
64
- "```",
65
- "",
66
- ]);
60
+ const installs = members.flatMap(({ url }) => ["```sh", `pnpm install ${url}`, "```", ""]);
67
61
  return collapsed.has(group)
68
62
  ? [
69
63
  "<details>",
@@ -139,9 +133,7 @@ const make = Effect.gen(function* () {
139
133
  const tokens = KVCache.make((repo) => `token:${repo}`, Schema.String, (repo) => Effect.gen(function* () {
140
134
  const jwt = yield* appJwt;
141
135
  const installation = yield* as(jwt, Apps.getRepoInstallation(split(repo))).pipe(Effect.catchTag("NotFound", () => new AppNotInstalled({ repo })));
142
- const access = yield* as(jwt, Apps.createInstallationAccessToken({
143
- installation_id: installation.id,
144
- }));
136
+ const access = yield* as(jwt, Apps.createInstallationAccessToken({ installation_id: installation.id }));
145
137
  const now = yield* Clock.currentTimeMillis;
146
138
  return {
147
139
  value: access.token,
@@ -156,21 +148,19 @@ const make = Effect.gen(function* () {
156
148
  * Artifacts named `name` uploaded to a run so far, including by jobs
157
149
  * still in progress.
158
150
  */
159
- listRunArtifacts: (repo, runId, name) => asInstallation(repo, Actions.listWorkflowRunArtifacts({
160
- ...split(repo),
161
- run_id: runId,
162
- name,
163
- per_page: 100,
164
- })).pipe(Effect.map((page) => page.artifacts)),
151
+ listRunArtifacts: (repo, runId, name) => asInstallation(repo, Actions.listWorkflowRunArtifacts({ ...split(repo), run_id: runId, name, per_page: 100 })).pipe(Effect.map((page) => page.artifacts)),
165
152
  /**
166
- * Pull requests against `repo` whose head is `sha` in `headRepo`, the
167
- * repository the commit was pushed to.
153
+ * Open pull requests against `repo` whose head is `sha` in `headRepo`, the
154
+ * repository the commit was pushed to. Commit-associated PR lookups can
155
+ * return no results for forks, so discover candidates by owner and branch.
168
156
  */
169
- pullRequestsForCommit: (repo, headRepo, sha) => asInstallation(repo, Repos.listPullRequestsAssociatedWithCommit({
157
+ pullRequestsForCommit: (repo, headRepo, headBranch, sha) => asInstallation(repo, Pulls.list({
170
158
  ...split(repo),
171
- commit_sha: sha,
159
+ head: `${split(headRepo).owner}:${headBranch}`,
160
+ state: "open",
172
161
  per_page: 100,
173
162
  })).pipe(Effect.map((pulls) => pulls.filter((pr) => pr.head.sha === sha &&
163
+ pr.head.ref === headBranch &&
174
164
  pr.head.repo?.full_name === headRepo &&
175
165
  pr.base.repo.full_name === repo))),
176
166
  getPullRequest: (repo, number) => asInstallation(repo, Pulls.get({ ...split(repo), pull_number: number })),
@@ -193,29 +183,14 @@ const make = Effect.gen(function* () {
193
183
  * `marker`, looking through the first five pages of comments.
194
184
  */
195
185
  upsertComment: (repo, issue, marker, body) => Effect.gen(function* () {
196
- const comments = Stream.paginate(1, (page) => asInstallation(repo, Issues.listComments({
197
- ...split(repo),
198
- issue_number: issue,
199
- per_page: 100,
200
- page,
201
- })).pipe(Effect.map((comments) => [
186
+ const comments = Stream.paginate(1, (page) => asInstallation(repo, Issues.listComments({ ...split(repo), issue_number: issue, per_page: 100, page })).pipe(Effect.map((comments) => [
202
187
  comments,
203
- comments.length < 100 || page >= 5
204
- ? Option.none()
205
- : Option.some(page + 1),
188
+ comments.length < 100 || page >= 5 ? Option.none() : Option.some(page + 1),
206
189
  ])));
207
190
  const existing = yield* comments.pipe(Stream.filter((comment) => comment.body?.startsWith(marker) === true), Stream.take(1), Stream.runCollect, Effect.map(Arr.head));
208
191
  yield* Option.match(existing, {
209
- onNone: () => asInstallation(repo, Issues.createComment({
210
- ...split(repo),
211
- issue_number: issue,
212
- body,
213
- })),
214
- onSome: (comment) => asInstallation(repo, Issues.updateComment({
215
- ...split(repo),
216
- comment_id: comment.id,
217
- body,
218
- })),
192
+ onNone: () => asInstallation(repo, Issues.createComment({ ...split(repo), issue_number: issue, body })),
193
+ onSome: (comment) => asInstallation(repo, Issues.updateComment({ ...split(repo), comment_id: comment.id, body })),
219
194
  });
220
195
  }),
221
196
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../src/Registry/GitHub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAErE;IACA,IAAa,OAAO;QAClB,OAAO,sCAAsC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;CACF;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAChD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,wBAAwB,KAAK,EAAE,EAAE,CAAC;CAChE,CAAC,CAAC;AAEL,wEAAwE;AACxE,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAA+B,EAC/B,GAAqB,EACrB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE;QACR,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CACrC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAC7C,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,mBAAmB,KAAK,EAAE,EAAE,CAAC;CAC3E,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAAqE,EACrE,MAA2D,EAC3D,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrD,CAAC;IACF,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,8BAA8B;IAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7D,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YAC5C,OAAO;YACP,gBAAgB,GAAG,EAAE;YACrB,KAAK;YACL,EAAE;SACH,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC;gBACE,WAAW;gBACX,eAAe,KAAK,SAAS,OAAO,CAAC,MAAM,aAAa;gBACxD,EAAE;gBACF,GAAG,QAAQ;gBACX,YAAY;gBACZ,EAAE;aACH;YACH,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;QACrC,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IACH,OAAO,4BAA4B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,sBAAsB,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,QAAqE,EACrE,MAA2D,EAC3D,KAAmE,EACnE,EAAE,CACF;IACE,cAAc;IACd,EAAE;IACF,8CAA8C;IAC9C,EAAE;IACF,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;IAChC,aAAa,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,6CAA6C;CACpI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf,wEAAwE;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAGxB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAEvE,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;IAC7B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAE1C,kEAAkE;IAClE,MAAM,EAAE,GAAG,CAAU,KAAa,EAAE,SAAiC,EAAE,EAAE,CACvE,SAAS,CAAC,IAAI,CACZ,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,CAAC;QACb,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAChC,SAAS,EAAE,UAAU;KACtB,CAAC,CACH,EACD,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CACnD,CAAC;IAEJ,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,CAAC,OAAO,CACnB,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAClE,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,EACjC,MAAM,CAAC,MAAM,EACb,CAAC,IAAI,EAAE,EAAE,CACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,EAAE,CAC5B,GAAG,EACH,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACtC,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACjE,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CACtB,GAAG,EACH,IAAI,CAAC,6BAA6B,CAAC;YACjC,eAAe,EAAE,YAAY,CAAC,EAAE;SACjC,CAAC,CACH,CAAC;QACF,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC3C,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CACpB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,EACjE,YAAY,CACb;SACF,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,kEAAkE;IAClE,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,SAAiC,EACjC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,MAAM,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CACtC,cAAc,CACZ,IAAI,EACJ,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAC1D;QAEH;;;WAGG;QACH,gBAAgB,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAC9D,cAAc,CACZ,IAAI,EACJ,OAAO,CAAC,wBAAwB,CAAC;YAC/B,GAAG,KAAK,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,KAAK;YACb,IAAI;YACJ,QAAQ,EAAE,GAAG;SACd,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9C;;;WAGG;QACH,qBAAqB,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE,CACrE,cAAc,CACZ,IAAI,EACJ,KAAK,CAAC,oCAAoC,CAAC;YACzC,GAAG,KAAK,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,GAAG;SACd,CAAC,CACH,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,CAAC,MAAM,CACV,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG;YACnB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ;YACpC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAClC,CACF,CACF;QAEH,cAAc,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CAC/C,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1E;;;WAGG;QACH,cAAc,EAAE,CACd,IAAY,EACZ,KAMC,EACD,EAAE,CACF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACnC,cAAc,CACZ,IAAI,EACJ,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;YACrC,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;SACvD,CAAC,CACH,CACF;QAEH;;;WAGG;QACH,aAAa,EAAE,CACb,IAAY,EACZ,KAAa,EACb,MAAc,EACd,IAAY,EACZ,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAC3C,cAAc,CACZ,IAAI,EACJ,MAAM,CAAC,YAAY,CAAC;gBAClB,GAAG,KAAK,CAAC,IAAI,CAAC;gBACd,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,GAAG;gBACb,IAAI;aACL,CAAC,CACH,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,QAAQ;gBACR,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC;oBAChC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;oBACf,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;aAC1B,CAAC,CACH,CACF,CAAC;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EACrE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACd,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CACrB,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5B,MAAM,EAAE,GAAG,EAAE,CACX,cAAc,CACZ,IAAI,EACJ,MAAM,CAAC,aAAa,CAAC;oBACnB,GAAG,KAAK,CAAC,IAAI,CAAC;oBACd,YAAY,EAAE,KAAK;oBACnB,IAAI;iBACL,CAAC,CACH;gBACH,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,cAAc,CACZ,IAAI,EACJ,MAAM,CAAC,aAAa,CAAC;oBACnB,GAAG,KAAK,CAAC,IAAI,CAAC;oBACd,UAAU,EAAE,OAAO,CAAC,EAAE;oBACtB,IAAI;iBACL,CAAC,CACH;aACJ,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,OAAO,EAG3C,CAAC,4BAA4B,CAAC;CAAG;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../src/Registry/GitHub.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as Cloudflare from "alchemy/Cloudflare";
2
2
  import * as Effect from "effect/Effect";
3
+ import { HttpServerRequest } from "effect/http/HttpServerRequest";
4
+ import * as HttpServerResponse from "effect/http/HttpServerResponse";
3
5
  import * as Schema from "effect/Schema";
4
- import { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
5
- import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
6
6
  import { RegistryConfig } from "./Bindings.ts";
7
7
  import * as GitHub from "./GitHub.ts";
8
8
  /** What GitHub says about a run. */
@@ -19,8 +19,8 @@ type Run = typeof Run.Type;
19
19
  /**
20
20
  * Tags every package in a publication receives, all derived from the run.
21
21
  * Runs on the repository's own commits get the head commit, the short
22
- * commit, `branch:<name>`, and `pr:N` for pull requests. A fork's run gets
23
- * only `pr:N`: commit tags are shared by every publisher, and a fork can
22
+ * commit, `branch:<name>`, and `pr:N` plus `pr:N:<short-sha>` for pull requests.
23
+ * A fork's run gets only `pr:N:<short-sha>`: commit tags are shared by every publisher, and a fork can
24
24
  * run any commit it likes, including one already published from the
25
25
  * repository, so letting it write them would let it repoint them.
26
26
  */
@@ -47,7 +47,7 @@ export declare const parseInstallPath: (pathname: string, scope: string | undefi
47
47
  * router. Everything it needs comes from {@link RegistryConfig}.
48
48
  */
49
49
  export declare const handler: Effect.Effect<{
50
- fetch: Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, import("effect/unstable/http/HttpBody").HttpBodyError | import("effect/unstable/http/HttpServerError").HttpServerError, GitHub.GitHubApp | HttpServerRequest | Cloudflare.Providers | Cloudflare.R2.ReadWriteBucket | Cloudflare.KV.ReadWriteNamespace | RegistryConfig | import("alchemy").RuntimeContext | import("effect/Scope").Scope | import("effect/unstable/sql/SqlClient").SqlClient | Cloudflare.WorkerEnvironment | Cloudflare.Worker<any>>, never, import("effect/FileSystem").FileSystem | import("effect/Scope").Scope | Cloudflare.WorkerEnvironment | Cloudflare.Worker<any>>;
50
+ fetch: Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, import("effect/http/HttpBody").HttpBodyError | import("effect/http/HttpServerError").HttpServerError, GitHub.GitHubApp | HttpServerRequest | Cloudflare.Providers | Cloudflare.R2.ReadWriteBucket | Cloudflare.KV.ReadWriteNamespace | RegistryConfig | import("alchemy").RuntimeContext | import("effect/Scope").Scope | import("effect/sql/SqlClient").SqlClient | Cloudflare.WorkerEnvironment | Cloudflare.Worker<any>>, never, import("effect/FileSystem").FileSystem | import("effect/Scope").Scope | Cloudflare.WorkerEnvironment | Cloudflare.Worker<any>>;
51
51
  }, never, Cloudflare.Providers | RegistryConfig | Cloudflare.WorkerEnvironment | Cloudflare.Worker<any>>;
52
52
  export {};
53
53
  //# sourceMappingURL=Handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/Registry/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,kBAAkB,MAAM,yCAAyC,CAAC;AAc9E,OAAO,EAKL,cAAc,EAEf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAKtC,oCAAoC;AACpC,QAAA,MAAM,GAAG;;;;;;;;EAMP,CAAC;AACH,KAAK,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC;AA6B3B;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,QAAS,GAAG,KAAG,MAAM,EAQxC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,UAAU,QAAS,GAAG,WACyB,CAAC;AA2P7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aACjB,MAAM,SACT,MAAM,GAAG,SAAS,KAEvB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD,SA0BH,CAAC;AA4EF;;;;GAIG;AACH,eAAO,MAAM,OAAO;;wGA+Ea,CAAC"}
1
+ {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/Registry/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAOxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAaxC,OAAO,EAA2C,cAAc,EAAc,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAKtC,oCAAoC;AACpC,QAAA,MAAM,GAAG;;;;;;;;EAMP,CAAC;AACH,KAAK,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC;AA6B3B;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,QAAS,GAAG,KAAG,MAAM,EAQxC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,UAAU,QAAS,GAAG,WAC4D,CAAC;AAoOhG;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aACjB,MAAM,SACT,MAAM,GAAG,SAAS,KAEvB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD,SAwBH,CAAC;AAqEF;;;;GAIG;AACH,eAAO,MAAM,OAAO;;wGA0Ea,CAAC"}
@@ -4,21 +4,21 @@ import { sha256 } from "alchemy/Util/sha256";
4
4
  import * as Clock from "effect/Clock";
5
5
  import * as Duration from "effect/Duration";
6
6
  import * as Effect from "effect/Effect";
7
- import * as Encoding from "effect/Encoding";
7
+ import { Hex } from "effect/encoding";
8
+ import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
9
+ import * as Etag from "effect/http/Etag";
10
+ import * as FetchHttpClient from "effect/http/FetchHttpClient";
11
+ import * as HttpPlatform from "effect/http/HttpPlatform";
12
+ import * as HttpRouter from "effect/http/HttpRouter";
13
+ import { HttpServerRequest } from "effect/http/HttpServerRequest";
14
+ import * as HttpServerResponse from "effect/http/HttpServerResponse";
8
15
  import * as Layer from "effect/Layer";
9
16
  import * as Path from "effect/Path";
10
17
  import * as Result from "effect/Result";
11
18
  import * as Schema from "effect/Schema";
12
- import * as Etag from "effect/unstable/http/Etag";
13
- import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
14
- import * as HttpPlatform from "effect/unstable/http/HttpPlatform";
15
- import * as HttpRouter from "effect/unstable/http/HttpRouter";
16
- import { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
17
- import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
18
- import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
19
19
  import { ManifestJson } from "../Manifest.js";
20
20
  import { BadRequest, Forbidden, manifestArtifactName, MissingTarballs, PackageTooLarge, PkgApi, RunNotInProgress, RunRef, Upstream, } from "../Protocol.js";
21
- import { Bucket, Cache, COMMENT_MARKER, Database, RegistryConfig, tarballKey, } from "./Bindings.js";
21
+ import { Bucket, Cache, COMMENT_MARKER, Database, RegistryConfig, tarballKey } from "./Bindings.js";
22
22
  import * as GitHub from "./GitHub.js";
23
23
  import * as KVCache from "./KVCache.js";
24
24
  import { sweep } from "./Sweep.js";
@@ -46,24 +46,24 @@ const isFork = (run) => run.headRepo !== run.repo;
46
46
  /**
47
47
  * Tags every package in a publication receives, all derived from the run.
48
48
  * Runs on the repository's own commits get the head commit, the short
49
- * commit, `branch:<name>`, and `pr:N` for pull requests. A fork's run gets
50
- * only `pr:N`: commit tags are shared by every publisher, and a fork can
49
+ * commit, `branch:<name>`, and `pr:N` plus `pr:N:<short-sha>` for pull requests.
50
+ * A fork's run gets only `pr:N:<short-sha>`: commit tags are shared by every publisher, and a fork can
51
51
  * run any commit it likes, including one already published from the
52
52
  * repository, so letting it write them would let it repoint them.
53
53
  */
54
54
  export const tagsFor = (run) => {
55
55
  if (isFork(run)) {
56
- return run.pr === null ? [] : [`pr:${run.pr}`];
56
+ return run.pr === null ? [] : [installTag(run)];
57
57
  }
58
58
  const tags = [run.headSha, run.headSha.slice(0, SHORT)];
59
59
  if (run.pr !== null)
60
- tags.push(`pr:${run.pr}`);
60
+ tags.push(`pr:${run.pr}`, installTag(run));
61
61
  if (run.headBranch)
62
62
  tags.push(`branch:${run.headBranch}`);
63
63
  return tags;
64
64
  };
65
65
  /** The tag install commands are written against. */
66
- export const installTag = (run) => isFork(run) ? `pr:${run.pr}` : run.headSha.slice(0, SHORT);
66
+ export const installTag = (run) => run.pr !== null ? `pr:${run.pr}:${run.headSha.slice(0, SHORT)}` : run.headSha.slice(0, SHORT);
67
67
  const upstream = (e) => new Upstream({ message: GitHub.describe(e) });
68
68
  /**
69
69
  * Storage failures are not part of the protocol: they are defects, which
@@ -81,9 +81,7 @@ const lookupRun = Effect.fn("lookupRun")(function* (ref) {
81
81
  if (!policy.repos.includes(ref.repo)) {
82
82
  return yield* new Forbidden({ message: `${ref.repo} may not publish` });
83
83
  }
84
- const data = yield* github
85
- .getRun(ref.repo, ref.runId)
86
- .pipe(Effect.mapError(upstream));
84
+ const data = yield* github.getRun(ref.repo, ref.runId).pipe(Effect.mapError(upstream));
87
85
  if (data.status !== "in_progress" ||
88
86
  (data.run_attempt !== undefined && data.run_attempt !== ref.attempt)) {
89
87
  return yield* new RunNotInProgress({ message: "run is not in progress" });
@@ -96,18 +94,23 @@ const lookupRun = Effect.fn("lookupRun")(function* (ref) {
96
94
  const headRepo = data.head_repository?.full_name ?? data.repository.full_name;
97
95
  let pr = null;
98
96
  if (data.event === "pull_request") {
97
+ if (data.head_branch === null) {
98
+ return yield* new BadRequest({
99
+ message: `pull request run ${ref.runId} has no head branch`,
100
+ });
101
+ }
99
102
  // The pull request whose head is this run's head, from the repository
100
103
  // the run's head lives in. The same commit can head several pull
101
104
  // requests, including one opened from a fork against a commit the
102
105
  // repository already published; matching the head repository keeps a
103
106
  // run's publication on its own pull request.
104
107
  const pulls = yield* github
105
- .pullRequestsForCommit(ref.repo, headRepo, data.head_sha)
108
+ .pullRequestsForCommit(ref.repo, headRepo, data.head_branch, data.head_sha)
106
109
  .pipe(Effect.mapError(upstream));
107
110
  const first = pulls[0];
108
111
  if (first === undefined) {
109
112
  return yield* new BadRequest({
110
- message: `no pull request from ${headRepo} has head ${data.head_sha}`,
113
+ message: `no open pull request from ${headRepo} has head ${data.head_sha}`,
111
114
  });
112
115
  }
113
116
  pr = first.number;
@@ -161,17 +164,13 @@ const publish = Effect.fn("publish")(function* (run, manifestText) {
161
164
  }
162
165
  const packages = manifest.packages;
163
166
  const maxSize = policy.maxPackageSize;
164
- const tooLarge = maxSize === undefined
165
- ? undefined
166
- : packages.find((pkg) => BigInt(pkg.size) > maxSize);
167
+ const tooLarge = maxSize === undefined ? undefined : packages.find((pkg) => BigInt(pkg.size) > maxSize);
167
168
  if (tooLarge !== undefined) {
168
169
  return yield* new PackageTooLarge({
169
170
  message: `${tooLarge.name} exceeds ${maxSize} bytes`,
170
171
  });
171
172
  }
172
- const missing = yield* Effect.filter(packages, (pkg) => r2
173
- .head(tarballKey(pkg.name, pkg.sha256))
174
- .pipe(Effect.map((object) => object === null)), { concurrency: 8 }).pipe(Effect.map((packages) => packages.map(({ name, sha256 }) => ({ name, sha256 }))));
173
+ const missing = yield* Effect.filter(packages, (pkg) => r2.head(tarballKey(pkg.name, pkg.sha256)).pipe(Effect.map((object) => object === null)), { concurrency: 8 }).pipe(Effect.map((packages) => packages.map(({ name, sha256 }) => ({ name, sha256 }))));
175
174
  if (missing.length > 0) {
176
175
  return yield* new MissingTarballs({ missing });
177
176
  }
@@ -243,7 +242,7 @@ const uploadTarball = Effect.fn("uploadTarball")(function* (request, name, sha25
243
242
  .put(key, request.stream, {
244
243
  contentLength,
245
244
  // The params schema already constrained this to 64 hex chars.
246
- sha256: Result.getOrThrow(Encoding.decodeHex(sha256)),
245
+ sha256: Result.getOrThrow(Hex.decode(sha256)),
247
246
  })
248
247
  .pipe(Effect.mapError((e) => new BadRequest({ message: `upload rejected: ${String(e)}` })));
249
248
  return { name, sha256, size: contentLength, uploaded: true };
@@ -321,7 +320,7 @@ const install = Effect.gen(function* () {
321
320
  ? HttpServerResponse.empty({ status: 200, headers })
322
321
  : HttpServerResponse.stream(object.body, { status: 200, headers });
323
322
  });
324
- const banner = Effect.map(origin, (base) => HttpServerResponse.text(`Preview package registry. Install with: bun add ${base}/<package>/<commit|branch:name|pr:N>\n`));
323
+ const banner = Effect.map(origin, (base) => HttpServerResponse.text(`Preview package registry. Install with: bun add ${base}/<package>/<commit|branch:name|pr:N|pr:N:short-sha>\n`));
325
324
  /**
326
325
  * The registry never serves files, so the HTTP platform's file surface is
327
326
  * stubbed rather than pulling a file system into the Worker.