v4.3.0
Big changes
This release has three big things:
- Improved compatibility with webpack
- Components can be programmatically instantiated with
new
- Strict mode in modules
Improved compatibility with webpack
Most of the packages are compatible with the process.env.NODE_ENV
checks that other bundlers (like webpack) use to remove code from production builds.
Find more information in this issue: Make CanJS compatible with how webpack strips out dev code.
Components can be programmatically instantiated with new
This release implements everything from the proposal to improve routing to components (and testing), including updates to can-component and can-stache, and a new can-value package.
can-component 4.2.0
In short, the can-component
changes make it possible to create new component instances with new
, without rendering the instances in a template. This is useful when you:
- have complex logic for switching between different components (e.g. routing)
- want to create components without adding them to the page (e.g. testing)
The following defines a MyGreeting
component and creates a my-greeting
element by calling new
on the component’s constructor function:
const HelloWorld = Component.extend({
tag: "hello-world",
view: `
<can-slot name="greetingTemplate" />
<content>world</content>
<ul>{{#each(items)}} {{this}} {{/each}}</ul>
`,
ViewModel: {
items: {}
}
});
// Create a new instance of our component
const componentInstance = new HelloWorld({
// values with which to initialize the component’s view model
viewModel: {
items: ["eat"]
},
// can-stache template to replace any <content> elements in the component’s view
content: "<em>{{message}}</em>",
// <can-template> strings rendered by can-stache with the scope
templates: {
greetingTemplate: "{{greeting}}"
},
// scope with which to render the <content> and templates
scope: {
greeting: "Hello",
message: "friend"
}
});
myGreetingInstance.element; // is like <my-greeting>Hello <em>friend</em> <ul> <li>eat</li> </ul></my-greeting>
myGreetingInstance.viewModel; // is HelloWorld.ViewModel{items: ["eat"]}
Changing the component’s view model will cause its element and any bindings to be updated:
myGreetingInstance.viewModel.items.push("sleep");
myGreetingInstance.element; // is like <my-greeting>Hello <em>friend</em> <ul> <li>eat</li> <li>sleep</li> </ul></my-greeting>
can-stache 4.9.0
This release makes it possible to render component instances in a template with the “unescaped” (triple-curly) tags:
import Component from "can-component";
import stache from "can-stache";
const MyGreeting = Component.extend({
tag: "my-greeting",
view: "<p>Hello {{subject}}</p>",
ViewModel: {
subject: "string"
}
});
const myGreetingInstance = new MyGreeting({
viewModel: {
subject: "friend"
}
});
const template = stache("<div>{{{componentInstance}}}</div>");
const fragment = template({
componentInstance: myGreetingInstance
});
fragment; //-> <div><my-greeting><p>Hello friend</p></my-greeting></div>
can-value 1.0
can-value makes it possible to create new observables:
- from any object or primitive value
- with the return value of a function (that updates when the observables inside it change)
- bound to a specific key in another observable
Find examples in the docs for can-value and each of its methods: bind, from, returnedBy, to, and with.
Strict mode in modules
Almost every module now opts into strict mode with a "use strict"
at the top of the file.
Updates to individual packages
can-ajax
- can-ajax v1.1.3
- can-ajax v1.1.4 - v1.1.4
Change thecan-globals
semver range to<2.0.0
canjs/can-ajax#21 - can-ajax v1.2.0-pre.0
- can-ajax v1.2.0 - Let XHR handle FormData object
canjs/can-ajax#31 - can-ajax v1.2.1
- can-ajax v1.3.0
- can-ajax v2.0.0
- can-ajax v2.0.1 - 2.0.1
Removes a few items from .npmignore that are needed for the canjs/canjs tests. - can-ajax v2.0.2 - 2.0.2
Removes a few items from .npmignore that are needed for the canjs/canjs tests.
can-assign
can-attribute-encoder
- can-attribute-encoder v0.3.3
- can-attribute-encoder v0.3.4
- can-attribute-encoder v1.0.0
- can-attribute-encoder v1.0.1
- can-attribute-encoder v1.0.2
- can-attribute-encoder v1.0.3
- can-attribute-encoder v1.0.4
- can-attribute-encoder v1.0.5 - Encode/decode :raw bindings
This patch release fixes an issue with bindings ending in:raw
not being encoded/decoded like other bindings.
See canjs/can-attribute-encoder#21
can-attribute-observable
- can-attribute-observable v0.1.0
- can-attribute-observable v0.2.0
- can-attribute-observable v0.2.1 - making sure properties are writable before using them
#4 - can-attribute-observable v0.2.2 - not using cached element in attribute getter/setter
canjs/can-attribute-observable#7 - can-attribute-observable v0.2.3
- can-attribute-observable v0.3.0
- can-attribute-observable v0.3.1
- can-attribute-observable v1.0.0
can-bind
can-component
- can-component v4.1.0-pre.2
- can-component v4.1.0 - Remove can-util deps
- can-component v4.1.1
- can-component v4.1.2 - upgrades can-view-nodelist dependency
- can-component v4.1.3 - Register stache bindings using stache.addBindings
- can-component v4.2.0-pre.1
- can-component v4.2.0
- can-component v4.2.1
- can-component v4.2.2
- can-component v5.0.0-pre.0
can-compute
- Unbinding temporary computes now uses (polyfilled) setImmediate instead of a 10ms timeout. This is to make dependent events happen in queue more consistently with mutation observer events (which also use setImmediate in vdom, and native immediate timeouts with real DOM).
- COMPUTE.truthy now doesn't automatically evaluate functions if computes return them as values. This supports using "@" expressions (which do not evaluate a reference function to its returned value) with {{#if}} in can-stache.
- Some external dev dependencies updated: testee and generator-donejs
- can-compute v4.0.0-pre.6
- can-compute v4.0.0-pre.7
- can-compute v4.0.0-pre.8
- can-compute v4.0.0-pre.9
- can-compute v4.0.0
- can-compute v4.0.1
- can-compute v4.0.2
- can-compute v4.0.3 - 4.0.3
Fixes an issue with canReflect.onValue
// oldVal was passed to the change event callback as expected
compute.on("change", function(newVal, oldVall) {
// oldVal was being set correctly here
});
// but it was always undefined when using canReflect.onValue
canReflect.onValue(compute, function(newVal, oldVal) {
// oldVal always `undefined`
});
can-connect
- can-connect v3.0.0-pre.9
- can-connect v3.0.0-pre.10
- can-connect v3.0.0-pre.11
- can-connect v3.0.0-pre.12
- can-connect v3.0.0-pre.13
- can-connect v3.0.0-pre.14
- can-connect v3.0.0-pre.15
- can-connect v3.0.0-pre.16
- can-connect v3.0.0
- can-connect v3.0.1 - 3.0.0
This is a new major release of can-connect!
This change migrates can-connect to being an infrastructure package. can-rest-model
, can-rest-realtime-model
, can-super-model
and others will serve as the primary way in which users will use can-connect.
can-connect-feathers
- can-connect-feathers 3.0.0-pre.20
- can-connect-feathers 3.0.0-pre.21
- can-connect-feathers 3.0.0-pre.22
- can-connect-feathers 3.0.0-pre.23
- can-connect-feathers 3.0.0-pre.24
- can-connect-feathers 3.0.1
- can-connect-feathers 3.0.3
- can-connect-feathers 3.0.4
- can-connect-feathers 3.0.5
- can-connect-feathers 3.0.6 - Catch 'not-authenticated' errors in Session.current
PR: canjs/can-connect-feathers#48
can-construct
- can-construct v3.3.0 - Set Constructor.name with Object.defineProperty
fixes uglify/minify problems with Constructor.name being removed - can-construct v3.3.1
- can-construct v3.4.0
- can-construct v3.4.1
- can-construct v3.4.2
- can-construct v3.4.3
- can-construct v3.4.4
- can-construct v3.5.0
can-construct-super
- can-construct-super v3.1.4 - Not importing all of can-util
In order to be compatible with canjs 4.0, this removes use of can-util/dom methods that use an older version of can-dom-data-state and cause dependency conflicts.
can-control
- can-control v4.0.0-pre.6
- can-control v4.0.0-pre.7
- can-control v4.0.0-pre.8
- can-control v4.0.0
- can-control v4.0.1 - Removing use of can-util/dom
In order to be compatible with canjs 4.0, this removes use of can-util/dom methods that use an older version of can-dom-data-state and cause dependency conflicts.
- can-control v4.0.2 - Added can-log depenency
canjs/can-control#110 - can-control v4.1.0
- can-control v4.1.1
- can-control v4.1.2
- can-control v4.2.0
can-debug
- can-debug v1.0.0-pre.9
- can-debug v1.0.0
- can-debug v1.0.1
- can-debug v1.0.2 - Exposing graph functions
This addsget-graph/get-graph
anddraw-graph/format-graph
to thecan-debug
export. Documentation for these methods will be added in a future minor release. - can-debug v1.0.4
- can-debug v1.1.0 - Registering with CanJS Devtools when available
This automatically sets up the CanJS Devtools extension if can-debug is loaded.
- can-debug v1.2.0 - passing specific can modules required by devtools to register function
This ensures that CanJS Devtools has all of the methods it needs from CanJS modules --Symbol
,Reflect
,queues
,getGraph
,formatGraph
,mergeDeep
. - can-debug v1.2.1 - making sure CANJS_DEVTOOLS.register is called
canjs/can-debug#49 - can-debug v1.2.2 - making sure to actually set CANJS_DEVTOOLS global
canjs/can-debug#50 - can-debug v1.3.0
can-define
- can-define v2.2.5 - identity
Adds theidentity
property definition:
import {DefineMap, Reflect} from "can";
const Todo = DefineMap.extend("Todo",{
id: {type: "number", identity: true},
name: "string",
complete: "boolean"
});
var todo = new Todo({id: 6, name: "mow lawn"});
Reflect.getIdentity(todo) //-> 6
- can-define v2.3.0 - Bye can-util, hello can-data-types
This removes can-util by usingcan-diff
and some other packages. It also usescan-data-type
'sMaybeString
,MaybeNumber
, etc types. - can-define v2.3.1
- can-define v2.3.2 - fix warning messages for default values
canjs/can-define#332 - can-define v2.3.3
- can-define v2.3.4 - Makes Type: Type work with enum types for can-query-logic
- can-define v2.3.5 - fixes getOwnKeys on a basic DefineMap
- can-define v2.3.6 - Removes previously deprecated documentation on Map/List.prototype.set
- can-define v2.3.7
- can-define v2.4.0
can-define-backup
- can-define-backup v1.0.0-pre.0
- can-define-backup v1.0.0-pre.1
- can-define-backup v1.0.0 - API is now a mixin-based
import DefineMap from "can-define/map/map";
import defineBackup from "can-define-backup";
const recipe = new DefineMap( "Recipe", {
title: "Pancake Mix"
} );
defineBackup(recipe);
- can-define-backup v1.1.0
- can-define-backup v2.0.0-pre.1
- can-define-backup v2.0.0-pre.2
- can-define-backup v2.0.0
can-define-lazy-value
can-define-stream
- can-define-stream v1.0.0-pre.0
- can-define-stream v1.0.0-pre.1
- can-define-stream v1.0.0
- can-define-stream v1.0.1
- can-define-stream v1.1.0
can-define-stream-kefir
can-define-validate-validatejs
- can-define-validate-validatejs v0.1.4
- can-define-validate-validatejs v1.0.0-pre.0
- can-define-validate-validatejs v1.0.0-pre.1
- can-define-validate-validatejs v1.0.0
- can-define-validate-validatejs v1.0.1
- can-define-validate-validatejs v1.1.0
can-deparam
- can-deparam v1.0.0
- can-deparam v1.0.1
- can-deparam v1.0.2 - Updated docs and added cycle detection
- Add a cycle detection script to test process #9
- Update docs with new @parent & @collection #10
canjs/can-deparam@v1.0.1...v1.0.2
can-dom-data
can-dom-data-state
- can-dom-data-state v0.0.0-pre.1
- can-dom-data-state v0.0.0
- can-dom-data-state v0.1.0
- can-dom-data-state v0.1.1 - Improve tests and use can-cid
- Improve tests and update description #3
- Use
can-cid
instead ofcan-util/js/cid
#4
canjs/can-dom-data-state@v0.1.0...v0.1.1
- can-dom-data-state v0.2.0 - Updated dependencies, enabled Greenkeeper, fixed get() and set()
- Update dependencies to enable Greenkeeper 🌴 #1
- correct qunit.module name #7
- Add a cycle detection script to test process #6
- Methods get() and set() return the whole store for the given context #9
canjs/can-dom-data-state@v0.1.1...v0.2.0
can-dom-events
- can-dom-events v1.0.6 - Fragmeant
This patch release adds recognition of DocumentFragments as DOM Event Targets. (Note: the changes are in 1.0.5 but somehow releases got jumbled up and there was an existing 1.0.5.) - can-dom-events v1.0.7 - v1.0.7
Change thecan-globals
semver range to<2.0.0
canjs/can-dom-events#34 - can-dom-events v1.1.0
- can-dom-events v1.1.1 - Update to latest dependencies
- can-dom-events v1.1.2 - 1.1.2
Fixes cur.matches
is not a function error
Support Edge 14
Edge 14 has no support for Element.prototype.matches
but it implements the same functionality as Element.prototype.msMatchesSelector
.
can-dom-mutate
- can-dom-mutate v0.1.0 - Initial release
- can-dom-mutate v0.2.0
- can-dom-mutate v0.2.1
- can-dom-mutate v1.0.0
- can-dom-mutate v1.0.1
- can-dom-mutate v1.0.2
- can-dom-mutate v1.0.3
- can-dom-mutate v1.0.4
- can-dom-mutate v1.1.0
can-event-dom-enter
- can-event-dom-enter v2.0.0
- can-event-dom-enter v2.0.1
- can-event-dom-enter v2.1.0
- can-event-dom-enter v2.1.1 - Adds add-global module
For #18.
This should have been a minor. Will make a minor after verifying this works.
can-event-dom-radiochange
- can-event-dom-radiochange v1.0.5 - v1.0.5
Change thecan-globals
semver range to<2.0.0
canjs/can-event-dom-radiochange#17 - can-event-dom-radiochange v2.0.0
- can-event-dom-radiochange v2.1.0
- can-event-dom-radiochange v2.2.0
can-event-queue
Document @@can.getWhatIChange
This patch release includes documentation for the @@can.getWhatIChange
symbol implemented on both value and map event bindings.
- can-event-queue v0.16.0 - Use can-dom-events
Usecan-dom-events
instead ofcan-util/dom/events
for element listening. See PR #13 - can-event-queue v0.16.1 - Update invalid import statement
Fixed an invalid import statement which was not breaking stealjs but was breaking webpack. - can-event-queue v0.16.2
- can-event-queue v0.17.0
- can-event-queue v0.17.1
- can-event-queue v1.0.0
- can-event-queue v1.0.1
- can-event-queue v1.0.2
- can-event-queue v1.1.0
can-fixture
- can-fixture v3.0.0-pre.3
- can-fixture v3.0.0-pre.4
- can-fixture v3.0.0-pre.5
- can-fixture v3.0.0-pre.6
- can-fixture v3.0.0-pre.7
- can-fixture v3.0.0-pre.8
- can-fixture v3.0.0-pre.9
- can-fixture v3.0.0-pre.10
- can-fixture v3.0.0-pre.11
- can-fixture v3.0.0 - 3.0.0
This is a major release, upgrading to usecan-query-logic
instead of can-set.
can-fixture-socket
- can-fixture-socket v1.0.0-pre.1
- can-fixture-socket v1.0.0
- can-fixture-socket v1.0.1
- can-fixture-socket v1.1.0
- can-fixture-socket v2.0.0-pre.1
- can-fixture-socket v2.0.0
can-globals
- can-globals v0.3.0 - v0.3.0
Addis-node
& fixis-browser-window
not to check forSimpleDOM
canjs/can-globals#35 - can-globals v0.4.0 - is-web-worker
Adds anis-web-worker
module. - can-globals v0.4.1
- can-globals v1.0.0
- can-globals v1.0.1
- can-globals v1.1.0 - add base-url
allows one to get/set the base url of the application - can-globals v1.1.1 - fix merge conflict
I fixed some unmerged previous commits. - can-globals v1.2.0
can-kefir
- can-kefir v1.0.0-pre.0
- can-kefir v1.0.0-pre.1
- can-kefir v1.0.0-pre.2
- can-kefir v1.0.0-pre.3
- can-kefir v1.0.0
- can-kefir v1.0.1
- can-kefir v1.0.2
- can-kefir v1.1.0
can-key
- can-key v0.0.1
- can-key v0.1.0
- can-key v0.2.0
- can-key v0.2.1
- can-key v0.3.0
- can-key v0.4.0
- can-key v0.5.0
- can-key v1.0.0
can-key-tree
- can-key-tree v0.0.3
- can-key-tree v0.1.0
- can-key-tree v0.1.1
- can-key-tree v0.1.2
- can-key-tree v0.2.0
- can-key-tree v1.0.0
- can-key-tree v1.0.1
- can-key-tree v1.0.2
- can-key-tree v1.1.0 - Adds isEmpty
canjs/can-key-tree#11 - can-key-tree v1.2.0
can-list
- can-list v4.0.0-pre.5
- can-list v4.0.0-pre.6
- can-list v4.0.0-pre.7
- can-list v4.0.0-pre.8
- can-list v4.0.0-pre.9
- can-list v4.0.0-pre.10
- can-list v4.0.0
- can-list v4.0.1
- can-list v4.0.2 - supports correct patch events
- can-list v4.1.0
can-log
- can-log v0.1.0 - Initial release and standalone module
- Moved
can-util/js/log
andcan-util/js/dev
here. - can-log v0.1.1 - Hide docs and add cycle detection script
- Add a cycle detection script to test process #3
- Hide all docs #4
- can-log v0.1.2 - Fixed @parent and added @collection
- Fixed @parent and added @collection #5
can-map
-
can-map v4.0.1 - 4.0.1
Fixes a couple of issues: -
canReflect.setKeyValue
was used to set acan-compute
value instead ofcanReflect.setValue
🎉
- can-map v4.0.2 - Bug fixes
Fixing
var map = new Map({ 0: "zero" });
canReflect.getKeyValue(map, 0);
and
var map = new Map({ 0: "zero" });
map.attr({ 1: "one" }, "true");
can-map-define
- can-map-define v4.0.0
- can-map-define v4.1.0 - implementing can.hasKey Symbol
#65 - can-map-define v4.1.1 - making hasKey work for functions
#66 - can-map-define v4.2.0
can-ndjson-stream
- can-ndjson-stream v0.1.8
- can-ndjson-stream v1.0.0 - 1.0.0
This is a major release, bumping to 1.0.0 because can-ndjson-stream is already production ready. - Fixed issue with starting chrome headless in CI canjs/can-ndjson-stream#37
- Add "use strict" canjs/can-ndjson-stream#34
can-observation
-
can-observation v4.0.0 - 4 DOT OH!
canjs/can-observation#116 -
no longer needs CID (uses
new Map()
) -
stateful parts are pulled out into
can-observation-recorder
-
new Observation()
works find on its own.
can-observation-recorder
- start returns deps
- can-observation-recorder v1.0.0
- can-observation-recorder v1.0.1
- can-observation-recorder v1.0.2
- can-observation-recorder v1.1.0-pre.0
- can-observation-recorder v1.1.0
- can-observation-recorder v1.1.1
- can-observation-recorder v1.1.2 - Doc fixes
canjs/can-observation-recorder@d110142 - can-observation-recorder v1.2.0
can-observe
- can-observe v2.0.0-pre.22
- can-observe v2.0.0
- can-observe v2.0.1
- can-observe v2.0.2
- can-observe v2.1.0 - Rich Property Behaviors and Decorators
can-observe now supports an extensible system for defining rich property behaviors, by providing an observable-returning function to defineProperty function. This becomes even more reusable when these behaviors are defined inside decorators. We have also provided built-in decorators for async and resolver; - can-observe v2.1.1
- can-observe v2.1.2
- can-observe v2.1.3-0
- can-observe v2.1.3
- can-observe v2.2.0
can-param
can-parse-uri
can-queues
- can-queues v0.3.0
- can-queues v0.3.1
- can-queues v0.4.0
- can-queues v0.4.1
- can-queues v0.5.0
- can-queues v1.0.0
- can-queues v1.0.1
- can-queues v1.1.0
- can-queues v1.1.1
- can-queues v1.1.2
can-reflect
-
can-reflect v1.16.0 - convert, getIdentity, getSchema, cloneKeySort
This adds 4 methods: -
.convert(value, Type)
- convert one value to another -
.getIdentity( value [, schema])
- get a unique value that represents the value -
.getSchema( valueOrType )
- get a schema on the object or the type -
.cloneKeySort( obj )
- return a copy of obj with its properties sorted -
can-reflect v1.16.2 - .size(null) and .size(undefined) return 0
instead of throwing, we give 0 for size(null) and size(undefined) -
can-reflect v1.16.5 - Serialize objects to primitives works
Closes canjs/can-reflect#63 -
can-reflect v1.16.6 - Fixes bug with internal state for serialize() being shared
-
can-reflect v1.16.7 - Properly fast-path size for arrays and strings
canjs/can-reflect#121
can-reflect-dependencies
- can-reflect-dependencies v0.0.1
- can-reflect-dependencies v0.0.2
- can-reflect-dependencies v0.0.3
- can-reflect-dependencies v0.0.4
- can-reflect-dependencies v0.0.5
- can-reflect-dependencies v1.0.0
- can-reflect-dependencies v1.0.1
- can-reflect-dependencies v1.0.2 - fixing addMutatedBy when called multiple times with the same key
canjs/can-reflect-dependencies#16 - can-reflect-dependencies v1.1.0
can-reflect-promise
- can-reflect-promise v2.0.0-pre.1
- can-reflect-promise v2.0.0-pre.2
- can-reflect-promise v2.0.0-pre.3
- can-reflect-promise v2.0.0-pre.4
- can-reflect-promise v2.0.0-pre.5
- can-reflect-promise v2.0.0
- can-reflect-promise v2.0.1
- can-reflect-promise v2.1.0
can-route
- can-route v4.0.0-pre.19
- can-route v4.0.0
- can-route v4.0.1-0
- can-route v4.0.1
- can-route v4.1.0 - route.stop()
This releases adds a new feature,route.stop()
. This can be used to unbind can-route from an observable. This could be used if you needed to change to use a different observable.
import route from "can-route";
route.register("{page}");
route.data = new ViewModel();
route.start();
route.stop();
route.data = new OtherViewModel();
route.start();
can-route-pushstate
- can-route-pushstate v4.0.0
- can-route-pushstate v4.0.1 - Removing use of can-util/dom
In order to be compatible with canjs 4.0, this removes use of can-util/dom methods that use an older version ofcan-dom-data-state
and cause dependency conflicts.
- can-route-pushstate v4.0.2
- can-route-pushstate v4.0.3 - Fixes bug when calling route.stop()
This fixes a bug where callingroute.stop()
would throw when using can-route-pushstate. - can-route-pushstate v4.0.4 - 4.0.4
Fixes bug with .currentRule()
not being observable
See canjs/can-route-pushstate#91
- can-route-pushstate v4.0.5
- can-route-pushstate v4.1.0
- can-route-pushstate v4.1.1 - Fixes description docs
- can-route-pushstate v5.0.0-pre.0
- can-route-pushstate v5.0.0 - 5.0.0
This is a major, breaking change for can-route-pushstate. This creates a new API to use can-route-pushstate, by exporting a constructor function that can be set on the can-route.
import route from "can-route";
import RoutePushstate from "can-route-pushstate";
route.urlData = new RoutePushstate();
route.register("{page}");
can-set
- can-set v1.4.0 - Algebra.has() does not check sorting nor pagination
Previouslycan-set.Algebra.has()
operated somewhat similarly tocan-set.Algebra.subset()
in that it had a special treatment for when a set had sorting and pagination together, to ensure that sorting/order was checked first. This didn't make sense in the case ofhas()
since it checks instance properties instead of sets, and instances in general do not know their own positions in sorted queries nor do they contain sort information of their own.
This has been released as a minor revision instead of a patch: even though no changes in the can-set tests nor documentation were necessary, we cannot guarantee that it won't break users' code relying on Algebra.has()
.
- can-set v1.5.0 - Fix issues with Algebra.prototype.difference()
This release includes PR #82, which improved the difference() function for set.Algebra -- some differences involving paging were incorrect, now fixed, and differences involving ID fields are now supported as well. Also,undefined
is no longer returned; the function now agrees with its documentation and returnsfalse
when A - B = A or A - B = ∅ (for sets A and B).
In addition, the documentation for union() in set.Algebra was updated to reflect the actual return value: false
if the union cannot be expressed as a Set.
- can-set v1.5.1 - Remove duplicate items in Algebra.prototype.getUnion()
Given an algebra:
set.props.id("id")
and these two sets:
{ type: 'a' }
{ area: 'x' }
And these two lists related to the respective sets:
[{ id: 1, type: 'a' area: 'x' }, { id: 2, type: 'a', area: 'y' }]
[{ id: 1, type: 'a' area: 'x' }, { id: 3, type: 'b', area: 'x' }]
Previously, the result of getUnion()
would return a simple concatenation of these two lists:
[{ id: 1, type: 'a' area: 'x' }, { id: 2, type: 'a', area: 'y' }, { id: 1, type: 'a' area: 'x' }, { id: 3, type: 'b', area: 'x' }]
This is suboptimal in cases like in can-connect's cache-requests behavior, where the union of several sets may be used to build a query response for yet a different set. Each item should be represented at most once when creating the union. With this release, items in both aItems
and bItems
are removed from the bItems
before concatenating into a union result. The example above becomes:
[{ id: 1, type: 'a' area: 'x' }, { id: 2, type: 'a', area: 'y' }, { id: 3, type: 'b', area: 'x' }]
Note: this doesn't remove all duplicates, just removes duplicates from
bItems
that are already inaItems
-- ifaItems
already has a duplicate, orbItems
has a duplicate not inaItems
, it will be preserved.
can-simple-dom
-
can-simple-dom v1.3.2 - I node the rules
This release has two fixes: -
Node.prototype.contains
. This used to be on the Element, but any Node hascontains
. -
Deduplication of event handlers. If the same listener is
addEventListener
'd multiple times it should only be added once. -
can-simple-dom v1.3.3 - Fix: Element.className updates on Element.removeAttribute("class")
See #82 for changes. -
can-simple-dom v1.3.4 - Fix: Element.className updates on Element.setAttribute change
See #83 for changes.
can-simple-map
- can-simple-map v4.0.0-pre.11
- can-simple-map v4.0.0-pre.12
- can-simple-map v4.0.0-pre.13
- can-simple-map v4.0.0-pre.14
- can-simple-map v4.0.0-pre.15
- can-simple-map v4.0.0 - can-queues
canjs/can-simple-map#52 - can-simple-map v4.0.1
- can-simple-map v4.1.0
- can-simple-map v4.1.1
- can-simple-map v4.2.0
can-simple-observable
- can-simple-observable v2.0.2
- can-simple-observable v2.0.3 - activate without having to temporarily bind
From #21 - can-simple-observable v2.0.4
- can-simple-observable v2.0.5
- can-simple-observable v2.1.0-pre.1
- can-simple-observable v2.1.0-pre.2
- can-simple-observable v2.1.0-pre.3
- can-simple-observable v2.1.0
- can-simple-observable v2.1.1
- can-simple-observable v2.2.0
can-stache
- can-stache v4.5.9 - cache call expression scopeKeyData arguments for faster performance
#550 - can-stache v4.5.10 - avoid looking up the context unless actually needed
improves performance canjs/can-stache@3182889 - can-stache v4.6.0-pre.1
- can-stache v4.6.0-pre.2
- can-stache v4.6.0 - Allow addHelper to take an object and add addBindings
- can-stache v4.7.0 - addBindings now looks for a symbol
This changes it so thatstache.addBindings(obj)
will first look forobj[Symbol.for('can.stacheBindings')]
to provide a mechanism for slightly better APIs. - can-stache v4.7.1 - Updates addBindings to use viewCallbacks.attrs instead
- can-stache v4.8.0-pre.1
- can-stache v4.8.0
- can-stache v4.9.0
can-stache-bindings
- can-stache-bindings v4.1.4
- can-stache-bindings v4.2.0 - removes can-util deps
- can-stache-bindings v4.2.1
- can-stache-bindings v4.2.2 - on:event:value:bind is initialized
fixes #457 - can-stache-bindings v4.2.3
- can-stache-bindings v4.2.4 - actually fix attribute binding teardown order
an actual fix for #459 - can-stache-bindings v4.2.5
- can-stache-bindings v4.2.6 - Upgrades to can-view-callbacks 4.2 and registers with new callbacks.attrs API
This is a patch release, only changing the way that bindings are registered. It has no affect on outside code. - can-stache-bindings v4.3.0
- can-stache-bindings v5.0.0-pre.0
can-stache-converters
- can-stache-converters v3.3.1
- can-stache-converters v4.0.0-pre.0
- can-stache-converters v4.0.0
- can-stache-converters v4.0.1
- can-stache-converters v4.0.2
- can-stache-converters v4.1.0
- can-stache-converters v4.2.0
can-stache-key
- can-stache-key v1.0.0-pre.17
- can-stache-key v1.0.0 - Use observation-recorder
canjs/can-stache-key#26 - can-stache-key v1.0.1
- can-stache-key v1.0.2 - ignore writes to falsey
<input value:bind="foo.bar.zed"/>
wouldn't work iffoo.bar
didn't exist. We ignore this ... lettingfoo.bar
to eventually come into being.
- can-stache-key v1.1.0
- can-stache-key v1.2.0 - .read() now returns parentHasKey property
canjs/can-stache-key#30 - can-stache-key v1.3.0 - .read() now returns foundLastParent property
Readingfoo.bar.baz
will now returnfoundLastParent: true
iffoo.bar
was found.
- can-stache-key v1.3.1
- can-stache-key v1.3.2 - Writing object performance improvement
canjs/can-stache-key#36 - can-stache-key v1.4.0
can-stache-route-helpers
- can-stache-route-helpers v0.1.0
- can-stache-route-helpers v0.1.1
- can-stache-route-helpers v0.1.2
- can-stache-route-helpers v0.1.3
- can-stache-route-helpers v0.1.4
- can-stache-route-helpers v1.0.0
- can-stache-route-helpers v1.1.0
can-stream
can-stream-kefir
- can-stream-kefir v1.0.0-pre.0
- can-stream-kefir v1.0.0-pre.1
- can-stream-kefir v1.0.0
- can-stream-kefir v1.0.1
- can-stream-kefir v1.1.0
- can-stream-kefir v1.2.0
can-symbol
- can-symbol v1.5.0 - onPatches offPatches
Documents the onPatches and offPatches symbols and what patch objects look like:
add
patches signal that a key was added to an object.
{type: "add", key: "b", value: 1}
delete
patches signal that a key was deleted from an object.
{type: "delete", key: "a"}
set
patches signal that an existing key's value was set to another value.
{type: "set", key: "c", value: 2}
splice
patches signal a list-like object had enumerable values added, removed
or both at a specific index.
{type: "splice", index: 0, deleteCount: 10, insert: [item1, item2]}
move
patches signal a list-like object had an enumerable value move from one
position to another.
{type: "move", fromIndex: 1, toIndex: 2}
values
patches signal a container-like object (like Set
) has
had items added or removed.
{type: "values", delete: [item0], insert: [item1, item2]}
can-types
- can-types v1.1.5 - v1.1.5
Change thecan-globals
semver range to<2.0.0
canjs/can-types#38 - can-types v1.1.6
- can-types v1.1.7 - Republishing 1.1.6
Thetest
folder was missing from the NPM package. - can-types v1.2.0
can-util
-
can-util v3.10.19 - 3.10.19
Fixes an issue wherecan-util/js/import/import
would always callPromise.resolve()
in optimized builds (instead of callingsteal.import
). -
can-util v3.11.0 - Add string.replaceWith()
This minor release addscan-util/js/string/string.replaceWith
, see PR #402. -
can-util v3.11.2 - Republishing 3.11.1
v3.11.1 was missing it's/test
folder in npm. -
can-util v3.11.7 - republishing v3.11.6 due to missing test folder
can-validate
-
can-validate v1.1.2 - 1.1.2
This patch release includes several small changes tocan-validate
internals, namely: -
Remove unused import
-
Use can-reflect instead of can-util
-
Fix jshint setup (it needed a config file)
-
Use bit-docs 0.0.8 (instead of the prerelease)
✌️
- can-validate v1.1.3 - 1.1.3
In the previous release,can-reflect/eachIndex
was introduced to replacecan-util/each
. Unfortunatelycan-reflect/eachIndex
throws when passed anundefined/null
reference.
This patch release adds a conditional to prevent can-validate
to throw.
can-validate-interface
- can-validate-interface v1.0.0-pre.1
- can-validate-interface v1.0.0-pre.2
- can-validate-interface v1.0.0
- can-validate-interface v1.0.1
- can-validate-interface v1.0.2
can-validate-legacy
- can-validate-legacy v1.2.0
- can-validate-legacy v1.2.1
- can-validate-legacy v1.3.0
- can-validate-legacy v1.4.0
can-validate-validatejs
can-value
can-vdom
- can-vdom v3.2.5 - v3.2.5
Change thecan-globals
semver range to<2.0.0
canjs/can-vdom#39 - can-vdom v4.0.0
- can-vdom v4.0.1
- can-vdom v4.1.0
- can-vdom v4.2.0
can-view-autorender
- can-view-autorender v3.1.3 - Add note for caveat when using elements other than script tags
- Add note for caveat when using elements other than script tags #71
canjs/can-view-autorender@v3.1.2...v3.1.3
- can-view-autorender v3.1.4 - Really add note for caveat when using elements other than script tags
- Really add note for caveat when using elements other than script tags #72
canjs/can-view-autorender@v3.1.3...v3.1.4
- can-view-autorender v4.0.0-pre.0
- can-view-autorender v4.0.0
- can-view-autorender v4.1.0
- can-view-autorender v4.2.0
- can-view-autorender v5.0.0-pre.0
- can-view-autorender v5.0.0-pre.1
- can-view-autorender v5.0.0
- can-view-autorender v5.0.1
can-view-callbacks
- can-view-callbacks v4.0.0-pre.15
- can-view-callbacks v4.0.0-pre.16
- can-view-callbacks v4.0.0-pre.17
- can-view-callbacks v4.0.0 - Automount tags
canjs/can-view-callbacks#65 - can-view-callbacks v4.0.1
- can-view-callbacks v4.1.0
- can-view-callbacks v4.1.1
- can-view-callbacks v4.1.2 - Avoiding use of Object.setPrototypeOf
canjs/can-view-callbacks#90 - can-view-callbacks v4.2.0
- can-view-callbacks v4.3.0
can-view-import
- can-view-import v4.0.0-pre.5
- can-view-import v4.0.0-pre.6
- can-view-import v4.0.0-pre.7
- can-view-import v4.0.0-pre.8
- can-view-import v4.0.0-pre.9
- can-view-import v4.0.0-pre.10
- can-view-import v4.0.0
- can-view-import v4.0.1
- can-view-import v4.0.2
- can-view-import v4.1.0
can-view-live
- can-view-live v4.0.6 - using can-attribute-observable.set instead of setAttrOrProp
#102 - can-view-live v4.1.0-pre.1
- can-view-live v4.1.0
- can-view-live v4.1.1
- can-view-live v4.1.2
- can-view-live v4.1.3
- can-view-live v4.1.4-0
- can-view-live v4.1.4 - Only add changesDeps in development
canjs/can-view-live#111
for faster performance
can-view-model
- can-view-model v3.5.2 - Updating can-globals dependency
canjs/can-view-model@7c4352d - can-view-model v4.0.0-pre.1
- can-view-model v4.0.0-pre.2
- can-view-model v4.0.0-pre.3
- can-view-model v4.0.0-pre.4
- can-view-model v4.0.0-pre.5
- can-view-model v4.0.0-pre.6
- can-view-model v4.0.0
- can-view-model v4.0.1
can-view-nodelist
- can-view-nodelist v4.0.0-pre.2
- can-view-nodelist v4.0.0-pre.3
- can-view-nodelist v4.0.0-pre.4
- can-view-nodelist v4.0.0-pre.5
- can-view-nodelist v4.0.0
- can-view-nodelist v4.0.1 - Uses can-dom-mutate
Uses the new can-dom-mutate module for 4.0 - can-view-nodelist v4.0.2
- can-view-nodelist v4.1.0 - isUnregistered
Related to canjs/can-stache#542, adds an isUnregistered flag to know if a nodeList has been unregistered
canjs/can-view-nodelist@ee27a53
can-view-parser
- can-view-parser v3.7.0 - Deprecated magicMatch
canjs/can-view-parser#80 - can-view-parser v3.8.0 - Deprecated magicStart
canjs/can-view-parser#82 - can-view-parser v3.8.1 - Support closing bracket character (>) in attribute values
Prior to this release, a fragment like<button data-value="3 > 2"></button>
would end the parsing of the start tag inside the attribute value when it encountered a character that looked like the end of the tag.
With this release, the above parses correctly, with 3 > 2
being parsed as the value of the data-value
attribute and the tag ending after the attribute value ends.
- can-view-parser v3.8.2
- can-view-parser v3.8.3 - Republishing 3.8.2
Thetest
folder was missing from the NPM package. - can-view-parser v4.0.0-pre.0
- can-view-parser v4.0.0
- can-view-parser v4.0.1
- can-view-parser v4.0.2
- can-view-parser v4.1.0
can-view-scope
- can-view-scope v4.1.1 - Preventing errors in getPathsForKey when a context is not an object
canjs/can-view-scope#162 - can-view-scope v4.2.0 - implementing can.hasKey Symbol on Scope.prototype
canjs/can-view-scope#163 - can-view-scope v4.3.0
- can-view-scope v4.3.1
- can-view-scope v4.3.2 - not including notContext scopes in correct paths
canjs/can-view-scope#167 - can-view-scope v4.4.0 - read returns parentHasKey data
var VM = DefineMap.extend({
foo: "string"
});
var vm = new VM();
var scope = new Scope(vm);
scope.read("foo").parentHasKey; // -> true
This also makes it so that getPathsForKey
will return back paths where the key returns a function.
- can-view-scope v4.4.1 - Not removing scope.getPathsForKey in production
scope.getPathsForKey
should only be used in development-mode, but there is at least one thing using it in production, so leaving it in for now. Will remove it once this has been fixed.
- can-view-scope v4.4.2 - refactoring Scope.prototype.hasKey to avoid using getPathsForKey
canjs/can-view-scope#173 - can-view-scope v4.4.3 - Remove dev-only comments for updating thisArg
- can-view-scope v4.5.0
can-view-target
- can-view-target v3.1.6
- can-view-target v4.0.0-pre.1
- can-view-target v4.0.0 - use can-dom-mutate
PR: canjs/can-view-target#60 - can-view-target v4.0.1
- can-view-target v4.1.0
can-zone
- can-zone v0.6.16 - 0.6.16
This patch release moves debug-on-timeout in the can-zone/debug plugin to occur when the asynchronous function is called, rather than when the callback is called. This makes it easier to look back in the call stack and figure out why the asynchronous code is still running after a timeout is complete. - can-zone v0.6.17 - 0.6.17
Wrap event handlers set with .on[event] = handler
syntax.
This patch release makes it so can-zone
wraps event handlers like the following:
var div = document.createElement("div");
// handleClick should run within the current zone now.
div.onclick = function handleClick() {
};
- can-zone v0.6.18 - not trying to read EVENT_HANDLER of undefined
canjs/can-zone#162 - can-zone v0.6.19 - 0.6.19
- Support cancelAnimationFrame
- relative urls not matching XHR_CACHE
- allow third-party library to also wrap events in strict-mode
- can-zone v0.6.20 - 0.6.20
This is a bug fix release, making it possible to run can-zone inside of a web worker. - can-zone v0.6.21
- can-zone v0.6.22
react-view-model
- react-view-model v2.0.0
- react-view-model v2.0.1
- react-view-model v2.0.2
- react-view-model v2.0.3
- react-view-model v2.0.4
- react-view-model v2.0.5
- react-view-model v2.0.6
- react-view-model v2.0.7-0
- react-view-model v2.0.7-1
- react-view-model v2.0.7-2
donejs:canjs chasen$