@schukai/monster 1.30.1 → 2.0.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.
Files changed (364) hide show
  1. package/CHANGELOG +17 -1
  2. package/README.md +55 -58
  3. package/example/constraints/andoperator.mjs +17 -0
  4. package/example/constraints/invalid.mjs +6 -0
  5. package/example/constraints/isarray.mjs +11 -0
  6. package/example/constraints/isobject.mjs +12 -0
  7. package/example/constraints/oroperator.mjs +15 -0
  8. package/example/constraints/valid.mjs +6 -0
  9. package/example/data/buildmap.mjs +67 -0
  10. package/example/data/datasource.mjs +7 -0
  11. package/example/data/diff.mjs +39 -0
  12. package/example/data/pathfinder-1.mjs +23 -0
  13. package/example/data/pathfinder-2.mjs +19 -0
  14. package/example/data/pipe.mjs +14 -0
  15. package/example/data/storage/restapi.mjs +11 -0
  16. package/example/data/transformer.mjs +9 -0
  17. package/example/dom/customelement.mjs +13 -0
  18. package/example/dom/theme.mjs +5 -0
  19. package/example/dom/updater.mjs +23 -0
  20. package/example/i18n/formatter.mjs +10 -0
  21. package/example/i18n/providers/fetch.mjs +5 -0
  22. package/example/i18n/translations.mjs +20 -0
  23. package/example/types/basewithoptions.mjs +10 -0
  24. package/example/types/is-1.mjs +5 -0
  25. package/example/types/is-10.mjs +6 -0
  26. package/example/types/is-2.mjs +4 -0
  27. package/example/types/is-3.mjs +4 -0
  28. package/example/types/is-4.mjs +5 -0
  29. package/example/types/is-5.mjs +4 -0
  30. package/example/types/is-6.mjs +4 -0
  31. package/example/types/is-7.mjs +4 -0
  32. package/example/types/is-8.mjs +4 -0
  33. package/example/types/is-9.mjs +6 -0
  34. package/example/types/noderecursiveiterator.mjs +32 -0
  35. package/example/types/observer.mjs +9 -0
  36. package/example/types/proxyobserver.mjs +25 -0
  37. package/example/types/queue.mjs +20 -0
  38. package/example/types/tokenlist-1.mjs +4 -0
  39. package/example/types/tokenlist-2.mjs +7 -0
  40. package/example/types/tokenlist-3.mjs +5 -0
  41. package/example/types/tokenlist-4.mjs +5 -0
  42. package/example/types/tokenlist-5.mjs +5 -0
  43. package/example/types/typeof.mjs +9 -0
  44. package/example/types/version-1.mjs +6 -0
  45. package/example/types/version-2.mjs +3 -0
  46. package/example/util/comparator.mjs +10 -0
  47. package/example/util/deadmansswitch.mjs +9 -0
  48. package/example/util/processing.mjs +17 -0
  49. package/package.json +5 -59
  50. package/source/{constants.js → constants.mjs} +7 -10
  51. package/source/constraints/{abstract.js → abstract.mjs} +8 -9
  52. package/source/constraints/{abstractoperator.js → abstractoperator.mjs} +11 -8
  53. package/source/constraints/andoperator.mjs +38 -0
  54. package/source/constraints/invalid.mjs +38 -0
  55. package/source/constraints/isarray.mjs +41 -0
  56. package/source/constraints/isobject.mjs +41 -0
  57. package/source/constraints/{namespace.js → namespace.mjs} +3 -8
  58. package/source/constraints/{oroperator.js → oroperator.mjs} +10 -42
  59. package/source/constraints/valid.mjs +38 -0
  60. package/source/data/{buildmap.js → buildmap.mjs} +18 -104
  61. package/source/data/{buildtree.js → buildtree.mjs} +11 -31
  62. package/source/data/datasource/{namespace.js → namespace.mjs} +1 -9
  63. package/source/data/datasource/restapi/namespace.mjs +8 -0
  64. package/source/data/datasource/restapi/{writeerror.js → writeerror.mjs} +8 -9
  65. package/source/data/datasource/{restapi.js → restapi.mjs} +15 -45
  66. package/source/data/datasource/storage/localstorage.mjs +45 -0
  67. package/source/data/datasource/storage/{namespace.js → namespace.mjs} +1 -9
  68. package/source/data/datasource/storage/sessionstorage.mjs +45 -0
  69. package/source/data/datasource/{storage.js → storage.mjs} +12 -35
  70. package/source/data/{datasource.js → datasource.mjs} +17 -45
  71. package/source/data/{diff.js → diff.mjs} +10 -69
  72. package/source/data/{extend.js → extend.mjs} +10 -28
  73. package/source/data/{namespace.js → namespace.mjs} +2 -8
  74. package/source/data/{pathfinder.js → pathfinder.mjs} +18 -77
  75. package/source/data/{pipe.js → pipe.mjs} +14 -46
  76. package/source/data/{transformer.js → transformer.mjs} +18 -43
  77. package/source/dom/{assembler.js → assembler.mjs} +12 -28
  78. package/source/dom/{attributes.js → attributes.mjs} +42 -253
  79. package/source/dom/{constants.js → constants.mjs} +110 -61
  80. package/source/dom/{customcontrol.js → customcontrol.mjs} +10 -17
  81. package/source/dom/{customelement.js → customelement.mjs} +30 -53
  82. package/source/dom/{events.js → events.mjs} +15 -64
  83. package/source/dom/{focusmanager.js → focusmanager.mjs} +13 -34
  84. package/source/dom/{locale.js → locale.mjs} +11 -26
  85. package/source/dom/{namespace.js → namespace.mjs} +1 -8
  86. package/source/dom/ready.mjs +63 -0
  87. package/source/dom/resource/{data.js → data.mjs} +11 -31
  88. package/source/dom/resource/link/namespace.mjs +10 -0
  89. package/source/dom/resource/link/stylesheet.mjs +35 -0
  90. package/source/dom/resource/{link.js → link.mjs} +9 -29
  91. package/source/dom/resource/namespace.mjs +8 -0
  92. package/source/dom/resource/{script.js → script.mjs} +9 -29
  93. package/source/dom/{resource.js → resource.mjs} +19 -39
  94. package/source/dom/{resourcemanager.js → resourcemanager.mjs} +17 -35
  95. package/source/dom/{template.js → template.mjs} +18 -43
  96. package/source/dom/{theme.js → theme.mjs} +14 -36
  97. package/source/dom/{updater.js → updater.mjs} +34 -68
  98. package/source/dom/{util.js → util.mjs} +17 -66
  99. package/source/dom/worker/{factory.js → factory.mjs} +13 -34
  100. package/source/dom/worker/namespace.mjs +8 -0
  101. package/source/i18n/{formatter.js → formatter.mjs} +14 -45
  102. package/source/i18n/{locale.js → locale.mjs} +15 -30
  103. package/source/i18n/{namespace.js → namespace.mjs} +1 -9
  104. package/source/i18n/provider.mjs +40 -0
  105. package/source/i18n/providers/{fetch.js → fetch.mjs} +18 -43
  106. package/source/i18n/providers/namespace.mjs +8 -0
  107. package/source/i18n/{translations.js → translations.mjs} +12 -52
  108. package/source/logging/handler/console.mjs +50 -0
  109. package/source/logging/handler/namespace.mjs +6 -0
  110. package/source/logging/{handler.js → handler.mjs} +13 -30
  111. package/source/logging/logentry.mjs +51 -0
  112. package/source/logging/{logger.js → logger.mjs} +12 -28
  113. package/source/logging/{namespace.js → namespace.mjs} +1 -9
  114. package/source/math/{namespace.js → namespace.mjs} +1 -9
  115. package/source/math/{random.js → random.mjs} +8 -34
  116. package/source/monster.mjs +114 -0
  117. package/source/text/{formatter.js → formatter.mjs} +17 -33
  118. package/source/text/{namespace.js → namespace.mjs} +1 -9
  119. package/source/types/base.mjs +31 -0
  120. package/source/types/{basewithoptions.js → basewithoptions.mjs} +17 -46
  121. package/source/types/{binary.js → binary.mjs} +10 -42
  122. package/source/types/{dataurl.js → dataurl.mjs} +12 -46
  123. package/source/types/{global.js → global.mjs} +20 -12
  124. package/source/types/{id.js → id.mjs} +10 -27
  125. package/source/types/is.mjs +225 -0
  126. package/source/types/{mediatype.js → mediatype.mjs} +13 -29
  127. package/source/types/{namespace.js → namespace.mjs} +1 -8
  128. package/source/types/{node.js → node.mjs} +11 -28
  129. package/source/types/{nodelist.js → nodelist.mjs} +17 -32
  130. package/source/types/{noderecursiveiterator.js → noderecursiveiterator.mjs} +14 -65
  131. package/source/types/{observer.js → observer.mjs} +15 -42
  132. package/source/types/{observerlist.js → observerlist.mjs} +12 -29
  133. package/source/types/{proxyobserver.js → proxyobserver.mjs} +19 -62
  134. package/source/types/{queue.js → queue.mjs} +10 -47
  135. package/source/types/randomid.mjs +45 -0
  136. package/source/types/regex.mjs +27 -0
  137. package/source/types/{stack.js → stack.mjs} +8 -24
  138. package/source/types/{tokenlist.js → tokenlist.mjs} +20 -64
  139. package/source/types/typeof.mjs +37 -0
  140. package/source/types/{uniquequeue.js → uniquequeue.mjs} +11 -27
  141. package/source/types/{uuid.js → uuid.mjs} +15 -33
  142. package/source/types/{validate.js → validate.mjs} +38 -155
  143. package/source/types/{version.js → version.mjs} +19 -62
  144. package/source/util/{clone.js → clone.mjs} +10 -28
  145. package/source/util/{comparator.js → comparator.mjs} +13 -43
  146. package/source/util/{deadmansswitch.js → deadmansswitch.mjs} +15 -40
  147. package/source/util/freeze.mjs +39 -0
  148. package/source/util/{namespace.js → namespace.mjs} +1 -9
  149. package/source/util/{processing.js → processing.mjs} +13 -51
  150. package/source/util/{trimspaces.js → trimspaces.mjs} +14 -21
  151. package/test/cases/constraint/{andoperator.js → andoperator.mjs} +3 -3
  152. package/test/cases/constraint/{invalid.js → invalid.mjs} +1 -1
  153. package/test/cases/constraint/{isarray.js → isarray.mjs} +1 -1
  154. package/test/cases/constraint/{isobject.js → isobject.mjs} +1 -1
  155. package/test/cases/constraint/{oroperator.js → oroperator.mjs} +3 -3
  156. package/test/cases/constraint/{valid.js → valid.mjs} +1 -1
  157. package/test/cases/data/{buildmap.js → buildmap.mjs} +1 -1
  158. package/test/cases/data/{buildtree.js → buildtree.mjs} +2 -2
  159. package/test/cases/data/datasource/{restapi.js → restapi.mjs} +5 -5
  160. package/test/cases/data/datasource/storage/{localstorage.js → localstorage.mjs} +5 -5
  161. package/test/cases/data/datasource/storage/{sessionstorage.js → sessionstorage.mjs} +5 -5
  162. package/test/cases/data/{datasource.js → datasource.mjs} +1 -1
  163. package/test/cases/data/{diff.js → diff.mjs} +2 -2
  164. package/test/cases/data/{extend.js → extend.mjs} +1 -1
  165. package/test/cases/data/{pathfinder.js → pathfinder.mjs} +1 -1
  166. package/test/cases/data/{pipe.js → pipe.mjs} +19 -5
  167. package/test/cases/data/{transformer.js → transformer.mjs} +14 -10
  168. package/test/cases/dom/{assembler.js → assembler.mjs} +2 -2
  169. package/test/cases/dom/{attributes.js → attributes.mjs} +2 -2
  170. package/test/cases/dom/{customcontrol.js → customcontrol.mjs} +6 -6
  171. package/test/cases/dom/{customelement.js → customelement.mjs} +6 -6
  172. package/test/cases/dom/{events.js → events.mjs} +2 -2
  173. package/test/cases/dom/{focusmanager.js → focusmanager.mjs} +3 -3
  174. package/test/cases/dom/{locale.js → locale.mjs} +2 -2
  175. package/test/cases/dom/ready.mjs +42 -0
  176. package/test/cases/dom/resource/{data.js → data.mjs} +9 -9
  177. package/test/cases/dom/resource/link/{stylesheet.js → stylesheet.mjs} +6 -6
  178. package/test/cases/dom/resource/{link.js → link.mjs} +6 -6
  179. package/test/cases/dom/resource/{script.js → script.mjs} +6 -6
  180. package/test/cases/dom/{resourcemanager.js → resourcemanager.mjs} +6 -6
  181. package/test/cases/dom/{template.js → template.mjs} +3 -3
  182. package/test/cases/dom/{theme.js → theme.mjs} +3 -3
  183. package/test/cases/dom/{updater.js → updater.mjs} +6 -6
  184. package/test/cases/dom/{util.js → util.mjs} +2 -2
  185. package/test/cases/dom/worker/{factory.js → factory.mjs} +4 -4
  186. package/test/cases/i18n/{formatter.js → formatter.mjs} +2 -2
  187. package/test/cases/i18n/{locale.js → locale.mjs} +1 -1
  188. package/test/cases/i18n/{provider.js → provider.mjs} +1 -1
  189. package/test/cases/i18n/providers/{fetch.js → fetch.mjs} +3 -3
  190. package/test/cases/i18n/{translations.js → translations.mjs} +2 -2
  191. package/test/cases/logging/handler/{console.js → console.mjs} +3 -3
  192. package/test/cases/logging/{handler.js → handler.mjs} +3 -3
  193. package/test/cases/logging/{logentry.js → logentry.mjs} +1 -1
  194. package/test/cases/logging/{logger.js → logger.mjs} +1 -1
  195. package/test/cases/math/random.mjs +101 -0
  196. package/test/cases/monster.mjs +20 -0
  197. package/test/cases/text/{formatter.js → formatter.mjs} +1 -1
  198. package/test/cases/types/{base.js → base.mjs} +1 -1
  199. package/test/cases/types/{basewithoptions.js → basewithoptions.mjs} +1 -1
  200. package/test/cases/types/{binary.js → binary.mjs} +1 -1
  201. package/test/cases/types/{dataurl.js → dataurl.mjs} +1 -1
  202. package/test/cases/types/{global.js → global.mjs} +1 -1
  203. package/test/cases/types/{id.js → id.mjs} +17 -6
  204. package/test/cases/types/{is.js → is.mjs} +20 -8
  205. package/test/cases/types/{mediatype.js → mediatype.mjs} +1 -1
  206. package/test/cases/types/{node.js → node.mjs} +3 -3
  207. package/test/cases/types/{nodelist.js → nodelist.mjs} +2 -2
  208. package/test/cases/types/{noderecursiveiterator.js → noderecursiveiterator.mjs} +3 -3
  209. package/test/cases/types/{observer.js → observer.mjs} +1 -1
  210. package/test/cases/types/{observerlist.js → observerlist.mjs} +2 -2
  211. package/test/cases/types/{proxyobserver.js → proxyobserver.mjs} +4 -4
  212. package/test/cases/types/{queue.js → queue.mjs} +1 -1
  213. package/test/cases/types/randomid.mjs +39 -0
  214. package/test/cases/types/regex.mjs +46 -0
  215. package/test/cases/types/{stack.js → stack.mjs} +1 -1
  216. package/test/cases/types/{tokenlist.js → tokenlist.mjs} +1 -1
  217. package/test/cases/types/{typeof.js → typeof.mjs} +3 -4
  218. package/test/cases/types/{uniquequeue.js → uniquequeue.mjs} +1 -1
  219. package/test/cases/types/{uuid.js → uuid.mjs} +30 -10
  220. package/test/cases/types/{validate.js → validate.mjs} +3 -4
  221. package/test/cases/types/{version.js → version.mjs} +1 -2
  222. package/test/cases/util/{clone.js → clone.mjs} +1 -1
  223. package/test/cases/util/{comparator.js → comparator.mjs} +1 -1
  224. package/test/cases/util/{deadmansswitch.js → deadmansswitch.mjs} +1 -1
  225. package/test/cases/util/{freeze.js → freeze.mjs} +1 -1
  226. package/test/cases/util/{processing.js → processing.mjs} +1 -1
  227. package/test/cases/util/{trimspaces.js → trimspaces.mjs} +1 -1
  228. package/test/util/{chai-dom.js → chai-dom.mjs} +0 -0
  229. package/test/util/{cleanupdom.js → cleanupdom.mjs} +0 -0
  230. package/test/util/{jsdom.js → jsdom.mjs} +2 -2
  231. package/test/util/{localstorage.js → localstorage.mjs} +0 -0
  232. package/test/web/import.js +77 -77
  233. package/test/web/prepare.js +0 -8
  234. package/test/web/test.html +5 -4
  235. package/test/web/tests.js +25731 -587
  236. package/dist/modules/constants.js +0 -2
  237. package/dist/modules/constraints/abstract.js +0 -2
  238. package/dist/modules/constraints/abstractoperator.js +0 -2
  239. package/dist/modules/constraints/andoperator.js +0 -2
  240. package/dist/modules/constraints/invalid.js +0 -2
  241. package/dist/modules/constraints/isarray.js +0 -2
  242. package/dist/modules/constraints/isobject.js +0 -2
  243. package/dist/modules/constraints/namespace.js +0 -2
  244. package/dist/modules/constraints/oroperator.js +0 -2
  245. package/dist/modules/constraints/valid.js +0 -2
  246. package/dist/modules/data/buildmap.js +0 -2
  247. package/dist/modules/data/buildtree.js +0 -2
  248. package/dist/modules/data/datasource/namespace.js +0 -2
  249. package/dist/modules/data/datasource/restapi/writeerror.js +0 -2
  250. package/dist/modules/data/datasource/restapi.js +0 -2
  251. package/dist/modules/data/datasource/storage/localstorage.js +0 -2
  252. package/dist/modules/data/datasource/storage/namespace.js +0 -2
  253. package/dist/modules/data/datasource/storage/sessionstorage.js +0 -2
  254. package/dist/modules/data/datasource/storage.js +0 -2
  255. package/dist/modules/data/datasource.js +0 -2
  256. package/dist/modules/data/diff.js +0 -2
  257. package/dist/modules/data/extend.js +0 -2
  258. package/dist/modules/data/namespace.js +0 -2
  259. package/dist/modules/data/pathfinder.js +0 -2
  260. package/dist/modules/data/pipe.js +0 -2
  261. package/dist/modules/data/transformer.js +0 -2
  262. package/dist/modules/dom/assembler.js +0 -2
  263. package/dist/modules/dom/attributes.js +0 -2
  264. package/dist/modules/dom/constants.js +0 -2
  265. package/dist/modules/dom/customcontrol.js +0 -2
  266. package/dist/modules/dom/customelement.js +0 -2
  267. package/dist/modules/dom/events.js +0 -2
  268. package/dist/modules/dom/focusmanager.js +0 -2
  269. package/dist/modules/dom/locale.js +0 -2
  270. package/dist/modules/dom/namespace.js +0 -2
  271. package/dist/modules/dom/resource/data.js +0 -2
  272. package/dist/modules/dom/resource/link/stylesheet.js +0 -2
  273. package/dist/modules/dom/resource/link.js +0 -2
  274. package/dist/modules/dom/resource/script.js +0 -2
  275. package/dist/modules/dom/resource.js +0 -2
  276. package/dist/modules/dom/resourcemanager.js +0 -2
  277. package/dist/modules/dom/template.js +0 -2
  278. package/dist/modules/dom/theme.js +0 -2
  279. package/dist/modules/dom/updater.js +0 -2
  280. package/dist/modules/dom/util.js +0 -2
  281. package/dist/modules/dom/worker/factory.js +0 -2
  282. package/dist/modules/i18n/formatter.js +0 -2
  283. package/dist/modules/i18n/locale.js +0 -2
  284. package/dist/modules/i18n/namespace.js +0 -2
  285. package/dist/modules/i18n/provider.js +0 -2
  286. package/dist/modules/i18n/providers/fetch.js +0 -2
  287. package/dist/modules/i18n/providers/namespace.js +0 -2
  288. package/dist/modules/i18n/translations.js +0 -2
  289. package/dist/modules/logging/handler/console.js +0 -2
  290. package/dist/modules/logging/handler/namespace.js +0 -2
  291. package/dist/modules/logging/handler.js +0 -2
  292. package/dist/modules/logging/logentry.js +0 -2
  293. package/dist/modules/logging/logger.js +0 -2
  294. package/dist/modules/logging/namespace.js +0 -2
  295. package/dist/modules/math/namespace.js +0 -2
  296. package/dist/modules/math/random.js +0 -2
  297. package/dist/modules/monster.js +0 -2
  298. package/dist/modules/namespace.js +0 -2
  299. package/dist/modules/text/formatter.js +0 -2
  300. package/dist/modules/text/namespace.js +0 -2
  301. package/dist/modules/types/base.js +0 -2
  302. package/dist/modules/types/basewithoptions.js +0 -2
  303. package/dist/modules/types/binary.js +0 -2
  304. package/dist/modules/types/dataurl.js +0 -2
  305. package/dist/modules/types/global.js +0 -2
  306. package/dist/modules/types/id.js +0 -2
  307. package/dist/modules/types/is.js +0 -2
  308. package/dist/modules/types/mediatype.js +0 -2
  309. package/dist/modules/types/namespace.js +0 -2
  310. package/dist/modules/types/node.js +0 -2
  311. package/dist/modules/types/nodelist.js +0 -2
  312. package/dist/modules/types/noderecursiveiterator.js +0 -2
  313. package/dist/modules/types/observer.js +0 -2
  314. package/dist/modules/types/observerlist.js +0 -2
  315. package/dist/modules/types/proxyobserver.js +0 -2
  316. package/dist/modules/types/queue.js +0 -2
  317. package/dist/modules/types/randomid.js +0 -2
  318. package/dist/modules/types/regex.js +0 -2
  319. package/dist/modules/types/stack.js +0 -2
  320. package/dist/modules/types/tokenlist.js +0 -2
  321. package/dist/modules/types/typeof.js +0 -2
  322. package/dist/modules/types/uniquequeue.js +0 -2
  323. package/dist/modules/types/uuid.js +0 -2
  324. package/dist/modules/types/validate.js +0 -2
  325. package/dist/modules/types/version.js +0 -2
  326. package/dist/modules/util/clone.js +0 -2
  327. package/dist/modules/util/comparator.js +0 -2
  328. package/dist/modules/util/deadmansswitch.js +0 -2
  329. package/dist/modules/util/freeze.js +0 -2
  330. package/dist/modules/util/namespace.js +0 -2
  331. package/dist/modules/util/processing.js +0 -2
  332. package/dist/modules/util/trimspaces.js +0 -2
  333. package/dist/monster.dev.js +0 -15489
  334. package/dist/monster.dev.js.map +0 -1
  335. package/dist/monster.js +0 -2
  336. package/source/constraints/andoperator.js +0 -71
  337. package/source/constraints/invalid.js +0 -63
  338. package/source/constraints/isarray.js +0 -71
  339. package/source/constraints/isobject.js +0 -72
  340. package/source/constraints/valid.js +0 -63
  341. package/source/data/datasource/storage/localstorage.js +0 -64
  342. package/source/data/datasource/storage/sessionstorage.js +0 -61
  343. package/source/dom/resource/link/stylesheet.js +0 -54
  344. package/source/i18n/provider.js +0 -58
  345. package/source/i18n/providers/namespace.js +0 -16
  346. package/source/logging/handler/console.js +0 -66
  347. package/source/logging/handler/namespace.js +0 -14
  348. package/source/logging/logentry.js +0 -68
  349. package/source/monster.js +0 -80
  350. package/source/namespace.js +0 -170
  351. package/source/types/base.js +0 -50
  352. package/source/types/is.js +0 -429
  353. package/source/types/package.d.ts +0 -1
  354. package/source/types/randomid.js +0 -60
  355. package/source/types/regex.js +0 -49
  356. package/source/types/typeof.js +0 -63
  357. package/source/util/freeze.js +0 -57
  358. package/test/cases/math/random.js +0 -82
  359. package/test/cases/monster.js +0 -23
  360. package/test/cases/namespace.js +0 -93
  361. package/test/cases/types/randomid.js +0 -24
  362. package/test/cases/types/regex.js +0 -32
  363. package/test/web/monster-dev.html +0 -22
  364. package/test/web/monster.html +0 -21
