@likec4/language-server 1.47.0 → 1.48.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 (316) hide show
  1. package/LICENSE +1 -1
  2. package/browser/package.json +2 -2
  3. package/browser-worker/package.json +2 -2
  4. package/bundled/package.json +4 -0
  5. package/dist/LikeC4LanguageServices.d.mts +4 -0
  6. package/dist/LikeC4LanguageServices.mjs +3 -0
  7. package/dist/_chunks/ConfigurableLayouter.mjs +1956 -0
  8. package/dist/_chunks/LikeC4LanguageServices.d.mts +1978 -0
  9. package/dist/_chunks/LikeC4LanguageServices.mjs +725 -0
  10. package/dist/_chunks/ast.d.mts +1444 -0
  11. package/dist/_chunks/ast.mjs +2375 -0
  12. package/dist/_chunks/ast2.mjs +176 -0
  13. package/dist/_chunks/common-exports.mjs +0 -0
  14. package/dist/_chunks/filesystem.mjs +58 -0
  15. package/dist/_chunks/grammar.mjs +8 -0
  16. package/dist/_chunks/icons.mjs +5211 -0
  17. package/dist/_chunks/libs/@hono/node-server.mjs +436 -0
  18. package/dist/_chunks/libs/@msgpack/msgpack.mjs +805 -0
  19. package/dist/_chunks/libs/eventemitter3.mjs +243 -0
  20. package/dist/_chunks/libs/fast-equals.mjs +446 -0
  21. package/dist/_chunks/libs/hono.mjs +1829 -0
  22. package/dist/_chunks/libs/p-queue.mjs +449 -0
  23. package/dist/_chunks/libs/parse-ms.mjs +36 -0
  24. package/dist/_chunks/libs/picomatch.mjs +1673 -0
  25. package/dist/_chunks/libs/pretty-ms.mjs +80 -0
  26. package/dist/_chunks/libs/remeda.mjs +482 -0
  27. package/dist/_chunks/libs/strip-indent.mjs +15 -0
  28. package/dist/_chunks/libs/ufo.mjs +166 -0
  29. package/dist/_chunks/likec4lib.mjs +9 -0
  30. package/dist/_chunks/mcp.mjs +33 -0
  31. package/dist/_chunks/module.mjs +28 -0
  32. package/dist/_chunks/module2.mjs +6576 -0
  33. package/dist/_chunks/protocol.d.mts +311 -0
  34. package/dist/_chunks/protocol.mjs +78 -0
  35. package/dist/_chunks/rolldown-runtime.mjs +42 -0
  36. package/dist/ast.d.mts +4 -0
  37. package/dist/ast.mjs +4 -0
  38. package/dist/browser-worker.d.mts +1 -0
  39. package/dist/browser-worker.mjs +6 -0
  40. package/dist/browser.d.mts +11 -0
  41. package/dist/browser.mjs +27 -0
  42. package/dist/bundled.d.mts +28 -0
  43. package/dist/bundled.mjs +51 -4853
  44. package/dist/common-exports.d.mts +4 -0
  45. package/dist/common-exports.mjs +5 -0
  46. package/dist/filesystem/index.d.mts +4 -0
  47. package/dist/filesystem/index.mjs +3 -0
  48. package/dist/generated/ast.d.mts +2 -0
  49. package/dist/generated/ast.mjs +3 -0
  50. package/dist/generated/grammar.d.mts +6 -0
  51. package/dist/generated/grammar.mjs +3 -0
  52. package/dist/generated/module.d.mts +14 -0
  53. package/dist/generated/module.mjs +3 -0
  54. package/dist/generated-lib/icons.d.mts +4 -0
  55. package/dist/generated-lib/icons.mjs +3 -0
  56. package/dist/index.d.mts +4 -0
  57. package/dist/index.mjs +48 -0
  58. package/dist/likec4lib.d.mts +9 -0
  59. package/dist/likec4lib.mjs +4 -0
  60. package/dist/mcp/index.d.mts +4 -0
  61. package/dist/mcp/index.mjs +3 -0
  62. package/dist/module.d.mts +4 -0
  63. package/dist/module.mjs +3 -0
  64. package/dist/protocol.d.mts +2 -0
  65. package/dist/protocol.mjs +3 -0
  66. package/likec4lib/package.json +2 -2
  67. package/package.json +106 -63
  68. package/protocol/package.json +2 -2
  69. package/dist/LikeC4LanguageServices.d.ts +0 -115
  70. package/dist/LikeC4LanguageServices.js +0 -164
  71. package/dist/Rpc.d.ts +0 -9
  72. package/dist/Rpc.js +0 -276
  73. package/dist/ast.d.ts +0 -226
  74. package/dist/ast.js +0 -264
  75. package/dist/browser-worker.d.ts +0 -1
  76. package/dist/browser-worker.js +0 -4
  77. package/dist/browser.d.ts +0 -10
  78. package/dist/browser.js +0 -34
  79. package/dist/bundled.d.ts +0 -8
  80. package/dist/bundled.js +0 -44
  81. package/dist/documentation/documentation-provider.d.ts +0 -8
  82. package/dist/documentation/documentation-provider.js +0 -51
  83. package/dist/documentation/index.d.ts +0 -1
  84. package/dist/documentation/index.js +0 -1
  85. package/dist/empty.d.ts +0 -2
  86. package/dist/empty.js +0 -2
  87. package/dist/filesystem/ChokidarWatcher.d.ts +0 -19
  88. package/dist/filesystem/ChokidarWatcher.js +0 -133
  89. package/dist/filesystem/FileSystemWatcher.d.ts +0 -19
  90. package/dist/filesystem/FileSystemWatcher.js +0 -14
  91. package/dist/filesystem/LikeC4FileSystem.d.ts +0 -3
  92. package/dist/filesystem/LikeC4FileSystem.js +0 -140
  93. package/dist/filesystem/index.d.ts +0 -55
  94. package/dist/filesystem/index.js +0 -29
  95. package/dist/formatting/LikeC4Formatter.d.ts +0 -59
  96. package/dist/formatting/LikeC4Formatter.js +0 -637
  97. package/dist/formatting/utils.d.ts +0 -6
  98. package/dist/formatting/utils.js +0 -18
  99. package/dist/generated/ast.d.ts +0 -1411
  100. package/dist/generated/ast.js +0 -2207
  101. package/dist/generated/grammar.d.ts +0 -6
  102. package/dist/generated/grammar.js +0 -7
  103. package/dist/generated/module.d.ts +0 -14
  104. package/dist/generated/module.js +0 -27
  105. package/dist/generated-lib/icons.d.ts +0 -1
  106. package/dist/generated-lib/icons.js +0 -18
  107. package/dist/index.d.ts +0 -37
  108. package/dist/index.js +0 -54
  109. package/dist/likec4lib.d.ts +0 -6
  110. package/dist/likec4lib.js +0 -7
  111. package/dist/logger.d.ts +0 -17
  112. package/dist/logger.js +0 -81
  113. package/dist/lsp/CodeActionProvider.d.ts +0 -14
  114. package/dist/lsp/CodeActionProvider.js +0 -33
  115. package/dist/lsp/CodeLensProvider.d.ts +0 -9
  116. package/dist/lsp/CodeLensProvider.js +0 -44
  117. package/dist/lsp/CompletionProvider.d.ts +0 -13
  118. package/dist/lsp/CompletionProvider.js +0 -238
  119. package/dist/lsp/DocumentHighlightProvider.d.ts +0 -9
  120. package/dist/lsp/DocumentHighlightProvider.js +0 -10
  121. package/dist/lsp/DocumentLinkProvider.d.ts +0 -11
  122. package/dist/lsp/DocumentLinkProvider.js +0 -58
  123. package/dist/lsp/DocumentSymbolProvider.d.ts +0 -33
  124. package/dist/lsp/DocumentSymbolProvider.js +0 -317
  125. package/dist/lsp/HoverProvider.d.ts +0 -10
  126. package/dist/lsp/HoverProvider.js +0 -106
  127. package/dist/lsp/RenameProvider.d.ts +0 -5
  128. package/dist/lsp/RenameProvider.js +0 -6
  129. package/dist/lsp/SemanticTokenProvider.d.ts +0 -19
  130. package/dist/lsp/SemanticTokenProvider.js +0 -305
  131. package/dist/lsp/index.d.ts +0 -8
  132. package/dist/lsp/index.js +0 -9
  133. package/dist/mcp/MCPServerFactory.d.ts +0 -8
  134. package/dist/mcp/MCPServerFactory.js +0 -73
  135. package/dist/mcp/NoopLikeC4MCPServer.d.ts +0 -9
  136. package/dist/mcp/NoopLikeC4MCPServer.js +0 -17
  137. package/dist/mcp/interfaces.d.ts +0 -13
  138. package/dist/mcp/interfaces.js +0 -4
  139. package/dist/mcp/server/StdioLikeC4MCPServer.d.ts +0 -16
  140. package/dist/mcp/server/StdioLikeC4MCPServer.js +0 -51
  141. package/dist/mcp/server/StreamableLikeC4MCPServer.d.ts +0 -16
  142. package/dist/mcp/server/StreamableLikeC4MCPServer.js +0 -121
  143. package/dist/mcp/server/WithMCPServer.d.ts +0 -4
  144. package/dist/mcp/server/WithMCPServer.js +0 -54
  145. package/dist/mcp/tools/_common.d.ts +0 -88
  146. package/dist/mcp/tools/_common.js +0 -49
  147. package/dist/mcp/tools/find-relationships.d.ts +0 -202
  148. package/dist/mcp/tools/find-relationships.js +0 -150
  149. package/dist/mcp/tools/list-projects.d.ts +0 -194
  150. package/dist/mcp/tools/list-projects.js +0 -62
  151. package/dist/mcp/tools/open-view.d.ts +0 -200
  152. package/dist/mcp/tools/open-view.js +0 -52
  153. package/dist/mcp/tools/read-deployment.d.ts +0 -200
  154. package/dist/mcp/tools/read-deployment.js +0 -150
  155. package/dist/mcp/tools/read-element.d.ts +0 -200
  156. package/dist/mcp/tools/read-element.js +0 -218
  157. package/dist/mcp/tools/read-project-summary.d.ts +0 -198
  158. package/dist/mcp/tools/read-project-summary.js +0 -176
  159. package/dist/mcp/tools/read-view.d.ts +0 -200
  160. package/dist/mcp/tools/read-view.js +0 -203
  161. package/dist/mcp/tools/search-element.d.ts +0 -198
  162. package/dist/mcp/tools/search-element.js +0 -177
  163. package/dist/mcp/utils.d.ts +0 -18
  164. package/dist/mcp/utils.js +0 -48
  165. package/dist/model/builder/MergedExtends.d.ts +0 -13
  166. package/dist/model/builder/MergedExtends.js +0 -74
  167. package/dist/model/builder/MergedSpecification.d.ts +0 -32
  168. package/dist/model/builder/MergedSpecification.js +0 -175
  169. package/dist/model/builder/buildModel.d.ts +0 -16
  170. package/dist/model/builder/buildModel.js +0 -245
  171. package/dist/model/deployments-index.d.ts +0 -10
  172. package/dist/model/deployments-index.js +0 -102
  173. package/dist/model/fqn-index.d.ts +0 -61
  174. package/dist/model/fqn-index.js +0 -253
  175. package/dist/model/index.d.ts +0 -6
  176. package/dist/model/index.js +0 -6
  177. package/dist/model/model-builder.d.ts +0 -54
  178. package/dist/model/model-builder.js +0 -233
  179. package/dist/model/model-locator.d.ts +0 -39
  180. package/dist/model/model-locator.js +0 -240
  181. package/dist/model/model-parser-where.d.ts +0 -4
  182. package/dist/model/model-parser-where.js +0 -81
  183. package/dist/model/model-parser.d.ts +0 -645
  184. package/dist/model/model-parser.js +0 -133
  185. package/dist/model/parser/Base.d.ts +0 -69
  186. package/dist/model/parser/Base.js +0 -382
  187. package/dist/model/parser/DeploymentModelParser.d.ts +0 -71
  188. package/dist/model/parser/DeploymentModelParser.js +0 -176
  189. package/dist/model/parser/DeploymentViewParser.d.ts +0 -75
  190. package/dist/model/parser/DeploymentViewParser.js +0 -86
  191. package/dist/model/parser/FqnRefParser.d.ts +0 -66
  192. package/dist/model/parser/FqnRefParser.js +0 -382
  193. package/dist/model/parser/GlobalsParser.d.ts +0 -109
  194. package/dist/model/parser/GlobalsParser.js +0 -84
  195. package/dist/model/parser/ImportsParser.d.ts +0 -46
  196. package/dist/model/parser/ImportsParser.js +0 -24
  197. package/dist/model/parser/ModelParser.d.ts +0 -71
  198. package/dist/model/parser/ModelParser.js +0 -209
  199. package/dist/model/parser/PredicatesParser.d.ts +0 -75
  200. package/dist/model/parser/PredicatesParser.js +0 -45
  201. package/dist/model/parser/SpecificationParser.d.ts +0 -53
  202. package/dist/model/parser/SpecificationParser.js +0 -113
  203. package/dist/model/parser/ValueConverter.d.ts +0 -4
  204. package/dist/model/parser/ValueConverter.js +0 -12
  205. package/dist/model/parser/ViewsParser.d.ts +0 -112
  206. package/dist/model/parser/ViewsParser.js +0 -492
  207. package/dist/model-change/ModelChanges.d.ts +0 -18
  208. package/dist/model-change/ModelChanges.js +0 -129
  209. package/dist/model-change/changeElementStyle.d.ts +0 -16
  210. package/dist/model-change/changeElementStyle.js +0 -134
  211. package/dist/model-change/changeViewLayout.d.ts +0 -12
  212. package/dist/model-change/changeViewLayout.js +0 -28
  213. package/dist/model-change/removeManualLayoutV1.d.ts +0 -7
  214. package/dist/model-change/removeManualLayoutV1.js +0 -27
  215. package/dist/module.d.ts +0 -92
  216. package/dist/module.js +0 -143
  217. package/dist/protocol.d.ts +0 -289
  218. package/dist/protocol.js +0 -123
  219. package/dist/references/index.d.ts +0 -3
  220. package/dist/references/index.js +0 -3
  221. package/dist/references/name-provider.d.ts +0 -9
  222. package/dist/references/name-provider.js +0 -37
  223. package/dist/references/scope-computation.d.ts +0 -20
  224. package/dist/references/scope-computation.js +0 -288
  225. package/dist/references/scope-provider.d.ts +0 -40
  226. package/dist/references/scope-provider.js +0 -239
  227. package/dist/shared/NodeKindProvider.d.ts +0 -15
  228. package/dist/shared/NodeKindProvider.js +0 -57
  229. package/dist/shared/WorkspaceSymbolProvider.d.ts +0 -3
  230. package/dist/shared/WorkspaceSymbolProvider.js +0 -3
  231. package/dist/shared/index.d.ts +0 -2
  232. package/dist/shared/index.js +0 -2
  233. package/dist/test/index.d.ts +0 -1
  234. package/dist/test/index.js +0 -1
  235. package/dist/test/testServices.d.ts +0 -64
  236. package/dist/test/testServices.js +0 -210
  237. package/dist/utils/disposable.d.ts +0 -8
  238. package/dist/utils/disposable.js +0 -26
  239. package/dist/utils/elementRef.d.ts +0 -11
  240. package/dist/utils/elementRef.js +0 -33
  241. package/dist/utils/fqnRef.d.ts +0 -11
  242. package/dist/utils/fqnRef.js +0 -63
  243. package/dist/utils/index.d.ts +0 -11
  244. package/dist/utils/index.js +0 -35
  245. package/dist/utils/printDocs.d.ts +0 -2
  246. package/dist/utils/printDocs.js +0 -1
  247. package/dist/utils/projectId.d.ts +0 -4
  248. package/dist/utils/projectId.js +0 -16
  249. package/dist/utils/stringHash.d.ts +0 -1
  250. package/dist/utils/stringHash.js +0 -5
  251. package/dist/validation/DocumentValidator.d.ts +0 -11
  252. package/dist/validation/DocumentValidator.js +0 -17
  253. package/dist/validation/_shared.d.ts +0 -3
  254. package/dist/validation/_shared.js +0 -26
  255. package/dist/validation/deployment-checks.d.ts +0 -7
  256. package/dist/validation/deployment-checks.js +0 -140
  257. package/dist/validation/dynamic-view.d.ts +0 -6
  258. package/dist/validation/dynamic-view.js +0 -67
  259. package/dist/validation/element-ref.d.ts +0 -4
  260. package/dist/validation/element-ref.js +0 -12
  261. package/dist/validation/element.d.ts +0 -4
  262. package/dist/validation/element.js +0 -49
  263. package/dist/validation/imports.d.ts +0 -4
  264. package/dist/validation/imports.js +0 -46
  265. package/dist/validation/index.d.ts +0 -15
  266. package/dist/validation/index.js +0 -167
  267. package/dist/validation/property-checks.d.ts +0 -7
  268. package/dist/validation/property-checks.js +0 -108
  269. package/dist/validation/relation.d.ts +0 -6
  270. package/dist/validation/relation.js +0 -141
  271. package/dist/validation/specification.d.ts +0 -12
  272. package/dist/validation/specification.js +0 -190
  273. package/dist/validation/view-checks.d.ts +0 -4
  274. package/dist/validation/view-checks.js +0 -46
  275. package/dist/validation/view-predicates/fqn-expr-with.d.ts +0 -4
  276. package/dist/validation/view-predicates/fqn-expr-with.js +0 -43
  277. package/dist/validation/view-predicates/fqn-ref-expr.d.ts +0 -4
  278. package/dist/validation/view-predicates/fqn-ref-expr.js +0 -51
  279. package/dist/validation/view-predicates/incoming.d.ts +0 -4
  280. package/dist/validation/view-predicates/incoming.js +0 -16
  281. package/dist/validation/view-predicates/index.d.ts +0 -6
  282. package/dist/validation/view-predicates/index.js +0 -6
  283. package/dist/validation/view-predicates/outgoing.d.ts +0 -4
  284. package/dist/validation/view-predicates/outgoing.js +0 -20
  285. package/dist/validation/view-predicates/relation-expr.d.ts +0 -4
  286. package/dist/validation/view-predicates/relation-expr.js +0 -46
  287. package/dist/validation/view-predicates/relation-with.d.ts +0 -4
  288. package/dist/validation/view-predicates/relation-with.js +0 -16
  289. package/dist/validation/view.d.ts +0 -4
  290. package/dist/validation/view.js +0 -42
  291. package/dist/view-utils/assignNavigateTo.d.ts +0 -2
  292. package/dist/view-utils/assignNavigateTo.js +0 -27
  293. package/dist/view-utils/index.d.ts +0 -2
  294. package/dist/view-utils/index.js +0 -2
  295. package/dist/view-utils/manual-layout.d.ts +0 -13
  296. package/dist/view-utils/manual-layout.js +0 -149
  297. package/dist/views/ConfigurableLayouter.d.ts +0 -7
  298. package/dist/views/ConfigurableLayouter.js +0 -51
  299. package/dist/views/LikeC4ManualLayouts.d.ts +0 -42
  300. package/dist/views/LikeC4ManualLayouts.js +0 -209
  301. package/dist/views/LikeC4Views.d.ts +0 -89
  302. package/dist/views/LikeC4Views.js +0 -216
  303. package/dist/views/index.d.ts +0 -4
  304. package/dist/views/index.js +0 -11
  305. package/dist/workspace/AstNodeDescriptionProvider.d.ts +0 -7
  306. package/dist/workspace/AstNodeDescriptionProvider.js +0 -18
  307. package/dist/workspace/IndexManager.d.ts +0 -10
  308. package/dist/workspace/IndexManager.js +0 -26
  309. package/dist/workspace/LangiumDocuments.d.ts +0 -29
  310. package/dist/workspace/LangiumDocuments.js +0 -104
  311. package/dist/workspace/ProjectsManager.d.ts +0 -134
  312. package/dist/workspace/ProjectsManager.js +0 -610
  313. package/dist/workspace/WorkspaceManager.d.ts +0 -31
  314. package/dist/workspace/WorkspaceManager.js +0 -132
  315. package/dist/workspace/index.d.ts +0 -5
  316. package/dist/workspace/index.js +0 -5
