@nejs/basic-extensions 2.6.0 → 2.8.0

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 (271) hide show
  1. package/.vscode/settings.json +5 -0
  2. package/README.md +6129 -1574
  3. package/dist/@nejs/basic-extensions.bundle.2.7.0.js +19 -0
  4. package/dist/@nejs/basic-extensions.bundle.2.7.0.js.map +7 -0
  5. package/dist/cjs/array.extensions.d.ts +39 -0
  6. package/dist/cjs/array.extensions.js +303 -0
  7. package/dist/cjs/array.extensions.js.map +1 -0
  8. package/dist/cjs/big.int.extension.d.ts +31 -0
  9. package/dist/cjs/big.int.extension.js +164 -0
  10. package/dist/cjs/big.int.extension.js.map +1 -0
  11. package/dist/cjs/{newClasses → classes}/asyncIterable.js +32 -44
  12. package/dist/cjs/classes/asyncIterable.js.map +1 -0
  13. package/dist/cjs/{newClasses → classes}/deferred.js +66 -138
  14. package/dist/cjs/classes/deferred.js.map +1 -0
  15. package/dist/cjs/{newClasses → classes}/descriptor.js +56 -90
  16. package/dist/cjs/classes/descriptor.js.map +1 -0
  17. package/dist/cjs/classes/index.d.ts +13 -0
  18. package/dist/cjs/classes/index.js +57 -0
  19. package/dist/cjs/classes/index.js.map +1 -0
  20. package/dist/cjs/classes/introspector.d.ts +20 -0
  21. package/dist/cjs/classes/introspector.js +130 -0
  22. package/dist/cjs/classes/introspector.js.map +1 -0
  23. package/dist/cjs/{newClasses → classes}/iterable.js +42 -63
  24. package/dist/cjs/classes/iterable.js.map +1 -0
  25. package/dist/cjs/classes/param.parser.d.ts +227 -0
  26. package/dist/cjs/classes/param.parser.js +242 -0
  27. package/dist/cjs/classes/param.parser.js.map +1 -0
  28. package/dist/cjs/classes/pluggable.proxy.d.ts +152 -0
  29. package/dist/cjs/classes/pluggable.proxy.js +444 -0
  30. package/dist/cjs/classes/pluggable.proxy.js.map +1 -0
  31. package/dist/cjs/{newClasses → classes}/refmap.js +18 -30
  32. package/dist/cjs/classes/refmap.js.map +1 -0
  33. package/dist/cjs/{newClasses → classes}/refset.js +28 -47
  34. package/dist/cjs/classes/refset.js.map +1 -0
  35. package/dist/cjs/classes/symkeys.d.ts +292 -0
  36. package/dist/cjs/classes/symkeys.js +424 -0
  37. package/dist/cjs/classes/symkeys.js.map +1 -0
  38. package/dist/cjs/classes/type.d.ts +56 -0
  39. package/dist/cjs/classes/type.js +405 -0
  40. package/dist/cjs/classes/type.js.map +1 -0
  41. package/dist/cjs/function.extensions.js +757 -0
  42. package/dist/cjs/function.extensions.js.map +1 -0
  43. package/dist/cjs/global.this.js +261 -0
  44. package/dist/cjs/global.this.js.map +1 -0
  45. package/dist/cjs/index.d.ts +4 -3
  46. package/dist/cjs/index.js +62 -32
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/json.extensions.d.ts +2 -0
  49. package/dist/cjs/json.extensions.js +107 -0
  50. package/dist/cjs/json.extensions.js.map +1 -0
  51. package/dist/{mjs/mapextensions.d.ts → cjs/map.extensions.d.ts} +1 -0
  52. package/dist/cjs/map.extensions.js +142 -0
  53. package/dist/cjs/map.extensions.js.map +1 -0
  54. package/dist/cjs/number.extension.d.ts +44 -0
  55. package/dist/cjs/number.extension.js +260 -0
  56. package/dist/cjs/number.extension.js.map +1 -0
  57. package/dist/cjs/object.extensions.d.ts +62 -0
  58. package/dist/cjs/object.extensions.js +1116 -0
  59. package/dist/cjs/object.extensions.js.map +1 -0
  60. package/dist/cjs/proxy.extensions.d.ts +2 -0
  61. package/dist/cjs/proxy.extensions.js +207 -0
  62. package/dist/cjs/proxy.extensions.js.map +1 -0
  63. package/dist/cjs/reflect.extensions.js +316 -0
  64. package/dist/cjs/reflect.extensions.js.map +1 -0
  65. package/dist/cjs/regular.expression.extensions.d.ts +2 -0
  66. package/dist/cjs/regular.expression.extensions.js +423 -0
  67. package/dist/cjs/regular.expression.extensions.js.map +1 -0
  68. package/dist/cjs/set.extensions.d.ts +40 -0
  69. package/dist/cjs/{setextensions.js → set.extensions.js} +150 -2
  70. package/dist/cjs/set.extensions.js.map +1 -0
  71. package/dist/cjs/string.extensions.js +471 -0
  72. package/dist/cjs/string.extensions.js.map +1 -0
  73. package/dist/{mjs/symbolextensions.d.ts → cjs/symbol.extensions.d.ts} +1 -0
  74. package/dist/cjs/symbol.extensions.js +259 -0
  75. package/dist/cjs/symbol.extensions.js.map +1 -0
  76. package/dist/cjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  77. package/dist/cjs/weakref.extensions.js.map +1 -0
  78. package/dist/mjs/array.extensions.d.ts +39 -0
  79. package/dist/mjs/array.extensions.js +300 -0
  80. package/dist/mjs/array.extensions.js.map +1 -0
  81. package/dist/mjs/big.int.extension.d.ts +31 -0
  82. package/dist/mjs/big.int.extension.js +161 -0
  83. package/dist/mjs/big.int.extension.js.map +1 -0
  84. package/dist/mjs/classes/asyncIterable.js.map +1 -0
  85. package/dist/mjs/classes/deferred.js.map +1 -0
  86. package/dist/mjs/{newClasses → classes}/descriptor.js +7 -4
  87. package/dist/mjs/classes/descriptor.js.map +1 -0
  88. package/dist/mjs/classes/index.d.ts +13 -0
  89. package/dist/mjs/classes/index.js +40 -0
  90. package/dist/mjs/classes/index.js.map +1 -0
  91. package/dist/mjs/classes/introspector.d.ts +20 -0
  92. package/dist/mjs/classes/introspector.js +126 -0
  93. package/dist/mjs/classes/introspector.js.map +1 -0
  94. package/dist/mjs/classes/iterable.js.map +1 -0
  95. package/dist/mjs/classes/param.parser.d.ts +227 -0
  96. package/dist/mjs/classes/param.parser.js +238 -0
  97. package/dist/mjs/classes/param.parser.js.map +1 -0
  98. package/dist/mjs/classes/pluggable.proxy.d.ts +152 -0
  99. package/dist/mjs/classes/pluggable.proxy.js +438 -0
  100. package/dist/mjs/classes/pluggable.proxy.js.map +1 -0
  101. package/dist/mjs/{newClasses → classes}/refmap.js +3 -3
  102. package/dist/mjs/classes/refmap.js.map +1 -0
  103. package/dist/mjs/classes/refset.js.map +1 -0
  104. package/dist/mjs/classes/symkeys.d.ts +292 -0
  105. package/dist/mjs/classes/symkeys.js +420 -0
  106. package/dist/mjs/classes/symkeys.js.map +1 -0
  107. package/dist/mjs/classes/type.d.ts +56 -0
  108. package/dist/mjs/classes/type.js +401 -0
  109. package/dist/mjs/classes/type.js.map +1 -0
  110. package/dist/mjs/function.extensions.js +754 -0
  111. package/dist/mjs/function.extensions.js.map +1 -0
  112. package/dist/mjs/global.this.js +258 -0
  113. package/dist/mjs/global.this.js.map +1 -0
  114. package/dist/mjs/index.d.ts +4 -3
  115. package/dist/mjs/index.js +49 -19
  116. package/dist/mjs/index.js.map +1 -1
  117. package/dist/mjs/json.extensions.d.ts +2 -0
  118. package/dist/mjs/json.extensions.js +104 -0
  119. package/dist/mjs/json.extensions.js.map +1 -0
  120. package/dist/{cjs/mapextensions.d.ts → mjs/map.extensions.d.ts} +1 -0
  121. package/dist/mjs/map.extensions.js +139 -0
  122. package/dist/mjs/map.extensions.js.map +1 -0
  123. package/dist/mjs/number.extension.d.ts +44 -0
  124. package/dist/mjs/number.extension.js +257 -0
  125. package/dist/mjs/number.extension.js.map +1 -0
  126. package/dist/mjs/object.extensions.d.ts +62 -0
  127. package/dist/mjs/object.extensions.js +1112 -0
  128. package/dist/mjs/object.extensions.js.map +1 -0
  129. package/dist/mjs/proxy.extensions.d.ts +2 -0
  130. package/dist/mjs/proxy.extensions.js +204 -0
  131. package/dist/mjs/proxy.extensions.js.map +1 -0
  132. package/dist/mjs/reflect.extensions.js +313 -0
  133. package/dist/mjs/reflect.extensions.js.map +1 -0
  134. package/dist/mjs/regular.expression.extensions.d.ts +2 -0
  135. package/dist/mjs/regular.expression.extensions.js +420 -0
  136. package/dist/mjs/regular.expression.extensions.js.map +1 -0
  137. package/dist/mjs/set.extensions.d.ts +40 -0
  138. package/dist/mjs/{setextensions.js → set.extensions.js} +149 -1
  139. package/dist/mjs/set.extensions.js.map +1 -0
  140. package/dist/mjs/string.extensions.js +468 -0
  141. package/dist/mjs/string.extensions.js.map +1 -0
  142. package/dist/{cjs/symbolextensions.d.ts → mjs/symbol.extensions.d.ts} +1 -0
  143. package/dist/mjs/symbol.extensions.js +256 -0
  144. package/dist/mjs/symbol.extensions.js.map +1 -0
  145. package/dist/mjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  146. package/dist/mjs/weakref.extensions.js.map +1 -0
  147. package/docs/index.html +24045 -5805
  148. package/package.json +6 -4
  149. package/repl.bootstrap.js +21 -0
  150. package/src/array.extensions.js +322 -0
  151. package/src/big.int.extension.js +163 -0
  152. package/src/{newClasses → classes}/descriptor.js +16 -12
  153. package/src/classes/index.js +51 -0
  154. package/src/classes/introspector.js +167 -0
  155. package/src/classes/param.parser.js +253 -0
  156. package/src/classes/pluggable.proxy.js +485 -0
  157. package/src/{newClasses → classes}/refmap.js +5 -3
  158. package/src/classes/symkeys.js +464 -0
  159. package/src/classes/type.js +427 -0
  160. package/src/function.extensions.js +818 -0
  161. package/src/global.this.js +304 -0
  162. package/src/index.js +56 -23
  163. package/src/json.extensions.js +108 -0
  164. package/src/map.extensions.js +144 -0
  165. package/src/number.extension.js +273 -0
  166. package/src/object.extensions.js +1222 -0
  167. package/src/proxy.extensions.js +229 -0
  168. package/src/reflect.extensions.js +346 -0
  169. package/src/regular.expression.extensions.js +451 -0
  170. package/src/{setextensions.js → set.extensions.js} +151 -2
  171. package/src/string.extensions.js +515 -0
  172. package/src/symbol.extensions.js +268 -0
  173. package/tests/newClasses/refmap.test.js +3 -2
  174. package/tsconfig.base.json +5 -3
  175. package/tsconfig.cjs.json +2 -2
  176. package/tsconfig.esm.json +2 -2
  177. package/dist/@nejs/basic-extensions.bundle.2.5.0.js +0 -8
  178. package/dist/@nejs/basic-extensions.bundle.2.5.0.js.map +0 -7
  179. package/dist/cjs/arrayextensions.d.ts +0 -10
  180. package/dist/cjs/arrayextensions.js +0 -73
  181. package/dist/cjs/arrayextensions.js.map +0 -1
  182. package/dist/cjs/functionextensions.js +0 -202
  183. package/dist/cjs/functionextensions.js.map +0 -1
  184. package/dist/cjs/globals.js +0 -166
  185. package/dist/cjs/globals.js.map +0 -1
  186. package/dist/cjs/mapextensions.js +0 -32
  187. package/dist/cjs/mapextensions.js.map +0 -1
  188. package/dist/cjs/newClasses/asyncIterable.js.map +0 -1
  189. package/dist/cjs/newClasses/deferred.js.map +0 -1
  190. package/dist/cjs/newClasses/descriptor.js.map +0 -1
  191. package/dist/cjs/newClasses/iterable.js.map +0 -1
  192. package/dist/cjs/newClasses/refmap.js.map +0 -1
  193. package/dist/cjs/newClasses/refset.js.map +0 -1
  194. package/dist/cjs/objectextensions.d.ts +0 -11
  195. package/dist/cjs/objectextensions.js +0 -232
  196. package/dist/cjs/objectextensions.js.map +0 -1
  197. package/dist/cjs/reflectextensions.js +0 -111
  198. package/dist/cjs/reflectextensions.js.map +0 -1
  199. package/dist/cjs/setextensions.d.ts +0 -2
  200. package/dist/cjs/setextensions.js.map +0 -1
  201. package/dist/cjs/stringextensions.js +0 -158
  202. package/dist/cjs/stringextensions.js.map +0 -1
  203. package/dist/cjs/symbolextensions.js +0 -69
  204. package/dist/cjs/symbolextensions.js.map +0 -1
  205. package/dist/cjs/weakrefextensions.js.map +0 -1
  206. package/dist/mjs/arrayextensions.d.ts +0 -10
  207. package/dist/mjs/arrayextensions.js +0 -70
  208. package/dist/mjs/arrayextensions.js.map +0 -1
  209. package/dist/mjs/functionextensions.js +0 -199
  210. package/dist/mjs/functionextensions.js.map +0 -1
  211. package/dist/mjs/globals.js +0 -163
  212. package/dist/mjs/globals.js.map +0 -1
  213. package/dist/mjs/mapextensions.js +0 -29
  214. package/dist/mjs/mapextensions.js.map +0 -1
  215. package/dist/mjs/newClasses/asyncIterable.js.map +0 -1
  216. package/dist/mjs/newClasses/deferred.js.map +0 -1
  217. package/dist/mjs/newClasses/descriptor.js.map +0 -1
  218. package/dist/mjs/newClasses/iterable.js.map +0 -1
  219. package/dist/mjs/newClasses/refmap.js.map +0 -1
  220. package/dist/mjs/newClasses/refset.js.map +0 -1
  221. package/dist/mjs/objectextensions.d.ts +0 -11
  222. package/dist/mjs/objectextensions.js +0 -229
  223. package/dist/mjs/objectextensions.js.map +0 -1
  224. package/dist/mjs/reflectextensions.js +0 -108
  225. package/dist/mjs/reflectextensions.js.map +0 -1
  226. package/dist/mjs/setextensions.d.ts +0 -2
  227. package/dist/mjs/setextensions.js.map +0 -1
  228. package/dist/mjs/stringextensions.js +0 -155
  229. package/dist/mjs/stringextensions.js.map +0 -1
  230. package/dist/mjs/symbolextensions.js +0 -66
  231. package/dist/mjs/symbolextensions.js.map +0 -1
  232. package/dist/mjs/weakrefextensions.js.map +0 -1
  233. package/src/arrayextensions.js +0 -75
  234. package/src/functionextensions.js +0 -225
  235. package/src/globals.js +0 -196
  236. package/src/mapextensions.js +0 -32
  237. package/src/objectextensions.js +0 -256
  238. package/src/reflectextensions.js +0 -118
  239. package/src/stringextensions.js +0 -166
  240. package/src/symbolextensions.js +0 -69
  241. /package/dist/cjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  242. /package/dist/cjs/{newClasses → classes}/deferred.d.ts +0 -0
  243. /package/dist/cjs/{newClasses → classes}/descriptor.d.ts +0 -0
  244. /package/dist/cjs/{newClasses → classes}/iterable.d.ts +0 -0
  245. /package/dist/cjs/{newClasses → classes}/refmap.d.ts +0 -0
  246. /package/dist/cjs/{newClasses → classes}/refset.d.ts +0 -0
  247. /package/dist/cjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  248. /package/dist/cjs/{globals.d.ts → global.this.d.ts} +0 -0
  249. /package/dist/cjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  250. /package/dist/cjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  251. /package/dist/cjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  252. /package/dist/mjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  253. /package/dist/mjs/{newClasses → classes}/asyncIterable.js +0 -0
  254. /package/dist/mjs/{newClasses → classes}/deferred.d.ts +0 -0
  255. /package/dist/mjs/{newClasses → classes}/deferred.js +0 -0
  256. /package/dist/mjs/{newClasses → classes}/descriptor.d.ts +0 -0
  257. /package/dist/mjs/{newClasses → classes}/iterable.d.ts +0 -0
  258. /package/dist/mjs/{newClasses → classes}/iterable.js +0 -0
  259. /package/dist/mjs/{newClasses → classes}/refmap.d.ts +0 -0
  260. /package/dist/mjs/{newClasses → classes}/refset.d.ts +0 -0
  261. /package/dist/mjs/{newClasses → classes}/refset.js +0 -0
  262. /package/dist/mjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  263. /package/dist/mjs/{globals.d.ts → global.this.d.ts} +0 -0
  264. /package/dist/mjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  265. /package/dist/mjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  266. /package/dist/mjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  267. /package/src/{newClasses → classes}/asyncIterable.js +0 -0
  268. /package/src/{newClasses → classes}/deferred.js +0 -0
  269. /package/src/{newClasses → classes}/iterable.js +0 -0
  270. /package/src/{newClasses → classes}/refset.js +0 -0
  271. /package/src/{weakrefextensions.js → weakref.extensions.js} +0 -0
