cupertino-files / IwaObject
Class: IwaObject
Defined in: src/tsp/iwa.ts:41
One object inside an IWA component.
Constructors
Constructor
new IwaObject(
archiveInfo,payloads):IwaObject
Defined in: src/tsp/iwa.ts:49
Parameters
archiveInfo
payloads
Uint8Array<ArrayBufferLike>[]
Returns
IwaObject
Properties
archiveInfo
archiveInfo:
RawMessage
Defined in: src/tsp/iwa.ts:45
payloads
payloads:
Uint8Array<ArrayBufferLike>[]
Defined in: src/tsp/iwa.ts:47
Raw payload bytes, one per MessageInfo (usually exactly one).
Accessors
hasCompatibilityPatches
Get Signature
get hasCompatibilityPatches():
boolean
Defined in: src/tsp/iwa.ts:131
True when editing this object's primary payload would leave its older-reader compatibility diffs stale. This library preserves those diffs verbatim; it does not recompute them.
Returns
boolean
identifier
Get Signature
get identifier():
bigint
Defined in: src/tsp/iwa.ts:54
Returns
bigint
Set Signature
set identifier(
id):void
Defined in: src/tsp/iwa.ts:58
Parameters
id
bigint
Returns
void
isDirty
Get Signature
get isDirty():
boolean
Defined in: src/tsp/iwa.ts:146
Returns
boolean
isPatchArchive
Get Signature
get isPatchArchive():
boolean
Defined in: src/tsp/iwa.ts:98
True for merge/patch archives: ArchiveInfo.should_merge is set, or a MessageInfo carries type == 0, meaning its payload is a diff against the message named by base_message_index.
Multiple MessageInfos alone do NOT make a patch archive — modern Pages routinely writes archives holding several complete messages of the same type (observed on TST.TableStyleNetworkArchive in 14.5 documents).
Returns
boolean
message
Get Signature
get message():
RawMessage
Defined in: src/tsp/iwa.ts:73
Parse the primary payload as a protobuf message (cached; edits track dirty).
Returns
messageInfos
Get Signature
get messageInfos():
RawMessage[]
Defined in: src/tsp/iwa.ts:62
Returns
payloadCount
Get Signature
get payloadCount():
number
Defined in: src/tsp/iwa.ts:85
Number of payloads in this archive. Almost always 1; archives with more are either multi-message (each payload a full message, with its own MessageInfo.type) or merge/patch archives (see isPatchArchive).
Returns
number
payloadTypes
Get Signature
get payloadTypes():
number[]
Defined in: src/tsp/iwa.ts:104
Message types of every payload, in order.
Returns
number[]
type
Get Signature
get type():
number
Defined in: src/tsp/iwa.ts:67
Message type of the primary payload (0 if absent).
Returns
number
Methods
compatibilityPatchVersions()
compatibilityPatchVersions():
number[][]
Defined in: src/tsp/iwa.ts:117
Reader versions targeted by this archive's compatibility diffs.
Apple stores, alongside the current message, one type-0 patch per older reader version (MessageInfo.diff_merge_version), so an older app opening the document applies the diff matching its own version — the object-level counterpart of the styles_for_* stylesheet snapshots. Observed on TN.UIStateArchive targeting 11.0 / 10.1 / 10.0.
Returns
number[][]
copyVersionsFrom()
copyVersionsFrom(
other):void
Defined in: src/tsp/iwa.ts:218
Copy the packed version list from another MessageInfo (compatibility).
Parameters
other
IwaObject
Returns
void
getDataReferences()
getDataReferences():
bigint[]
Defined in: src/tsp/iwa.ts:163
Returns
bigint[]
getObjectReferences()
getObjectReferences():
bigint[]
Defined in: src/tsp/iwa.ts:151
Object identifiers referenced by the primary payload, per MessageInfo.
Returns
bigint[]
payloadMessage()
payloadMessage(
index):RawMessage|undefined
Defined in: src/tsp/iwa.ts:139
Parse a secondary payload (index ≥ 1). These are preserved verbatim on save unless replaced; only the primary payload is edit-tracked.
Parameters
index
number
Returns
RawMessage | undefined
serialize()
serialize():
Uint8Array
Defined in: src/tsp/iwa.ts:183
Serialize this object's archive (ArchiveInfo length + info + payloads).
Returns
Uint8Array
setDataReferences()
setDataReferences(
ids):void
Defined in: src/tsp/iwa.ts:168
Parameters
ids
readonly bigint[]
Returns
void
setMessageBytes()
setMessageBytes(
bytes):void
Defined in: src/tsp/iwa.ts:176
Replace the primary payload with a parsed copy of the given bytes.
Parameters
bytes
Uint8Array
Returns
void
setObjectReferences()
setObjectReferences(
ids):void
Defined in: src/tsp/iwa.ts:156
Parameters
ids
readonly bigint[]
Returns
void
create()
staticcreate(identifier,type,versions?):IwaObject
Defined in: src/tsp/iwa.ts:204
Create a fresh object with a single MessageInfo of the given type. versions defaults to a conservative singleton [1] and should normally be copied from a sibling object of the same type in the same document.
Parameters
identifier
bigint
type
number
versions?
readonly number[] = ...
Returns
IwaObject