@mannyc1/ts-release 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +13 -8
- package/README.md +226 -447
- package/SPEC.md +48 -43
- package/dist/artifacts/adapter.d.ts +39 -0
- package/dist/artifacts/adapter.d.ts.map +1 -0
- package/dist/artifacts/adapter.js +23 -0
- package/dist/artifacts/adapter.js.map +1 -0
- package/dist/artifacts/registry.d.ts +21 -0
- package/dist/artifacts/registry.d.ts.map +1 -0
- package/dist/artifacts/registry.js +21 -0
- package/dist/artifacts/registry.js.map +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/domain/artifact.d.ts +85 -3
- package/dist/domain/artifact.d.ts.map +1 -1
- package/dist/domain/artifact.js +171 -3
- package/dist/domain/artifact.js.map +1 -1
- package/dist/domain/evidence.d.ts +16 -65
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +15 -60
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/operation.d.ts +7 -17
- package/dist/domain/operation.d.ts.map +1 -1
- package/dist/domain/operation.js +27 -154
- package/dist/domain/operation.js.map +1 -1
- package/dist/domain/release.d.ts +1 -49
- package/dist/domain/release.d.ts.map +1 -1
- package/dist/domain/release.js +2 -47
- package/dist/domain/release.js.map +1 -1
- package/dist/domain/remote-state.d.ts +1 -38
- package/dist/domain/remote-state.d.ts.map +1 -1
- package/dist/domain/remote-state.js +2 -38
- package/dist/domain/remote-state.js.map +1 -1
- package/dist/domain/target.d.ts +14 -1
- package/dist/domain/target.d.ts.map +1 -1
- package/dist/domain/target.js +17 -3
- package/dist/domain/target.js.map +1 -1
- package/dist/host/platform.d.ts.map +1 -1
- package/dist/host/platform.js +4 -11
- package/dist/host/platform.js.map +1 -1
- package/dist/internal/workspace-path.d.ts +4 -5
- package/dist/internal/workspace-path.d.ts.map +1 -1
- package/dist/internal/workspace-path.js +3 -0
- package/dist/internal/workspace-path.js.map +1 -1
- package/dist/planner/artifact-inventory.d.ts.map +1 -1
- package/dist/planner/artifact-inventory.js +4 -3
- package/dist/planner/artifact-inventory.js.map +1 -1
- package/dist/planner/errors.d.ts +2 -16
- package/dist/planner/errors.d.ts.map +1 -1
- package/dist/planner/errors.js +2 -14
- package/dist/planner/errors.js.map +1 -1
- package/dist/planner/evidence-recorder.d.ts +8 -6
- package/dist/planner/evidence-recorder.d.ts.map +1 -1
- package/dist/planner/evidence-recorder.js +72 -54
- package/dist/planner/evidence-recorder.js.map +1 -1
- package/dist/planner/executor.d.ts +12 -12
- package/dist/planner/executor.d.ts.map +1 -1
- package/dist/planner/executor.js +45 -68
- package/dist/planner/executor.js.map +1 -1
- package/dist/planner/normalize-release.d.ts +3 -0
- package/dist/planner/normalize-release.d.ts.map +1 -1
- package/dist/planner/normalize-release.js +128 -4
- package/dist/planner/normalize-release.js.map +1 -1
- package/dist/planner/reconcile.d.ts.map +1 -1
- package/dist/planner/reconcile.js +2 -6
- package/dist/planner/reconcile.js.map +1 -1
- package/dist/planner/render-plan.d.ts.map +1 -1
- package/dist/planner/render-plan.js +12 -19
- package/dist/planner/render-plan.js.map +1 -1
- package/dist/targets/adapter-helpers.d.ts +36 -6
- package/dist/targets/adapter-helpers.d.ts.map +1 -1
- package/dist/targets/adapter-helpers.js +103 -7
- package/dist/targets/adapter-helpers.js.map +1 -1
- package/dist/targets/github.d.ts +2 -2
- package/dist/targets/github.d.ts.map +1 -1
- package/dist/targets/github.js +4 -14
- package/dist/targets/github.js.map +1 -1
- package/dist/targets/homebrew.d.ts +2 -2
- package/dist/targets/homebrew.d.ts.map +1 -1
- package/dist/targets/homebrew.js +143 -40
- package/dist/targets/homebrew.js.map +1 -1
- package/dist/targets/live.d.ts.map +1 -1
- package/dist/targets/live.js +29 -20
- package/dist/targets/live.js.map +1 -1
- package/dist/targets/npm.d.ts +2 -2
- package/dist/targets/npm.d.ts.map +1 -1
- package/dist/targets/npm.js +33 -61
- package/dist/targets/npm.js.map +1 -1
- package/dist/targets/pypi.d.ts +2 -2
- package/dist/targets/pypi.d.ts.map +1 -1
- package/dist/targets/pypi.js +67 -41
- package/dist/targets/pypi.js.map +1 -1
- package/dist/targets/scoop.d.ts.map +1 -1
- package/dist/targets/scoop.js +18 -8
- package/dist/targets/scoop.js.map +1 -1
- package/dist/workflows/config.d.ts +69 -121
- package/dist/workflows/config.d.ts.map +1 -1
- package/dist/workflows/config.js +80 -129
- package/dist/workflows/config.js.map +1 -1
- package/dist/workflows/diagnostics.d.ts +2 -2
- package/dist/workflows/diagnostics.d.ts.map +1 -1
- package/dist/workflows/diagnostics.js +14 -20
- package/dist/workflows/diagnostics.js.map +1 -1
- package/dist/workflows/distribution.d.ts +25 -0
- package/dist/workflows/distribution.d.ts.map +1 -0
- package/dist/workflows/distribution.js +24 -0
- package/dist/workflows/distribution.js.map +1 -0
- package/dist/workflows/evidence.d.ts +4 -13
- package/dist/workflows/evidence.d.ts.map +1 -1
- package/dist/workflows/evidence.js +15 -37
- package/dist/workflows/evidence.js.map +1 -1
- package/dist/workflows/index.d.ts +1 -0
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/init.d.ts +3 -3
- package/dist/workflows/init.d.ts.map +1 -1
- package/dist/workflows/init.js +49 -13
- package/dist/workflows/init.js.map +1 -1
- package/examples/README.md +4 -4
- package/package.json +18 -15
- package/templates/README.md +15 -2
- package/templates/bun-cli-github/README.md +14 -0
- package/templates/bun-cli-github/release.config.json +89 -0
- package/dist/domain/status.d.ts +0 -43
- package/dist/domain/status.d.ts.map +0 -1
- package/dist/domain/status.js +0 -51
- package/dist/domain/status.js.map +0 -1
- package/dist/planner/release-eligibility.d.ts +0 -39
- package/dist/planner/release-eligibility.d.ts.map +0 -1
- package/dist/planner/release-eligibility.js +0 -578
- package/dist/planner/release-eligibility.js.map +0 -1
- package/dist/planner/status.d.ts +0 -40
- package/dist/planner/status.d.ts.map +0 -1
- package/dist/planner/status.js +0 -342
- package/dist/planner/status.js.map +0 -1
package/SPEC.md
CHANGED
|
@@ -2,30 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
4
|
|
|
5
|
-
The `release` package is a small TypeScript library for turning
|
|
5
|
+
The `release` package is a small TypeScript library for turning installable artifacts into explicit, inspectable, and repeatable package-manager distribution plans.
|
|
6
6
|
|
|
7
|
-
It should not be a
|
|
7
|
+
It should not be a fake universal package manager or a generic task runner. Its job is to model what is being distributed, which artifact variants exist, which package managers or install channels consume them, and which externally visible actions require deliberate approval.
|
|
8
8
|
|
|
9
|
-
The package should make
|
|
9
|
+
The package should make distribution work boring: the same inputs should produce the same plan, the same staged artifacts should produce auditable inventory, and the same publish operation should be understandable before anything is executed.
|
|
10
10
|
|
|
11
11
|
## Core Idea
|
|
12
12
|
|
|
13
|
-
A
|
|
13
|
+
A distribution is a data flow:
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
16
|
release intent
|
|
17
17
|
-> normalized release model
|
|
18
|
+
-> artifact recipes and inventory
|
|
19
|
+
-> installable artifact variants
|
|
18
20
|
-> target-specific operations
|
|
19
|
-
->
|
|
20
|
-
-> validation evidence
|
|
21
|
-
->
|
|
21
|
+
-> generated package-manager files
|
|
22
|
+
-> validation and rendering evidence
|
|
23
|
+
-> approved execution
|
|
22
24
|
-> post-publish verification
|
|
23
|
-
->
|
|
25
|
+
-> optional modeled reconciliation
|
|
24
26
|
```
|
|
25
27
|
|
|
26
28
|
The package owns the model and the orchestration. Ecosystem tools remain the source of truth for ecosystem-specific behavior.
|
|
27
29
|
|
|
28
|
-
For example, npm, PyPI, GitHub Releases, Homebrew taps, OCI registries, app stores, or other targets may each need different commands, credentials, artifacts, and validators. The release package should describe those differences directly instead of hiding them behind one fake universal
|
|
30
|
+
For example, npm, PyPI, GitHub Releases, Homebrew taps, Scoop buckets, OCI registries, app stores, or other targets may each need different manifests, commands, credentials, artifacts, and validators. The release package should describe those differences directly instead of hiding them behind one fake universal abstraction.
|
|
29
31
|
|
|
30
32
|
## Current Shape
|
|
31
33
|
|
|
@@ -34,11 +36,10 @@ The root package is the reusable library. It exposes explicit subpaths for domai
|
|
|
34
36
|
Current first-party workflows cover:
|
|
35
37
|
|
|
36
38
|
- config validation and plan rendering
|
|
39
|
+
- explicit artifact recipe staging
|
|
37
40
|
- data-first init/scaffolding previews with approved writes
|
|
38
41
|
- static doctor/auth/CI diagnostics
|
|
39
42
|
- render, validation, execution, verification, and workflow evidence
|
|
40
|
-
- status reporting from existing evidence
|
|
41
|
-
- conservative resume after interrupted work
|
|
42
43
|
- narrow GitHub release reconciliation without republishing npm versions
|
|
43
44
|
|
|
44
45
|
Reusable configs live in `templates/`, runnable fixtures live in `examples/`, and publish operations remain data until an execute approval and any irreversible approval are supplied.
|
|
@@ -47,12 +48,12 @@ Reusable configs live in `templates/`, runnable fixtures live in `examples/`, an
|
|
|
47
48
|
|
|
48
49
|
### Plan-first
|
|
49
50
|
|
|
50
|
-
The primary output of the package is a
|
|
51
|
+
The primary output of the package is a distribution plan, not a side effect.
|
|
51
52
|
|
|
52
53
|
A plan should be serializable, reviewable, and suitable for CI artifacts. It should explain:
|
|
53
54
|
|
|
54
|
-
- release identity: name, version, commit, tag, notes, source metadata
|
|
55
|
-
- artifact inventory: files, checksums, sizes, formats, and
|
|
55
|
+
- release identity: name, version, commit, tag, notes, and source metadata
|
|
56
|
+
- artifact inventory: files, checksums, sizes, formats, intended consumers, and installable variants
|
|
56
57
|
- target operations: what each target will do and what inputs it needs
|
|
57
58
|
- validation steps: which checks must run before publishing
|
|
58
59
|
- execution gates: which operations are irreversible or require explicit approval
|
|
@@ -77,7 +78,7 @@ Validation should produce structured evidence, not just console output.
|
|
|
77
78
|
|
|
78
79
|
Evidence should be machine-readable enough for CI and human-readable enough for debugging. It should include command invocations, tool versions where practical, exit statuses, important paths, skipped checks, warnings, failures, and timestamps.
|
|
79
80
|
|
|
80
|
-
Evidence should also
|
|
81
|
+
Evidence should also preserve enough context to debug failed or interrupted releases.
|
|
81
82
|
|
|
82
83
|
Strict mode should fail on missing required validators. Non-strict mode may record skips, but skips must be visible in the evidence.
|
|
83
84
|
|
|
@@ -98,6 +99,7 @@ The core package should be a reusable library. A CLI can exist as an adapter, bu
|
|
|
98
99
|
The library should expose APIs for:
|
|
99
100
|
|
|
100
101
|
- loading and normalizing config
|
|
102
|
+
- staging declared artifact recipes through provided adapters
|
|
101
103
|
- constructing a release plan
|
|
102
104
|
- scaffolding starter configs and CI workflows as proposed files
|
|
103
105
|
- rendering config schemas and validation results
|
|
@@ -107,8 +109,6 @@ The library should expose APIs for:
|
|
|
107
109
|
- preparing executable operations
|
|
108
110
|
- running approved operations through an injected host interface
|
|
109
111
|
- recording evidence
|
|
110
|
-
- reporting release status from evidence
|
|
111
|
-
- conservatively resuming safe unfinished work
|
|
112
112
|
- reconciling narrowly modeled remote state without replaying immutable publishes
|
|
113
113
|
|
|
114
114
|
The CLI and GitHub Action should mainly parse host inputs, call the library, format host-specific output, and persist evidence.
|
|
@@ -129,9 +129,9 @@ Builders, packagers, changelog generators, signing tools, registry CLIs, provena
|
|
|
129
129
|
|
|
130
130
|
The package should not try to:
|
|
131
131
|
|
|
132
|
-
- build every artifact itself
|
|
132
|
+
- build every artifact itself or replace full build pipelines
|
|
133
133
|
- replace ecosystem-native publishing tools
|
|
134
|
-
- invent a universal package format
|
|
134
|
+
- invent a universal package format or one manifest schema for every ecosystem
|
|
135
135
|
- hide target-specific auth requirements
|
|
136
136
|
- guarantee semantic versioning policy for the project using it
|
|
137
137
|
- own changelog generation as a core requirement
|
|
@@ -149,9 +149,19 @@ User-authored input describing what should be released.
|
|
|
149
149
|
|
|
150
150
|
It should be concise but complete enough to identify the release, locate artifacts, choose targets, and declare policy.
|
|
151
151
|
|
|
152
|
-
Identity may be static config data or may be derived from a package manifest.
|
|
152
|
+
Identity may be static config data or may be derived from a package manifest. Release intent should declare artifact files, optional artifact recipes, target policy, and evidence location. Whether a project decides to bump a version from tags, commits, or human review belongs outside the generic distribution model unless it becomes a separate app-local or target-specific adapter.
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
### Artifact Recipe
|
|
155
|
+
|
|
156
|
+
An optional, explicit staging contract for artifacts that `ts-release` can create before planning target distribution.
|
|
157
|
+
|
|
158
|
+
Recipes are data until the caller runs a staging workflow. The first recipe family is Bun executable compilation, which produces executable artifacts with derived operating-system and architecture variants. Additional recipe families should land only when they provide durable distribution value without turning the core into a general build system.
|
|
159
|
+
|
|
160
|
+
### Installable Artifact Variant
|
|
161
|
+
|
|
162
|
+
Platform metadata attached to an artifact intent or inventory item.
|
|
163
|
+
|
|
164
|
+
Variants should capture facts that package-manager targets need to choose or render the right artifact: operating system, architecture, optional Linux libc family, executable extension, binary name, install path, and source target triple. Target adapters should consume this data instead of guessing from filenames.
|
|
155
165
|
|
|
156
166
|
### Release Model
|
|
157
167
|
|
|
@@ -189,6 +199,7 @@ The package should make these workflows straightforward:
|
|
|
189
199
|
|
|
190
200
|
- initialize a starter config and optional CI workflow from templates
|
|
191
201
|
- validate config JSON and schema shape
|
|
202
|
+
- stage declared artifact recipes
|
|
192
203
|
- create a plan from config
|
|
193
204
|
- inspect the plan without executing anything
|
|
194
205
|
- render target-specific files
|
|
@@ -198,7 +209,6 @@ The package should make these workflows straightforward:
|
|
|
198
209
|
- print publish operations
|
|
199
210
|
- execute approved operations
|
|
200
211
|
- verify published state after execution
|
|
201
|
-
- inspect status and resume only safe unfinished work
|
|
202
212
|
- reconcile a matching GitHub draft release without republishing immutable registries
|
|
203
213
|
|
|
204
214
|
The API should favor explicit functions and typed data over hidden global state.
|
|
@@ -212,22 +222,14 @@ It should describe release facts and target policy, not arbitrary scripts. Escap
|
|
|
212
222
|
Good config answers:
|
|
213
223
|
|
|
214
224
|
- What is the release?
|
|
215
|
-
- Which artifacts are part of it?
|
|
216
|
-
- Which targets receive
|
|
225
|
+
- Which artifacts and variants are part of it?
|
|
226
|
+
- Which targets or install surfaces receive them?
|
|
217
227
|
- What credentials or environment are required?
|
|
218
228
|
- What must be validated first?
|
|
219
229
|
- Which generated files or indexes will change?
|
|
220
230
|
- Which operations are allowed to execute in this environment?
|
|
221
231
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
- static config is for manually audited release identity
|
|
225
|
-
- package manifest identity is for package releases with one version source
|
|
226
|
-
- Git tag decisions are for tag-triggered workflows
|
|
227
|
-
- conventional commit decisions are for automated SemVer from commit messages
|
|
228
|
-
- intent-file decisions are for release intent reviewed in PRs
|
|
229
|
-
|
|
230
|
-
Artifact path templates may interpolate only named release data such as `{version}`, `{name}`, and `{normalizedName}`. They must be expanded before path safety and artifact inventory checks.
|
|
232
|
+
Artifact path templates may interpolate only named release data such as `{version}`, `{name}`, and `{normalizedName}`. They must be expanded before path safety and artifact inventory checks. Artifact variants must be explicit data or derived by a known recipe adapter before target rendering.
|
|
231
233
|
|
|
232
234
|
## Testing Strategy
|
|
233
235
|
|
|
@@ -252,9 +254,11 @@ Real integration tests can exist for official validators and sandbox registries,
|
|
|
252
254
|
|
|
253
255
|
The rewrite is successful when:
|
|
254
256
|
|
|
255
|
-
- a user can define
|
|
256
|
-
- the package
|
|
257
|
+
- a user can define an artifact-first distribution intent in a small config
|
|
258
|
+
- the package can stage declared artifacts before target planning
|
|
259
|
+
- the package produces a reviewable distribution plan with no side effects
|
|
257
260
|
- target differences are explicit in the plan
|
|
261
|
+
- installable artifact variants are available before package-manager rendering
|
|
258
262
|
- validation emits structured evidence
|
|
259
263
|
- publish operations are blocked by default
|
|
260
264
|
- irreversible operations require deliberate approval
|
|
@@ -289,17 +293,18 @@ Avoid:
|
|
|
289
293
|
|
|
290
294
|
Continue from the data model.
|
|
291
295
|
|
|
292
|
-
Keep the smallest set of types needed to represent release identity,
|
|
296
|
+
Keep the smallest set of types needed to represent release identity, artifact recipes, artifact variants, targets, operations, validation results, execution gates, and evidence. Add target adapters end to end only when they prove the abstractions carry real differences without becoming generic mush.
|
|
293
297
|
|
|
294
298
|
The implementation should stay narrow but honest:
|
|
295
299
|
|
|
296
300
|
1. Load config.
|
|
297
|
-
2.
|
|
298
|
-
3.
|
|
299
|
-
4.
|
|
300
|
-
5.
|
|
301
|
-
6.
|
|
302
|
-
7.
|
|
303
|
-
8.
|
|
301
|
+
2. Stage declared artifact recipes when requested.
|
|
302
|
+
3. Normalize into a release model with artifact inventory and variants.
|
|
303
|
+
4. Generate a serializable distribution plan.
|
|
304
|
+
5. Render generated files only through explicit render operations.
|
|
305
|
+
6. Validate with structured evidence.
|
|
306
|
+
7. Print executable operations.
|
|
307
|
+
8. Execute only when explicitly approved.
|
|
308
|
+
9. Verify remote state and record evidence.
|
|
304
309
|
|
|
305
310
|
Everything else should be added only after it has a clear place in that flow.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as Path from "effect/Path";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
import { ArtifactRecipe } from "../domain/artifact.js";
|
|
5
|
+
import { ReleaseIdentity } from "../domain/release.js";
|
|
6
|
+
export type * from "../types/effect-internal.js";
|
|
7
|
+
export interface ArtifactRecipeStageContext {
|
|
8
|
+
readonly root: string;
|
|
9
|
+
readonly identity: ReleaseIdentity;
|
|
10
|
+
readonly configPath?: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
declare const StagedArtifact_base: Schema.Class<StagedArtifact, Schema.Struct<{
|
|
13
|
+
readonly id: Schema.NonEmptyString;
|
|
14
|
+
readonly path: Schema.String;
|
|
15
|
+
}>, {}>;
|
|
16
|
+
export declare class StagedArtifact extends StagedArtifact_base {
|
|
17
|
+
}
|
|
18
|
+
declare const StagedArtifactRecipeResult_base: Schema.Class<StagedArtifactRecipeResult, Schema.Struct<{
|
|
19
|
+
readonly recipeId: Schema.NonEmptyString;
|
|
20
|
+
readonly recipeTag: Schema.String;
|
|
21
|
+
readonly artifacts: Schema.$Array<typeof StagedArtifact>;
|
|
22
|
+
}>, {}>;
|
|
23
|
+
export declare class StagedArtifactRecipeResult extends StagedArtifactRecipeResult_base {
|
|
24
|
+
}
|
|
25
|
+
declare const ArtifactRecipeStageError_base: Schema.Class<ArtifactRecipeStageError, Schema.TaggedStruct<"ArtifactRecipeStageError", {
|
|
26
|
+
readonly recipeId: Schema.NonEmptyString;
|
|
27
|
+
readonly recipeTag: Schema.String;
|
|
28
|
+
readonly artifactId: Schema.optionalKey<Schema.NonEmptyString>;
|
|
29
|
+
readonly path: Schema.optionalKey<Schema.String>;
|
|
30
|
+
readonly reason: Schema.String;
|
|
31
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
32
|
+
}>, import("effect/Cause").YieldableError>;
|
|
33
|
+
export declare class ArtifactRecipeStageError extends ArtifactRecipeStageError_base {
|
|
34
|
+
}
|
|
35
|
+
export interface ArtifactRecipeAdapter<Recipe extends ArtifactRecipe> {
|
|
36
|
+
readonly recipeTag: Recipe["_tag"];
|
|
37
|
+
readonly stage: (recipe: Recipe, context: ArtifactRecipeStageContext) => Effect.Effect<StagedArtifactRecipeResult, ArtifactRecipeStageError, Path.Path>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/artifacts/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAEL,cAAc,EAEf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,mBAAmB,6BAA6B,CAAA;AAEhD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;;;;;AAED,qBAAa,cAAe,SAAQ,mBAGlC;CAAG;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAM9C;CAAG;;;;;;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAU7C;CAAG;AAEJ,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,cAAc;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B,KAChC,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;CACpF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import { ArtifactId, ArtifactRecipeId } from "../domain/artifact.js";
|
|
3
|
+
export class StagedArtifact extends Schema.Class("StagedArtifact")({
|
|
4
|
+
id: ArtifactId,
|
|
5
|
+
path: Schema.String
|
|
6
|
+
}) {
|
|
7
|
+
}
|
|
8
|
+
export class StagedArtifactRecipeResult extends Schema.Class("StagedArtifactRecipeResult")({
|
|
9
|
+
recipeId: ArtifactRecipeId,
|
|
10
|
+
recipeTag: Schema.String,
|
|
11
|
+
artifacts: Schema.Array(StagedArtifact)
|
|
12
|
+
}) {
|
|
13
|
+
}
|
|
14
|
+
export class ArtifactRecipeStageError extends Schema.TaggedErrorClass()("ArtifactRecipeStageError", {
|
|
15
|
+
recipeId: ArtifactRecipeId,
|
|
16
|
+
recipeTag: Schema.String,
|
|
17
|
+
artifactId: Schema.optionalKey(ArtifactId),
|
|
18
|
+
path: Schema.optionalKey(Schema.String),
|
|
19
|
+
reason: Schema.String,
|
|
20
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
21
|
+
}) {
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/artifacts/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,UAAU,EAEV,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAW9B,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,KAAK,CAAiB,gBAAgB,CAAC,CAAC;IACjF,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC;CAAG;AAEL,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,KAAK,CAC1D,4BAA4B,CAC7B,CAAC;IACA,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;CACxC,CAAC;CAAG;AAEL,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,gBAAgB,EAA4B,CAC/F,0BAA0B,EAC1B;IACE,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;CAC3C,CACF;CAAG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type * as Path from "effect/Path";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import { ArtifactRecipe } from "../domain/artifact.js";
|
|
6
|
+
import { ArtifactRecipeStageContext, ArtifactRecipeStageError, StagedArtifactRecipeResult } from "./adapter.js";
|
|
7
|
+
export type * from "../types/effect-internal.js";
|
|
8
|
+
declare const MissingArtifactRecipeAdapterError_base: Schema.Class<MissingArtifactRecipeAdapterError, Schema.TaggedStruct<"MissingArtifactRecipeAdapterError", {
|
|
9
|
+
readonly recipeTag: Schema.String;
|
|
10
|
+
}>, import("effect/Cause").YieldableError>;
|
|
11
|
+
export declare class MissingArtifactRecipeAdapterError extends MissingArtifactRecipeAdapterError_base {
|
|
12
|
+
}
|
|
13
|
+
export interface ArtifactRecipeRegistryShape {
|
|
14
|
+
readonly stageArtifactRecipe: (recipe: ArtifactRecipe, context: ArtifactRecipeStageContext) => Effect.Effect<StagedArtifactRecipeResult, MissingArtifactRecipeAdapterError | ArtifactRecipeStageError, Path.Path>;
|
|
15
|
+
}
|
|
16
|
+
declare const ArtifactRecipeRegistry_base: Context.ServiceClass<ArtifactRecipeRegistry, "ArtifactRecipeRegistry", ArtifactRecipeRegistryShape>;
|
|
17
|
+
export declare class ArtifactRecipeRegistry extends ArtifactRecipeRegistry_base {
|
|
18
|
+
}
|
|
19
|
+
export declare const stageArtifactRecipe: (recipe: import("../domain/artifact.js").BunExecutableArtifactRecipe | import("../domain/artifact.js").PyPiWheelArtifactRecipe, context: ArtifactRecipeStageContext) => Effect.Effect<StagedArtifactRecipeResult, ArtifactRecipeStageError | MissingArtifactRecipeAdapterError, Path.Path | ArtifactRecipeRegistry>;
|
|
20
|
+
export declare const stageAllArtifactRecipes: (recipes: readonly (import("../domain/artifact.js").BunExecutableArtifactRecipe | import("../domain/artifact.js").PyPiWheelArtifactRecipe)[], context: ArtifactRecipeStageContext) => Effect.Effect<StagedArtifactRecipeResult[], ArtifactRecipeStageError | MissingArtifactRecipeAdapterError, Path.Path | ArtifactRecipeRegistry>;
|
|
21
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,cAAc,CAAA;AAErB,mBAAmB,6BAA6B,CAAA;;;;AAEhD,qBAAa,iCAAkC,SAAQ,sCAKtD;CAAG;AAEJ,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,0BAA0B,KAChC,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iCAAiC,GAAG,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;CACxH;;AAED,qBAAa,sBAAuB,SAAQ,2BAGf;CAAG;AAEhC,eAAO,MAAM,mBAAmB,qTAM9B,CAAA;AAEF,eAAO,MAAM,uBAAuB,qUASlC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
export class MissingArtifactRecipeAdapterError extends Schema.TaggedErrorClass()("MissingArtifactRecipeAdapterError", {
|
|
5
|
+
recipeTag: Schema.String
|
|
6
|
+
}) {
|
|
7
|
+
}
|
|
8
|
+
export class ArtifactRecipeRegistry extends Context.Service()("ArtifactRecipeRegistry") {
|
|
9
|
+
}
|
|
10
|
+
export const stageArtifactRecipe = Effect.fn("stageArtifactRecipe")(function* (recipe, context) {
|
|
11
|
+
const registry = yield* ArtifactRecipeRegistry;
|
|
12
|
+
return yield* registry.stageArtifactRecipe(recipe, context);
|
|
13
|
+
});
|
|
14
|
+
export const stageAllArtifactRecipes = Effect.fn("stageAllArtifactRecipes")(function* (recipes, context) {
|
|
15
|
+
const results = [];
|
|
16
|
+
for (const recipe of recipes) {
|
|
17
|
+
results.push(yield* stageArtifactRecipe(recipe, context));
|
|
18
|
+
}
|
|
19
|
+
return results;
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAUvC,MAAM,OAAO,iCAAkC,SAAQ,MAAM,CAAC,gBAAgB,EAAqC,CACjH,mCAAmC,EACnC;IACE,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CACF;CAAG;AASJ,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,OAAO,EAGxD,CAAC,wBAAwB,CAAC;CAAG;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAC3E,MAAsB,EACtB,OAAmC;IAEnC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAA;IAC9C,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EACnF,OAAsC,EACtC,OAAmC;IAEnC,MAAM,OAAO,GAAsC,EAAE,CAAA;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA"}
|
package/dist/config/schema.js
CHANGED
|
@@ -11,7 +11,7 @@ export const releaseConfigJsonSchemaDocument = () => {
|
|
|
11
11
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
12
12
|
$id: RELEASE_CONFIG_SCHEMA_ID,
|
|
13
13
|
title: "ts-release configuration",
|
|
14
|
-
description: "Configuration for
|
|
14
|
+
description: "Configuration for an artifact-first ts-release distribution workflow.",
|
|
15
15
|
$defs: document.definitions
|
|
16
16
|
};
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,wEAAwE,CAAA;AAEhH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAA;AAG1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAA0B,EAAE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAC3D,OAAO;QACL,GAAG,QAAQ,CAAC,MAAM;QAClB,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,wEAAwE,CAAA;AAEhH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAA;AAG1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAA0B,EAAE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAC3D,OAAO;QACL,GAAG,QAAQ,CAAC,MAAM;QAClB,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,uEAAuE;QACpF,KAAK,EAAE,QAAQ,CAAC,WAAW;KAC5B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAW,EAAE,CACxD,GAAG,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA"}
|
|
@@ -2,35 +2,117 @@ import * as Schema from "effect/Schema";
|
|
|
2
2
|
export type * from "../types/effect-internal.js";
|
|
3
3
|
export declare const ArtifactId: Schema.NonEmptyString;
|
|
4
4
|
export type ArtifactId = typeof ArtifactId.Type;
|
|
5
|
-
export declare const ArtifactFormat: Schema.Literals<readonly ["tarball", "zip", "file", "directory", "oci-image"]>;
|
|
5
|
+
export declare const ArtifactFormat: Schema.Literals<readonly ["tarball", "zip", "file", "directory", "oci-image", "executable"]>;
|
|
6
6
|
export type ArtifactFormat = typeof ArtifactFormat.Type;
|
|
7
7
|
export declare const ChecksumAlgorithm: Schema.Literals<readonly ["sha256", "sha512"]>;
|
|
8
8
|
export type ChecksumAlgorithm = typeof ChecksumAlgorithm.Type;
|
|
9
|
+
export declare const ArtifactRecipeId: Schema.NonEmptyString;
|
|
10
|
+
export type ArtifactRecipeId = typeof ArtifactRecipeId.Type;
|
|
11
|
+
export declare const ArtifactOperatingSystem: Schema.Literals<readonly ["linux", "darwin", "windows"]>;
|
|
12
|
+
export type ArtifactOperatingSystem = typeof ArtifactOperatingSystem.Type;
|
|
13
|
+
export declare const ArtifactArchitecture: Schema.Literals<readonly ["x64", "arm64"]>;
|
|
14
|
+
export type ArtifactArchitecture = typeof ArtifactArchitecture.Type;
|
|
15
|
+
export declare const ArtifactLibc: Schema.Literals<readonly ["glibc", "musl"]>;
|
|
16
|
+
export type ArtifactLibc = typeof ArtifactLibc.Type;
|
|
17
|
+
export declare const BunExecutableCompileTarget: Schema.Literals<readonly ["bun-linux-x64", "bun-linux-x64-baseline", "bun-linux-x64-modern", "bun-linux-arm64", "bun-windows-x64", "bun-windows-x64-baseline", "bun-windows-x64-modern", "bun-windows-arm64", "bun-darwin-x64", "bun-darwin-x64-baseline", "bun-darwin-x64-modern", "bun-darwin-arm64", "bun-linux-x64-musl", "bun-linux-x64-baseline-musl", "bun-linux-x64-modern-musl", "bun-linux-arm64-musl"]>;
|
|
18
|
+
export type BunExecutableCompileTarget = typeof BunExecutableCompileTarget.Type;
|
|
9
19
|
declare const Checksum_base: Schema.Class<Checksum, Schema.Struct<{
|
|
10
20
|
readonly algorithm: Schema.Literals<readonly ["sha256", "sha512"]>;
|
|
11
21
|
readonly value: Schema.String;
|
|
12
22
|
}>, {}>;
|
|
13
23
|
export declare class Checksum extends Checksum_base {
|
|
14
24
|
}
|
|
25
|
+
declare const InstallableArtifactVariant_base: Schema.Class<InstallableArtifactVariant, Schema.Struct<{
|
|
26
|
+
readonly os: Schema.Literals<readonly ["linux", "darwin", "windows"]>;
|
|
27
|
+
readonly arch: Schema.Literals<readonly ["x64", "arm64"]>;
|
|
28
|
+
readonly libc: Schema.optionalKey<Schema.Literals<readonly ["glibc", "musl"]>>;
|
|
29
|
+
readonly binaryName: Schema.optionalKey<Schema.NonEmptyString>;
|
|
30
|
+
readonly executableExtension: Schema.optionalKey<Schema.NonEmptyString>;
|
|
31
|
+
readonly installPath: Schema.optionalKey<Schema.NonEmptyString>;
|
|
32
|
+
readonly targetTriple: Schema.optionalKey<Schema.NonEmptyString>;
|
|
33
|
+
}>, {}>;
|
|
34
|
+
export declare class InstallableArtifactVariant extends InstallableArtifactVariant_base {
|
|
35
|
+
}
|
|
36
|
+
declare const InstallableArtifactVariantOverride_base: Schema.Class<InstallableArtifactVariantOverride, Schema.Struct<{
|
|
37
|
+
readonly os: Schema.optionalKey<Schema.Literals<readonly ["linux", "darwin", "windows"]>>;
|
|
38
|
+
readonly arch: Schema.optionalKey<Schema.Literals<readonly ["x64", "arm64"]>>;
|
|
39
|
+
readonly libc: Schema.optionalKey<Schema.Literals<readonly ["glibc", "musl"]>>;
|
|
40
|
+
readonly binaryName: Schema.optionalKey<Schema.NonEmptyString>;
|
|
41
|
+
readonly executableExtension: Schema.optionalKey<Schema.NonEmptyString>;
|
|
42
|
+
readonly installPath: Schema.optionalKey<Schema.NonEmptyString>;
|
|
43
|
+
readonly targetTriple: Schema.optionalKey<Schema.NonEmptyString>;
|
|
44
|
+
}>, {}>;
|
|
45
|
+
export declare class InstallableArtifactVariantOverride extends InstallableArtifactVariantOverride_base {
|
|
46
|
+
}
|
|
15
47
|
declare const ArtifactIntent_base: Schema.Class<ArtifactIntent, Schema.Struct<{
|
|
16
48
|
readonly id: Schema.NonEmptyString;
|
|
17
49
|
readonly path: Schema.String;
|
|
18
|
-
readonly
|
|
50
|
+
readonly downloadUrl: Schema.optionalKey<Schema.String>;
|
|
51
|
+
readonly format: Schema.Literals<readonly ["tarball", "zip", "file", "directory", "oci-image", "executable"]>;
|
|
19
52
|
readonly consumers: Schema.$Array<Schema.String>;
|
|
20
53
|
readonly checksum: Schema.optionalKey<typeof Checksum>;
|
|
54
|
+
readonly variant: Schema.optionalKey<typeof InstallableArtifactVariant>;
|
|
21
55
|
}>, {}>;
|
|
22
56
|
export declare class ArtifactIntent extends ArtifactIntent_base {
|
|
23
57
|
}
|
|
58
|
+
declare const BunExecutableArtifactOutput_base: Schema.Class<BunExecutableArtifactOutput, Schema.Struct<{
|
|
59
|
+
readonly id: Schema.NonEmptyString;
|
|
60
|
+
readonly target: Schema.Literals<readonly ["bun-linux-x64", "bun-linux-x64-baseline", "bun-linux-x64-modern", "bun-linux-arm64", "bun-windows-x64", "bun-windows-x64-baseline", "bun-windows-x64-modern", "bun-windows-arm64", "bun-darwin-x64", "bun-darwin-x64-baseline", "bun-darwin-x64-modern", "bun-darwin-arm64", "bun-linux-x64-musl", "bun-linux-x64-baseline-musl", "bun-linux-x64-modern-musl", "bun-linux-arm64-musl"]>;
|
|
61
|
+
readonly path: Schema.String;
|
|
62
|
+
readonly downloadUrl: Schema.optionalKey<Schema.String>;
|
|
63
|
+
readonly consumers: Schema.$Array<Schema.String>;
|
|
64
|
+
readonly variant: Schema.optionalKey<typeof InstallableArtifactVariantOverride>;
|
|
65
|
+
}>, {}>;
|
|
66
|
+
export declare class BunExecutableArtifactOutput extends BunExecutableArtifactOutput_base {
|
|
67
|
+
}
|
|
68
|
+
declare const BunExecutableArtifactRecipe_base: Schema.Class<BunExecutableArtifactRecipe, Schema.TaggedStruct<"BunExecutableArtifactRecipe", {
|
|
69
|
+
readonly id: Schema.NonEmptyString;
|
|
70
|
+
readonly entrypoint: Schema.String;
|
|
71
|
+
readonly outputs: Schema.$Array<typeof BunExecutableArtifactOutput>;
|
|
72
|
+
readonly minify: Schema.optionalKey<Schema.Boolean>;
|
|
73
|
+
}>, {}>;
|
|
74
|
+
export declare class BunExecutableArtifactRecipe extends BunExecutableArtifactRecipe_base {
|
|
75
|
+
}
|
|
76
|
+
declare const PyPiWheelBinaryArtifact_base: Schema.Class<PyPiWheelBinaryArtifact, Schema.Struct<{
|
|
77
|
+
readonly os: Schema.Literals<readonly ["linux", "darwin", "windows"]>;
|
|
78
|
+
readonly arch: Schema.Literals<readonly ["x64", "arm64"]>;
|
|
79
|
+
readonly sourcePath: Schema.String;
|
|
80
|
+
readonly wheelPath: Schema.String;
|
|
81
|
+
}>, {}>;
|
|
82
|
+
export declare class PyPiWheelBinaryArtifact extends PyPiWheelBinaryArtifact_base {
|
|
83
|
+
}
|
|
84
|
+
declare const PyPiWheelArtifactRecipe_base: Schema.Class<PyPiWheelArtifactRecipe, Schema.TaggedStruct<"PyPiWheelArtifactRecipe", {
|
|
85
|
+
readonly id: Schema.NonEmptyString;
|
|
86
|
+
readonly path: Schema.String;
|
|
87
|
+
readonly wheelTag: Schema.String;
|
|
88
|
+
readonly packageName: Schema.String;
|
|
89
|
+
readonly moduleName: Schema.String;
|
|
90
|
+
readonly consoleScript: Schema.String;
|
|
91
|
+
readonly summary: Schema.String;
|
|
92
|
+
readonly homepage: Schema.String;
|
|
93
|
+
readonly license: Schema.String;
|
|
94
|
+
readonly requiresPython: Schema.String;
|
|
95
|
+
readonly binaries: Schema.$Array<typeof PyPiWheelBinaryArtifact>;
|
|
96
|
+
readonly consumers: Schema.$Array<Schema.String>;
|
|
97
|
+
}>, {}>;
|
|
98
|
+
export declare class PyPiWheelArtifactRecipe extends PyPiWheelArtifactRecipe_base {
|
|
99
|
+
}
|
|
100
|
+
export declare const ArtifactRecipe: Schema.Union<readonly [typeof BunExecutableArtifactRecipe, typeof PyPiWheelArtifactRecipe]>;
|
|
101
|
+
export type ArtifactRecipe = typeof ArtifactRecipe.Type;
|
|
24
102
|
declare const ArtifactInventoryItem_base: Schema.Class<ArtifactInventoryItem, Schema.Struct<{
|
|
25
103
|
readonly id: Schema.NonEmptyString;
|
|
26
104
|
readonly path: Schema.String;
|
|
27
|
-
readonly
|
|
105
|
+
readonly downloadUrl: Schema.optionalKey<Schema.String>;
|
|
106
|
+
readonly format: Schema.Literals<readonly ["tarball", "zip", "file", "directory", "oci-image", "executable"]>;
|
|
28
107
|
readonly consumers: Schema.$Array<Schema.String>;
|
|
29
108
|
readonly sizeBytes: Schema.Number;
|
|
30
109
|
readonly checksum: Schema.optionalKey<typeof Checksum>;
|
|
110
|
+
readonly variant: Schema.optionalKey<typeof InstallableArtifactVariant>;
|
|
31
111
|
}>, {}>;
|
|
32
112
|
export declare class ArtifactInventoryItem extends ArtifactInventoryItem_base {
|
|
33
113
|
}
|
|
114
|
+
export declare const bunExecutableCompileTargetVariant: (target: BunExecutableCompileTarget) => InstallableArtifactVariant;
|
|
115
|
+
export declare const bunExecutableOutputVariant: (target: BunExecutableCompileTarget, override: InstallableArtifactVariantOverride | undefined) => InstallableArtifactVariant;
|
|
34
116
|
export declare const artifactIntentOrder: (left: ArtifactIntent, right: ArtifactIntent) => number;
|
|
35
117
|
export declare const artifactInventoryOrder: (left: ArtifactInventoryItem, right: ArtifactInventoryItem) => number;
|
|
36
118
|
//# sourceMappingURL=artifact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/domain/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,UAAU,uBAAwB,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/domain/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,UAAU,uBAAwB,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,cAAc,8FAAsF,CAAA;AACjH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,iBAAiB,gDAAwC,CAAA;AACtE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,gBAAgB,uBAAwB,CAAA;AACrD,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,uBAAuB,0DAAkD,CAAA;AACtF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE,eAAO,MAAM,oBAAoB,4CAAoC,CAAA;AACrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,YAAY,6CAAqC,CAAA;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,0BAA0B,oZAiBrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAA;;;;;AAE/E,qBAAa,QAAS,SAAQ,aAG5B;CAAG;;;;;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAU9C;CAAG;;;;;;;;;;AAEL,qBAAa,kCAAmC,SAAQ,uCAUtD;CAAG;;;;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAQlC;CAAG;;;;;;;;;AAEL,qBAAa,2BAA4B,SAAQ,gCAS/C;CAAG;;;;;;;AAEL,qBAAa,2BAA4B,SAAQ,gCAQhD;CAAG;;;;;;;AAEJ,qBAAa,uBAAwB,SAAQ,4BAK3C;CAAG;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAgB5C;CAAG;AAEJ,eAAO,MAAM,cAAc,6FAAuE,CAAA;AAClG,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;;;;;;;;;;;AAEvD,qBAAa,qBAAsB,SAAQ,0BASzC;CAAG;AAEL,eAAO,MAAM,iCAAiC,GAC5C,QAAQ,0BAA0B,KACjC,0BAiEF,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,QAAQ,0BAA0B,EAClC,UAAU,kCAAkC,GAAG,SAAS,KACvD,0BAgBF,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,cAAc,EAAE,OAAO,cAAc,KAAG,MACjD,CAAA;AAEjC,eAAO,MAAM,sBAAsB,GACjC,MAAM,qBAAqB,EAC3B,OAAO,qBAAqB,KAC3B,MAAyC,CAAA"}
|