@@ -0,0 +1,427 @@
1
+ import { Extension } from '@nejs/extension'
2
+
3
+ import { Introspector } from './introspector.js'
4
+
5
+ export class Type {
6
+ mapped = new Map(Type.mapped.entries())
7
+
8
+ of(value) { return Type.of(value) }
9
+ class(value) { return Type.class(value) }
10
+ isPrimitive(value) { return Type.isPrimitive(value) }
11
+
12
+ static is(value, ofType) {
13
+ const name = Type.of(value)
14
+ return name === Type.name(ofType)
15
+ }
16
+
17
+ static of(value) {
18
+ return typeof value
19
+ }
20
+
21
+ static named(value) {
22
+ const tag = / (.*?)\]/.exec(Object.prototype.toString.call(value))?.[1]
23
+ const name = (
24
+ value?.[Symbol.toStringTag] ??
25
+ tag ??
26
+ (value instanceof Function ? value.name : undefined) ??
27
+ Type.mapped.get(typeof value).name
28
+ )
29
+
30
+ return name
31
+ }
32
+
33
+ static class(value, mapped) {
34
+ mapped = mapped ?? Type.mapped
35
+
36
+ const name = (
37
+ value?.[Symbol.toStringTag] ??
38
+ (value instanceof Function ? value.name : undefined) ??
39
+ typeof value
40
+ )
41
+
42
+ const type = mapped.has(name)
43
+ ? Type.mapped.get(name)
44
+ : value?.constructor
45
+
46
+ if (Type.of(type) === 'function' && !mapped.has(name) && this !== Type) {
47
+ mapped.set(name, type)
48
+ mapped.set(type, name)
49
+ }
50
+
51
+ return !type ? mapped.get(typeof value) : type
52
+ }
53
+
54
+ static isPrimitive(value) {
55
+ return new Set([...Type.primitives]).has(typeof value)
56
+ }
57
+
58
+ static get primitives() {
59
+ return function*() {
60
+ yield 'bigint'
61
+ yield 'boolean'
62
+ yield 'number'
63
+ yield 'string'
64
+ yield 'symbol'
65
+ yield 'undefined'
66
+ }
67
+ }
68
+
69
+ static get typeOfTypes() {
70
+ return function*() {
71
+ yield 'bigint'
72
+ yield 'boolean'
73
+ yield 'function'
74
+ yield 'number'
75
+ yield 'object'
76
+ yield 'string'
77
+ yield 'symbol'
78
+ yield 'undefined'
79
+ }
80
+ }
81
+
82
+ static mapped = new Map([
83
+ ['bigint',BigInt],
84
+ ['boolean',Boolean],
85
+ ['function',Function],
86
+ ['number',Number],
87
+ ['object',Object],
88
+ ['string',String],
89
+ ['symbol',Symbol],
90
+ ['undefined',undefined],
91
+ [BigInt, 'bigint'],
92
+ [Boolean, 'boolean'],
93
+ [Function, 'function'],
94
+ [Number, 'number'],
95
+ [Object, 'object'],
96
+ [String, 'string'],
97
+ [Symbol, 'symbol'],
98
+ [BigInt.name, BigInt],
99
+ [Boolean.name, Boolean],
100
+ [Function.name, Function],
101
+ [Number.name, Number],
102
+ [Object.name, Object],
103
+ [String.name, String],
104
+ [Symbol.name, Symbol],
105
+ [undefined, 'undefined'],
106
+ ])
107
+
108
+ serverJs = {
109
+ nodejs: {
110
+ 'v21.1.0': {
111
+ version: 'v21.1.0',
112
+ date: new Date('2024-04-21T15:58:12.490Z'),
113
+ classes: Introspector.addExpansion([
114
+ 'AbortController', 'AbortSignal', 'AggregateError', 'Array',
115
+ 'ArrayBuffer', 'BigInt', 'BigInt64Array', 'BigUint64Array', 'Blob',
116
+ 'Boolean', 'BroadcastChannel', 'Buffer', 'ByteLengthQueuingStrategy',
117
+ 'CompressionStream', 'CountQueuingStrategy', 'Crypto', 'CryptoKey',
118
+ 'CustomEvent', 'DataView', 'Date', 'DecompressionStream', 'DOMException',
119
+ 'Error', 'EvalError', 'Event', 'EventTarget', 'File',
120
+ 'FinalizationRegistry', 'Float32Array', 'Float64Array', 'FormData',
121
+ 'Function', 'Headers', 'Int16Array', 'Int32Array', 'Int8Array', 'Map',
122
+ 'MessageChannel', 'MessageEvent', 'MessagePort', 'Navigator', 'Number',
123
+ 'Object', 'Performance', 'PerformanceEntry', 'PerformanceMark',
124
+ 'PerformanceMeasure', 'PerformanceObserver',
125
+ 'PerformanceObserverEntryList', 'PerformanceResourceTiming', 'Promise',
126
+ 'Proxy', 'RangeError', 'ReadableByteStreamController', 'ReadableStream',
127
+ 'ReadableStreamBYOBReader', 'ReadableStreamBYOBRequest',
128
+ 'ReadableStreamDefaultController', 'ReadableStreamDefaultReader',
129
+ 'ReferenceError', 'RegExp', 'Request', 'Response', 'Set',
130
+ 'SharedArrayBuffer', 'String', 'SubtleCrypto', 'Symbol', 'SyntaxError',
131
+ 'TextDecoder', 'TextDecoderStream', 'TextEncoder', 'TextEncoderStream',
132
+ 'TransformStream', 'TransformStreamDefaultController', 'TypeError',
133
+ 'Uint16Array', 'Uint32Array', 'Uint8Array', 'Uint8ClampedArray',
134
+ 'URIError', 'URL', 'URLSearchParams', 'WeakMap', 'WeakRef', 'WeakSet',
135
+ 'WritableStream', 'WritableStreamDefaultController',
136
+ 'WritableStreamDefaultWriter'
137
+ ]),
138
+ nodeSpecificClasses: Introspector.addExpansion([
139
+ 'Buffer', 'CryptoKey', 'SharedArrayBuffer', 'SubtleCrypto',
140
+ ]),
141
+ functions: Introspector.addExpansion([
142
+ 'assert', 'atob', 'btoa', 'clearImmediate', 'clearInterval',
143
+ 'clearTimeout', 'decodeURI', 'decodeURIComponent', 'encodeURI',
144
+ 'encodeURIComponent', 'escape', 'eval', 'events', 'fetch', 'isFinite',
145
+ 'isNaN', 'parseFloat', 'parseInt', 'queueMicrotask', 'require',
146
+ 'setImmediate', 'setInterval', 'setTimeout', 'stream', 'structuredClone',
147
+ 'unescape',
148
+ ]),
149
+ objects: Introspector.addExpansion([
150
+ 'Atomics', 'Intl', 'JSON', 'Math', 'Reflect', 'WebAssembly',
151
+ '_', '_error', 'async_hooks', 'buffer', 'child_process', 'cluster',
152
+ 'console', 'constants', 'crypto', 'dgram', 'diagnostics_channel', 'dns',
153
+ 'domain', 'fs', 'global', 'globalThis', 'http', 'http2',
154
+ 'https', 'inspector', 'module', 'navigator', 'net', 'os',
155
+ 'path', 'perf_hooks', 'performance', 'process', 'punycode', 'querystring',
156
+ 'readline', 'repl', 'string_decoder', 'sys', 'timers', 'tls',
157
+ 'trace_events', 'tty', 'url', 'util', 'v8', 'vm',
158
+ 'wasi', 'worker_threads', 'zlib'
159
+ ]),
160
+ properties: Introspector.addExpansion(['Infinity', 'NaN', 'undefined']),
161
+ symbols: Introspector.addExpansion([Symbol.toStringTag])
162
+ },
163
+ },
164
+
165
+ qjs: {
166
+ 'v': {
167
+ version: 'v',
168
+ classes: Introspector.addExpansion([
169
+ 'AggregateError', 'Array', 'ArrayBuffer', 'BigInt', 'BigInt64Array',
170
+ 'BigUint64Array', 'Boolean', 'DataView', 'Date', 'Error', 'EvalError',
171
+ 'Float32Array', 'Float64Array', 'Function', 'Int16Array', 'Int32Array',
172
+ 'Int8Array', 'InternalError', 'Map', 'Number', 'Object', 'Promise',
173
+ 'Proxy', 'RangeError', 'ReferenceError', 'RegExp', 'Set',
174
+ 'SharedArrayBuffer', 'String', 'Symbol', 'SyntaxError', 'TypeError',
175
+ 'URIError', 'Uint16Array', 'Uint32Array', 'Uint8Array',
176
+ 'Uint8ClampedArray', 'WeakMap', 'WeakSet',
177
+ ]),
178
+ functions: Introspector.addExpansion([
179
+ 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent',
180
+ 'escape', 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt',
181
+ 'print', 'unescape'
182
+ ]),
183
+ objects: Introspector.addExpansion([
184
+ 'Atomics', 'JSON', 'Math', 'Reflect', '_', 'console',
185
+ 'globalThis', 'os', 'scriptArgs', 'std',
186
+ ]),
187
+ properties: Introspector.addExpansion([
188
+ 'Infinity', 'NaN', 'undefined'
189
+ ]),
190
+ symbols: Introspector.addExpansion([]),
191
+ }
192
+ }
193
+ }
194
+
195
+ browser = {
196
+ arc: {
197
+ version: 'Version 1.39.0 (48951)',
198
+ userAgent: [
199
+ 'Mozilla/5.0',
200
+ '(Macintosh; Intel Mac OS X 10_15_7)',
201
+ 'AppleWebKit/537.36',
202
+ '(KHTML, like Gecko)',
203
+ 'Chrome/124.0.0.0',
204
+ 'Safari/537.36'
205
+ ].join(' '),
206
+ types: {
207
+ classes: Introspector.addExpansion([
208
+ 'AbortController', 'AbortSignal', 'AggregateError', 'Array',
209
+ 'ArrayBuffer', 'BigInt', 'BigInt64Array', 'BigUint64Array', 'Blob',
210
+ 'Boolean', 'BroadcastChannel', 'ByteLengthQueuingStrategy',
211
+ 'CompressionStream', 'CountQueuingStrategy', 'Crypto', 'CustomEvent',
212
+ 'DOMException', 'DataView', 'Date', 'DecompressionStream', 'Error',
213
+ 'EvalError', 'Event', 'EventTarget', 'File', 'FinalizationRegistry',
214
+ 'Float32Array', 'Float64Array', 'FormData', 'Function', 'Headers',
215
+ 'Int16Array', 'Int32Array', 'Int8Array', 'Map', 'MessageChannel',
216
+ 'MessageEvent', 'MessagePort', 'Navigator', 'Number', 'Object',
217
+ 'Performance', 'PerformanceEntry', 'PerformanceMark',
218
+ 'PerformanceMeasure', 'PerformanceObserver',
219
+ 'PerformanceObserverEntryList', 'PerformanceResourceTiming', 'Promise',
220
+ 'Proxy', 'RangeError', 'ReadableByteStreamController', 'ReadableStream',
221
+ 'ReadableStreamBYOBReader', 'ReadableStreamBYOBRequest',
222
+ 'ReadableStreamDefaultController', 'ReadableStreamDefaultReader',
223
+ 'ReferenceError', 'RegExp', 'Request', 'Response', 'Set', 'String',
224
+ 'Symbol', 'SyntaxError', 'TextDecoder', 'TextDecoderStream',
225
+ 'TextEncoder', 'TextEncoderStream', 'TransformStream',
226
+ 'TransformStreamDefaultController', 'TypeError', 'URIError', 'URL',
227
+ 'URLSearchParams', 'Uint16Array', 'Uint32Array', 'Uint8Array',
228
+ 'Uint8ClampedArray', 'WeakMap', 'WeakRef', 'WeakSet', 'WritableStream',
229
+ 'WritableStreamDefaultController', 'WritableStreamDefaultWriter'
230
+ ]),
231
+ browserClasses: Introspector.addExpansion([
232
+ "AbstractRange", "AnalyserNode", "Animation", "AnimationEffect",
233
+ "AnimationEvent", "AnimationPlaybackEvent", "AnimationTimeline", "Attr",
234
+ "Audio", "AudioBuffer", "AudioBufferSourceNode", "AudioContext",
235
+ "AudioData", "AudioDestinationNode", "AudioListener", "AudioNode",
236
+ "AudioParam", "AudioParamMap", "AudioProcessingEvent",
237
+ "AudioScheduledSourceNode", "AudioSinkInfo", "AudioWorkletNode",
238
+ "BackgroundFetchManager", "BackgroundFetchRecord",
239
+ "BackgroundFetchRegistration", "BarProp", "BaseAudioContext",
240
+ "BeforeInstallPromptEvent", "BeforeUnloadEvent", "BiquadFilterNode",
241
+ "BlobEvent", "BluetoothUUID", "BrowserCaptureMediaStreamTrack",
242
+ "CDATASection", "CSSAnimation", "CSSConditionRule", "CSSContainerRule",
243
+ "CSSCounterStyleRule", "CSSFontFaceRule", "CSSFontPaletteValuesRule",
244
+ "CSSGroupingRule", "CSSImageValue", "CSSImportRule", "CSSKeyframeRule",
245
+ "CSSKeyframesRule", "CSSKeywordValue", "CSSLayerBlockRule",
246
+ "CSSLayerStatementRule", "CSSMathClamp", "CSSMathInvert", "CSSMathMax",
247
+ "CSSMathMin", "CSSMathNegate", "CSSMathProduct", "CSSMathSum",
248
+ "CSSMathValue", "CSSMatrixComponent", "CSSMediaRule", "CSSNamespaceRule",
249
+ "CSSNumericArray", "CSSNumericValue", "CSSPageRule", "CSSPerspective",
250
+ "CSSPositionValue", "CSSPropertyRule", "CSSRotate", "CSSRule",
251
+ "CSSRuleList", "CSSScale", "CSSScopeRule", "CSSSkew", "CSSSkewX",
252
+ "CSSSkewY", "CSSStartingStyleRule", "CSSStyleDeclaration", "CSSStyleRule",
253
+ "CSSStyleSheet", "CSSStyleValue", "CSSSupportsRule",
254
+ "CSSTransformComponent", "CSSTransformValue", "CSSTransition",
255
+ "CSSTranslate", "CSSUnitValue", "CSSUnparsedValue",
256
+ "CSSVariableReferenceValue", "CanvasCaptureMediaStreamTrack",
257
+ "CanvasGradient", "CanvasPattern", "CanvasRenderingContext2D",
258
+ "ChannelMergerNode", "ChannelSplitterNode", "CharacterBoundsUpdateEvent",
259
+ "CharacterData", "ClipboardEvent", "CloseEvent", "Comment",
260
+ "CompositionEvent", "ConstantSourceNode",
261
+ "ContentVisibilityAutoStateChangeEvent", "ConvolverNode", "CropTarget",
262
+ "CustomElementRegistry", "CustomStateSet", "DOMError",
263
+ "DOMImplementation", "DOMMatrix", "DOMMatrixReadOnly", "DOMParser",
264
+ "DOMPoint", "DOMPointReadOnly", "DOMQuad", "DOMRect", "DOMRectList",
265
+ "DOMRectReadOnly", "DOMStringList", "DOMStringMap", "DOMTokenList",
266
+ "DataTransfer", "DataTransferItem", "DataTransferItemList", "DelayNode",
267
+ "DelegatedInkTrailPresenter", "Document", "DocumentFragment",
268
+ "DocumentPictureInPictureEvent", "DocumentTimeline", "DocumentType",
269
+ "DragEvent", "DynamicsCompressorNode", "EditContext", "Element",
270
+ "ElementInternals", "EncodedAudioChunk", "EncodedVideoChunk",
271
+ "ErrorEvent", "EventCounts", "EventSource", "External", "FeaturePolicy",
272
+ "FileList", "FileReader", "FocusEvent", "FontFace",
273
+ "FontFaceSetLoadEvent", "FormDataEvent", "FragmentDirective", "GainNode",
274
+ "Gamepad", "GamepadButton", "GamepadEvent", "GamepadHapticActuator",
275
+ "Geolocation", "GeolocationCoordinates", "GeolocationPosition",
276
+ "GeolocationPositionError", "HTMLAllCollection", "HTMLAnchorElement",
277
+ "HTMLAreaElement", "HTMLAudioElement", "HTMLBRElement", "HTMLBaseElement",
278
+ "HTMLBodyElement", "HTMLButtonElement", "HTMLCanvasElement",
279
+ "HTMLCollection", "HTMLDListElement", "HTMLDataElement",
280
+ "HTMLDataListElement", "HTMLDetailsElement", "HTMLDialogElement",
281
+ "HTMLDirectoryElement", "HTMLDivElement", "HTMLDocument", "HTMLElement",
282
+ "HTMLEmbedElement", "HTMLFieldSetElement", "HTMLFontElement",
283
+ "HTMLFormControlsCollection", "HTMLFormElement", "HTMLFrameElement",
284
+ "HTMLFrameSetElement", "HTMLHRElement", "HTMLHeadElement",
285
+ "HTMLHeadingElement", "HTMLHtmlElement", "HTMLIFrameElement",
286
+ "HTMLImageElement", "HTMLInputElement", "HTMLLIElement",
287
+ "HTMLLabelElement", "HTMLLegendElement", "HTMLLinkElement",
288
+ "HTMLMapElement", "HTMLMarqueeElement", "HTMLMediaElement",
289
+ "HTMLMenuElement", "HTMLMetaElement", "HTMLMeterElement",
290
+ "HTMLModElement", "HTMLOListElement", "HTMLObjectElement",
291
+ "HTMLOptGroupElement", "HTMLOptionElement", "HTMLOptionsCollection",
292
+ "HTMLOutputElement", "HTMLParagraphElement", "HTMLParamElement",
293
+ "HTMLPictureElement", "HTMLPreElement", "HTMLProgressElement",
294
+ "HTMLQuoteElement", "HTMLScriptElement", "HTMLSelectElement",
295
+ "HTMLSlotElement", "HTMLSourceElement", "HTMLSpanElement",
296
+ "HTMLStyleElement", "HTMLTableCaptionElement", "HTMLTableCellElement",
297
+ "HTMLTableColElement", "HTMLTableElement", "HTMLTableRowElement",
298
+ "HTMLTableSectionElement", "HTMLTemplateElement", "HTMLTextAreaElement",
299
+ "HTMLTimeElement", "HTMLTitleElement", "HTMLTrackElement",
300
+ "HTMLUListElement", "HTMLUnknownElement", "HTMLVideoElement",
301
+ "HashChangeEvent", "Highlight", "HighlightRegistry", "History",
302
+ "IDBCursor", "IDBCursorWithValue", "IDBDatabase", "IDBFactory",
303
+ "IDBIndex", "IDBKeyRange", "IDBObjectStore", "IDBOpenDBRequest",
304
+ "IDBRequest", "IDBTransaction", "IDBVersionChangeEvent", "IIRFilterNode",
305
+ "IdleDeadline", "Image", "ImageBitmap", "ImageBitmapRenderingContext",
306
+ "ImageCapture", "ImageData", "ImageTrack", "ImageTrackList", "Ink",
307
+ "InputDeviceCapabilities", "InputDeviceInfo", "InputEvent",
308
+ "IntersectionObserver", "IntersectionObserverEntry", "Iterator",
309
+ "KeyboardEvent", "KeyframeEffect", "LargestContentfulPaint",
310
+ "LaunchParams", "LaunchQueue", "LayoutShift", "LayoutShiftAttribution",
311
+ "Location", "MathMLElement", "MediaCapabilities",
312
+ "MediaElementAudioSourceNode", "MediaEncryptedEvent", "MediaError",
313
+ "MediaList", "MediaMetadata", "MediaQueryList", "MediaQueryListEvent",
314
+ "MediaRecorder", "MediaSession", "MediaSource", "MediaSourceHandle",
315
+ "MediaStream", "MediaStreamAudioDestinationNode",
316
+ "MediaStreamAudioSourceNode", "MediaStreamEvent", "MediaStreamTrack",
317
+ "MediaStreamTrackEvent", "MediaStreamTrackGenerator",
318
+ "MediaStreamTrackProcessor", "MediaStreamTrackVideoStats", "MimeType",
319
+ "MimeTypeArray", "MouseEvent", "MutationEvent", "MutationObserver",
320
+ "MutationRecord", "NamedNodeMap", "NavigateEvent", "Navigation",
321
+ "NavigationActivation", "NavigationCurrentEntryChangeEvent",
322
+ "NavigationDestination", "NavigationHistoryEntry", "NavigationTransition",
323
+ "NavigatorUAData", "NetworkInformation", "Node", "NodeFilter",
324
+ "NodeIterator", "NodeList", "Notification",
325
+ "OfflineAudioCompletionEvent", "OfflineAudioContext", "OffscreenCanvas",
326
+ "OffscreenCanvasRenderingContext2D", "Option", "OscillatorNode",
327
+ "OverconstrainedError", "PageRevealEvent", "PageSwapEvent",
328
+ "PageTransitionEvent", "PannerNode", "Path2D",
329
+ "PerformanceElementTiming", "PerformanceEventTiming",
330
+ "PerformanceLongAnimationFrameTiming", "PerformanceLongTaskTiming",
331
+ "PerformanceNavigation", "PerformanceNavigationTiming",
332
+ "PerformancePaintTiming", "PerformanceScriptTiming",
333
+ "PerformanceServerTiming", "PerformanceTiming", "PeriodicSyncManager",
334
+ "PeriodicWave", "PermissionStatus", "Permissions",
335
+ "PictureInPictureEvent", "PictureInPictureWindow", "Plugin",
336
+ "PluginArray", "PointerEvent", "PopStateEvent",
337
+ "ProcessingInstruction", "Profiler", "ProgressEvent",
338
+ "PromiseRejectionEvent", "PushManager", "PushSubscription",
339
+ "PushSubscriptionOptions", "RTCCertificate", "RTCDTMFSender",
340
+ "RTCDTMFToneChangeEvent", "RTCDataChannel", "RTCDataChannelEvent",
341
+ "RTCDtlsTransport", "RTCEncodedAudioFrame", "RTCEncodedVideoFrame",
342
+ "RTCError", "RTCErrorEvent", "RTCIceCandidate", "RTCIceTransport",
343
+ "RTCPeerConnection", "RTCPeerConnectionIceErrorEvent",
344
+ "RTCPeerConnectionIceEvent", "RTCRtpReceiver", "RTCRtpSender",
345
+ "RTCRtpTransceiver", "RTCSctpTransport", "RTCSessionDescription",
346
+ "RTCStatsReport", "RTCTrackEvent", "RadioNodeList", "Range",
347
+ "RemotePlayback", "ReportingObserver", "ResizeObserver",
348
+ "ResizeObserverEntry", "ResizeObserverSize", "SVGAElement", "SVGAngle",
349
+ "SVGAnimateElement", "SVGAnimateMotionElement",
350
+ "SVGAnimateTransformElement", "SVGAnimatedAngle", "SVGAnimatedBoolean",
351
+ "SVGAnimatedEnumeration", "SVGAnimatedInteger", "SVGAnimatedLength",
352
+ "SVGAnimatedLengthList", "SVGAnimatedNumber", "SVGAnimatedNumberList",
353
+ "SVGAnimatedPreserveAspectRatio", "SVGAnimatedRect",
354
+ "SVGAnimatedString", "SVGAnimatedTransformList", "SVGAnimationElement",
355
+ "SVGCircleElement", "SVGClipPathElement",
356
+ "SVGComponentTransferFunctionElement", "SVGDefsElement", "SVGDescElement",
357
+ "SVGElement", "SVGEllipseElement", "SVGFEBlendElement",
358
+ "SVGFEColorMatrixElement", "SVGFEComponentTransferElement",
359
+ "SVGFECompositeElement", "SVGFEConvolveMatrixElement",
360
+ "SVGFEDiffuseLightingElement", "SVGFEDisplacementMapElement",
361
+ "SVGFEDistantLightElement", "SVGFEDropShadowElement", "SVGFEFloodElement",
362
+ "SVGFEFuncAElement", "SVGFEFuncBElement", "SVGFEFuncGElement",
363
+ "SVGFEFuncRElement", "SVGFEGaussianBlurElement", "SVGFEImageElement",
364
+ "SVGFEMergeElement", "SVGFEMergeNodeElement", "SVGFEMorphologyElement",
365
+ "SVGFEOffsetElement", "SVGFEPointLightElement",
366
+ "SVGFESpecularLightingElement", "SVGFESpotLightElement",
367
+ "SVGFETileElement", "SVGFETurbulenceElement", "SVGFilterElement",
368
+ "SVGForeignObjectElement", "SVGGElement", "SVGGeometryElement",
369
+ "SVGGradientElement", "SVGGraphicsElement", "SVGImageElement",
370
+ "SVGLength", "SVGLengthList", "SVGLineElement",
371
+ "SVGLinearGradientElement", "SVGMPathElement", "SVGMarkerElement",
372
+ "SVGMaskElement", "SVGMatrix", "SVGMetadataElement", "SVGNumber",
373
+ "SVGNumberList", "SVGPathElement", "SVGPatternElement", "SVGPoint",
374
+ "SVGPointList", "SVGPolygonElement", "SVGPolylineElement",
375
+ "SVGPreserveAspectRatio", "SVGRadialGradientElement", "SVGRect",
376
+ "SVGRectElement", "SVGSVGElement", "SVGScriptElement", "SVGSetElement",
377
+ "SVGStopElement", "SVGStringList", "SVGStyleElement", "SVGSwitchElement",
378
+ "SVGSymbolElement", "SVGTSpanElement", "SVGTextContentElement",
379
+ "SVGTextElement", "SVGTextPathElement", "SVGTextPositioningElement",
380
+ "SVGTitleElement", "SVGTransform", "SVGTransformList", "SVGUnitTypes",
381
+ "SVGUseElement", "SVGViewElement", "Scheduler", "Scheduling", "Screen",
382
+ "ScreenOrientation", "ScriptProcessorNode", "ScrollTimeline",
383
+ "SecurityPolicyViolationEvent", "Selection", "ShadowRoot",
384
+ "SharedWorker", "SourceBuffer", "SourceBufferList", "SpeechSynthesis",
385
+ "SpeechSynthesisErrorEvent", "SpeechSynthesisEvent",
386
+ "SpeechSynthesisUtterance", "SpeechSynthesisVoice", "StaticRange",
387
+ "StereoPannerNode", "Storage", "StorageEvent", "StylePropertyMap",
388
+ "StylePropertyMapReadOnly", "StyleSheet", "StyleSheetList",
389
+ "SubmitEvent", "SyncManager", "TaskAttributionTiming", "TaskController",
390
+ "TaskPriorityChangeEvent", "TaskSignal", "Text", "TextEvent",
391
+ "TextFormat", "TextFormatUpdateEvent", "TextMetrics", "TextTrack",
392
+ "TextTrackCue", "TextTrackCueList", "TextTrackList", "TextUpdateEvent",
393
+ "TimeRanges", "ToggleEvent", "Touch", "TouchEvent", "TouchList",
394
+ "TrackEvent", "TransitionEvent", "TreeWalker", "TrustedHTML",
395
+ "TrustedScript", "TrustedScriptURL", "TrustedTypePolicy",
396
+ "TrustedTypePolicyFactory", "UIEvent", "URLPattern", "UserActivation",
397
+ "VTTCue", "ValidityState", "VideoColorSpace", "VideoFrame",
398
+ "VideoPlaybackQuality", "ViewTimeline", "ViewTransition",
399
+ "VirtualKeyboardGeometryChangeEvent", "VisibilityStateEntry",
400
+ "VisualViewport", "WaveShaperNode", "WebGL2RenderingContext",
401
+ "WebGLActiveInfo", "WebGLBuffer", "WebGLContextEvent", "WebGLFramebuffer",
402
+ "WebGLProgram", "WebGLQuery", "WebGLRenderbuffer",
403
+ "WebGLRenderingContext", "WebGLSampler", "WebGLShader",
404
+ "WebGLShaderPrecisionFormat", "WebGLSync", "WebGLTexture",
405
+ "WebGLTransformFeedback", "WebGLUniformLocation",
406
+ "WebGLVertexArrayObject", "WebKitCSSMatrix", "WebKitMutationObserver",
407
+ "WebSocket", "WebSocketError", "WebSocketStream", "WheelEvent", "Window",
408
+ "WindowControlsOverlay", "WindowControlsOverlayGeometryChangeEvent",
409
+ "Worker", "XMLDocument", "XMLHttpRequest", "XMLHttpRequestEventTarget",
410
+ "XMLHttpRequestUpload", "XMLSerializer", "XPathEvaluator",
411
+ "XPathExpression", "XPathResult", "XSLTProcessor"
412
+ ]),
413
+ },
414
+ methods: {
415
+ get classes() { return addExpansion(fetcher('function', /^[A-Z]/)) },
416
+ get functions() { },
417
+ get objects() { },
418
+ }
419
+ },
420
+
421
+ safari: {
422
+
423
+ }
424
+ }
425
+ }
426
+
427
+ export const TypeExtensions = new Extension(Type)