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

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.
@@ -5379,6 +5379,20 @@ var v3TargetSchema = external_exports.object({
5379
5379
  nodeAudience: external_exports.string().min(1),
5380
5380
  spaceId: external_exports.string().refine(isCanonicalPathSegment, { message: "expected a canonical space id" })
5381
5381
  }).strict();
5382
+ var ARTIFACT_ID_PATTERN = /^[a-z0-9][a-z0-9_-]{2,62}$/;
5383
+ var artifactPinSchema = external_exports.object({
5384
+ v: external_exports.literal(1),
5385
+ artifactId: external_exports.string().regex(ARTIFACT_ID_PATTERN),
5386
+ version: external_exports.number().int().min(1).max(Number.MAX_SAFE_INTEGER),
5387
+ /** SHA-256 (lowercase hex) of the exact `manifest.json` bytes. The manifest itself stays an owner-side record. */
5388
+ manifestSha256: external_exports.string().regex(/^[0-9a-f]{64}$/),
5389
+ /** An addressed share reads one exact file, so exactly one entry: the stored bytes (ciphertext) it will fetch. */
5390
+ files: external_exports.array(external_exports.object({
5391
+ path: external_exports.string().min(1).max(255),
5392
+ sha256: external_exports.string().regex(/^[0-9a-f]{64}$/),
5393
+ bytes: external_exports.number().int().nonnegative()
5394
+ }).strict()).length(1)
5395
+ }).strict();
5382
5396
  var unsignedShareEnvelopeV3BaseSchema = external_exports.object({
5383
5397
  version: external_exports.literal(3),
5384
5398
  shareId: external_exports.string().min(1),
@@ -5398,7 +5412,13 @@ var unsignedShareEnvelopeV3BaseSchema = external_exports.object({
5398
5412
  expiry: external_exports.string().datetime({ offset: true }),
5399
5413
  display: displaySchema,
5400
5414
  encrypted: external_exports.literal(true),
5401
- metadata: contentMetadataSchema
5415
+ metadata: contentMetadataSchema,
5416
+ /**
5417
+ * TC-1428: an owner-signed statement that this share reads one write-once artifact version. Additive: absent on
5418
+ * every other share, and covered by the envelope signature because the signature spans the whole unsigned object.
5419
+ * The shape is checked here; its binding to the content source is `verifyArtifactShare` in share-sdk.
5420
+ */
5421
+ artifactPin: artifactPinSchema.optional()
5402
5422
  }).strict();
5403
5423
  function validateV3Invariants(value, ctx) {
5404
5424
  const actions = [...value.actions];