@yargote/artifacts-contracts 0.1.0-beta.8 → 0.1.0-beta.9
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/README.md +2 -2
- package/package.json +1 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +2 -1
package/README.md
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
`@yargote/artifacts-contracts` contains strict domain schemas, types, `ArtifactError`, snapshot serialization, and pure retained-edit helpers. It has no database, ZIP, server, or CLI dependency. Node 24 or later is required.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
npm install @yargote/artifacts-contracts@0.1.0-beta.
|
|
6
|
+
npm install @yargote/artifacts-contracts@0.1.0-beta.9
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
The root export contains domain schemas and types. `/workflow` contains `prepareArtifactEdit`, revision comparison, and compact projections. `/serialization` contains canonical JSON and SHA-256. `/http` contains HTTP response schemas, identity, canonical resource validation, and route URL helpers.
|
|
10
10
|
|
|
11
11
|
`protectedResourceMetadataSchema` accepts standard protected-resource metadata and an optional `artifacts_rest_resource`. The relation names the exact absolute canonical REST OAuth resource URL. It may name the resource itself or one distinct REST resource. Metadata for the distinct resource may omit the relation or name itself, but cannot name another resource.
|
|
12
12
|
|
|
13
|
-
`slugSchema` validates page slugs such as `concepts/rag` without normalizing them. `readSchema` takes exactly one of `artifactId` or a `{ project, slug }` locator, and `readByIdSchema` takes only an ID. `ArtifactRead` and the HTTP summary schema include `slug`, and `ArtifactErrorCode` includes `slug_conflict`.
|
|
13
|
+
`slugSchema` validates page slugs such as `concepts/rag` without normalizing them. `readSchema` takes exactly one of `artifactId` or a `{ project, slug }` locator, and `readByIdSchema` takes only an ID. `moveSchema` takes `project`, `slug`, or both, each optional and nullable. `moveResultSchema` is unchanged. `ArtifactRead` and the HTTP summary schema include `slug`, and `ArtifactErrorCode` includes `slug_conflict`.
|
|
14
14
|
|
|
15
15
|
The existing `@artifacts/artifacts` root, `/contracts`, and `/workflow` exports re-export these implementations. Store and REST packages share one `ArtifactError` runtime.
|
|
16
16
|
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -166,7 +166,8 @@ export type DeleteResult = z.infer<typeof deleteResultSchema>;
|
|
|
166
166
|
export declare const moveSchema: z.ZodObject<{
|
|
167
167
|
requestId: z.ZodString;
|
|
168
168
|
artifactId: z.ZodString;
|
|
169
|
-
project: z.ZodNullable<z.ZodString
|
|
169
|
+
project: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
170
|
+
slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
170
171
|
}, z.core.$strict>;
|
|
171
172
|
export declare const moveResultSchema: z.ZodObject<{
|
|
172
173
|
artifactId: z.ZodString;
|
package/src/index.js
CHANGED
|
@@ -134,7 +134,8 @@ export const updateSchema = z.strictObject({ requestId, artifactId: identifier,
|
|
|
134
134
|
export const publishSchema = z.strictObject({ requestId, artifactId: identifier, revisionId: identifier, expectedPublicationVersion: z.number().int().nonnegative() });
|
|
135
135
|
export const deleteSchema = z.strictObject({ requestId, artifactId: identifier, expectedRevisionId: identifier, expectedPublicationVersion: z.number().int().nonnegative() });
|
|
136
136
|
export const deleteResultSchema = z.strictObject({ artifactId: identifier });
|
|
137
|
-
export const moveSchema = z.strictObject({ requestId, artifactId: identifier, project: projectNameSchema.nullable() })
|
|
137
|
+
export const moveSchema = z.strictObject({ requestId, artifactId: identifier, project: projectNameSchema.nullable().optional(), slug: slugSchema.nullable().optional() })
|
|
138
|
+
.refine((input) => input.project !== undefined || input.slug !== undefined, 'Specify project, slug, or both; null clears either');
|
|
138
139
|
export const moveResultSchema = z.strictObject({ artifactId: identifier, project: z.string().nullable() });
|
|
139
140
|
export const shareSchema = z.strictObject({ requestId, artifactId: identifier, email: z.string().trim().toLowerCase().pipe(z.email().max(254)).meta({ format: 'email', description: 'Email address, trimmed and lowercased; at most 254 characters after trimming' }), notify: z.boolean().optional(), requireNew: z.literal(true).optional() });
|
|
140
141
|
export const unshareSchema = z.strictObject({ requestId, artifactId: identifier, shareId: identifier });
|