- #3067
8195a5aThanks @gibson042! - - UpdatescontainerHasSplitto consider copyArray elements in forward order, better aligning with intuition.
-
#3127
6ada52bThanks @turadg! - Remove stale runtime dependencies from package manifests. -
Updated dependencies [
6ada52b]:- @endo/marshal@1.9.1
- @endo/pass-style@1.7.1
-
#3082
98f77e9Thanks @boneskull! -@endo/patternsnow exports a newgetNamedMethodGuards(interfaceGuard)that returns that interface guard's record of method guards. The motivation is to support interface inheritance expressed by patterns likeconst I2 = M.interface('I2', { ...getNamedMethodGuards(I1), doMore: M.call().returns(M.any()), });
See
@endo/exo'sexo-wobbly-point.test.jsto see it in action together with an experiment in class inheritance. -
#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.
-
#3082
98f77e9Thanks @boneskull! - Thesloppyoption for@endo/patternsinterface guards is deprecated. UsedefaultGuardsinstead. -
#3065
c488503Thanks @gibson042! - -containerHasSplitnow hardens its output(s) when working with copyArrays, ensuring that each output is itself a copyArray instance. -
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/marshal@1.9.0
- @endo/pass-style@1.7.0
- @endo/promise-kit@1.2.0
1.7.0 (2025-07-12)
@endo/marshalintroduces an environment variable config optionENDO_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.@endo/patternsprovides acompareKeyspartial order that delegates some ordering, including strings, to the rank ordering provided by@endo/marshal. So when theENDO_RANK_STRINGSdefault is not overridden, thencompareKeysalso follows the (incorrect) UTF-16 code unit order. But when it is overridden, thencompareKeysalso follows the (correct) Unicode code-point order.
- In errors explaining why a specimen does not match a pattern, sometimes the error message contains a quoted form of a nested pattern. This quoting was done with
q, producing an uninformative rendering of these nested patterns. Now this quoting is done withqp, which renders these nested patterns into readable Justin source code.
1.6.1 (2025-06-17)
1.6.0 (2025-06-02)
- marshal: passable to quasi-quoted Justin expr (#2799) (f6c8b74), closes #2793
- pass-style,marshal: ByteArray, a new binary Passable type (#1538) (1f568e2), closes #1331 /github.com/ocapn/ocapn/issues/5#issuecomment-1492778252 #2414
- patterns: Expand special-casing of "optionality" patterns (#2758) (1c9cd7f)
1.5.0 (2025-03-24)
- New pattern:
M.containerHas(elementPatt, bound = 1n)motivated to support want patterns in Zoe, to pull out onlyboundnumber of elements that matchelementPatt.boundmust be a positive bigint. - Closely related,
@endo/patternsnow exportscontainerHasSplitto support ERTP's use ofM.containerHason non-fungible (set,copySet) and semifungible (copyBag) assets, respectively. See Agoric/agoric-sdk#10952 .
1.4.8 (2025-01-24)
Note: Version bump only for package @endo/patterns
1.4.7 (2024-11-13)
Note: Version bump only for package @endo/patterns
1.4.6 (2024-10-22)
- patterns: Version 1.4.5 (5cdb873)
1.4.5 (2024-10-22)
Also erroneously published as 2.0.0
- marshal: Update compareRank to terminate comparability at the first remotable (#2597) (1dea84d), closes #2588
1.4.4 (2024-10-10)
Note: Version bump only for package @endo/patterns
1.4.3 (2024-08-27)
Note: Version bump only for package @endo/patterns
1.4.2 (2024-08-01)
Note: Version bump only for package @endo/patterns
1.4.1 (2024-07-30)
Note: Version bump only for package @endo/patterns
1.4.0 (2024-05-07)
Passableis now an accurate type instead ofany. Downstream type checking may require changes (example)- Some downstream types that take or return
Passablewere changed toanyto defer downstream work to accomodate.
1.3.1 (2024-04-04)
- wrap a raw tag in `` so it won't confuse vitepress (0bc9430)
1.3.0 (2024-03-20)
1.2.0 (2024-02-23)
- Add
M.tagged(tagPattern, payloadPattern)for making patterns that match Passable Tagged objects.
1.1.1 (2024-02-15)
- Add repository directory to all package descriptors (e5f36e7)
- patterns,exo: Tolerate old guard format (#2038) (d5b31d9)
1.1.0 (2024-01-18)
- types: generic Passable (ae6ad15)
1.0.1 (2023-12-20)
Note: Version bump only for package @endo/patterns
1.0.0 (2023-12-12)
- patterns: tag and retype guards
- defaultGuards: absorb
sloppyandraw(58a3d42) - defendSyncMethod: implement raw exo methods (c8126dc)
- exo: opt out individual arguments (bf593d8)
- patterns: export kindOf (#1834) (f746e99)
- Adjust type generation in release process and CI (9465be3)
- exo: allow richer behaviorMethods (fde26da)
- exo: tighten typing (c50ee18)
- Import types explicitly throughout (631d087)
- patterns:
M.rawValue()->M.raw()(5b94530) - patterns: pass type parameter from interface guard to payload (7d294eb)
- patterns: remove
defaultGuards: 'never'forundefined(77d04b2) - patterns: tag and retype guards (3e514c5)
- review suggestions (25ded7a)
0.2.6 (2023-09-12)
- Adds support for CopyMap patterns (e.g.,
matches(specimen, makeCopyMap([]))).
0.2.5 (2023-08-07)
- ses: normalize bestEffortsStringify property order (137daff)
0.2.4 (2023-08-07)
- ses: normalize bestEffortsStringify property order (137daff)
0.2.3 (2023-07-19)
- ses: Add assert.raw for embedding unquoted strings in details (652df0c)
- types: parameterize InterfaceGuard (645a7a8)
- mismatch errors should not redact the pattern (a95e7fb)
- patterns: Allow
matches(nonKey, key)to reject successfully (cebc442) - patterns: Implement M.null() and M.undefined() as Key Patterns (88f3ce9), closes #1601
0.2.2 (2023-04-20)
- patterns: correct types (b73622b)
0.2.1 (2023-04-14)
- rename 'fit' to 'mustMatch' (#1464)