@@ -1,32 +1,20 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
- import {assignToNamespace, Monster} from '../namespace.js';
7
- import {isArray, isInstance} from "./is.js";
8
- import {Node} from "./node.js";
9
- import {validateInstance} from "./validate.js";
7
+
8
+ import {isArray, isInstance} from "./is.mjs";
9
+ import {Node} from "./node.mjs";
10
+ import {validateInstance} from "./validate.mjs";
11
+
12
+ export {NodeList}
10
13
 
11
14
  /**
12
15
  * You can create the instance via the monster namespace `new Monster.Types.NodeList()`.
13
16
  *
14
- * ```
15
- * <script type="module">
16
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
17
- * new Monster.Types.NodeList()
18
- * </script>
19
- * ```
20
- *
21
- * Alternatively, you can also integrate this function individually.
22
- *
23
- * ```
24
- * <script type="module">
25
- * import {NodeList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/nodelist.js';
26
- * new NodeList()
27
- * </script>
28
- * ```
29
- *
17
+ * @license AGPLv3
30
18
  * @since 1.26.0
31
19
  * @copyright schukai GmbH
32
20
  * @memberOf Monster.Types
@@ -43,8 +31,8 @@ class NodeList extends Set {
43
31
 
44
32
  const self = this
45
33
 
46
- if(values===undefined) return;
47
-
34
+ if (values === undefined) return;
35
+
48
36
  if (isArray(values)) {
49
37
  values.forEach(value => self.add(value));
50
38
  } else if (isInstance(values, NodeList)) {
@@ -111,11 +99,11 @@ class NodeList extends Set {
111
99
  */
