@tinycloud/share-sdk 1.2.0-beta.4 → 1.2.0-beta.6

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.
@@ -5308,6 +5308,20 @@ var v3TargetSchema = external_exports.object({
5308
5308
  nodeAudience: external_exports.string().min(1),
5309
5309
  spaceId: external_exports.string().refine(isCanonicalPathSegment, { message: "expected a canonical space id" })
5310
5310
  }).strict();
5311
+ var ARTIFACT_ID_PATTERN = /^[a-z0-9][a-z0-9_-]{2,62}$/;
5312
+ var artifactPinSchema = external_exports.object({
5313
+ v: external_exports.literal(1),
5314
+ artifactId: external_exports.string().regex(ARTIFACT_ID_PATTERN),
5315
+ version: external_exports.number().int().min(1).max(Number.MAX_SAFE_INTEGER),
5316
+ /** SHA-256 (lowercase hex) of the exact `manifest.json` bytes. The manifest itself stays an owner-side record. */
5317
+ manifestSha256: external_exports.string().regex(/^[0-9a-f]{64}$/),
5318
+ /** An addressed share reads one exact file, so exactly one entry: the stored bytes (ciphertext) it will fetch. */
5319
+ files: external_exports.array(external_exports.object({
5320
+ path: external_exports.string().min(1).max(255),
5321
+ sha256: external_exports.string().regex(/^[0-9a-f]{64}$/),
5322
+ bytes: external_exports.number().int().nonnegative()
5323
+ }).strict()).length(1)
5324
+ }).strict();
5311
5325
  var unsignedShareEnvelopeV3BaseSchema = external_exports.object({
5312
5326
  version: external_exports.literal(3),
5313
5327
  shareId: external_exports.string().min(1),
@@ -5327,7 +5341,13 @@ var unsignedShareEnvelopeV3BaseSchema = external_exports.object({
5327
5341
  expiry: external_exports.string().datetime({ offset: true }),
5328
5342
  display: displaySchema,
5329
5343
  encrypted: external_exports.literal(true),
5330
- metadata: contentMetadataSchema
5344
+ metadata: contentMetadataSchema,
5345
+ /**
5346
+ * TC-1428: an owner-signed statement that this share reads one write-once artifact version. Additive: absent on
5347
+ * every other share, and covered by the envelope signature because the signature spans the whole unsigned object.
5348
+ * The shape is checked here; its binding to the content source is `verifyArtifactShare` in share-sdk.
5349
+ */
5350
+ artifactPin: artifactPinSchema.optional()
5331
5351
  }).strict();
5332
5352
  function validateV3Invariants(value, ctx) {
5333
5353
  const actions = [...value.actions];