@schukai/monster 3.3.0 → 3.4.1

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.
@@ -31,7 +31,7 @@ export {Stylesheet} from "./dom/resource/link/stylesheet.mjs"
31
31
  export {Data} from "./dom/resource/data.mjs"
32
32
  export {Link} from "./dom/resource/link.mjs"
33
33
  export {Script} from "./dom/resource/script.mjs"
34
- export {Updater} from "./dom/updater.mjs"
34
+ export {Updater, addObjectWithUpdaterToElement} from "./dom/updater.mjs"
35
35
  export {CustomControl} from "./dom/customcontrol.mjs"
36
36
  export {getLocaleOfDocument} from "./dom/locale.mjs"
37
37
  export {Theme, getDocumentTheme} from "./dom/theme.mjs"
@@ -91,6 +91,7 @@ export {
91
91
  ATTRIBUTE_EXPORTPARTS,
92
92
  ATTRIBUTE_HIDDEN,
93
93
  objectUpdaterLinkSymbol,
94
+ customElementUpdaterLinkSymbol
94
95
 
95
96
  } from "./dom/constants.mjs"
96
97
  export {
@@ -127,14 +128,18 @@ export {Locale, parseLocale} from "./i18n/locale.mjs"
127
128
  export {Formatter as I18nFormatter} from "./i18n/formatter.mjs"
128
129
  export {Fetch} from "./i18n/providers/fetch.mjs"
129
130
  export {Provider} from "./i18n/provider.mjs"
131
+ export {Message} from "./net/webconnect/message.mjs"
132
+ export {WebConnect as NetWebConnect} from "./net/webconnect.mjs"
130
133
  export {
131
134
  internalSymbol,
132
- internalStateSymbol
135
+ internalStateSymbol,
136
+ instanceSymbol
133
137
  } from "./constants.mjs"
134
138
  export {MediaType, parseMediaType} from "./types/mediatype.mjs"
135
139
  export {typeOf} from "./types/typeof.mjs"
136
140
  export {ObserverList} from "./types/observerlist.mjs"
137
141
  export {RandomID} from "./types/randomid.mjs"
142
+ export {ObservableQueue} from "./types/observablequeue.mjs"
138
143
  export {UUID} from "./types/uuid.mjs"
139
144
  export {Observer} from "./types/observer.mjs"
140
145
  export {TokenList} from "./types/tokenlist.mjs"
@@ -182,13 +187,16 @@ export {buildTree} from "./data/buildtree.mjs"
182
187
  export {Transformer} from "./data/transformer.mjs"
183
188
  export {Pathfinder, DELIMITER, WILDCARD} from "./data/pathfinder.mjs"
184
189
  export {diff} from "./data/diff.mjs"
185
- export {RestAPI} from "./data/datasource/restapi.mjs"
190
+ export {Server} from "./data/datasource/server.mjs"
186
191
  export {SessionStorage} from "./data/datasource/storage/sessionstorage.mjs"
187
192
  export {LocalStorage} from "./data/datasource/storage/localstorage.mjs"
188
- export {WriteError} from "./data/datasource/restapi/writeerror.mjs"
193
+ export {RestAPI} from "./data/datasource/server/restapi.mjs"
194
+ export {WebConnect} from "./data/datasource/server/webconnect.mjs"
195
+ export {WriteError} from "./data/datasource/server/restapi/writeerror.mjs"
189
196
  export {Storage, storageObjectSymbol} from "./data/datasource/storage.mjs"
190
197
  export {random} from "./math/random.mjs"
191
198
 
199
+
192
200
  export {Monster}
193
201
 
194
202
  /**
@@ -84,7 +84,7 @@ function getGlobal() {
84
84
  *
85
85
  * ```
86
86
  * <script type="module">
87
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.0/dist/monster.mjs';
87
+ * import {Monster} from '@schukai/monster/source/monster.mjs';
88
88
  * Monster.Types.getGlobalObject('document')
89
89
  * // ↦ { }
90
90
  * </script>
@@ -124,7 +124,7 @@ function getGlobalObject(name) {
124
124
  *
125
125
  * ```
126
126
  * <script type="module">
127
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.0/dist/monster.mjs';
127
+ * import {Monster} from '@schukai/monster/source/monster.mjs';
128
128
  * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { }
129
129
  * </script>
130
130
  * ```
@@ -134,7 +134,7 @@ class MediaType extends Base {
134
134
  *
135
135
  * ```
136
136
  * <script type="module">
137
- * import {Monster} from '@schukai/monster/source//monster.mjs';
137
+ * import {Monster} from '@schukai/monster/source/monster.mjs';
138
138
  * console.log(Monster.Types.parseMediaType())
139
139
  * </script>
140
140
  * ```
@@ -149,7 +149,7 @@ function getMonsterVersion() {
149
149
  }
150
150
 
151
151
  /** don't touch, replaced by make with package.json version */
152
- monsterVersion = new Version('3.3.0')
152
+ monsterVersion = new Version('3.4.1')
153
153
 
154
154
  return monsterVersion;
155
155
 
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import {expect} from "chai"
4
- import {RestAPI} from "../../../../../application/source/data/datasource/restapi.mjs";
5
- import {validateObject} from "../../../../../application/source/types/validate.mjs";
4
+ import {RestAPI} from "../../../../../../application/source/data/datasource/server/restapi.mjs";
5
+ import {validateObject} from "../../../../../../application/source/types/validate.mjs";
6
6
 
7
7
 
8
8
  describe('RestAPI', function () {
@@ -18,16 +18,19 @@ describe('RestAPI', function () {
18
18
 
19
19
  returnStatus = 200;
20
20
  fetchReference = globalThis['fetch'];
21
- globalThis['fetch'] = function (url, options) {
22
-
23
- if (!url) throw new Error('missing url')
21
+ globalThis['fetch'] = function (options) {
24
22
 
25
23
  return new Promise((resolve, reject) => {
26
24
  resolve({
27
25
  text: function () {
28
- return JSON.stringify({
29
- a: "test"
30
- })
26
+ return new Promise((resolve, reject) => {
27
+ resolve(JSON.stringify({
28
+ a: "test"
29
+ }));
30
+ });
31
+
32
+
33
+
31
34
  },
32
35
  status: returnStatus
33
36
  });
@@ -52,11 +55,14 @@ describe('RestAPI', function () {
52
55
  });
53
56
 
54
57
  it('write should ', function (done) {
55
- const ds = new RestAPI({url: 'https://monsterjs.org/assets/world.json'}, {url: 'https://monsterjs.org/assets/world.json'})
58
+ const ds = new RestAPI({url: 'https://monsterjs.org/assets/world.json'},
59
+ {
60
+ url: 'https://monsterjs.org/assets/world.json',
61
+ acceptedStatus: [99]
62
+ })
56
63
  ds.write().then(data => {
57
- validateObject(data);
58
- done();
59
- }).catch(e => done(e));
64
+ done("should not be here");
65
+ }).catch(e => done());
60
66
  });
61
67
 
62
68
 
@@ -86,4 +92,4 @@ describe('RestAPI', function () {
86
92
  })
87
93
 
88
94
 
89
- })
95
+ })
@@ -1,6 +1,6 @@
1
1
  import {expect} from "chai"
2
- import {WebSocketDatasource} from "../../../../../application/source/data/datasource/websocket.mjs";
3
- import {initWebSocket} from "../../../util/websocket.mjs";
2
+ import {WebConnect} from "../../../../../../application/source/data/datasource/server/webconnect.mjs";
3
+ import {initWebSocket} from "../../../../util/websocket.mjs";
4
4
 
5
5
  const testUrl = "wss://ws.postman-echo.com/raw"
6
6
 
@@ -33,7 +33,9 @@ describe('Websocket', function () {
33
33
  if (sym2.toString() === 'Symbol(connection)') {
34
34
  const socket = connection[sym2]?.socket;
35
35
  if (socket) {
36
- socket.terminate()
36
+ if (typeof socket?.terminate === 'function') {
37
+ socket?.['terminate']()
38
+ }
37
39
  }
38
40
  }
39
41
  }
@@ -45,10 +47,10 @@ describe('Websocket', function () {
45
47
 
46
48
  it('should get clone', function () {
47
49
 
48
- ds = new WebSocketDatasource(testUrl)
50
+ ds = new WebConnect(testUrl)
49
51
  const clone = ds.getClone()
50
52
 
51
- expect(clone).to.be.an.instanceof(WebSocketDatasource)
53
+ expect(clone).to.be.an.instanceof(WebConnect)
52
54
 
53
55
 
54
56
  })
@@ -58,7 +60,7 @@ describe('Websocket', function () {
58
60
  let writeCallbackCalled = false
59
61
  let readCallbackCalled = false
60
62
 
61
- ds = new WebSocketDatasource({
63
+ ds = new WebConnect({
62
64
  url: testUrl,
63
65
  write: {
64
66
  mapping: {
@@ -132,7 +134,7 @@ describe('Websocket', function () {
132
134
  })
133
135
 
134
136
  it('should connect', function (done) {
135
- ds = new WebSocketDatasource({
137
+ ds = new WebConnect({
136
138
  url: testUrl,
137
139
  reconnect: {
138
140
  enabled: false
@@ -148,7 +150,7 @@ describe('Websocket', function () {
148
150
  })
149
151
 
150
152
  it('should send message', function (done) {
151
- ds = new WebSocketDatasource({
153
+ ds = new WebConnect({
152
154
  url: testUrl,
153
155
  reconnect: {
154
156
  enabled: false
@@ -0,0 +1,53 @@
1
+ import {expect} from "chai"
2
+ import {Server} from "../../../../../application/source/data/datasource/server.mjs";
3
+
4
+
5
+ describe('Server', function () {
6
+
7
+ it('should transform data', function () {
8
+
9
+ let writeCallbackCalled = false
10
+ let readCallbackCalled = false
11
+
12
+ const server = new Server({
13
+ write: {
14
+ mapping: {
15
+ transformer: "call:onWrite",
16
+ callbacks: {
17
+ onWrite: (data) => {
18
+ writeCallbackCalled = true
19
+ return data
20
+ }
21
+ }
22
+ },
23
+ sheathing: {
24
+ object: {
25
+ demo: 1,
26
+ data: {
27
+ xyz: undefined
28
+ }
29
+ },
30
+ path: "data.xyz",
31
+ },
32
+ },
33
+ read: {
34
+ mapping: {
35
+ transformer: "call:onRead",
36
+ callbacks: {
37
+ onRead: (data) => {
38
+ readCallbackCalled = true
39
+ return data
40
+ }
41
+ }
42
+ },
43
+ path: 'data.xyz',
44
+ }
45
+ })
46
+
47
+ expect(server.transformServerPayload({demo: 1, data: {xyz: 2}})).to.deep.equal({demo: 1, data: {xyz: 2}})
48
+ expect(server.prepareServerPayload({demo: 1, data: {xyz: 2}})).to.deep.equal({demo: 1, data: {xyz: 2}})
49
+
50
+
51
+ })
52
+
53
+ });
@@ -7,7 +7,7 @@ describe('Monster', function () {
7
7
  let monsterVersion
8
8
 
9
9
  /** don´t touch, replaced by make with package.json version */
10
- monsterVersion = new Version('3.3.0')
10
+ monsterVersion = new Version('3.4.1')
11
11
 
12
12
  let m = getMonsterVersion();
13
13
 
@@ -26,7 +26,7 @@ describe('Websocket', function () {
26
26
  // without this, the node test will hang
27
27
  for (const sym of Object.getOwnPropertySymbols(ds)) {
28
28
  if (sym.toString() === 'Symbol(connection)') {
29
- if (ds[sym]?.socket?.['terminate']) {
29
+ if (typeof ds[sym]?.socket?.terminate === 'function') {
30
30
  ds[sym]?.socket?.['terminate']()
31
31
  }
32
32
  }
@@ -30,10 +30,13 @@ import "../cases/i18n/locale.mjs";
30
30
  import "../cases/i18n/formatter.mjs";
31
31
  import "../cases/i18n/providers/fetch.mjs";
32
32
  import "../cases/i18n/provider.mjs";
33
+ import "../cases/net/webconnect/message.mjs";
34
+ import "../cases/net/webconnect.mjs";
33
35
  import "../cases/types/mediatype.mjs";
34
36
  import "../cases/types/typeof.mjs";
35
37
  import "../cases/types/observerlist.mjs";
36
38
  import "../cases/types/randomid.mjs";
39
+ import "../cases/types/observablequeue.mjs";
37
40
  import "../cases/types/uuid.mjs";
38
41
  import "../cases/types/observer.mjs";
39
42
  import "../cases/types/tokenlist.mjs";
@@ -75,8 +78,9 @@ import "../cases/data/buildtree.mjs";
75
78
  import "../cases/data/transformer.mjs";
76
79
  import "../cases/data/pathfinder.mjs";
77
80
  import "../cases/data/diff.mjs";
78
- import "../cases/data/datasource/restapi.mjs";
81
+ import "../cases/data/datasource/server.mjs";
79
82
  import "../cases/data/datasource/storage/sessionstorage.mjs";
80
83
  import "../cases/data/datasource/storage/localstorage.mjs";
81
- import "../cases/data/datasource/webservice.mjs";
84
+ import "../cases/data/datasource/server/restapi.mjs";
85
+ import "../cases/data/datasource/server/websocket.mjs";
82
86
  import "../cases/math/random.mjs";
@@ -5,7 +5,7 @@
5
5
  <title>Mocha Monster</title>
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
7
7
  <link rel="stylesheet" href="mocha.css"/>
8
- <script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
8
+ <script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,Blob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
9
9
  src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,DataView,document,DocumentFragment,Element,Event,globalThis,HTMLDocument,HTMLTemplateElement,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.getOwnPropertyDescriptor,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.iterator,WeakMap,WeakSet"
10
10
  crossorigin="anonymous"
11
11
  referrerpolicy="no-referrer"></script>
@@ -14,8 +14,8 @@
14
14
  </head>
15
15
  <body>
16
16
  <div id="headline" style="display: flex;align-items: center;justify-content: center;flex-direction: column;">
17
- <h1 style='margin-bottom: 0.1em;'>Monster 3.0.0</h1>
18
- <div id="lastupdate" style='font-size:0.7em'>last update Fr 6. Jan 12:54:47 CET 2023</div>
17
+ <h1 style='margin-bottom: 0.1em;'>Monster 3.4.0</h1>
18
+ <div id="lastupdate" style='font-size:0.7em'>last update So 8. Jan 17:17:24 CET 2023</div>
19
19
  </div>
20
20
  <div id="mocks"></div>
21
21
  <div id="mocha"></div>