112
100
  toString() {
113
101
  let parts = [];
114
-
115
- for(const node of this.toArray()) {
116
- parts.push(node.toString())
102
+
103
+ for (const node of this.toArray()) {
104
+ parts.push(node.toString())
117
105
  }
118
-
106
+
119
107
  return parts.join("\n");
120
108
  }
121
109
 
@@ -124,6 +112,3 @@ class NodeList extends Set {
124
112
  }
125
113
  }
126
114
 
127
-
128
- assignToNamespace('Monster.Types', NodeList);
129
- export {Monster, NodeList}
@@ -1,18 +1,19 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
7
 
8
+ import {internalSymbol} from "../constants.mjs";
7
9
 
8
- import {internalSymbol} from "../constants.js";
9
- import {assignToNamespace, Monster} from '../namespace.js';
10
- import {Base} from './base.js';
11
- import {isInstance} from "./is.js";
12
- import {Node} from "./node.js";
13
- import {NodeList} from "./nodelist.js";
14
- import {validateInstance} from "./validate.js";
10
+ import {Base} from './base.mjs';
11
+ import {isInstance} from "./is.mjs";
12
+ import {Node} from "./node.mjs";
13
+ import {NodeList} from "./nodelist.mjs";
14
+ import {validateInstance} from "./validate.mjs";
15
15
 
