trusty-cms 4.2.2 → 4.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +98 -89
  4. data/app/assets/config/trusty-cms/manifest.js +7 -0
  5. data/app/assets/javascripts/admin/custom_file_upload.js +7 -0
  6. data/app/controllers/admin/assets_controller.rb +1 -1
  7. data/app/models/page.rb +2 -2
  8. data/app/views/admin/assets/new.html.haml +2 -0
  9. data/config/database.yml +4 -0
  10. data/config/initializers/assets.rb +0 -4
  11. data/coverage/index.html +155 -155
  12. data/lib/trusty_cms.rb +1 -1
  13. data/node_modules/hosted-git-info/CHANGELOG.md +10 -0
  14. data/node_modules/hosted-git-info/index.js +2 -2
  15. data/node_modules/hosted-git-info/package.json +1 -1
  16. data/node_modules/lodash/README.md +2 -2
  17. data/node_modules/lodash/_baseClone.js +2 -1
  18. data/node_modules/lodash/_baseOrderBy.js +17 -2
  19. data/node_modules/lodash/_baseSet.js +4 -0
  20. data/node_modules/lodash/_baseSortedIndexBy.js +7 -4
  21. data/node_modules/lodash/_baseTrim.js +19 -0
  22. data/node_modules/lodash/_equalArrays.js +5 -4
  23. data/node_modules/lodash/_equalObjects.js +5 -4
  24. data/node_modules/lodash/_trimmedEndIndex.js +19 -0
  25. data/node_modules/lodash/core.js +48 -6
  26. data/node_modules/lodash/core.min.js +9 -9
  27. data/node_modules/lodash/filter.js +4 -0
  28. data/node_modules/lodash/flake.lock +40 -0
  29. data/node_modules/lodash/flake.nix +20 -0
  30. data/node_modules/lodash/lodash.js +59 -11
  31. data/node_modules/lodash/lodash.min.js +126 -125
  32. data/node_modules/lodash/matches.js +7 -0
  33. data/node_modules/lodash/matchesProperty.js +7 -0
  34. data/node_modules/lodash/overEvery.js +4 -0
  35. data/node_modules/lodash/overSome.js +7 -0
  36. data/node_modules/lodash/package.json +1 -1
  37. data/node_modules/lodash/parseInt.js +1 -1
  38. data/node_modules/lodash/release.md +48 -0
  39. data/node_modules/lodash/sortBy.js +3 -3
  40. data/node_modules/lodash/template.js +24 -5
  41. data/node_modules/lodash/toNumber.js +3 -5
  42. data/node_modules/lodash/trim.js +2 -4
  43. data/node_modules/lodash/trimEnd.js +3 -5
  44. data/node_modules/lodash/trimStart.js +1 -1
  45. data/spec/dummy/log/development.log +9 -163
  46. data/spec/dummy/log/test.log +536 -0
  47. data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +333 -0
  48. data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +43 -0
  49. data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +11008 -0
  50. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
  51. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
  52. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
  53. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
  54. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
  55. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
  56. data/spec/dummy/node_modules/jquery-ui-bundle/index.html +559 -0
  57. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +1312 -0
  58. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +18706 -0
  59. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +7 -0
  60. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +13 -0
  61. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +886 -0
  62. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +5 -0
  63. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +443 -0
  64. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +5 -0
  65. data/spec/dummy/node_modules/jquery-ui-bundle/package.json +33 -0
  66. data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +109 -0
  67. data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +20 -0
  68. data/spec/dummy/node_modules/jquery-ujs/README.md +86 -0
  69. data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +23 -0
  70. data/spec/dummy/node_modules/jquery-ujs/bower.json +19 -0
  71. data/spec/dummy/node_modules/jquery-ujs/package.json +26 -0
  72. data/spec/dummy/node_modules/jquery-ujs/src/rails.js +555 -0
  73. data/spec/dummy/node_modules/jquery/AUTHORS.txt +327 -0
  74. data/spec/dummy/node_modules/jquery/LICENSE.txt +20 -0
  75. data/spec/dummy/node_modules/jquery/README.md +62 -0
  76. data/spec/dummy/node_modules/jquery/bower.json +14 -0
  77. data/spec/dummy/node_modules/jquery/dist/jquery.js +10872 -0
  78. data/spec/dummy/node_modules/jquery/dist/jquery.min.js +2 -0
  79. data/spec/dummy/node_modules/jquery/dist/jquery.min.map +1 -0
  80. data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +8777 -0
  81. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +2 -0
  82. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  83. data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  84. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +2478 -0
  85. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  86. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  87. data/spec/dummy/node_modules/jquery/package.json +117 -0
  88. data/spec/dummy/node_modules/jquery/src/ajax.js +873 -0
  89. data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +103 -0
  90. data/spec/dummy/node_modules/jquery/src/ajax/load.js +77 -0
  91. data/spec/dummy/node_modules/jquery/src/ajax/script.js +74 -0
  92. data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +5 -0
  93. data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  94. data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +5 -0
  95. data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +170 -0
  96. data/spec/dummy/node_modules/jquery/src/attributes.js +13 -0
  97. data/spec/dummy/node_modules/jquery/src/attributes/attr.js +141 -0
  98. data/spec/dummy/node_modules/jquery/src/attributes/classes.js +186 -0
  99. data/spec/dummy/node_modules/jquery/src/attributes/prop.js +143 -0
  100. data/spec/dummy/node_modules/jquery/src/attributes/support.js +33 -0
  101. data/spec/dummy/node_modules/jquery/src/attributes/val.js +191 -0
  102. data/spec/dummy/node_modules/jquery/src/callbacks.js +236 -0
  103. data/spec/dummy/node_modules/jquery/src/core.js +400 -0
  104. data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +43 -0
  105. data/spec/dummy/node_modules/jquery/src/core/access.js +72 -0
  106. data/spec/dummy/node_modules/jquery/src/core/camelCase.js +23 -0
  107. data/spec/dummy/node_modules/jquery/src/core/init.js +129 -0
  108. data/spec/dummy/node_modules/jquery/src/core/isAttached.js +26 -0
  109. data/spec/dummy/node_modules/jquery/src/core/nodeName.js +13 -0
  110. data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +65 -0
  111. data/spec/dummy/node_modules/jquery/src/core/parseXML.js +30 -0
  112. data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +97 -0
  113. data/spec/dummy/node_modules/jquery/src/core/ready.js +86 -0
  114. data/spec/dummy/node_modules/jquery/src/core/readyException.js +13 -0
  115. data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
  116. data/spec/dummy/node_modules/jquery/src/core/support.js +20 -0
  117. data/spec/dummy/node_modules/jquery/src/core/toType.js +20 -0
  118. data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +7 -0
  119. data/spec/dummy/node_modules/jquery/src/css.js +494 -0
  120. data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +26 -0
  121. data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +74 -0
  122. data/spec/dummy/node_modules/jquery/src/css/curCSS.js +65 -0
  123. data/spec/dummy/node_modules/jquery/src/css/finalPropName.js +42 -0
  124. data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  125. data/spec/dummy/node_modules/jquery/src/css/showHide.js +105 -0
  126. data/spec/dummy/node_modules/jquery/src/css/support.js +133 -0
  127. data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +5 -0
  128. data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +17 -0
  129. data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  130. data/spec/dummy/node_modules/jquery/src/css/var/rboxStyle.js +7 -0
  131. data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
  132. data/spec/dummy/node_modules/jquery/src/css/var/swap.js +26 -0
  133. data/spec/dummy/node_modules/jquery/src/data.js +180 -0
  134. data/spec/dummy/node_modules/jquery/src/data/Data.js +162 -0
  135. data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +19 -0
  136. data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +7 -0
  137. data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +7 -0
  138. data/spec/dummy/node_modules/jquery/src/deferred.js +399 -0
  139. data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
  140. data/spec/dummy/node_modules/jquery/src/deprecated.js +87 -0
  141. data/spec/dummy/node_modules/jquery/src/deprecated/ajax-event-alias.js +22 -0
  142. data/spec/dummy/node_modules/jquery/src/deprecated/event.js +48 -0
  143. data/spec/dummy/node_modules/jquery/src/dimensions.js +57 -0
  144. data/spec/dummy/node_modules/jquery/src/effects.js +701 -0
  145. data/spec/dummy/node_modules/jquery/src/effects/Tween.js +125 -0
  146. data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +15 -0
  147. data/spec/dummy/node_modules/jquery/src/event.js +892 -0
  148. data/spec/dummy/node_modules/jquery/src/event/focusin.js +58 -0
  149. data/spec/dummy/node_modules/jquery/src/event/support.js +11 -0
  150. data/spec/dummy/node_modules/jquery/src/event/trigger.js +201 -0
  151. data/spec/dummy/node_modules/jquery/src/exports/amd.js +26 -0
  152. data/spec/dummy/node_modules/jquery/src/exports/global.js +34 -0
  153. data/spec/dummy/node_modules/jquery/src/jquery.js +41 -0
  154. data/spec/dummy/node_modules/jquery/src/manipulation.js +480 -0
  155. data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +32 -0
  156. data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +106 -0
  157. data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +32 -0
  158. data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
  159. data/spec/dummy/node_modules/jquery/src/manipulation/support.js +41 -0
  160. data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
  161. data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +8 -0
  162. data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +30 -0
  163. data/spec/dummy/node_modules/jquery/src/offset.js +238 -0
  164. data/spec/dummy/node_modules/jquery/src/queue.js +145 -0
  165. data/spec/dummy/node_modules/jquery/src/queue/delay.js +24 -0
  166. data/spec/dummy/node_modules/jquery/src/selector-native.js +241 -0
  167. data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +19 -0
  168. data/spec/dummy/node_modules/jquery/src/selector.js +3 -0
  169. data/spec/dummy/node_modules/jquery/src/serialize.js +136 -0
  170. data/spec/dummy/node_modules/jquery/src/traversing.js +198 -0
  171. data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +97 -0
  172. data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +22 -0
  173. data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
  174. data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +17 -0
  175. data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
  176. data/spec/dummy/node_modules/jquery/src/var/arr.js +5 -0
  177. data/spec/dummy/node_modules/jquery/src/var/class2type.js +6 -0
  178. data/spec/dummy/node_modules/jquery/src/var/document.js +5 -0
  179. data/spec/dummy/node_modules/jquery/src/var/documentElement.js +7 -0
  180. data/spec/dummy/node_modules/jquery/src/var/flat.js +16 -0
  181. data/spec/dummy/node_modules/jquery/src/var/fnToString.js +7 -0
  182. data/spec/dummy/node_modules/jquery/src/var/getProto.js +5 -0
  183. data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +7 -0
  184. data/spec/dummy/node_modules/jquery/src/var/indexOf.js +7 -0
  185. data/spec/dummy/node_modules/jquery/src/var/isFunction.js +13 -0
  186. data/spec/dummy/node_modules/jquery/src/var/isWindow.js +8 -0
  187. data/spec/dummy/node_modules/jquery/src/var/pnum.js +5 -0
  188. data/spec/dummy/node_modules/jquery/src/var/push.js +7 -0
  189. data/spec/dummy/node_modules/jquery/src/var/rcheckableType.js +5 -0
  190. data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +9 -0
  191. data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
  192. data/spec/dummy/node_modules/jquery/src/var/slice.js +7 -0
  193. data/spec/dummy/node_modules/jquery/src/var/support.js +6 -0
  194. data/spec/dummy/node_modules/jquery/src/var/toString.js +7 -0
  195. data/spec/dummy/node_modules/jquery/src/wrap.js +78 -0
  196. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +5 -0
  197. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +1 -0
  198. data/trusty_cms.gemspec +3 -2
  199. data/yarn.lock +9 -9
  200. metadata +354 -50