@@ -0,0 +1,243 @@
1
+ import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime.mjs";
2
+
3
+ //#region ../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js
4
+ var require_eventemitter3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
+ var has = Object.prototype.hasOwnProperty, prefix = "~";
6
+ /**
7
+ * Constructor to create a storage for our `EE` objects.
8
+ * An `Events` instance is a plain object whose properties are event names.
9
+ *
10
+ * @constructor
11
+ * @private
12
+ */
13
+ function Events() {}
14
+ if (Object.create) {
15
+ Events.prototype = Object.create(null);
16
+ if (!new Events().__proto__) prefix = false;
17
+ }
18
+ /**
19
+ * Representation of a single event listener.
20
+ *
21
+ * @param {Function} fn The listener function.
22
+ * @param {*} context The context to invoke the listener with.
23
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
24
+ * @constructor
25
+ * @private
26
+ */
27
+ function EE(fn, context, once) {
28
+ this.fn = fn;
29
+ this.context = context;
30
+ this.once = once || false;
31
+ }
32
+ /**
33
+ * Add a listener for a given event.
34
+ *
35
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
36
+ * @param {(String|Symbol)} event The event name.
37
+ * @param {Function} fn The listener function.
38
+ * @param {*} context The context to invoke the listener with.
39
+ * @param {Boolean} once Specify if the listener is a one-time listener.
40
+ * @returns {EventEmitter}
41
+ * @private
42
+ */
43
+ function addListener(emitter, event, fn, context, once) {
44
+ if (typeof fn !== "function") throw new TypeError("The listener must be a function");
45
+ var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;
46
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
47
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
48
+ else emitter._events[evt] = [emitter._events[evt], listener];
49
+ return emitter;
50
+ }
51
+ /**
52
+ * Clear event by name.
53
+ *
54
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
55
+ * @param {(String|Symbol)} evt The Event name.
56
+ * @private
57
+ */
58
+ function clearEvent(emitter, evt) {
59
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
60
+ else delete emitter._events[evt];
61
+ }
62
+ /**
63
+ * Minimal `EventEmitter` interface that is molded against the Node.js
64
+ * `EventEmitter` interface.
65
+ *
66
+ * @constructor
67
+ * @public
68
+ */
69
+ function EventEmitter() {
70
+ this._events = new Events();
71
+ this._eventsCount = 0;
72
+ }
73
+ /**
74
+ * Return an array listing the events for which the emitter has registered
75
+ * listeners.
76
+ *
77
+ * @returns {Array}
78
+ * @public
79
+ */
80
+ EventEmitter.prototype.eventNames = function eventNames() {
81
+ var names = [], events, name;
82
+ if (this._eventsCount === 0) return names;
83
+ for (name in events = this._events) if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
84
+ if (Object.getOwnPropertySymbols) return names.concat(Object.getOwnPropertySymbols(events));
85
+ return names;
86
+ };
87
+ /**
88
+ * Return the listeners registered for a given event.
89
+ *
90
+ * @param {(String|Symbol)} event The event name.
91
+ * @returns {Array} The registered listeners.
92
+ * @public
93
+ */
94
+ EventEmitter.prototype.listeners = function listeners(event) {
95
+ var evt = prefix ? prefix + event : event, handlers = this._events[evt];
96
+ if (!handlers) return [];
97
+ if (handlers.fn) return [handlers.fn];
98
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) ee[i] = handlers[i].fn;
99
+ return ee;
100
+ };
101
+ /**
102
+ * Return the number of listeners listening to a given event.
103
+ *
104
+ * @param {(String|Symbol)} event The event name.
105
+ * @returns {Number} The number of listeners.
106
+ * @public
107
+ */
108
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
109
+ var evt = prefix ? prefix + event : event, listeners = this._events[evt];
110
+ if (!listeners) return 0;
111
+ if (listeners.fn) return 1;
112
+ return listeners.length;
113
+ };
114
+ /**
115
+ * Calls each of the listeners registered for a given event.
116
+ *
117
+ * @param {(String|Symbol)} event The event name.
118
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
119
+ * @public
120
+ */
121
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
122
+ var evt = prefix ? prefix + event : event;
123
+ if (!this._events[evt]) return false;
124
+ var listeners = this._events[evt], len = arguments.length, args, i;
125
+ if (listeners.fn) {
126
+ if (listeners.once) this.removeListener(event, listeners.fn, void 0, true);
127
+ switch (len) {
128
+ case 1: return listeners.fn.call(listeners.context), true;
129
+ case 2: return listeners.fn.call(listeners.context, a1), true;
130
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
131
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
132
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
133
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
134
+ }
135
+ for (i = 1, args = new Array(len - 1); i < len; i++) args[i - 1] = arguments[i];
136
+ listeners.fn.apply(listeners.context, args);
137
+ } else {
138
+ var length = listeners.length, j;
139
+ for (i = 0; i < length; i++) {
140
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true);
141
+ switch (len) {
142
+ case 1:
143
+ listeners[i].fn.call(listeners[i].context);
144
+ break;
145
+ case 2:
146
+ listeners[i].fn.call(listeners[i].context, a1);
147
+ break;
148
+ case 3:
149
+ listeners[i].fn.call(listeners[i].context, a1, a2);
150
+ break;
151
+ case 4:
152
+ listeners[i].fn.call(listeners[i].context, a1, a2, a3);
153
+ break;
154
+ default:
155
+ if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) args[j - 1] = arguments[j];
156
+ listeners[i].fn.apply(listeners[i].context, args);
157
+ }
158
+ }
159
+ }
160
+ return true;
161
+ };
162
+ /**
163
+ * Add a listener for a given event.
164
+ *
165
+ * @param {(String|Symbol)} event The event name.
166
+ * @param {Function} fn The listener function.
167
+ * @param {*} [context=this] The context to invoke the listener with.
168
+ * @returns {EventEmitter} `this`.
169
+ * @public
170
+ */
171
+ EventEmitter.prototype.on = function on(event, fn, context) {
172
+ return addListener(this, event, fn, context, false);
173
+ };
174
+ /**
175
+ * Add a one-time listener for a given event.
176
+ *
177
+ * @param {(String|Symbol)} event The event name.
178
+ * @param {Function} fn The listener function.
179
+ * @param {*} [context=this] The context to invoke the listener with.
180
+ * @returns {EventEmitter} `this`.
181
+ * @public
182
+ */
183
+ EventEmitter.prototype.once = function once(event, fn, context) {
184
+ return addListener(this, event, fn, context, true);
185
+ };
186
+ /**
187
+ * Remove the listeners of a given event.
188
+ *
189
+ * @param {(String|Symbol)} event The event name.
190
+ * @param {Function} fn Only remove the listeners that match this function.
191
+ * @param {*} context Only remove the listeners that have this context.
192
+ * @param {Boolean} once Only remove one-time listeners.
193
+ * @returns {EventEmitter} `this`.
194
+ * @public
195
+ */
196
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
197
+ var evt = prefix ? prefix + event : event;
198
+ if (!this._events[evt]) return this;
199
+ if (!fn) {
200
+ clearEvent(this, evt);
201
+ return this;
202
+ }
203
+ var listeners = this._events[evt];
204
+ if (listeners.fn) {
205
+ if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) clearEvent(this, evt);
206
+ } else {
207
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) events.push(listeners[i]);
208
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
209
+ else clearEvent(this, evt);
210
+ }
211
+ return this;
212
+ };
213
+ /**
214
+ * Remove all listeners, or those of the specified event.
215
+ *
216
+ * @param {(String|Symbol)} [event] The event name.
217
+ * @returns {EventEmitter} `this`.
218
+ * @public
219
+ */
220
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
221
+ var evt;
222
+ if (event) {
223
+ evt = prefix ? prefix + event : event;
224
+ if (this._events[evt]) clearEvent(this, evt);
225
+ } else {
226
+ this._events = new Events();
227
+ this._eventsCount = 0;
228
+ }
229
+ return this;
230
+ };
231
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
232
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
233
+ EventEmitter.prefixed = prefix;
234
+ EventEmitter.EventEmitter = EventEmitter;
235
+ if ("undefined" !== typeof module) module.exports = EventEmitter;
236
+ }));
237
+
238
+ //#endregion
239
+ //#region ../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs
240
+ var import_eventemitter3 = /* @__PURE__ */ __toESM(require_eventemitter3(), 1);
241
+
242
+ //#endregion
243
+ export { import_eventemitter3 as t };
@@ -0,0 +1,446 @@
1
+ //#region ../../node_modules/.pnpm/fast-equals@6.0.0/node_modules/fast-equals/dist/es/index.mjs
2
+ const { getOwnPropertyNames, getOwnPropertySymbols } = Object;
3
+ const { hasOwnProperty } = Object.prototype;
4
+ /**
5
+ * Combine two comparators into a single comparators.
6
+ */
7
+ function combineComparators(comparatorA, comparatorB) {
8
+ return function isEqual(a, b, state) {
9
+ return comparatorA(a, b, state) && comparatorB(a, b, state);
10
+ };
11
+ }
12
+ /**
13
+ * Wrap the provided `areItemsEqual` method to manage the circular state, allowing
14
+ * for circular references to be safely included in the comparison without creating
15
+ * stack overflows.
16
+ */
17
+ function createIsCircular(areItemsEqual) {
18
+ return function isCircular(a, b, state) {
19
+ if (!a || !b || typeof a !== "object" || typeof b !== "object") return areItemsEqual(a, b, state);
20
+ const { cache } = state;
21
+ const cachedA = cache.get(a);
22
+ const cachedB = cache.get(b);
23
+ if (cachedA && cachedB) return cachedA === b && cachedB === a;
24
+ cache.set(a, b);
25
+ cache.set(b, a);
26
+ const result = areItemsEqual(a, b, state);
27
+ cache.delete(a);
28
+ cache.delete(b);
29
+ return result;
30
+ };
31
+ }
32
+ /**
33
+ * Get the properties to strictly examine, which include both own properties that are
34
+ * not enumerable and symbol properties.
35
+ */
36
+ function getStrictProperties(object) {
37
+ return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));
38
+ }
39
+ /**
40
+ * Whether the object contains the property passed as an own property.
41
+ */
42
+ const hasOwn = Object.hasOwn || ((object, property) => hasOwnProperty.call(object, property));
43
+ const PREACT_VNODE = "__v";
44
+ const PREACT_OWNER = "__o";
45
+ const REACT_OWNER = "_owner";
46
+ const { getOwnPropertyDescriptor, keys } = Object;
47
+ /**
48
+ * Whether the values passed are equal based on a [SameValue](https://262.ecma-international.org/7.0/#sec-samevalue) basis.
49
+ * Simplified, this maps to if the two values are referentially equal to one another (`a === b`) or both are `NaN`.
50
+ *
51
+ * @note
52
+ * When available in the environment, this is just a re-export of the global
53
+ * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) method.
54
+ */
55
+ const sameValueEqual = Object.is || function sameValueEqual(a, b) {
56
+ return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;
57
+ };
58
+ /**
59
+ * Whether the values passed are equal based on a
60
+ * [Strict Equality Comparison](https://262.ecma-international.org/7.0/#sec-strict-equality-comparison) basis.
61
+ * Simplified, this maps to if the two values are referentially equal to one another (`a === b`).
62
+ *
63
+ * @note
64
+ * This is mainly available as a convenience function, such as being a default when a function to determine equality between
65
+ * two objects is used.
66
+ */
67
+ function strictEqual(a, b) {
68
+ return a === b;
69
+ }
70
+ /**
71
+ * Whether the array buffers are equal in value.
72
+ */
73
+ function areArrayBuffersEqual(a, b) {
74
+ return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a), new Uint8Array(b));
75
+ }
76
+ /**
77
+ * Whether the arrays are equal in value.
78
+ */
79
+ function areArraysEqual(a, b, state) {
80
+ let index = a.length;
81
+ if (b.length !== index) return false;
82
+ while (index-- > 0) if (!state.equals(a[index], b[index], index, index, a, b, state)) return false;
83
+ return true;
84
+ }
85
+ /**
86
+ * Whether the dataviews are equal in value.
87
+ */
88
+ function areDataViewsEqual(a, b) {
89
+ return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength));
90
+ }
91
+ /**
92
+ * Whether the dates passed are equal in value.
93
+ */
94
+ function areDatesEqual(a, b) {
95
+ return sameValueEqual(a.getTime(), b.getTime());
96
+ }
97
+ /**
98
+ * Whether the errors passed are equal in value.
99
+ */
100
+ function areErrorsEqual(a, b) {
101
+ return a.name === b.name && a.message === b.message && a.cause === b.cause && a.stack === b.stack;
102
+ }
103
+ /**
104
+ * Whether the `Map`s are equal in value.
105
+ */
106
+ function areMapsEqual(a, b, state) {
107
+ const size = a.size;
108
+ if (size !== b.size) return false;
109
+ if (!size) return true;
110
+ const matchedIndices = new Array(size);
111
+ const aIterable = a.entries();
112
+ let aResult;
113
+ let bResult;
114
+ let index = 0;
115
+ while (aResult = aIterable.next()) {
116
+ if (aResult.done) break;
117
+ const bIterable = b.entries();
118
+ let hasMatch = false;
119
+ let matchIndex = 0;
120
+ while (bResult = bIterable.next()) {
121
+ if (bResult.done) break;
122
+ if (matchedIndices[matchIndex]) {
123
+ matchIndex++;
124
+ continue;
125
+ }
126
+ const aEntry = aResult.value;
127
+ const bEntry = bResult.value;
128
+ if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state) && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {
129
+ hasMatch = matchedIndices[matchIndex] = true;
130
+ break;
131
+ }
132
+ matchIndex++;
133
+ }
134
+ if (!hasMatch) return false;
135
+ index++;
136
+ }
137
+ return true;
138
+ }
139
+ /**
140
+ * Whether the objects are equal in value.
141
+ */
142
+ function areObjectsEqual(a, b, state) {
143
+ const properties = keys(a);
144
+ let index = properties.length;
145
+ if (keys(b).length !== index) return false;
146
+ while (index-- > 0) if (!isPropertyEqual(a, b, state, properties[index])) return false;
147
+ return true;
148
+ }
149
+ /**
150
+ * Whether the objects are equal in value with strict property checking.
151
+ */
152
+ function areObjectsEqualStrict(a, b, state) {
153
+ const properties = getStrictProperties(a);
154
+ let index = properties.length;
155
+ if (getStrictProperties(b).length !== index) return false;
156
+ let property;
157
+ let descriptorA;
158
+ let descriptorB;
159
+ while (index-- > 0) {
160
+ property = properties[index];
161
+ if (!isPropertyEqual(a, b, state, property)) return false;
162
+ descriptorA = getOwnPropertyDescriptor(a, property);
163
+ descriptorB = getOwnPropertyDescriptor(b, property);
164
+ if ((descriptorA || descriptorB) && (!descriptorA || !descriptorB || descriptorA.configurable !== descriptorB.configurable || descriptorA.enumerable !== descriptorB.enumerable || descriptorA.writable !== descriptorB.writable)) return false;
165
+ }
166
+ return true;
167
+ }
168
+ /**
169
+ * Whether the primitive wrappers passed are equal in value.
170
+ */
171
+ function arePrimitiveWrappersEqual(a, b) {
172
+ return sameValueEqual(a.valueOf(), b.valueOf());
173
+ }
174
+ /**
175
+ * Whether the regexps passed are equal in value.
176
+ */
177
+ function areRegExpsEqual(a, b) {
178
+ return a.source === b.source && a.flags === b.flags;
179
+ }
180
+ /**
181
+ * Whether the `Set`s are equal in value.
182
+ */
183
+ function areSetsEqual(a, b, state) {
184
+ const size = a.size;
185
+ if (size !== b.size) return false;
186
+ if (!size) return true;
187
+ const matchedIndices = new Array(size);
188
+ const aIterable = a.values();
189
+ let aResult;
190
+ let bResult;
191
+ while (aResult = aIterable.next()) {
192
+ if (aResult.done) break;
193
+ const bIterable = b.values();
194
+ let hasMatch = false;
195
+ let matchIndex = 0;
196
+ while (bResult = bIterable.next()) {
197
+ if (bResult.done) break;
198
+ if (!matchedIndices[matchIndex] && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {
199
+ hasMatch = matchedIndices[matchIndex] = true;
200
+ break;
201
+ }
202
+ matchIndex++;
203
+ }
204
+ if (!hasMatch) return false;
205
+ }
206
+ return true;
207
+ }
208
+ /**
209
+ * Whether the TypedArray instances are equal in value.
210
+ */
211
+ function areTypedArraysEqual(a, b) {
212
+ let index = a.byteLength;
213
+ if (b.byteLength !== index || a.byteOffset !== b.byteOffset) return false;
214
+ while (index-- > 0) if (a[index] !== b[index]) return false;
215
+ return true;
216
+ }
217
+ /**
218
+ * Whether the URL instances are equal in value.
219
+ */
220
+ function areUrlsEqual(a, b) {
221
+ return a.hostname === b.hostname && a.pathname === b.pathname && a.protocol === b.protocol && a.port === b.port && a.hash === b.hash && a.username === b.username && a.password === b.password;
222
+ }
223
+ function isPropertyEqual(a, b, state, property) {
224
+ if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE) && (a.$$typeof || b.$$typeof)) return true;
225
+ return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);
226
+ }
227
+ const toString = Object.prototype.toString;
228
+ /**
229
+ * Create a comparator method based on the type-specific equality comparators passed.
230
+ */
231
+ function createEqualityComparator(config) {
232
+ const supportedComparatorMap = createSupportedComparatorMap(config);
233
+ const { areArraysEqual, areDatesEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, getUnsupportedCustomComparator } = config;
234
+ /**
235
+ * compare the value of the two objects and return true if they are equivalent in values
236
+ */
237
+ return function comparator(a, b, state) {
238
+ if (a === b) return true;
239
+ if (a == null || b == null) return false;
240
+ const type = typeof a;
241
+ if (type !== typeof b) return false;
242
+ if (type !== "object") {
243
+ if (type === "number" || type === "bigint") return areNumbersEqual(a, b, state);
244
+ if (type === "function") return areFunctionsEqual(a, b, state);
245
+ return false;
246
+ }
247
+ const constructor = a.constructor;
248
+ if (constructor !== b.constructor) return false;
249
+ if (constructor === Object) return areObjectsEqual(a, b, state);
250
+ if (constructor === Array) return areArraysEqual(a, b, state);
251
+ if (constructor === Date) return areDatesEqual(a, b, state);
252
+ if (constructor === RegExp) return areRegExpsEqual(a, b, state);
253
+ if (constructor === Map) return areMapsEqual(a, b, state);
254
+ if (constructor === Set) return areSetsEqual(a, b, state);
255
+ if (constructor === Promise) return false;
256
+ if (Array.isArray(a)) return areArraysEqual(a, b, state);
257
+ const tag = toString.call(a);
258
+ const supportedComparator = supportedComparatorMap[tag];
259
+ if (supportedComparator) return supportedComparator(a, b, state);
260
+ const unsupportedCustomComparator = getUnsupportedCustomComparator && getUnsupportedCustomComparator(a, b, state, tag);
261
+ if (unsupportedCustomComparator) return unsupportedCustomComparator(a, b, state);
262
+ return false;
263
+ };
264
+ }
265
+ /**
266
+ * Create the configuration object used for building comparators.
267
+ */
268
+ function createEqualityComparatorConfig({ circular, createCustomConfig, strict }) {
269
+ let config = {
270
+ areArrayBuffersEqual,
271
+ areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,
272
+ areDataViewsEqual,
273
+ areDatesEqual,
274
+ areErrorsEqual,
275
+ areFunctionsEqual: strictEqual,
276
+ areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,
277
+ areNumbersEqual: sameValueEqual,
278
+ areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,
279
+ arePrimitiveWrappersEqual,
280
+ areRegExpsEqual,
281
+ areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,
282
+ areTypedArraysEqual: strict ? combineComparators(areTypedArraysEqual, areObjectsEqualStrict) : areTypedArraysEqual,
283
+ areUrlsEqual,
284
+ getUnsupportedCustomComparator: void 0
285
+ };
286
+ if (createCustomConfig) config = Object.assign({}, config, createCustomConfig(config));
287
+ if (circular) {
288
+ const areArraysEqual = createIsCircular(config.areArraysEqual);
289
+ const areMapsEqual = createIsCircular(config.areMapsEqual);
290
+ const areObjectsEqual = createIsCircular(config.areObjectsEqual);
291
+ const areSetsEqual = createIsCircular(config.areSetsEqual);
292
+ config = Object.assign({}, config, {
293
+ areArraysEqual,
294
+ areMapsEqual,
295
+ areObjectsEqual,
296
+ areSetsEqual
297
+ });
298
+ }
299
+ return config;
300
+ }
301
+ /**
302
+ * Default equality comparator pass-through, used as the standard `isEqual` creator for
303
+ * use inside the built comparator.
304
+ */
305
+ function createInternalEqualityComparator(compare) {
306
+ return function(a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {
307
+ return compare(a, b, state);
308
+ };
309
+ }
310
+ /**
311
+ * Create the `isEqual` function used by the consuming application.
312
+ */
313
+ function createIsEqual({ circular, comparator, createState, equals, strict }) {
314
+ if (createState) return function isEqual(a, b) {
315
+ const { cache = circular ? /* @__PURE__ */ new WeakMap() : void 0, meta } = createState();
316
+ return comparator(a, b, {
317
+ cache,
318
+ equals,
319
+ meta,
320
+ strict
321
+ });
322
+ };
323
+ if (circular) return function isEqual(a, b) {
324
+ return comparator(a, b, {
325
+ cache: /* @__PURE__ */ new WeakMap(),
326
+ equals,
327
+ meta: void 0,
328
+ strict
329
+ });
330
+ };
331
+ const state = {
332
+ cache: void 0,
333
+ equals,
334
+ meta: void 0,
335
+ strict
336
+ };
337
+ return function isEqual(a, b) {
338
+ return comparator(a, b, state);
339
+ };
340
+ }
341
+ /**
342
+ * Create a map of `toString()` values to their respective handlers for `tag`-based lookups.
343
+ */
344
+ function createSupportedComparatorMap({ areArrayBuffersEqual, areArraysEqual, areDataViewsEqual, areDatesEqual, areErrorsEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, arePrimitiveWrappersEqual, areRegExpsEqual, areSetsEqual, areTypedArraysEqual, areUrlsEqual }) {
345
+ return {
346
+ "[object Arguments]": areObjectsEqual,
347
+ "[object Array]": areArraysEqual,
348
+ "[object ArrayBuffer]": areArrayBuffersEqual,
349
+ "[object AsyncGeneratorFunction]": areFunctionsEqual,
350
+ "[object BigInt]": areNumbersEqual,
351
+ "[object BigInt64Array]": areTypedArraysEqual,
352
+ "[object BigUint64Array]": areTypedArraysEqual,
353
+ "[object Boolean]": arePrimitiveWrappersEqual,
354
+ "[object DataView]": areDataViewsEqual,
355
+ "[object Date]": areDatesEqual,
356
+ "[object Error]": areErrorsEqual,
357
+ "[object Float16Array]": areTypedArraysEqual,
358
+ "[object Float32Array]": areTypedArraysEqual,
359
+ "[object Float64Array]": areTypedArraysEqual,
360
+ "[object Function]": areFunctionsEqual,
361
+ "[object GeneratorFunction]": areFunctionsEqual,
362
+ "[object Int8Array]": areTypedArraysEqual,
363
+ "[object Int16Array]": areTypedArraysEqual,
364
+ "[object Int32Array]": areTypedArraysEqual,
365
+ "[object Map]": areMapsEqual,
366
+ "[object Number]": arePrimitiveWrappersEqual,
367
+ "[object Object]": (a, b, state) => typeof a.then !== "function" && typeof b.then !== "function" && areObjectsEqual(a, b, state),
368
+ "[object RegExp]": areRegExpsEqual,
369
+ "[object Set]": areSetsEqual,
370
+ "[object String]": arePrimitiveWrappersEqual,
371
+ "[object URL]": areUrlsEqual,
372
+ "[object Uint8Array]": areTypedArraysEqual,
373
+ "[object Uint8ClampedArray]": areTypedArraysEqual,
374
+ "[object Uint16Array]": areTypedArraysEqual,
375
+ "[object Uint32Array]": areTypedArraysEqual
376
+ };
377
+ }
378
+ /**
379
+ * Whether the items passed are deeply-equal in value.
380
+ */
381
+ const deepEqual = createCustomEqual();
382
+ /**
383
+ * Whether the items passed are deeply-equal in value based on strict comparison.
384
+ */
385
+ const strictDeepEqual = createCustomEqual({ strict: true });
386
+ /**
387
+ * Whether the items passed are deeply-equal in value, including circular references.
388
+ */
389
+ const circularDeepEqual = createCustomEqual({ circular: true });
390
+ /**
391
+ * Whether the items passed are deeply-equal in value, including circular references,
392
+ * based on strict comparison.
393
+ */
394
+ const strictCircularDeepEqual = createCustomEqual({
395
+ circular: true,
396
+ strict: true
397
+ });
398
+ /**
399
+ * Whether the items passed are shallowly-equal in value.
400
+ */
401
+ const shallowEqual = createCustomEqual({ createInternalComparator: () => sameValueEqual });
402
+ /**
403
+ * Whether the items passed are shallowly-equal in value based on strict comparison
404
+ */
405
+ const strictShallowEqual = createCustomEqual({
406
+ strict: true,
407
+ createInternalComparator: () => sameValueEqual
408
+ });
409
+ /**
410
+ * Whether the items passed are shallowly-equal in value, including circular references.
411
+ */
412
+ const circularShallowEqual = createCustomEqual({
413
+ circular: true,
414
+ createInternalComparator: () => sameValueEqual
415
+ });
416
+ /**
417
+ * Whether the items passed are shallowly-equal in value, including circular references,
418
+ * based on strict comparison.
419
+ */
420
+ const strictCircularShallowEqual = createCustomEqual({
421
+ circular: true,
422
+ createInternalComparator: () => sameValueEqual,
423
+ strict: true
424
+ });
425
+ /**
426
+ * Create a custom equality comparison method.
427
+ *
428
+ * This can be done to create very targeted comparisons in extreme hot-path scenarios
429
+ * where the standard methods are not performant enough, but can also be used to provide
430
+ * support for legacy environments that do not support expected features like
431
+ * `RegExp.prototype.flags` out of the box.
432
+ */
433
+ function createCustomEqual(options = {}) {
434
+ const { circular = false, createInternalComparator: createCustomInternalComparator, createState, strict = false } = options;
435
+ const comparator = createEqualityComparator(createEqualityComparatorConfig(options));
436
+ return createIsEqual({
437
+ circular,
438
+ comparator,
439
+ createState,
440
+ equals: createCustomInternalComparator ? createCustomInternalComparator(comparator) : createInternalEqualityComparator(comparator),
441
+ strict
442
+ });
443
+ }
444
+
445
+ //#endregion
446
+ export { deepEqual as t };