16
+ export {NodeRecursiveIterator}
16
17
 
17
18
  /**
18
19
  * @private
@@ -23,62 +24,14 @@ const isNodeListSymbol = Symbol('isNodeList');
23
24
  /**
24
25
  * You can create the instance via the monster namespace `new Monster.Types.NodeRecursiveIterator()`.
25
26
  *
26
- * ```
27
- * <script type="module">
28
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
29
- * new Monster.Types.NodeRecursiveIterator()
30
- * </script>
31
- * ```
32
- *
33
- * Alternatively, you can also integrate this function individually.
34
- *
35
- * ```
36
- * <script type="module">
37
- * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/noderecursiveiterator.js';
38
- * new NodeRecursiveIterator()
39
- * </script>
40
- * ```
41
- *
42
- * @example
43
- * import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/node.js';
44
- * import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/noderecursiveiterator.js';
45
- *
46
- * const node =new Node('1')
47
- *
48
- * // 1
49
- * // 2
50
- * // ├ 2.1
51
- * // ├ 2.2
52
- * // └ 2.3
53
- * // 3
54
- * // 4
55
- * // ├ 4.1
56
- * // └ 4.2
57
- * node.appendChild(
58
- * (new Node('2'))
59
- * .appendChild(new Node('2.1'))
60
- * .appendChild(new Node('2.2'))
61
- * .appendChild(new Node('2.3')))
62
- * .appendChild(new Node('3'))
63
- * .appendChild(new Node('4')
64
- * .appendChild(new Node('4.1'))
65
- * .appendChild(new Node('4.2')));
66
- *
67
- * const iterator = new NodeRecursiveIterator(node);
68
- *
69
- * const result = [];
70
- * for (const n of iterator) {
71
- * result.push(n.value);
72
- * }
73
- *
74
- * // ↦ ['1', '2', '2.1', '2.2', '2.3', '3', '4', '4.1', '4.2']
75
- *
27
+ * @externalExample ../../example/types/noderecursiveiterator.mjs
28
+ * @license AGPLv3
76
29
  * @since 1.26.0
77
30
  * @copyright schukai GmbH
78
31
  * @memberOf Monster.Types
79
32
  * @summary An iterator to run recursively through a tree of nodes
80
33
  */
