jsf.js_next_gen 4.0.1-beta.6 → 4.0.1-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/docs/assets/style.css +4 -5
  2. package/dist/window/faces-development.js +43 -54
  3. package/dist/window/faces-development.js.br +0 -0
  4. package/dist/window/faces-development.js.gz +0 -0
  5. package/dist/window/faces-development.js.map +1 -1
  6. package/dist/window/faces.js +1 -1
  7. package/dist/window/faces.js.br +0 -0
  8. package/dist/window/faces.js.gz +0 -0
  9. package/dist/window/faces.js.map +1 -1
  10. package/dist/window/jsf-development.js +43 -54
  11. package/dist/window/jsf-development.js.br +0 -0
  12. package/dist/window/jsf-development.js.gz +0 -0
  13. package/dist/window/jsf-development.js.map +1 -1
  14. package/dist/window/jsf.js +1 -1
  15. package/dist/window/jsf.js.br +0 -0
  16. package/dist/window/jsf.js.gz +0 -0
  17. package/dist/window/jsf.js.map +1 -1
  18. package/package.json +10 -10
  19. package/src/main/typescript/impl/AjaxImpl.ts +5 -5
  20. package/src/main/typescript/impl/util/ExtDomQuery.ts +17 -22
  21. package/src/main/typescript/impl/xhrCore/RequestDataResolver.ts +2 -2
  22. package/src/main/typescript/impl/xhrCore/XhrRequest.ts +1 -1
  23. package/src/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.ts +1 -1
  24. package/src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts +86 -0
  25. package/src/main/typescript/test/frameworkBase/_ext/shared/XmlResponses.ts +53 -0
  26. package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/css/bootstrap-icons.css +15 -0
  27. package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/css/tobago.css +15 -0
  28. package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/js/tobago.js +15 -0
  29. package/src/main/typescript/test/xhrCore/ErrorChainTest.spec.ts +23 -0
  30. package/src/main/typescript/test/xhrCore/RequestParamsTest.spec.ts +1 -1
  31. package/src/main/typescript/test/xhrCore/ResponseTest23.spec.ts +19 -0
  32. package/target/AssocArray.js +281 -0
  33. package/target/AssocArray.js.map +1 -0
  34. package/target/Config.js +235 -0
  35. package/target/Config.js.map +1 -0
  36. package/target/CryptoExtensions.js +112 -0
  37. package/target/CryptoExtensions.js.map +1 -0
  38. package/target/DomQuery.js +1963 -0
  39. package/target/DomQuery.js.map +1 -0
  40. package/target/Es2019Array.js +117 -0
  41. package/target/Es2019Array.js.map +1 -0
  42. package/target/Global.js +38 -0
  43. package/target/Global.js.map +1 -0
  44. package/target/IDomQuery.js +3 -0
  45. package/target/IDomQuery.js.map +1 -0
  46. package/target/Lang.js +183 -0
  47. package/target/Lang.js.map +1 -0
  48. package/target/Messaging.js +645 -0
  49. package/target/Messaging.js.map +1 -0
  50. package/target/Monad.js +330 -0
  51. package/target/Monad.js.map +1 -0
  52. package/target/Promise.js +296 -0
  53. package/target/Promise.js.map +1 -0
  54. package/target/PromiseShim.js +30 -0
  55. package/target/PromiseShim.js.map +1 -0
  56. package/target/SourcesCollectors.js +444 -0
  57. package/target/SourcesCollectors.js.map +1 -0
  58. package/target/Stream.js +562 -0
  59. package/target/Stream.js.map +1 -0
  60. package/target/TagBuilder.js +178 -0
  61. package/target/TagBuilder.js.map +1 -0
  62. package/target/XmlQuery.js +84 -0
  63. package/target/XmlQuery.js.map +1 -0
  64. package/target/impl/AjaxImpl.js +4 -4
  65. package/target/impl/AjaxImpl.js.map +1 -1
  66. package/target/impl/util/ExtDomQuery.js +13 -19
  67. package/target/impl/util/ExtDomQuery.js.map +1 -1
  68. package/target/impl/xhrCore/RequestDataResolver.js +1 -1
  69. package/target/impl/xhrCore/RequestDataResolver.js.map +1 -1
  70. package/target/index.js +80 -0
  71. package/target/index.js.map +1 -0
  72. package/target/index_core.js +76 -0
  73. package/target/index_core.js.map +1 -0
  74. package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js +1 -1
  75. package/target/test/frameworkBase/_ext/shared/StandardInits.js +85 -0
  76. package/target/test/frameworkBase/_ext/shared/StandardInits.js.map +1 -1
  77. package/target/test/frameworkBase/_ext/shared/XmlResponses.js +53 -1
  78. package/target/test/frameworkBase/_ext/shared/XmlResponses.js.map +1 -1
  79. package/target/test/xhrCore/ErrorChainTest.spec.js +21 -0
  80. package/target/test/xhrCore/ErrorChainTest.spec.js.map +1 -1
  81. package/target/test/xhrCore/RequestParamsTest.spec.js.map +1 -1
  82. package/target/test/xhrCore/ResponseTest23.spec.js +14 -0
  83. package/target/test/xhrCore/ResponseTest23.spec.js.map +1 -1
  84. package/target/types/main/typescript/AssocArray.d.ts +86 -0
  85. package/target/types/main/typescript/Config.d.ts +94 -0
  86. package/target/types/main/typescript/CryptoExtensions.d.ts +87 -0
  87. package/target/types/main/typescript/DomQuery.d.ts +587 -0
  88. package/target/types/main/typescript/Es2019Array.d.ts +30 -0
  89. package/target/types/main/typescript/Global.d.ts +23 -0
  90. package/target/types/main/typescript/IDomQuery.d.ts +480 -0
  91. package/target/types/main/typescript/Lang.d.ts +97 -0
  92. package/target/types/main/typescript/Messaging.d.ts +285 -0
  93. package/target/types/main/typescript/Monad.d.ts +161 -0
  94. package/target/types/main/typescript/Promise.d.ts +58 -0
  95. package/target/types/main/typescript/PromiseShim.d.ts +22 -0
  96. package/target/types/main/typescript/SourcesCollectors.d.ts +280 -0
  97. package/target/types/main/typescript/Stream.d.ts +284 -0
  98. package/target/types/main/typescript/TagBuilder.d.ts +50 -0
  99. package/target/types/main/typescript/XmlQuery.d.ts +31 -0
  100. package/target/types/main/typescript/api/_api.d.ts +182 -0
  101. package/target/types/main/typescript/api/faces.d.ts +17 -0
  102. package/target/types/main/typescript/api/jsf.d.ts +17 -0
  103. package/target/types/main/typescript/impl/AjaxImpl.d.ts +164 -0
  104. package/target/types/main/typescript/impl/PushImpl.d.ts +38 -0
  105. package/target/types/main/typescript/impl/core/Const.d.ts +138 -0
  106. package/target/types/main/typescript/impl/core/ImplTypes.d.ts +16 -0
  107. package/target/types/main/typescript/impl/i18n/Messages.d.ts +102 -0
  108. package/target/types/main/typescript/impl/util/Assertions.d.ts +46 -0
  109. package/target/types/main/typescript/impl/util/AsyncRunnable.d.ts +112 -0
  110. package/target/types/main/typescript/impl/util/ExtDomQuery.d.ts +100 -0
  111. package/target/types/main/typescript/impl/util/FileUtils.d.ts +25 -0
  112. package/target/types/main/typescript/impl/util/HiddenInputBuilder.d.ts +37 -0
  113. package/target/types/main/typescript/impl/util/IListener.d.ts +18 -0
  114. package/target/types/main/typescript/impl/util/Lang.d.ts +138 -0
  115. package/target/types/main/typescript/impl/util/XhrQueueController.d.ts +51 -0
  116. package/target/types/main/typescript/impl/xhrCore/ErrorData.d.ts +37 -0
  117. package/target/types/main/typescript/impl/xhrCore/EventData.d.ts +25 -0
  118. package/target/types/main/typescript/impl/xhrCore/IResponseProcessor.d.ts +136 -0
  119. package/target/types/main/typescript/impl/xhrCore/RequestDataResolver.d.ts +84 -0
  120. package/target/types/main/typescript/impl/xhrCore/ResonseDataResolver.d.ts +60 -0
  121. package/target/types/main/typescript/impl/xhrCore/Response.d.ts +29 -0
  122. package/target/types/main/typescript/impl/xhrCore/ResponseProcessor.d.ts +208 -0
  123. package/target/types/main/typescript/impl/xhrCore/XhrFormData.d.ts +83 -0
  124. package/target/types/main/typescript/impl/xhrCore/XhrRequest.d.ts +102 -0
  125. package/target/types/main/typescript/index.d.ts +34 -0
  126. package/target/types/main/typescript/index_core.d.ts +29 -0
  127. package/target/types/main/typescript/myfaces/OamSubmit.d.ts +53 -0
  128. package/target/types/main/typescript/test/frameworkBase/LangTest.spec.d.ts +1 -0
  129. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.d.ts +1 -0
  130. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/LangTest.spec.d.ts +16 -0
  131. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MappingProbes.d.ts +39 -0
  132. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MappingTest.spec.d.ts +16 -0
  133. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MonadTest.spec.d.ts +16 -0
  134. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/XmlQueryTest.spec.d.ts +0 -0
  135. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-with-header.d.ts +1 -0
  136. package/target/types/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-without-header.d.ts +1 -0
  137. package/target/types/main/typescript/test/frameworkBase/_ext/shared/StandardInits.d.ts +63 -0
  138. package/target/types/main/typescript/test/frameworkBase/_ext/shared/XmlResponses.d.ts +23 -0
  139. package/target/types/main/typescript/test/impl/ImplTest.spec.d.ts +16 -0
  140. package/target/types/main/typescript/test/impl/ImplTest_23.spec.d.ts +16 -0
  141. package/target/types/main/typescript/test/impl/SeparatorCharsTest.spec.d.ts +16 -0
  142. package/target/types/main/typescript/test/myfaces/OamSubmit.spec.d.ts +16 -0
  143. package/target/types/main/typescript/test/myfaces/OnLoad.spec.d.ts +16 -0
  144. package/target/types/main/typescript/test/queue/AsynchronousProbe.d.ts +38 -0
  145. package/target/types/main/typescript/test/queue/AsynchronousQueueTest.spec.d.ts +16 -0
  146. package/target/types/main/typescript/test/xhrCore/ClientWindow.spec.d.ts +1 -0
  147. package/target/types/main/typescript/test/xhrCore/ErrorChainTest.spec.d.ts +16 -0
  148. package/target/types/main/typescript/test/xhrCore/EventTests.spec.d.ts +16 -0
  149. package/target/types/main/typescript/test/xhrCore/FakeWebsocket.d.ts +24 -0
  150. package/target/types/main/typescript/test/xhrCore/FileUploadTest.spec.d.ts +1 -0
  151. package/target/types/main/typescript/test/xhrCore/NamespacesRequestTest.spec.d.ts +16 -0
  152. package/target/types/main/typescript/test/xhrCore/OamSubmitTest.spec.d.ts +16 -0
  153. package/target/types/main/typescript/test/xhrCore/RequestParamsTest.spec.d.ts +1 -0
  154. package/target/types/main/typescript/test/xhrCore/RequestTest.spec.d.ts +16 -0
  155. package/target/types/main/typescript/test/xhrCore/RequestTest_23.spec.d.ts +16 -0
  156. package/target/types/main/typescript/test/xhrCore/ResponseTest.spec.d.ts +16 -0
  157. package/target/types/main/typescript/test/xhrCore/ResponseTest23.spec.d.ts +16 -0
  158. package/target/types/main/typescript/test/xhrCore/ShadowDomTest.spec.d.ts +16 -0
  159. package/target/types/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.d.ts +1 -0
  160. package/target/types/main/typescript/test/xhrCore/WebsocketTest.d.ts +1 -0
  161. package/target/types/main/typescript/test/xhrCore/XhrFormDataTest.spec.d.ts +16 -0
  162. package/target/types/test/typescript/AssocArrayTest.spec.d.ts +1 -0
  163. package/target/types/test/typescript/DomQueryTest.spec.d.ts +1 -0
  164. package/target/types/test/typescript/ExtendedArrayTest.spec.d.ts +1 -0
  165. package/target/types/test/typescript/LangTest.spec.d.ts +1 -0
  166. package/target/types/test/typescript/MappingProbes.d.ts +24 -0
  167. package/target/types/test/typescript/MappingTest.spec.d.ts +1 -0
  168. package/target/types/test/typescript/MessagingTest.spec.d.ts +1 -0
  169. package/target/types/test/typescript/MonadTest.spec.d.ts +16 -0
  170. package/target/types/test/typescript/PromiseTest.spec.d.ts +1 -0
  171. package/target/types/test/typescript/StreamTest.spec.d.ts +1 -0
  172. package/target/types/test/typescript/XmlQueryTest.spec.d.ts +1 -0
  173. package/target/types/test/typescript/markups/tobago-with-header.d.ts +1 -0
  174. package/target/types/test/typescript/markups/tobago-without-header.d.ts +1 -0
  175. package/webpack.config.js +1 -1
  176. package/webpack.config.js.map +1 -1
  177. package/.nyc_output/09ca9ebc-2305-4357-8db9-48ddfc7dfde2.json +0 -1
  178. package/.nyc_output/7c496a14-166e-4aa5-85b9-47b22b055ad8.json +0 -1
  179. package/.nyc_output/processinfo/09ca9ebc-2305-4357-8db9-48ddfc7dfde2.json +0 -1
  180. package/.nyc_output/processinfo/7c496a14-166e-4aa5-85b9-47b22b055ad8.json +0 -1
  181. package/.nyc_output/processinfo/index.json +0 -1
  182. package/src/test.html +0 -75
  183. package/src/tmp/test.html +0 -16
  184. package/tmp.xml +0 -36
