-
#3127
6ada52bThanks @turadg! - Remove stale runtime dependencies from package manifests. -
Updated dependencies [
6ada52b]:- @endo/pass-style@1.7.1
- #3008
d83b1abThanks @kriskowal! - - Relaxes dependence on a global, post-lockdownhardenfunction by taking a dependency on the new@endo/hardenpackage. Consequently, bundles will now entrain ahardenimplementation that is superfluous if the bundled program is guaranteed to run in a post-lockdown HardenedJS environment. To compensate, usebundle-sourcewith-C hardenedor the analogous feature for packaging conditions with your preferred bundler tool. This will hollow out@endo/hardenand defer exclusively to the globalharden.
- Updated dependencies [
2e00276,029dcc4,2e00276,d83b1ab,98f77e9]:- @endo/errors@1.3.0
- @endo/harden@1.1.0
- @endo/common@1.3.0
- @endo/eventual-send@1.4.0
- @endo/nat@5.2.0
- @endo/pass-style@1.7.0
- @endo/promise-kit@1.2.0
1.8.0 (2025-07-12)
- Introduces an environment variable config option
ENDO_RANK_STRINGSto change the rank ordering of strings from the current (incorrect) ordering by UTF-16 code unit used by JavaScript's<and.sort()operations to (correct and OCapN-conformant) ordering by Unicode code point. It currently defaults to "utf16-code-unit-order", matching the previously-unconditional behavior.
1.7.1 (2025-06-17)
- marshal: fix consequence of typo (#2841) (fbee7d9)
- pass-style: better byteArray support (#2843) (492551a), closes #2248 #2248 #2248
1.7.0 (2025-06-02)
@endo/marshalnow also exports aqpfunction meaning "quote passable" that renders its passable argument as a quasi-quoted Justin expression. This can be used withX,Failetc the same way you currently useq. Since Justin is a subset of HardenedJS, there's no need for the quasi-quoted form to explain what language it is in.
1.6.4 (2025-03-24)
Note: Version bump only for package @endo/marshal
1.6.3 (2025-01-24)
Note: Version bump only for package @endo/marshal
1.6.2 (2024-11-13)
Note: Version bump only for package @endo/marshal
1.6.1 (2024-10-22)
- marshal: Manually intervene in choice of semver for 1.6.0 instead of 2.0.0 (c242c28)
1.6.0 (2024-10-22)
-
compareRanknow short-circuits upon encountering remotables to compare, considering the inputs to be tied for the same rank regardless of what would otherwise be visited later in their respective data structures. This ensures that afullComparewhich does distinguish remotables will be a refinement ofcompareRank, rather than disagreeing about whether or not two values share a rank (#2588).This change is a bug fix for all purposes off-chain, but will frustrate deterministic replay. So, because of this change and probably many others, the supervisor bundle of vats on chain will need to be created from historical versions, not according to the semantic version of the library.
1.5.4 (2024-10-10)
Note: Version bump only for package @endo/marshal
1.5.3 (2024-08-27)
Note: Version bump only for package @endo/marshal
1.5.2 (2024-08-01)
Note: Version bump only for package @endo/marshal
1.5.1 (2024-07-30)
deeplyFulfilledmoved from @endo/marshal to @endo/pass-style. @endo/marshal still reexports it, to avoid breaking old importers. But importers should be upgraded to importdeeplyFulfilleddirectly from @endo/pass-style.
1.5.0 (2024-05-07)
- types: fromCapData is Passable, but unknown is more practical (5fa54f0)
- types: generic Passable (fa59e05)
1.4.1 (2024-04-04)
Note: Version bump only for package @endo/marshal
1.4.0 (2024-03-20)
1.3.0 (2024-02-23)
- Sending and receiving extended errors.
- As of the previous release,
@endo/marshaltolerates extra error properties withPassablevalues. However, all those extra properties were only recorded in annotations, since they are not recognized as legitimate onPassableerrors. - This release will use these extra properties to construct an error object
with all those extra properties, and then call
toPassableErrorto make the locallyPassableerror that it returns. Thus, if the extra properties received are not recognized as a legitimate part of a locallyPassableerror, the error with those extra properties itself becomes the annotation on the returnedPassableerror. - An
error.causeproperty whose value is aPassableerror with therefore show up on the returnedPassableerror. If it is any otherPassablevalue, it will show up on the internal error used to annotate the returned error. - An
error.errorsproperty whose value is aCopyArrayofPassableerrors will likewise show up on the returnedPassableerror. Otherwise, only on the internal error annotation of the returned error. - Although this release does otherwise support the error properties
error.causeanderror.errorsonPassableerrors, it still does not send these properties because releases prior to the previous release do not tolerate receiving them. Once we no longer need to support releases prior to the previous release, then we can start sending these.
- As of the previous release,
1.2.0 (2024-02-15)
- Tolerates receiving extra error properties (#2052). Once pervasive, this tolerance will eventually enable additional error properties to be sent. The motivating examples are the JavaScript standard properties
causeanderrors. This change also enables smoother interoperation with other languages with their own theories about diagnostic information to be included in errors.
1.1.0 (2024-01-18)
- types: generic Passable (ae6ad15)
1.0.1 (2023-12-20)
- Expressly forbid deep imports through captp, far, lockdown, marshal (8fb4e97)
1.0.0 (2023-12-12)
- pass-style: Far GET_METHOD_NAMES meta method (b079812)
- pass-style: Safe promises can override @@toStringTag with a string (55e094c)
- Adjust type generation in release process and CI (9465be3)
- Import types explicitly throughout (631d087)
- review suggestions (25ded7a)
Note: Version bump only for package @agoric/marshal
0.8.9 (2023-09-12)
- patterns: Implement CopyMap comparison (13028b2)
0.8.8 (2023-08-07)
- ses: normalize bestEffortsStringify property order (137daff)
0.8.7 (2023-08-07)
- ses: normalize bestEffortsStringify property order (137daff)
0.8.6 (2023-07-19)
0.8.5 (2023-04-20)
- marshal: correct types (2d3ba15)
0.8.4 (2023-04-14)
- sort type confusion between
pass-styleandmarshal(db09e13)
- Revert "fix: parse positive bigints correctly despite XS parsing them wrong (#1325)" (657c4aa), closes #1325
0.8.3 (2023-03-07)
- marshal: display slot values if supplied (6edaf4a)
- marshal: new methods {to,from}CapData (2c97bb9)
- pass-style: Extract passStyleOf and friends from marshal into the new pass-style package (#1439) (ccd003c)
- Fix hackerone.com links in SECURITY.md (#1472) (389733d)
- make deeplyFulfilled an async function (#1455) (fdc3374)
- marshal export what others import (#1447) (e2a016f)
- move arb-passable to pass-style (#1448) (09235a9)
- tools arb passable (#1291) (368d7cb)
0.8.2 (2022-12-23)
- marshal: Work around TypeScript issue (56d3d81)
0.8.1 (2022-11-14)
- Remote objects now reflect methods present on their prototype chain.
- Serialization errors now serialize.
0.8.0 (2022-10-24)
0.7.6 (2022-10-19)
- marshal: Return a special error message from passStyleOf(typedArray) (dbd498e), closes #1326
- parse positive bigints correctly despite XS parsing them wrong (#1325) (ab31d51), closes #1309
- marshal: Add CapData encode/decode consistency assertions (0b75021)
- marshal: Consistently quote "@qclass" in error messages (4ab6743)
- fix tiny typo (#1321) (7f3c371)
- marshal: Detect unexpected nonenumerable properties on tagged records and remotables (da0f11f), closes #1316
- unserialize makes copyRecords without problematic assign semantics (#1304) (5f0caf9)
- marshal: Extend new assert style to
checkcalls (11d9f97) - marshal: Skip unnecessary assert.details calls (053ca12)
0.7.5 (2022-09-27)
0.7.4 (2022-09-14)
- alt syntax for positive but faster assertions (#1280) (dc24f2f)
- bad check defaults (#1274) (7229fcf)
- tolerate more from async_hooks (#1275) (1a0b123)
0.7.3 (2022-08-26)
Note: Version bump only for package @endo/marshal
0.7.2 (2022-08-26)
0.7.1 (2022-08-25)
- Allows for the existence of
async_hookssymbols on promises.
0.7.0 (2022-08-23)
- Prepares for far classes.
- Full
passStyleOfinput validation. - BREAKING: Removes
assertPure, which was wrong but not used to the best of our knowledge.
0.6.9 (2022-06-28)
Note: Version bump only for package @endo/marshal
0.6.8 (2022-06-11)
- decodeToJustin accepts slot backrefs (#1186) (e4f71b4)
- retire deprecated sending only (#1187) (af656b2)
0.6.7 (2022-04-15)
Note: Version bump only for package @endo/marshal
0.6.6 (2022-04-14)
Note: Version bump only for package @endo/marshal
0.6.5 (2022-04-13)
- Revert dud release (c8a7101)
0.6.4 (2022-04-12)
- marshal: stamp Remotable return with
RemotableBrand<L,R>(8b9b8fd)
0.6.3 (2022-03-07)
- marshal: have
RemotablecreateRemote<T>-compatible objs (1ba89ba)
0.6.2 (2022-03-02)
Note: Version bump only for package @endo/marshal
0.6.1 (2022-02-20)
Note: Version bump only for package @endo/marshal
0.6.0 (2022-02-18)
Switch from ambient to exported types.
Include type declarations (.d.ts) generated from JSDoc to avoid requiring
dependents to parse .js files in their node_modules.
In order to use the types from @endo/marshal you now need to import them
explicitly. For example, to make them available in scope, use the following:
- JSDoc:
/** @import {PassStyle} from '@endo/marshal' */ - TypeScript:
import type { PassStyle } from '@endo/marshal'
0.5.4 (2022-01-31)
Note: Version bump only for package @endo/marshal
0.5.3 (2022-01-27)
Includes TypeScript definitions in published artifact.
0.5.2 (2022-01-25)
- marshal: error serialization uses name from prototype (#1010) (aff3ff7)
- assert that unserialize makes only passables (#996) (b34817b)
- only shallow freeze needed (#994) (edeaf8a)
- remove more extraneous spaced-comment comments (#1009) (980a798)
Moved from https://github.com/Agoric/agoric-sdk to
https://github.com/endojs/endo, still in a packages/marshal directory.
0.5.0 (2021-12-02)
-
ERTP: NatValues now only accept bigints, lower-case amountMath is removed, and AmountMath methods always follow the order of: brand, value
-
chore: fix up INPUT_VALIDATON.md
-
chore: address PR comments
0.4.28 (2021-10-13)
0.4.27 (2021-09-23)
Note: Version bump only for package @agoric/marshal
0.4.26 (2021-09-15)
Note: Version bump only for package @agoric/marshal
0.4.25 (2021-08-18)
Note: Version bump only for package @agoric/marshal
0.4.24 (2021-08-17)
Note: Version bump only for package @agoric/marshal
0.4.23 (2021-08-16)
Note: Version bump only for package @agoric/marshal
0.4.22 (2021-08-15)
0.4.21 (2021-08-14)
0.4.20 (2021-07-28)
Note: Version bump only for package @agoric/marshal
0.4.19 (2021-07-01)
Note: Version bump only for package @agoric/marshal
0.4.18 (2021-06-28)
Note: Version bump only for package @agoric/marshal
0.4.17 (2021-06-25)
Note: Version bump only for package @agoric/marshal
0.4.16 (2021-06-24)
Note: Version bump only for package @agoric/marshal
0.4.15 (2021-06-24)
Note: Version bump only for package @agoric/marshal
0.4.14 (2021-06-23)
Note: Version bump only for package @agoric/marshal
0.4.13 (2021-06-16)
Note: Version bump only for package @agoric/marshal
0.4.12 (2021-06-15)
- Pin ESM to forked version (54dbb55)
0.4.11 (2021-05-10)
Note: Version bump only for package @agoric/marshal
0.4.10 (2021-05-05)
Note: Version bump only for package @agoric/marshal
0.4.9 (2021-05-05)
- marshal: #2435 make getInterfaceOf truthful (ff19f93)
- add noIbids option (#2886) (39388bc)
- remove deprecated ibid support (#2898) (f865a2a), closes #2896 #2896 #2896
- settle REMOTE_STYLE name (#2900) (3dc6638)
- split marshal module (#2803) (2e19e78)
0.4.8 (2021-04-22)
Note: Version bump only for package @agoric/marshal
0.4.7 (2021-04-18)
Note: Version bump only for package @agoric/marshal
0.4.6 (2021-04-16)
Note: Version bump only for package @agoric/marshal
0.4.5 (2021-04-14)
Note: Version bump only for package @agoric/marshal
0.4.4 (2021-04-13)
Note: Version bump only for package @agoric/marshal
0.4.3 (2021-04-07)
Note: Version bump only for package @agoric/marshal
0.4.2 (2021-04-06)
Note: Version bump only for package @agoric/marshal
0.4.1 (2021-03-24)
0.4.0 (2021-03-16)
- fix ibids. test ibids and slots (#2625) (891d9fd)
- make separate 'test:xs' target, remove XS from 'test' target (b9c1a69), closes #2647
- marshal: add Data marker, tolerate its presence (d7b190f)
- marshal: add placeholder warnings (8499b8e)
- marshal: serialize empty objects as data, not pass-by-reference (aeee1ad), closes #2018
- separate ibid tables (#2596) (e0704eb)
- marshal: add Data() to all unserialized empty records (946fd6f)
- marshal: allow marshalSaveError function to be specified (c93bb04)
- marshal: Data({}) is pass-by-copy (03d7b5e)
0.3.2 (2021-02-22)
Note: Version bump only for package @agoric/marshal
0.3.1 (2021-02-16)
- marshal: reject getters in pass-by-ref, even if it returns a function (#2438) (b9368b6), closes #2436
- Correlate sent errors with received errors (73b9cfd)
- Far and Remotable do unverified local marking rather than WeakMap (#2361) (ab59ab7)
- review comments (7db7e5c)
- use assert rather than FooError constructors (f860c5b)
0.3.0 (2020-12-10)
- minor tweaks for dapp-oracle (b8169c1)
0.2.7 (2020-11-07)
Note: Version bump only for package @agoric/marshal
0.2.7-dev.0 (2020-10-19)
Note: Version bump only for package @agoric/marshal
0.2.6 (2020-10-11)
Note: Version bump only for package @agoric/marshal
0.2.6-dev.2 (2020-09-18)
Note: Version bump only for package @agoric/marshal
0.2.6-dev.1 (2020-09-18)
Note: Version bump only for package @agoric/marshal
0.2.6-dev.0 (2020-09-18)
Note: Version bump only for package @agoric/marshal
0.2.5 (2020-09-16)
Note: Version bump only for package @agoric/marshal
0.2.4 (2020-08-31)
- add "TODO unimplemented"s (#1580) (7795f93)
- clean up E.when and E.resolve (#1561) (634046c)
- excise @agoric/harden from the codebase (eee6fe1)
- minor: rearrange asserts in Remotable (#1642) (c43a08f)
- reduce inconsistency among our linting rules (#1492) (b6b675e)
- rename producePromise to makePromiseKit (#1329) (1d2925a)
- send and receive Remotable tags (#1628) (1bae122)
- stricter marshal requirements (#1499) (9d8ba97)
- use REMOTE_STYLE rather than 'presence' to prepare (#1577) (6b97ae8)
- marshal: make toString and Symbol.toStringTag non-enumerable (fc616ef)
0.2.3 (2020-06-30)
Note: Version bump only for package @agoric/marshal
0.2.2 (2020-05-17)
Note: Version bump only for package @agoric/marshal
0.2.1 (2020-05-10)
Note: Version bump only for package @agoric/marshal
0.2.0 (2020-05-04)
- address PR comments (358952a)
- propagate Go errors all the way to the caller (ea5ba38)
- use getErrorConstructor to deep-copy an Error (8ae1994)
- add Presence, getInterfaceOf, deepCopyData to marshal (aac1899)
0.1.5 (2020-04-13)
Note: Version bump only for package @agoric/marshal
0.1.5-alpha.0 (2020-04-12)
Note: Version bump only for package @agoric/marshal
0.1.4 (2020-04-02)
Note: Version bump only for package @agoric/marshal
0.1.4-alpha.0 (2020-04-02)
Note: Version bump only for package @agoric/marshal
- first draft use collection equality (6acbde7)
- symbols no longer passable (7290a90)
- eventual-send: Update the API throughout agoric-sdk (97fc1e7)
- SwingSet: passing all tests (341718b)
- depend on @agoric/eventual-send (#6)
Moved from https://github.com/Agoric/marshal into the packages/marshal/
directory in the monorepo at https://github.com/Agoric/agoric-sdk .
Remove unneeded SES dependency.
Breaking API change: applications must change how they use m.serialize() and m.serialize().
- change API to use 'CapData' format:
{body, slots}m.serialize()now returns{body, slots}instead of{argsString, slots}m.unserialize()now takes(capdata, cyclePolicy)instead of(body, slots, cyclePolicy). ThecyclePolicyargument remains optional.
- the return value of
m.serialize()is now hardened - improve error messages
First release.