@@ -0,0 +1,19 @@
1
+ define( function() {
2
+
3
+ "use strict";
4
+
5
+ /**
6
+ * Determines whether an object can have data
7
+ */
8
+ return function( owner ) {
9
+
10
+ // Accepts only:
11
+ // - Node
12
+ // - Node.ELEMENT_NODE
13
+ // - Node.DOCUMENT_NODE
14
+ // - Object
15
+ // - Any
16
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17
+ };
18
+
19
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );
@@ -0,0 +1,399 @@
1
+ define( [
2
+ "./core",
3
+ "./var/isFunction",
4
+ "./var/slice",
5
+ "./callbacks"
6
+ ], function( jQuery, isFunction, slice ) {
7
+
8
+ "use strict";
9
+
10
+ function Identity( v ) {
11
+ return v;
12
+ }
13
+ function Thrower( ex ) {
14
+ throw ex;
15
+ }
16
+
17
+ function adoptValue( value, resolve, reject, noValue ) {
18
+ var method;
19
+
20
+ try {
21
+
22
+ // Check for promise aspect first to privilege synchronous behavior
23
+ if ( value && isFunction( ( method = value.promise ) ) ) {
24
+ method.call( value ).done( resolve ).fail( reject );
25
+
26
+ // Other thenables
27
+ } else if ( value && isFunction( ( method = value.then ) ) ) {
28
+ method.call( value, resolve, reject );
29
+
30
+ // Other non-thenables
31
+ } else {
32
+
33
+ // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
34
+ // * false: [ value ].slice( 0 ) => resolve( value )
35
+ // * true: [ value ].slice( 1 ) => resolve()
36
+ resolve.apply( undefined, [ value ].slice( noValue ) );
37
+ }
38
+
39
+ // For Promises/A+, convert exceptions into rejections
40
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
41
+ // Deferred#then to conditionally suppress rejection.
42
+ } catch ( value ) {
43
+
44
+ // Support: Android 4.0 only
45
+ // Strict mode functions invoked without .call/.apply get global-object context
46
+ reject.apply( undefined, [ value ] );
47
+ }
48
+ }
49
+
50
+ jQuery.extend( {
51
+
52
+ Deferred: function( func ) {
53
+ var tuples = [
54
+
55
+ // action, add listener, callbacks,
56
+ // ... .then handlers, argument index, [final state]
57
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
58
+ jQuery.Callbacks( "memory" ), 2 ],
59
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
60
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
61
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
62
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
63
+ ],
64
+ state = "pending",
65
+ promise = {
66
+ state: function() {
67
+ return state;
68
+ },
69
+ always: function() {
70
+ deferred.done( arguments ).fail( arguments );
71
+ return this;
72
+ },
73
+ "catch": function( fn ) {
74
+ return promise.then( null, fn );
75
+ },
76
+
77
+ // Keep pipe for back-compat
78
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
79
+ var fns = arguments;
80
+
81
+ return jQuery.Deferred( function( newDefer ) {
82
+ jQuery.each( tuples, function( _i, tuple ) {
83
+
84
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
85
+ var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
86
+
87
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
88
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
89
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
90
+ deferred[ tuple[ 1 ] ]( function() {
91
+ var returned = fn && fn.apply( this, arguments );
92
+ if ( returned && isFunction( returned.promise ) ) {
93
+ returned.promise()
94
+ .progress( newDefer.notify )
95
+ .done( newDefer.resolve )
96
+ .fail( newDefer.reject );
97
+ } else {
98
+ newDefer[ tuple[ 0 ] + "With" ](
99
+ this,
100
+ fn ? [ returned ] : arguments
101
+ );
102
+ }
103
+ } );
104
+ } );
105
+ fns = null;
106
+ } ).promise();
107
+ },
108
+ then: function( onFulfilled, onRejected, onProgress ) {
109
+ var maxDepth = 0;
110
+ function resolve( depth, deferred, handler, special ) {
111
+ return function() {
112
+ var that = this,
113
+ args = arguments,
114
+ mightThrow = function() {
115
+ var returned, then;
116
+
117
+ // Support: Promises/A+ section 2.3.3.3.3
118
+ // https://promisesaplus.com/#point-59
119
+ // Ignore double-resolution attempts
120
+ if ( depth < maxDepth ) {
121
+ return;
122
+ }
123
+
124
+ returned = handler.apply( that, args );
125
+
126
+ // Support: Promises/A+ section 2.3.1
127
+ // https://promisesaplus.com/#point-48
128
+ if ( returned === deferred.promise() ) {
129
+ throw new TypeError( "Thenable self-resolution" );
130
+ }
131
+
132
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
133
+ // https://promisesaplus.com/#point-54
134
+ // https://promisesaplus.com/#point-75
135
+ // Retrieve `then` only once
136
+ then = returned &&
137
+
138
+ // Support: Promises/A+ section 2.3.4
139
+ // https://promisesaplus.com/#point-64
140
+ // Only check objects and functions for thenability
141
+ ( typeof returned === "object" ||
142
+ typeof returned === "function" ) &&
143
+ returned.then;
144
+
145
+ // Handle a returned thenable
146
+ if ( isFunction( then ) ) {
147
+
148
+ // Special processors (notify) just wait for resolution
149
+ if ( special ) {
150
+ then.call(
151
+ returned,
152
+ resolve( maxDepth, deferred, Identity, special ),
153
+ resolve( maxDepth, deferred, Thrower, special )
154
+ );
155
+
156
+ // Normal processors (resolve) also hook into progress
157
+ } else {
158
+
159
+ // ...and disregard older resolution values
160
+ maxDepth++;
161
+
162
+ then.call(
163
+ returned,
164
+ resolve( maxDepth, deferred, Identity, special ),
165
+ resolve( maxDepth, deferred, Thrower, special ),
166
+ resolve( maxDepth, deferred, Identity,
167
+ deferred.notifyWith )
168
+ );
169
+ }
170
+
171
+ // Handle all other returned values
172
+ } else {
173
+
174
+ // Only substitute handlers pass on context
175
+ // and multiple values (non-spec behavior)
176
+ if ( handler !== Identity ) {
177
+ that = undefined;
178
+ args = [ returned ];
179
+ }
180
+
181
+ // Process the value(s)
182
+ // Default process is resolve
183
+ ( special || deferred.resolveWith )( that, args );
184
+ }
185
+ },
186
+
187
+ // Only normal processors (resolve) catch and reject exceptions
188
+ process = special ?
189
+ mightThrow :
190
+ function() {
191
+ try {
192
+ mightThrow();
193
+ } catch ( e ) {
194
+
195
+ if ( jQuery.Deferred.exceptionHook ) {
196
+ jQuery.Deferred.exceptionHook( e,
197
+ process.stackTrace );
198
+ }
199
+
200
+ // Support: Promises/A+ section 2.3.3.3.4.1
201
+ // https://promisesaplus.com/#point-61
202
+ // Ignore post-resolution exceptions
203
+ if ( depth + 1 >= maxDepth ) {
204
+
205
+ // Only substitute handlers pass on context
206
+ // and multiple values (non-spec behavior)
207
+ if ( handler !== Thrower ) {
208
+ that = undefined;
209
+ args = [ e ];
210
+ }
211
+
212
+ deferred.rejectWith( that, args );
213
+ }
214
+ }
215
+ };
216
+
217
+ // Support: Promises/A+ section 2.3.3.3.1
218
+ // https://promisesaplus.com/#point-57
219
+ // Re-resolve promises immediately to dodge false rejection from
220
+ // subsequent errors
221
+ if ( depth ) {
222
+ process();
223
+ } else {
224
+
225
+ // Call an optional hook to record the stack, in case of exception
226
+ // since it's otherwise lost when execution goes async
227
+ if ( jQuery.Deferred.getStackHook ) {
228
+ process.stackTrace = jQuery.Deferred.getStackHook();
229
+ }
230
+ window.setTimeout( process );
231
+ }
232
+ };
233
+ }
234
+
235
+ return jQuery.Deferred( function( newDefer ) {
236
+
237
+ // progress_handlers.add( ... )
238
+ tuples[ 0 ][ 3 ].add(
239
+ resolve(
240
+ 0,
241
+ newDefer,
242
+ isFunction( onProgress ) ?
243
+ onProgress :
244
+ Identity,
245
+ newDefer.notifyWith
246
+ )
247
+ );
248
+
249
+ // fulfilled_handlers.add( ... )
250
+ tuples[ 1 ][ 3 ].add(
251
+ resolve(
252
+ 0,
253
+ newDefer,
254
+ isFunction( onFulfilled ) ?
255
+ onFulfilled :
256
+ Identity
257
+ )
258
+ );
259
+
260
+ // rejected_handlers.add( ... )
261
+ tuples[ 2 ][ 3 ].add(
262
+ resolve(
263
+ 0,
264
+ newDefer,
265
+ isFunction( onRejected ) ?
266
+ onRejected :
267
+ Thrower
268
+ )
269
+ );
270
+ } ).promise();
271
+ },
272
+
273
+ // Get a promise for this deferred
274
+ // If obj is provided, the promise aspect is added to the object
275
+ promise: function( obj ) {
276
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
277
+ }
278
+ },
279
+ deferred = {};
280
+
281
+ // Add list-specific methods
282
+ jQuery.each( tuples, function( i, tuple ) {
283
+ var list = tuple[ 2 ],
284
+ stateString = tuple[ 5 ];
285
+
286
+ // promise.progress = list.add
287
+ // promise.done = list.add
288
+ // promise.fail = list.add
289
+ promise[ tuple[ 1 ] ] = list.add;
290
+
291
+ // Handle state
292
+ if ( stateString ) {
293
+ list.add(
294
+ function() {
295
+
296
+ // state = "resolved" (i.e., fulfilled)
297
+ // state = "rejected"
298
+ state = stateString;
299
+ },
300
+
301
+ // rejected_callbacks.disable
302
+ // fulfilled_callbacks.disable
303
+ tuples[ 3 - i ][ 2 ].disable,
304
+
305
+ // rejected_handlers.disable
306
+ // fulfilled_handlers.disable
307
+ tuples[ 3 - i ][ 3 ].disable,
308
+
309
+ // progress_callbacks.lock
310
+ tuples[ 0 ][ 2 ].lock,
311
+
312
+ // progress_handlers.lock
313
+ tuples[ 0 ][ 3 ].lock
314
+ );
315
+ }
316
+
317
+ // progress_handlers.fire
318
+ // fulfilled_handlers.fire
319
+ // rejected_handlers.fire
320
+ list.add( tuple[ 3 ].fire );
321
+
322
+ // deferred.notify = function() { deferred.notifyWith(...) }
323
+ // deferred.resolve = function() { deferred.resolveWith(...) }
324
+ // deferred.reject = function() { deferred.rejectWith(...) }
325
+ deferred[ tuple[ 0 ] ] = function() {
326
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
327
+ return this;
328
+ };
329
+
330
+ // deferred.notifyWith = list.fireWith
331
+ // deferred.resolveWith = list.fireWith
332
+ // deferred.rejectWith = list.fireWith
333
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
334
+ } );
335
+
336
+ // Make the deferred a promise
337
+ promise.promise( deferred );
338
+
339
+ // Call given func if any
340
+ if ( func ) {
341
+ func.call( deferred, deferred );
342
+ }
343
+
344
+ // All done!
345
+ return deferred;
346
+ },
347
+
348
+ // Deferred helper
349
+ when: function( singleValue ) {
350
+ var
351
+
352
+ // count of uncompleted subordinates
353
+ remaining = arguments.length,
354
+
355
+ // count of unprocessed arguments
356
+ i = remaining,
357
+
358
+ // subordinate fulfillment data
359
+ resolveContexts = Array( i ),
360
+ resolveValues = slice.call( arguments ),
361
+
362
+ // the master Deferred
363
+ master = jQuery.Deferred(),
364
+
365
+ // subordinate callback factory
366
+ updateFunc = function( i ) {
367
+ return function( value ) {
368
+ resolveContexts[ i ] = this;
369
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
370
+ if ( !( --remaining ) ) {
371
+ master.resolveWith( resolveContexts, resolveValues );
372
+ }
373
+ };
374
+ };
375
+
376
+ // Single- and empty arguments are adopted like Promise.resolve
377
+ if ( remaining <= 1 ) {
378
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
379
+ !remaining );
380
+
381
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
382
+ if ( master.state() === "pending" ||
383
+ isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
384
+
385
+ return master.then();
386
+ }
387
+ }
388
+
389
+ // Multiple arguments are aggregated like Promise.all array elements
390
+ while ( i-- ) {
391
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
392
+ }
393
+
394
+ return master.promise();
395
+ }
396
+ } );
397
+
398
+ return jQuery;
399
+ } );
@@ -0,0 +1,21 @@
1
+ define( [
2
+ "../core",
3
+ "../deferred"
4
+ ], function( jQuery ) {
5
+
6
+ "use strict";
7
+
8
+ // These usually indicate a programmer mistake during development,
9
+ // warn about them ASAP rather than swallowing them by default.
10
+ var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
11
+
12
+ jQuery.Deferred.exceptionHook = function( error, stack ) {
13
+
14
+ // Support: IE 8 - 9 only
15
+ // Console exists when dev tools are open, which can happen at any time
16
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
17
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
18
+ }
19
+ };
20
+
21
+ } );