@module-federation/dts-plugin 0.0.0-docs-remove-invalid-lark-link-20251205062649

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 (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/CHANGELOG.md +1136 -0
  4. package/dist/DTSManager-b15Gfat3.d.ts +53 -0
  5. package/dist/DTSManagerOptions-QVchWb0x.d.ts +32 -0
  6. package/dist/DtsWorker-BrHsGz8C.d.ts +56 -0
  7. package/dist/README.md +1 -0
  8. package/dist/core.d.mts +68 -0
  9. package/dist/core.d.ts +68 -0
  10. package/dist/core.js +2382 -0
  11. package/dist/dynamic-remote-type-hints-plugin.d.mts +5 -0
  12. package/dist/dynamic-remote-type-hints-plugin.d.ts +5 -0
  13. package/dist/dynamic-remote-type-hints-plugin.js +196 -0
  14. package/dist/esm/chunk-647HGGGS.js +241 -0
  15. package/dist/esm/chunk-G65LOFTY.js +24 -0
  16. package/dist/esm/chunk-N7GTIQUA.js +282 -0
  17. package/dist/esm/chunk-RWXNVNFM.js +1579 -0
  18. package/dist/esm/chunk-WWV5RWOP.js +902 -0
  19. package/dist/esm/core.js +44 -0
  20. package/dist/esm/dynamic-remote-type-hints-plugin.js +73 -0
  21. package/dist/esm/fork-dev-worker.js +145 -0
  22. package/dist/esm/fork-generate-dts.js +27 -0
  23. package/dist/esm/index.js +644 -0
  24. package/dist/esm/start-broker.js +36 -0
  25. package/dist/fork-dev-worker.d.mts +15 -0
  26. package/dist/fork-dev-worker.d.ts +15 -0
  27. package/dist/fork-dev-worker.js +2873 -0
  28. package/dist/fork-generate-dts.d.mts +10 -0
  29. package/dist/fork-generate-dts.d.ts +10 -0
  30. package/dist/fork-generate-dts.js +2044 -0
  31. package/dist/iife/launch-web-client.js +152 -0
  32. package/dist/index.d.mts +56 -0
  33. package/dist/index.d.ts +56 -0
  34. package/dist/index.js +3002 -0
  35. package/dist/package.json +87 -0
  36. package/dist/start-broker.d.mts +42 -0
  37. package/dist/start-broker.d.ts +42 -0
  38. package/dist/start-broker.js +958 -0
  39. package/dist/utils-DxGrqb9N.d.ts +15 -0
  40. package/package.json +87 -0
@@ -0,0 +1,5 @@
1
+ import { ModuleFederationRuntimePlugin } from '@module-federation/runtime/types';
2
+
3
+ declare function dynamicRemoteTypeHintsPlugin(): ModuleFederationRuntimePlugin;
4
+
5
+ export { dynamicRemoteTypeHintsPlugin as default };
@@ -0,0 +1,5 @@
1
+ import { ModuleFederationRuntimePlugin } from '@module-federation/runtime/types';
2
+
3
+ declare function dynamicRemoteTypeHintsPlugin(): ModuleFederationRuntimePlugin;
4
+
5
+ export { dynamicRemoteTypeHintsPlugin as default };
@@ -0,0 +1,196 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var __publicField = (obj, key, value) => {
31
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
32
+ return value;
33
+ };
34
+
35
+ // src/runtime-plugins/dynamic-remote-type-hints-plugin.ts
36
+ var dynamic_remote_type_hints_plugin_exports = {};
37
+ __export(dynamic_remote_type_hints_plugin_exports, {
38
+ default: () => dynamic_remote_type_hints_plugin_default
39
+ });
40
+ module.exports = __toCommonJS(dynamic_remote_type_hints_plugin_exports);
41
+
42
+ // src/server/createWebsocket.ts
43
+ var import_isomorphic_ws = __toESM(require("isomorphic-ws"));
44
+
45
+ // src/server/constant.ts
46
+ var DEFAULT_WEB_SOCKET_PORT = 16322;
47
+ var WEB_SOCKET_CONNECT_MAGIC_ID = "1hpzW-zo2z-o8io-gfmV1-2cb1d82";
48
+ var UpdateMode;
49
+ (function(UpdateMode2) {
50
+ UpdateMode2["POSITIVE"] = "POSITIVE";
51
+ UpdateMode2["PASSIVE"] = "PASSIVE";
52
+ })(UpdateMode || (UpdateMode = {}));
53
+
54
+ // src/server/createWebsocket.ts
55
+ function createWebsocket() {
56
+ return new import_isomorphic_ws.default(`ws://127.0.0.1:${DEFAULT_WEB_SOCKET_PORT}?WEB_SOCKET_CONNECT_MAGIC_ID=${WEB_SOCKET_CONNECT_MAGIC_ID}`);
57
+ }
58
+ __name(createWebsocket, "createWebsocket");
59
+
60
+ // src/server/message/Message.ts
61
+ var _Message = class _Message {
62
+ constructor(type, kind) {
63
+ __publicField(this, "type");
64
+ __publicField(this, "kind");
65
+ __publicField(this, "time");
66
+ this.type = type;
67
+ this.kind = kind;
68
+ this.time = Date.now();
69
+ }
70
+ };
71
+ __name(_Message, "Message");
72
+ var Message = _Message;
73
+
74
+ // src/server/message/Action/Action.ts
75
+ var ActionKind;
76
+ (function(ActionKind2) {
77
+ ActionKind2["ADD_SUBSCRIBER"] = "ADD_SUBSCRIBER";
78
+ ActionKind2["EXIT_SUBSCRIBER"] = "EXIT_SUBSCRIBER";
79
+ ActionKind2["ADD_PUBLISHER"] = "ADD_PUBLISHER";
80
+ ActionKind2["UPDATE_PUBLISHER"] = "UPDATE_PUBLISHER";
81
+ ActionKind2["NOTIFY_SUBSCRIBER"] = "NOTIFY_SUBSCRIBER";
82
+ ActionKind2["EXIT_PUBLISHER"] = "EXIT_PUBLISHER";
83
+ ActionKind2["ADD_WEB_CLIENT"] = "ADD_WEB_CLIENT";
84
+ ActionKind2["NOTIFY_WEB_CLIENT"] = "NOTIFY_WEB_CLIENT";
85
+ ActionKind2["FETCH_TYPES"] = "FETCH_TYPES";
86
+ ActionKind2["ADD_DYNAMIC_REMOTE"] = "ADD_DYNAMIC_REMOTE";
87
+ })(ActionKind || (ActionKind = {}));
88
+ var _Action = class _Action extends Message {
89
+ constructor(content, kind) {
90
+ super("Action", kind);
91
+ __publicField(this, "payload");
92
+ const { payload } = content;
93
+ this.payload = payload;
94
+ }
95
+ };
96
+ __name(_Action, "Action");
97
+ var Action = _Action;
98
+
99
+ // src/server/message/Action/Update.ts
100
+ var UpdateKind;
101
+ (function(UpdateKind2) {
102
+ UpdateKind2["UPDATE_TYPE"] = "UPDATE_TYPE";
103
+ UpdateKind2["RELOAD_PAGE"] = "RELOAD_PAGE";
104
+ })(UpdateKind || (UpdateKind = {}));
105
+
106
+ // src/server/message/Action/FetchTypes.ts
107
+ var _FetchTypesAction = class _FetchTypesAction extends Action {
108
+ constructor(payload) {
109
+ super({
110
+ payload
111
+ }, ActionKind.FETCH_TYPES);
112
+ }
113
+ };
114
+ __name(_FetchTypesAction, "FetchTypesAction");
115
+ var FetchTypesAction = _FetchTypesAction;
116
+
117
+ // src/server/message/Action/AddDynamicRemote.ts
118
+ var _AddDynamicRemoteAction = class _AddDynamicRemoteAction extends Action {
119
+ constructor(payload) {
120
+ super({
121
+ payload
122
+ }, ActionKind.ADD_DYNAMIC_REMOTE);
123
+ }
124
+ };
125
+ __name(_AddDynamicRemoteAction, "AddDynamicRemoteAction");
126
+ var AddDynamicRemoteAction = _AddDynamicRemoteAction;
127
+
128
+ // src/dev-worker/utils.ts
129
+ var DEFAULT_LOCAL_IPS = [
130
+ "localhost",
131
+ "127.0.0.1"
132
+ ];
133
+ function getIpFromEntry(entry, ipv4) {
134
+ let ip;
135
+ entry.replace(/https?:\/\/([0-9|.]+|localhost):/, (str, matched) => {
136
+ ip = matched;
137
+ return str;
138
+ });
139
+ if (ip) {
140
+ return DEFAULT_LOCAL_IPS.includes(ip) ? ipv4 : ip;
141
+ }
142
+ }
143
+ __name(getIpFromEntry, "getIpFromEntry");
144
+
145
+ // src/runtime-plugins/dynamic-remote-type-hints-plugin.ts
146
+ var PLUGIN_NAME = "dynamic-remote-type-hints-plugin";
147
+ function dynamicRemoteTypeHintsPlugin() {
148
+ let ws = createWebsocket();
149
+ let isConnected = false;
150
+ ws.onopen = () => {
151
+ isConnected = true;
152
+ };
153
+ ws.onerror = (err) => {
154
+ console.error(`[ ${PLUGIN_NAME} ] err: ${err}`);
155
+ };
156
+ return {
157
+ name: "dynamic-remote-type-hints-plugin",
158
+ registerRemote(args) {
159
+ const { remote, origin } = args;
160
+ try {
161
+ if (!isConnected) {
162
+ return args;
163
+ }
164
+ if (!("entry" in remote)) {
165
+ return args;
166
+ }
167
+ const defaultIpV4 = typeof FEDERATION_IPV4 === "string" ? FEDERATION_IPV4 : "127.0.0.1";
168
+ const remoteIp = getIpFromEntry(remote.entry, defaultIpV4);
169
+ const remoteInfo = {
170
+ name: remote.name,
171
+ url: remote.entry,
172
+ alias: remote.alias || remote.name
173
+ };
174
+ if (remoteIp) {
175
+ ws.send(JSON.stringify(new AddDynamicRemoteAction({
176
+ remoteIp,
177
+ remoteInfo,
178
+ name: origin.name,
179
+ ip: defaultIpV4
180
+ })));
181
+ }
182
+ ws.send(JSON.stringify(new FetchTypesAction({
183
+ name: origin.name,
184
+ ip: defaultIpV4,
185
+ remoteInfo
186
+ })));
187
+ return args;
188
+ } catch (err) {
189
+ console.error(new Error(err));
190
+ return args;
191
+ }
192
+ }
193
+ };
194
+ }
195
+ __name(dynamicRemoteTypeHintsPlugin, "dynamicRemoteTypeHintsPlugin");
196
+ var dynamic_remote_type_hints_plugin_default = dynamicRemoteTypeHintsPlugin;
@@ -0,0 +1,241 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
21
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
22
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
23
+ }) : x)(function(x) {
24
+ if (typeof require !== "undefined")
25
+ return require.apply(this, arguments);
26
+ throw Error('Dynamic require of "' + x + '" is not supported');
27
+ });
28
+ var __objRest = (source, exclude) => {
29
+ var target = {};
30
+ for (var prop in source)
31
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
32
+ target[prop] = source[prop];
33
+ if (source != null && __getOwnPropSymbols)
34
+ for (var prop of __getOwnPropSymbols(source)) {
35
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
36
+ target[prop] = source[prop];
37
+ }
38
+ return target;
39
+ };
40
+ var __export = (target, all) => {
41
+ for (var name in all)
42
+ __defProp(target, name, { get: all[name], enumerable: true });
43
+ };
44
+ var __publicField = (obj, key, value) => {
45
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
46
+ return value;
47
+ };
48
+ var __async = (__this, __arguments, generator) => {
49
+ return new Promise((resolve, reject) => {
50
+ var fulfilled = (value) => {
51
+ try {
52
+ step(generator.next(value));
53
+ } catch (e) {
54
+ reject(e);
55
+ }
56
+ };
57
+ var rejected = (value) => {
58
+ try {
59
+ step(generator.throw(value));
60
+ } catch (e) {
61
+ reject(e);
62
+ }
63
+ };
64
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
65
+ step((generator = generator.apply(__this, __arguments)).next());
66
+ });
67
+ };
68
+
69
+ // src/server/constant.ts
70
+ var DEFAULT_WEB_SOCKET_PORT = 16322;
71
+ var WEB_SOCKET_CONNECT_MAGIC_ID = "1hpzW-zo2z-o8io-gfmV1-2cb1d82";
72
+ var MF_SERVER_IDENTIFIER = "Module Federation DTS";
73
+ var WEB_CLIENT_OPTIONS_IDENTIFIER = "__WEB_CLIENT_OPTIONS__";
74
+ var DEFAULT_TAR_NAME = "@mf-types.zip";
75
+ var UpdateMode;
76
+ (function(UpdateMode2) {
77
+ UpdateMode2["POSITIVE"] = "POSITIVE";
78
+ UpdateMode2["PASSIVE"] = "PASSIVE";
79
+ })(UpdateMode || (UpdateMode = {}));
80
+
81
+ // src/server/message/Action/Update.ts
82
+ var UpdateKind;
83
+ (function(UpdateKind2) {
84
+ UpdateKind2["UPDATE_TYPE"] = "UPDATE_TYPE";
85
+ UpdateKind2["RELOAD_PAGE"] = "RELOAD_PAGE";
86
+ })(UpdateKind || (UpdateKind = {}));
87
+
88
+ // src/server/message/Message.ts
89
+ var _Message = class _Message {
90
+ constructor(type, kind) {
91
+ __publicField(this, "type");
92
+ __publicField(this, "kind");
93
+ __publicField(this, "time");
94
+ this.type = type;
95
+ this.kind = kind;
96
+ this.time = Date.now();
97
+ }
98
+ };
99
+ __name(_Message, "Message");
100
+ var Message = _Message;
101
+
102
+ // src/server/message/Action/Action.ts
103
+ var ActionKind;
104
+ (function(ActionKind2) {
105
+ ActionKind2["ADD_SUBSCRIBER"] = "ADD_SUBSCRIBER";
106
+ ActionKind2["EXIT_SUBSCRIBER"] = "EXIT_SUBSCRIBER";
107
+ ActionKind2["ADD_PUBLISHER"] = "ADD_PUBLISHER";
108
+ ActionKind2["UPDATE_PUBLISHER"] = "UPDATE_PUBLISHER";
109
+ ActionKind2["NOTIFY_SUBSCRIBER"] = "NOTIFY_SUBSCRIBER";
110
+ ActionKind2["EXIT_PUBLISHER"] = "EXIT_PUBLISHER";
111
+ ActionKind2["ADD_WEB_CLIENT"] = "ADD_WEB_CLIENT";
112
+ ActionKind2["NOTIFY_WEB_CLIENT"] = "NOTIFY_WEB_CLIENT";
113
+ ActionKind2["FETCH_TYPES"] = "FETCH_TYPES";
114
+ ActionKind2["ADD_DYNAMIC_REMOTE"] = "ADD_DYNAMIC_REMOTE";
115
+ })(ActionKind || (ActionKind = {}));
116
+ var _Action = class _Action extends Message {
117
+ constructor(content, kind) {
118
+ super("Action", kind);
119
+ __publicField(this, "payload");
120
+ const { payload } = content;
121
+ this.payload = payload;
122
+ }
123
+ };
124
+ __name(_Action, "Action");
125
+ var Action = _Action;
126
+
127
+ // src/server/message/Action/FetchTypes.ts
128
+ var _FetchTypesAction = class _FetchTypesAction extends Action {
129
+ constructor(payload) {
130
+ super({
131
+ payload
132
+ }, ActionKind.FETCH_TYPES);
133
+ }
134
+ };
135
+ __name(_FetchTypesAction, "FetchTypesAction");
136
+ var FetchTypesAction = _FetchTypesAction;
137
+
138
+ // src/server/message/Action/AddDynamicRemote.ts
139
+ var _AddDynamicRemoteAction = class _AddDynamicRemoteAction extends Action {
140
+ constructor(payload) {
141
+ super({
142
+ payload
143
+ }, ActionKind.ADD_DYNAMIC_REMOTE);
144
+ }
145
+ };
146
+ __name(_AddDynamicRemoteAction, "AddDynamicRemoteAction");
147
+ var AddDynamicRemoteAction = _AddDynamicRemoteAction;
148
+
149
+ // src/server/message/Action/AddPublisher.ts
150
+ var _AddPublisherAction = class _AddPublisherAction extends Action {
151
+ constructor(payload) {
152
+ super({
153
+ payload
154
+ }, ActionKind.ADD_PUBLISHER);
155
+ }
156
+ };
157
+ __name(_AddPublisherAction, "AddPublisherAction");
158
+ var AddPublisherAction = _AddPublisherAction;
159
+
160
+ // src/server/message/Action/AddSubscriber.ts
161
+ var _AddSubscriberAction = class _AddSubscriberAction extends Action {
162
+ constructor(payload) {
163
+ super({
164
+ payload
165
+ }, ActionKind.ADD_SUBSCRIBER);
166
+ }
167
+ };
168
+ __name(_AddSubscriberAction, "AddSubscriberAction");
169
+ var AddSubscriberAction = _AddSubscriberAction;
170
+
171
+ // src/server/message/Action/ExitSubscriber.ts
172
+ var _ExitSubscriberAction = class _ExitSubscriberAction extends Action {
173
+ constructor(payload) {
174
+ super({
175
+ payload
176
+ }, ActionKind.EXIT_SUBSCRIBER);
177
+ }
178
+ };
179
+ __name(_ExitSubscriberAction, "ExitSubscriberAction");
180
+ var ExitSubscriberAction = _ExitSubscriberAction;
181
+
182
+ // src/server/message/Action/ExitPublisher.ts
183
+ var _ExitPublisherAction = class _ExitPublisherAction extends Action {
184
+ constructor(payload) {
185
+ super({
186
+ payload
187
+ }, ActionKind.EXIT_PUBLISHER);
188
+ }
189
+ };
190
+ __name(_ExitPublisherAction, "ExitPublisherAction");
191
+ var ExitPublisherAction = _ExitPublisherAction;
192
+
193
+ // src/server/message/Action/NotifyWebClient.ts
194
+ var _NotifyWebClientAction = class _NotifyWebClientAction extends Action {
195
+ constructor(payload) {
196
+ super({
197
+ payload
198
+ }, ActionKind.NOTIFY_WEB_CLIENT);
199
+ }
200
+ };
201
+ __name(_NotifyWebClientAction, "NotifyWebClientAction");
202
+ var NotifyWebClientAction = _NotifyWebClientAction;
203
+
204
+ // src/server/message/Action/UpdatePublisher.ts
205
+ var _UpdatePublisherAction = class _UpdatePublisherAction extends Action {
206
+ constructor(payload) {
207
+ super({
208
+ payload
209
+ }, ActionKind.UPDATE_PUBLISHER);
210
+ }
211
+ };
212
+ __name(_UpdatePublisherAction, "UpdatePublisherAction");
213
+ var UpdatePublisherAction = _UpdatePublisherAction;
214
+
215
+ export {
216
+ __spreadValues,
217
+ __spreadProps,
218
+ __name,
219
+ __require,
220
+ __objRest,
221
+ __export,
222
+ __publicField,
223
+ __async,
224
+ Message,
225
+ DEFAULT_WEB_SOCKET_PORT,
226
+ WEB_SOCKET_CONNECT_MAGIC_ID,
227
+ MF_SERVER_IDENTIFIER,
228
+ WEB_CLIENT_OPTIONS_IDENTIFIER,
229
+ DEFAULT_TAR_NAME,
230
+ UpdateMode,
231
+ ActionKind,
232
+ UpdateKind,
233
+ AddPublisherAction,
234
+ AddSubscriberAction,
235
+ ExitSubscriberAction,
236
+ ExitPublisherAction,
237
+ NotifyWebClientAction,
238
+ UpdatePublisherAction,
239
+ FetchTypesAction,
240
+ AddDynamicRemoteAction
241
+ };
@@ -0,0 +1,24 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-647HGGGS.js";
4
+
5
+ // src/dev-worker/utils.ts
6
+ var DEFAULT_LOCAL_IPS = [
7
+ "localhost",
8
+ "127.0.0.1"
9
+ ];
10
+ function getIpFromEntry(entry, ipv4) {
11
+ let ip;
12
+ entry.replace(/https?:\/\/([0-9|.]+|localhost):/, (str, matched) => {
13
+ ip = matched;
14
+ return str;
15
+ });
16
+ if (ip) {
17
+ return DEFAULT_LOCAL_IPS.includes(ip) ? ipv4 : ip;
18
+ }
19
+ }
20
+ __name(getIpFromEntry, "getIpFromEntry");
21
+
22
+ export {
23
+ getIpFromEntry
24
+ };