diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index 3071bb5c..5f98cb1a 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -379,7 +379,7 @@ https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/theme-chalk/fonts/eleme
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/theme-chalk/index.min.css
https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.13/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.18.2/ember.debug.js
-https://cdnjs.cloudflare.com/ajax/libs/ember.js/3.28.6/ember.debug.js
+https://cdnjs.cloudflare.com/ajax/libs/ember.js/3.28.8/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/ember.js/4.0.1/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/exif-js/2.3.0/exif.min.js
https://cdnjs.cloudflare.com/ajax/libs/ext-core/3.1.0/ext-core.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index 0ed98c41..7721f45d 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -260,7 +260,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/ember.js/2.')) {
return '2.18.2';
} else if (type.startsWith('/ember.js/3.')) {
- return '3.28.6';
+ return '3.28.8';
} else if (type.startsWith('/ember.js/4.')) {
return '4.0.1';
} else if (type.startsWith('/ethjs')) {
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index 061e6591..00b71706 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -33,6 +33,7 @@
bootstrap-icons v1.7.1 -> v1.7.2 (#791)
clappr v0.4.6 -> v0.4.7 (#792)
ember.js v4.0.0 -> v4.0.1 (#793)
+ ember.js v3.28.6 -> v3.28.8 (#794)
Mapping
diff --git a/resources/ember.js/3.28.6/ember.min.jsm b/resources/ember.js/3.28.8/ember.min.jsm
similarity index 99%
rename from resources/ember.js/3.28.6/ember.min.jsm
rename to resources/ember.js/3.28.8/ember.min.jsm
index 316fa5a2..0f007ab9 100644
--- a/resources/ember.js/3.28.6/ember.min.jsm
+++ b/resources/ember.js/3.28.8/ember.min.jsm
@@ -6,7 +6,7 @@
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
* @license Licensed under MIT license
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
- * @version 3.28.6
+ * @version 3.28.8
*/
/* eslint-disable no-var */
@@ -391,7 +391,7 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
_exports.privatize = privatize;
_exports.getFactoryFor = getFactoryFor;
_exports.setFactoryFor = setFactoryFor;
- _exports.INIT_FACTORY = _exports.Container = _exports.Registry = void 0;
+ _exports.deprecatedStoreInjections = _exports.INIT_FACTORY = _exports.Container = _exports.Registry = void 0;
var leakTracking;
var containers;
@@ -427,6 +427,10 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
} catch (e) {// ignore
}
}
+
+ var deprecatedStoreInjections = true
+ /* DEBUG */
+ && window.WeakSet ? new window.WeakSet() : undefined;
/**
A container used to instantiate and cache objects.
@@ -441,6 +445,7 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
@class Container
*/
+ _exports.deprecatedStoreInjections = deprecatedStoreInjections;
class Container {
constructor(registry, options = {}) {
@@ -798,7 +803,15 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
var [type] = fullName.split(':');
var typeInjections = registry.getTypeInjections(type);
var injections = registry.getInjections(fullName);
- return buildInjections(container, typeInjections, injections);
+ var result = buildInjections(container, typeInjections, injections);
+
+ if (true
+ /* DEBUG */
+ && deprecatedStoreInjections && type === 'route' && result.injections.store) {
+ deprecatedStoreInjections.add(result.injections.store);
+ }
+
+ return result;
}
function destroyDestroyables(container) {
@@ -19064,7 +19077,7 @@ define("@ember/-internals/routing/lib/system/route-info", [], function () {
@public
*/
});
-define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfills", "@ember/-internals/container", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/-internals/utils", "@ember/debug", "@ember/deprecated-features", "@ember/object/compat", "@ember/runloop", "@ember/string", "router_js", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/generate_controller"], function (_exports, _polyfills, _container, _metal, _owner, _runtime, _utils, _debug, _deprecatedFeatures, _compat, _runloop, _string, _router_js, _utils2, _generate_controller) {
+define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfills", "@ember/-internals/container", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/-internals/utils", "@ember/debug", "@ember/deprecated-features", "@ember/object/compat", "@ember/runloop", "router_js", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/generate_controller"], function (_exports, _polyfills, _container, _metal, _owner, _runtime, _utils, _debug, _deprecatedFeatures, _compat, _runloop, _router_js, _utils2, _generate_controller) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
@@ -21066,18 +21079,17 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil
get() {
var owner = (0, _owner.getOwner)(this);
var routeName = this.routeName;
- var namespace = (0, _metal.get)(this, '_router.namespace');
return {
find(name, value) {
var modelClass = owner.factoryFor(`model:${name}`);
- (true && !(Boolean(modelClass)) && (0, _debug.assert)(`You used the dynamic segment ${name}_id in your route ${routeName}, but ${namespace}.${(0, _string.classify)(name)} did not exist and you did not override your route's \`model\` hook.`, Boolean(modelClass)));
+ (true && !(Boolean(modelClass)) && (0, _debug.assert)(`You used the dynamic segment \`${name}_id\` in your route ` + `\`${routeName}\` for which Ember requires you provide a ` + `data-loading implementation. Commonly, that is done by ` + `adding a model hook implementation on the route ` + `(\`model({${name}_id}) {\`) or by injecting an implemention of ` + `a data store: \`@service store;\`.`, Boolean(modelClass)));
if (!modelClass) {
return;
}
modelClass = modelClass.class;
- (true && !(typeof modelClass.find === 'function') && (0, _debug.assert)(`${(0, _string.classify)(name)} has no method \`find\`.`, typeof modelClass.find === 'function'));
+ (true && !(typeof modelClass.find === 'function') && (0, _debug.assert)(`You used the dynamic segment \`${name}_id\` in your route ` + `\`${routeName}\` for which Ember requires you provide a ` + `data-loading implementation. Commonly, that is done by ` + `adding a model hook implementation on the route ` + `(\`model({${name}_id}) {\`) or by injecting an implemention of ` + `a data store: \`@service store;\`.\n\n` + `Rarely, applications may attempt to use a legacy behavior where ` + `the model class (in this case \`${name}\`) is resolved and the ` + `\`find\` method on that class is invoked to load data. In this ` + `application, a model of \`${name}\` was found but it did not ` + `provide a \`find\` method. You should not add a \`find\` ` + `method to your model. Instead, please implement an appropriate ` + `\`model\` hook on the \`${routeName}\` route.`, typeof modelClass.find === 'function'));
return modelClass.find(value);
}
@@ -21085,7 +21097,30 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil
},
set(key, value) {
- (0, _metal.defineProperty)(this, key, null, value);
+ if (true
+ /* DEBUG */
+ && (_container.deprecatedStoreInjections === null || _container.deprecatedStoreInjections === void 0 ? void 0 : _container.deprecatedStoreInjections.has(value))) {
+ Object.defineProperty(this, key, {
+ configurable: true,
+ enumerable: false,
+
+ get() {
+ (true && !(false) && (0, _debug.deprecate)(`A value for the \`store\` property was injected onto a route via the owner API. Implicit injection via the owner API is now deprecated, please add an explicit injection for this value. If the injected value is a service, consider using the @service decorator.`, false, {
+ id: 'implicit-injections',
+ until: '4.0.0',
+ url: 'https://deprecations.emberjs.com/v3.x/#toc_implicit-injections',
+ for: 'ember-source',
+ since: {
+ enabled: '3.28.7'
+ }
+ }));
+ return value;
+ }
+
+ });
+ } else {
+ (0, _metal.defineProperty)(this, key, null, value);
+ }
}
}),
@@ -63189,7 +63224,7 @@ define("ember/version", ["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
- var _default = "3.28.6";
+ var _default = "3.28.8";
_exports.default = _default;
});
define("jquery/index", ["exports", "@ember/-internals/views"], function (_exports, _views) {
diff --git a/resources/ember.js/3.28.6/note b/resources/ember.js/3.28.8/note
similarity index 100%
rename from resources/ember.js/3.28.6/note
rename to resources/ember.js/3.28.8/note