@@ -0,0 +1,562 @@
1
+ "use strict";
2
+ /*!
3
+ * Licensed to the Apache Software Foundation (ASF) under one or more
4
+ * contributor license agreements. See the NOTICE file distributed with
5
+ * this work for additional information regarding copyright ownership.
6
+ * The ASF licenses this file to you under the Apache License, Version 2.0
7
+ * (the "License"); you may not use this file except in compliance with
8
+ * the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.LazyStream = exports.Stream = exports.FlatMapStreamDataSource = void 0;
20
+ /*
21
+ * A small stream implementation
22
+ */
23
+ const Monad_1 = require("./Monad");
24
+ const SourcesCollectors_1 = require("./SourcesCollectors");
25
+ const DomQuery_1 = require("./DomQuery");
26
+ /**
27
+ * Same for flatmap to deal with element -> stream mappings
28
+ */
29
+ class FlatMapStreamDataSource {
30
+ constructor(func, parent) {
31
+ this.walkedDataSources = [];
32
+ this._currPos = 0;
33
+ this.mapFunc = func;
34
+ this.inputDataSource = parent;
35
+ }
36
+ hasNext() {
37
+ return this.resolveActiveHasNext() || this.resolveNextHasNext();
38
+ }
39
+ resolveActiveHasNext() {
40
+ let next = false;
41
+ if (this.activeDataSource) {
42
+ next = this.activeDataSource.hasNext();
43
+ }
44
+ return next;
45
+ }
46
+ lookAhead(cnt = 1) {
47
+ var _a;
48
+ let lookAhead = (_a = this === null || this === void 0 ? void 0 : this.activeDataSource) === null || _a === void 0 ? void 0 : _a.lookAhead(cnt);
49
+ if ((this === null || this === void 0 ? void 0 : this.activeDataSource) && lookAhead != SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
50
+ //this should cover 95% of all cases
51
+ return lookAhead;
52
+ }
53
+ if (this.activeDataSource) {
54
+ cnt -= (0, SourcesCollectors_1.calculateSkips)(this.activeDataSource);
55
+ }
56
+ //the idea is basically to look into the streams sub-sequentially for a match
57
+ //after each stream we have to take into consideration that the skipCnt is
58
+ //reduced by the number of datasets we already have looked into in the previous stream/datasource
59
+ //unfortunately for now we have to loop into them, so we introduce a small o2 here
60
+ for (let dsLoop = 1; true; dsLoop++) {
61
+ let datasourceData = this.inputDataSource.lookAhead(dsLoop);
62
+ //we have looped out
63
+ //no embedded data anymore? we are done, data
64
+ //can either be a scalar an array or another datasource
65
+ if (datasourceData === SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
66
+ return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
67
+ }
68
+ let mappedData = this.mapFunc(datasourceData);
69
+ //it either comes in as datasource or as array
70
+ //both cases must be unified into a datasource
71
+ let currentDataSource = this.toDatasource(mappedData);
72
+ //we now run again a lookahead
73
+ let ret = currentDataSource.lookAhead(cnt);
74
+ //if the value is found then we are set
75
+ if (ret != SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
76
+ return ret;
77
+ }
78
+ //reduce the next lookahead by the number of elements
79
+ //we are now skipping in the current data source
80
+ cnt -= (0, SourcesCollectors_1.calculateSkips)(currentDataSource);
81
+ }
82
+ }
83
+ toDatasource(mapped) {
84
+ let ds = Array.isArray(mapped) ? new SourcesCollectors_1.ArrayStreamDataSource(...mapped) : mapped;
85
+ this.walkedDataSources.push(ds);
86
+ return ds;
87
+ }
88
+ resolveNextHasNext() {
89
+ let next = false;
90
+ while (!next && this.inputDataSource.hasNext()) {
91
+ let mapped = this.mapFunc(this.inputDataSource.next());
92
+ this.activeDataSource = this.toDatasource(mapped);
93
+ next = this.activeDataSource.hasNext();
94
+ }
95
+ return next;
96
+ }
97
+ next() {
98
+ if (this.hasNext()) {
99
+ this._currPos++;
100
+ return this.activeDataSource.next();
101
+ }
102
+ }
103
+ reset() {
104
+ this.inputDataSource.reset();
105
+ this.walkedDataSources.forEach(ds => ds.reset());
106
+ this.walkedDataSources = [];
107
+ this._currPos = 0;
108
+ this.activeDataSource = null;
109
+ }
110
+ current() {
111
+ if (!this.activeDataSource) {
112
+ this.hasNext();
113
+ }
114
+ return this.activeDataSource.current();
115
+ }
116
+ }
117
+ exports.FlatMapStreamDataSource = FlatMapStreamDataSource;
118
+ /**
119
+ * A simple typescript based reimplementation of streams
120
+ *
121
+ * This is the early eval version
122
+ * for a lazy eval version check, LazyStream, which is api compatible
123
+ * to this implementation, however with the benefit of being able
124
+ * to provide infinite data sources and generic data providers, the downside
125
+ * is, it might be a tad slower in some situations
126
+ */
127
+ class Stream {
128
+ constructor(...value) {
129
+ this._limits = -1;
130
+ this.pos = -1;
131
+ this.value = value;
132
+ }
133
+ static of(...data) {
134
+ return new Stream(...data);
135
+ }
136
+ static ofAssoc(data) {
137
+ return this.of(...Object.keys(data)).map(key => [key, data[key]]);
138
+ }
139
+ static ofDataSource(dataSource) {
140
+ let value = [];
141
+ while (dataSource.hasNext()) {
142
+ value.push(dataSource.next());
143
+ }
144
+ return new Stream(...value);
145
+ }
146
+ static ofDomQuery(value) {
147
+ return Stream.of(...value.asArray);
148
+ }
149
+ static ofConfig(value) {
150
+ return Stream.of(...Object.keys(value.value)).map(key => [key, value.value[key]]);
151
+ }
152
+ current() {
153
+ if (this.pos == -1) {
154
+ return SourcesCollectors_1.ITERATION_STATUS.BEF_STRM;
155
+ }
156
+ if (this.pos >= this.value.length) {
157
+ return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
158
+ }
159
+ return this.value[this.pos];
160
+ }
161
+ limits(end) {
162
+ this._limits = end;
163
+ return this;
164
+ }
165
+ /**
166
+ * concat for streams, so that you can concat two streams together
167
+ * @param toAppend
168
+ */
169
+ concat(...toAppend) {
170
+ let toConcat = [this].concat(toAppend);
171
+ return Stream.of(...toConcat).flatMap(item => item);
172
+ }
173
+ onElem(fn) {
174
+ for (let cnt = 0; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
175
+ if (fn(this.value[cnt], cnt) === false) {
176
+ break;
177
+ }
178
+ }
179
+ return this;
180
+ }
181
+ each(fn) {
182
+ this.onElem(fn);
183
+ this.reset();
184
+ }
185
+ map(fn) {
186
+ if (!fn) {
187
+ fn = (inval) => inval;
188
+ }
189
+ let res = [];
190
+ this.each((item) => {
191
+ res.push(fn(item));
192
+ });
193
+ return new Stream(...res);
194
+ }
195
+ /*
196
+ * we need to implement it to fullfill the contract, although it is used only internally
197
+ * all values are flattened when accessed anyway, so there is no need to call this methiod
198
+ */
199
+ flatMap(fn) {
200
+ let ret = [];
201
+ this.each(item => {
202
+ let strmR = fn(item);
203
+ ret = Array.isArray(strmR) ? ret.concat(strmR) : ret.concat(strmR.value);
204
+ });
205
+ return Stream.of(...ret);
206
+ }
207
+ filter(fn) {
208
+ let res = [];
209
+ this.each((data) => {
210
+ if (fn(data)) {
211
+ res.push(data);
212
+ }
213
+ });
214
+ return new Stream(...res);
215
+ }
216
+ reduce(fn, startVal = null) {
217
+ let offset = startVal != null ? 0 : 1;
218
+ let val1 = startVal != null ? startVal : this.value.length ? this.value[0] : null;
219
+ for (let cnt = offset; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
220
+ val1 = fn(val1, this.value[cnt]);
221
+ }
222
+ this.reset();
223
+ return Monad_1.Optional.fromNullable(val1);
224
+ }
225
+ first() {
226
+ this.reset();
227
+ return this.value && this.value.length ? Monad_1.Optional.fromNullable(this.value[0]) : Monad_1.Optional.absent;
228
+ }
229
+ last() {
230
+ //could be done via reduce, but is faster this way
231
+ let length = this._limits > 0 ? Math.min(this._limits, this.value.length) : this.value.length;
232
+ this.reset();
233
+ return Monad_1.Optional.fromNullable(length ? this.value[length - 1] : null);
234
+ }
235
+ anyMatch(fn) {
236
+ for (let cnt = 0; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
237
+ if (fn(this.value[cnt])) {
238
+ return true;
239
+ }
240
+ }
241
+ this.reset();
242
+ return false;
243
+ }
244
+ allMatch(fn) {
245
+ if (!this.value.length) {
246
+ return false;
247
+ }
248
+ let matches = 0;
249
+ for (let cnt = 0; cnt < this.value.length; cnt++) {
250
+ if (fn(this.value[cnt])) {
251
+ matches++;
252
+ }
253
+ }
254
+ this.reset();
255
+ return matches == this.value.length;
256
+ }
257
+ noneMatch(fn) {
258
+ let matches = 0;
259
+ for (let cnt = 0; cnt < this.value.length; cnt++) {
260
+ if (!fn(this.value[cnt])) {
261
+ matches++;
262
+ }
263
+ }
264
+ this.reset();
265
+ return matches == this.value.length;
266
+ }
267
+ sort(comparator) {
268
+ let newArr = this.value.slice().sort(comparator);
269
+ return Stream.of(...newArr);
270
+ }
271
+ collect(collector) {
272
+ this.each(data => collector.collect(data));
273
+ this.reset();
274
+ return collector.finalValue;
275
+ }
276
+ //-- internally exposed methods needed for the interconnectivity
277
+ hasNext() {
278
+ let isLimitsReached = this._limits != -1 && this.pos >= this._limits - 1;
279
+ let isEndOfArray = this.pos >= this.value.length - 1;
280
+ return !(isLimitsReached || isEndOfArray);
281
+ }
282
+ next() {
283
+ if (!this.hasNext()) {
284
+ return null;
285
+ }
286
+ this.pos++;
287
+ return this.value[this.pos];
288
+ }
289
+ lookAhead(cnt = 1) {
290
+ if ((this.pos + cnt) >= this.value.length) {
291
+ return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
292
+ }
293
+ return this.value[this.pos + cnt];
294
+ }
295
+ [Symbol.iterator]() {
296
+ return {
297
+ next: () => {
298
+ let done = !this.hasNext();
299
+ let val = this.next();
300
+ return {
301
+ done: done,
302
+ value: val
303
+ };
304
+ }
305
+ };
306
+ }
307
+ /*get observable(): Observable<T> {
308
+ return from(this);
309
+ }*/
310
+ reset() {
311
+ this.pos = -1;
312
+ }
313
+ }
314
+ exports.Stream = Stream;
315
+ /**
316
+ * Lazy implementation of a Stream
317
+ * The idea is to connect the intermediate
318
+ * streams as datasources like a linked list
319
+ * with reverse referencing and for special
320
+ * operations like filtering flatmapping
321
+ * have intermediate datasources in the list
322
+ * with specialized functions.
323
+ *
324
+ * Sort of a modified pipe valve pattern
325
+ * the streams are the pipes the intermediate
326
+ * data sources are the valves
327
+ *
328
+ * We then can use passed in functions to control
329
+ * the flow in the valves
330
+ *
331
+ * That way we can have a lazy evaluating stream
332
+ *
333
+ * So if an endpoint requests data
334
+ * a callback trace goes back the stream list
335
+ * which triggers an operation upwards
336
+ * which sends data down the drain which then is processed
337
+ * and filtered until one element hits the endpoint.
338
+ *
339
+ * That is repeated, until all elements are processed
340
+ * or an internal limit is hit.
341
+ *
342
+ */
343
+ class LazyStream {
344
+ static of(...values) {
345
+ return new LazyStream(new SourcesCollectors_1.ArrayStreamDataSource(...values));
346
+ }
347
+ static ofAssoc(data) {
348
+ return this.of(...Object.keys(data)).map(key => [key, data[key]]);
349
+ }
350
+ static ofStreamDataSource(value) {
351
+ return new LazyStream(value);
352
+ }
353
+ static ofDomQuery(value) {
354
+ return LazyStream.of(...value.asArray);
355
+ }
356
+ static ofConfig(value) {
357
+ return LazyStream.of(...Object.keys(value.value)).map(key => [key, value.value[key]]);
358
+ }
359
+ constructor(parent) {
360
+ this._limits = -1;
361
+ /*
362
+ * needed to have the limits check working
363
+ * we need to keep track of the current position
364
+ * in the stream
365
+ */
366
+ this.pos = -1;
367
+ this.dataSource = parent;
368
+ }
369
+ hasNext() {
370
+ if (this.isOverLimits()) {
371
+ return false;
372
+ }
373
+ return this.dataSource.hasNext();
374
+ }
375
+ next() {
376
+ let next = this.dataSource.next();
377
+ // @ts-ignore
378
+ this.pos++;
379
+ return next;
380
+ }
381
+ lookAhead(cnt = 1) {
382
+ return this.dataSource.lookAhead(cnt);
383
+ }
384
+ current() {
385
+ return this.dataSource.current();
386
+ }
387
+ reset() {
388
+ this.dataSource.reset();
389
+ this.pos = -1;
390
+ this._limits = -1;
391
+ }
392
+ /**
393
+ * concat for streams, so that you can concat two streams together
394
+ * @param toAppend
395
+ */
396
+ concat(...toAppend) {
397
+ //this.dataSource = new MultiStreamDatasource<T>(this, ... toAppend);
398
+ //return this;
399
+ return LazyStream.ofStreamDataSource(new SourcesCollectors_1.MultiStreamDatasource(this, toAppend));
400
+ //return LazyStream.of(<IStream<T>>this, ...toAppend).flatMap(item => item);
401
+ }
402
+ nextFilter(fn) {
403
+ if (this.hasNext()) {
404
+ let newVal = this.next();
405
+ if (!fn(newVal)) {
406
+ return this.nextFilter(fn);
407
+ }
408
+ return newVal;
409
+ }
410
+ return null;
411
+ }
412
+ limits(max) {
413
+ this._limits = max;
414
+ return this;
415
+ }
416
+ //main stream methods
417
+ collect(collector) {
418
+ while (this.hasNext()) {
419
+ let t = this.next();
420
+ collector.collect(t);
421
+ }
422
+ this.reset();
423
+ return collector.finalValue;
424
+ }
425
+ onElem(fn) {
426
+ return new LazyStream(new SourcesCollectors_1.MappedStreamDataSource((el) => {
427
+ if (fn(el, this.pos) === false) {
428
+ this.stop();
429
+ }
430
+ return el;
431
+ }, this));
432
+ }
433
+ filter(fn) {
434
+ return new LazyStream(new SourcesCollectors_1.FilteredStreamDatasource(fn, this));
435
+ }
436
+ map(fn) {
437
+ return new LazyStream(new SourcesCollectors_1.MappedStreamDataSource(fn, this));
438
+ }
439
+ flatMap(fn) {
440
+ return new LazyStream(new FlatMapStreamDataSource(fn, this));
441
+ }
442
+ //endpoint
443
+ each(fn) {
444
+ while (this.hasNext()) {
445
+ if (fn(this.next()) === false) {
446
+ this.stop();
447
+ }
448
+ }
449
+ this.reset();
450
+ }
451
+ reduce(fn, startVal = null) {
452
+ if (!this.hasNext()) {
453
+ return Monad_1.Optional.absent;
454
+ }
455
+ let value1;
456
+ let value2 = null;
457
+ if (startVal != null) {
458
+ value1 = startVal;
459
+ value2 = this.next();
460
+ }
461
+ else {
462
+ value1 = this.next();
463
+ if (!this.hasNext()) {
464
+ return Monad_1.Optional.fromNullable(value1);
465
+ }
466
+ value2 = this.next();
467
+ }
468
+ value1 = fn(value1, value2);
469
+ while (this.hasNext()) {
470
+ value2 = this.next();
471
+ value1 = fn(value1, value2);
472
+ }
473
+ this.reset();
474
+ return Monad_1.Optional.fromNullable(value1);
475
+ }
476
+ last() {
477
+ if (!this.hasNext()) {
478
+ return Monad_1.Optional.absent;
479
+ }
480
+ return this.reduce((el1, el2) => el2);
481
+ }
482
+ first() {
483
+ this.reset();
484
+ if (!this.hasNext()) {
485
+ return Monad_1.Optional.absent;
486
+ }
487
+ return Monad_1.Optional.fromNullable(this.next());
488
+ }
489
+ anyMatch(fn) {
490
+ while (this.hasNext()) {
491
+ if (fn(this.next())) {
492
+ return true;
493
+ }
494
+ }
495
+ return false;
496
+ }
497
+ allMatch(fn) {
498
+ while (this.hasNext()) {
499
+ if (!fn(this.next())) {
500
+ return false;
501
+ }
502
+ }
503
+ return true;
504
+ }
505
+ noneMatch(fn) {
506
+ while (this.hasNext()) {
507
+ if (fn(this.next())) {
508
+ return false;
509
+ }
510
+ }
511
+ return true;
512
+ }
513
+ sort(comparator) {
514
+ let arr = this.collect(new SourcesCollectors_1.ArrayCollector());
515
+ arr = arr.sort(comparator);
516
+ return LazyStream.of(...arr);
517
+ }
518
+ get value() {
519
+ return this.collect(new SourcesCollectors_1.ArrayCollector());
520
+ }
521
+ [Symbol.iterator]() {
522
+ return {
523
+ next: () => {
524
+ let done = !this.hasNext();
525
+ let val = this.next();
526
+ return {
527
+ done: done,
528
+ value: val
529
+ };
530
+ }
531
+ };
532
+ }
533
+ /*get observable(): Observable<T> {
534
+ return from(this);
535
+ }*/
536
+ stop() {
537
+ this.pos = this._limits + 1000000000;
538
+ this._limits = 0;
539
+ }
540
+ isOverLimits() {
541
+ return this._limits != -1 && this.pos >= this._limits - 1;
542
+ }
543
+ }
544
+ exports.LazyStream = LazyStream;
545
+ /**
546
+ * 1.0 backwards compatibility functions
547
+ *
548
+ * this restores the stream and lazy stream
549
+ * property on DomQuery on prototype level
550
+ *
551
+ */
552
+ Object.defineProperty(DomQuery_1.DomQuery.prototype, "stream", {
553
+ get: function stream() {
554
+ return Stream.ofDomQuery(this);
555
+ }
556
+ });
557
+ Object.defineProperty(DomQuery_1.DomQuery.prototype, "lazyStream", {
558
+ get: function lazyStream() {
559
+ return LazyStream.ofDomQuery(this);
560
+ }
561
+ });
562
+ //# sourceMappingURL=Stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../src/main/typescript/Stream.ts"],"names":[],"mappings":"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"}