81
- class NodeRecursiveIterator extends Base {
34
+ class NodeRecursiveIterator extends Base {
82
35
 
83
36
  /**
84
37
  * @param {Node} [data]
@@ -142,7 +95,3 @@ class NodeRecursiveIterator extends Base {
142
95
  }
143
96
 
144
97
  }
145
-
146
-
147
- assignToNamespace('Monster.Types', NodeRecursiveIterator);
148
- export {Monster, NodeRecursiveIterator}
@@ -1,36 +1,24 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
7
 
7
- import {assignToNamespace, Monster} from '../namespace.js';
8
- import {Base} from './base.js';
9
- import {isObject} from './is.js';
10
- import {TokenList} from './tokenlist.js';
11
- import {UniqueQueue} from './uniquequeue.js';
8
+ import {Base} from './base.mjs';
9
+ import {isObject} from './is.mjs';
10
+ import {TokenList} from './tokenlist.mjs';
11
+ import {UniqueQueue} from './uniquequeue.mjs';
12
+
13
+ export {Observer}
12
14
 
13
15
  /**
14
16
  * An observer manages a callback function
15
17
  *
16
- * You can call the method via the monster namespace `new Monster.Types.Observer()`.
17
- *
18
- * ```
19
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
20
- * new Monster.Types.Observer()
21
- * ```
22
- *
23
- * Alternatively, you can also integrate this function individually.
24
- *
25
- * ```
26
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
27
- * new Observer()
28
- * ```
29
- *
30
18
  * The update method is called with the subject object as this pointer. For this reason the callback should not
31
- * be an arrow function, because it gets the this pointer of its own context.
19
+ * be an arrow function, because it gets this pointer of its own context.
32
20
  *
33
- * ```
21
+ * ```js
34
22
  * new Observer(()=>{
35
23
  * // this is not subject
36
24
  * })
@@ -42,7 +30,7 @@ import {UniqueQueue} from './uniquequeue.js';
42
30
  *
43
31
  * Additional arguments can be passed to the callback. To do this, simply specify them.
44
32
  *
45
- * ```
33
+ * ```js
46
34
  * Observer(function(a, b, c) {
47
35
  * console.log(a, b, c); // ↦ "a", 2, true
48
36
  * }, "a", 2, true)
@@ -50,17 +38,8 @@ import {UniqueQueue} from './uniquequeue.js';
50
38
  *
51
39
  * The callback function must have as many parameters as arguments are given.
52
40
  *
53
- * @example
54
- *
55
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
56
- *
57
- * const observer = new Observer(function(a, b, c) {
58
- * console.log(this, a, b, c); // ↦ "a", 2, true
59
- * }, "a", 2, true);
60
- *
61
- * observer.update({value:true}).then(()=>{});
62
- * // ↦ {value: true} "a" 2 true
63
- *
41
+ * @externalExample ../../example/types/observer.mjs
42
+ * @license AGPLv3
64
43
  * @since 1.0.0
65
44
  * @copyright schukai GmbH
66
45
  * @memberOf Monster.Types
@@ -168,9 +147,3 @@ class Observer extends Base {
168
147
  };
169
148
 
170
149
  }
171
-
172
- assignToNamespace('Monster.Types', Observer);
173
- export {Monster, Observer}
174
-
175
-
176
-
@@ -1,37 +1,23 @@
1
- 'use strict';
1
+
2
2
 
3
3
  /**
4
- * @author schukai GmbH
4
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
5
+ * Node module: @schukai/monster
6
+ * This file is licensed under the AGPLv3 License.
7
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
8
  */
6
9
 
7
- import {assignToNamespace, Monster} from '../namespace.js';
8
- import {Base} from './base.js';
9
- import {Observer} from "./observer.js";
10
- import {validateInstance} from "./validate.js";
10
+
11
+ import {Base} from './base.mjs';
12
+ import {Observer} from "./observer.mjs";
13
+ import {validateInstance} from "./validate.mjs";
14
+
15
+ export {ObserverList}
11
16
 
12
17
  /**
13
18
  * With the help of the ObserverList class, observer can be managed.
14
19
  *
15
- * You can call the method via the monster namespace `new Monster.Types.ObserverList()`.
16
- *
17
- * ```
18
- * <script type="module">
19
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
20
- * console.log(new Monster.Types.ObserverList())
21
- * console.log(new Monster.Types.ObserverList())
22
- * </script>
23
- * ```
24
- *
25
- * Alternatively, you can also integrate this function individually.
26
- *
27
- * ```
28
- * <script type="module">
29
- * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observerlist.js';
30
- * console.log(ObserverList())
31
- * console.log(ObserverList())
32
- * </script>
33
- * ```
34
- *
20
+ * @license AGPLv3
35
21
  * @since 1.0.0
36
22
  * @copyright schukai GmbH
37
23
  * @memberOf Monster.Types
@@ -113,6 +99,3 @@ class ObserverList extends Base {
113
99
  };
114
100
 
115
101
  }
116
-
117
- assignToNamespace('Monster.Types', ObserverList);
118
- export {Monster, ObserverList}
@@ -1,74 +1,34 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
- import {assignToNamespace, Monster} from '../namespace.js';
7
- import {Base} from './base.js';
8
- import {isArray, isObject, isPrimitive} from "./is.js";
9
- import {Observer} from "./observer.js";
10
- import {ObserverList} from "./observerlist.js";
11
- import {validateObject} from "./validate.js";
12
- import {extend} from "../data/extend.js";
7
+
8
+ import {Base} from './base.mjs';
9
+ import {isArray, isObject, isPrimitive} from "./is.mjs";
10
+ import {Observer} from "./observer.mjs";
11
+ import {ObserverList} from "./observerlist.mjs";
12
+ import {validateObject} from "./validate.mjs";
13
+ import {extend} from "../data/extend.mjs";
14
+
15
+ export {ProxyObserver}
13
16
 
14
17
  /**
15
18
  * An observer manages a callback function
16
19
  *
17
- * You can call create the class via the monster namespace `new Monster.Types.ProxyObserver()`.
18
- *
19
- * ```
20
- * <script type="module">
21
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
22
- * new Monster.Types.ProxyObserver()
23
- * </script>
24
- * ```
25
- *
26
- * Alternatively, you can also integrate this class individually.
27
- *
28
- * ```
29
- * <script type="module">
30
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/proxyobserver.js';
31
- * new ProxyObserver()
32
- * </script>
33
- * ```
34
- *
35
- * with the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.
20
+ * With the ProxyObserver you can attach observer for observation.
21
+ * With each change at the object to be observed an update takes place.
36
22
  *
37
- * this also applies to nested objects.
38
- *
39
- * @example
40
- *
41
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/proxyobserver.js';
42
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
43
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/is.js';
44
- *
45
- * const o = new Observer(function () {
46
- * if (isObject(this) && this instanceof ProxyObserver) {
47
- * // do something (this ist ProxyObserver)
48
- * const subject = this.getSubject();
49
- * console.log(subject);
50
- * }
51
- * });
52
- *
53
- * let realSubject = {
54
- * a: {
55
- * b: {
56
- * c: true
57
- * },
58
- * d: 9
59
- * }
60
- * }
61
- *
62
- * const p = new ProxyObserver(realSubject);
63
- * p.attachObserver(o);
64
- * const s = p.getSubject();
65
- * s.a.b.c = false;
23
+ * This also applies to nested objects.
66
24
  *
25
+ * @externalExample ../../example/types/proxyobserver.mjs
26
+ * @license AGPLv3
67
27
  * @since 1.0.0
68
28
  * @copyright schukai GmbH
69
29
  * @memberOf Monster.Types
70
30
  */
71
- class ProxyObserver extends Base {
31
+ class ProxyObserver extends Base {
72
32
 
73
33
  /**
74
34
  *
@@ -167,9 +127,6 @@ class ProxyObserver extends Base {
167
127
 
168
128
  }
169
129
 
170
- assignToNamespace('Monster.Types', ProxyObserver);
171
- export {Monster, ProxyObserver}
172
-
173
130
  /**
174
131
  *
175
132
  * @returns {{defineProperty: (function(*=, *=, *=): *), setPrototypeOf: (function(*, *=): boolean), set: (function(*, *, *, *): boolean), get: ((function(*=, *=, *=): (undefined))|*), deleteProperty: ((function(*, *): (boolean))|*)}}
@@ -1,53 +1,19 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
- import {assignToNamespace, Monster} from '../namespace.js';
7
- import {Base} from './base.js';
7
+
8
+ import {Base} from './base.mjs';
9
+
10
+ export {Queue}
8
11
 
9
12
  /**
10
13
  * You can create the instance via the monster namespace `new Monster.Types.Queue()`.
11
14
  *
12
- * ```
13
- * <script type="module">
14
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
15
- * new Monster.Types.Queue()
16
- * </script>
17
- * ```
18
- *
19
- * Alternatively, you can also integrate this function individually.
20
- *
21
- * ```
22
- * <script type="module">
23
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/queue.js';
24
- * new Queue()
25
- * </script>
26
- * ```
27
- *
28
- * @example
29
- *
30
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/queue.js';
31
- *
32
- * const queue = new Queue;
33
- *
34
- * queue.add(2);
35
- * queue.add(true);
36
- * queue.add("Hello");
37
- * queue.add(4.5);
38
- *
39
- * console.log(queue.poll());
40
- * // ↦ 2
41
- * console.log(queue.poll());
42
- * // ↦ true
43
- * console.log(queue.poll());
44
- * // ↦ "Hello"
45
- * console.log(queue.poll());
46
- * // ↦ 4.5
47
- * console.log(queue.poll());
48
- * // ↦ undefined
49
- *
50
- *
15
+ * @externalExample ../../example/types/queue.mjs
16
+ * @license AGPLv3
51
17
  * @since 1.4.0
52
18
  * @copyright schukai GmbH
53
19
  * @memberOf Monster.Types
@@ -120,6 +86,3 @@ class Queue extends Base {
120
86
 
121
87
 
122
88
  }
123
-
124
- assignToNamespace('Monster.Types', Queue);
125
- export {Monster, Queue}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
+ */
7
+
8
+ import {random} from "../math/random.mjs";
9
+ import {getGlobal} from "./global.mjs";
10
+ import {ID} from "./id.mjs";
11
+
12
+ export {RandomID}
13
+
14
+ /**
15
+ * @private
16
+ * @type {number}
17
+ */
18
+ let internalCounter = 0;
19
+
20
+ /**
21
+ * The `RandomID` class provides a unique ID for an item.
22
+ *
23
+ * @license AGPLv3
24
+ * @since 1.6.0
25
+ * @copyright schukai GmbH
26
+ * @memberOf Monster.Types
27
+ * @summary class to generate random numbers
28
+ */
29
+ class RandomID extends ID {
30
+
31
+ /**
32
+ * create new object
33
+ */
34
+ constructor() {
35
+ super();
36
+
37
+ internalCounter += 1;
38
+
39
+ this.id = getGlobal().btoa(random(1, 10000))
40
+ .replace(/=/g, '')
41
+ /** No numbers at the beginning of the ID, because of possible problems with DOM */
42
+ .replace(/^[0-9]+/, 'X') + internalCounter;
43
+ }
44
+
45
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
+ */
7
+
8
+ import {validateString} from "./validate.mjs";
9
+
10
+ export {escapeString}
11
+
12
+ /**
13
+ * This function prefixes all special characters that may appear in a regex with a slash.
14
+ *
15
+ * @param {string} value
16
+ * @return {string}
17
+ * @license AGPLv3
18
+ * @since 1.26.0
19
+ * @copyright schukai GmbH
20
+ * @memberOf Monster.Types
21
+ * @throws {TypeError} value is not a string
22
+ */
23
+ function escapeString(value) {
24
+ return validateString(value)
25
+ .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
26
+ .replace(/-/g, '\\x2d');
27
+ }
@@ -1,31 +1,18 @@
1
- 'use strict';
2
-
3
1
  /**
4
- * @author schukai GmbH
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
5
6
  */
6
7
 
7
- import {assignToNamespace, Monster} from '../namespace.js';
8
- import {Base} from './base.js';
8
+ import {Base} from './base.mjs';
9
+
10
+ export {Stack}
9
11
 
10
12
  /**
11
13
  * You can call the method via the monster namespace `new Monster.Types.Queue()`.
12
14
  *
13
- * ```
14
- * <script type="module">
15
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
16
- * console.log(new Monster.Types.Stack())
17
- * </script>
18
- * ```
19
- *
20
- * Alternatively, you can also integrate this function individually.
21
- *
22
- * ```
23
- * <script type="module">
24
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/stack.js';
25
- * console.log(new Stack())
26
- * </script>
27
- * ```
28
- *
15
+ * @license AGPLv3
29
16
  * @since 1.4.0
30
17
  * @copyright schukai GmbH
31
18
  * @memberOf Monster.Types
@@ -98,6 +85,3 @@ class Stack extends Base {
98
85
 
99
86
 
100
87
  }
101
-
102
- assignToNamespace('Monster.Types', Stack);
103
- export {Monster, Stack}