flipper-server-companion 0.0.1-security → 0.171.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/README.md +2 -4
  2. package/lib/HeadlessClient.d.ts +11 -0
  3. package/lib/HeadlessClient.d.ts.map +1 -0
  4. package/lib/HeadlessClient.js +21 -0
  5. package/lib/HeadlessClient.js.map +1 -0
  6. package/lib/HeadlessPluginInitializer.d.ts +10 -0
  7. package/lib/HeadlessPluginInitializer.d.ts.map +1 -0
  8. package/lib/HeadlessPluginInitializer.js +33 -0
  9. package/lib/HeadlessPluginInitializer.js.map +1 -0
  10. package/lib/companion.d.ts +28 -0
  11. package/lib/companion.d.ts.map +1 -0
  12. package/lib/companion.js +342 -0
  13. package/lib/companion.js.map +1 -0
  14. package/lib/globalsReplacements/fakeEmotionCss.d.ts +2 -0
  15. package/lib/globalsReplacements/fakeEmotionCss.d.ts.map +1 -0
  16. package/lib/globalsReplacements/fakeEmotionCss.js +6 -0
  17. package/lib/globalsReplacements/fakeEmotionCss.js.map +1 -0
  18. package/lib/globalsReplacements/fakeEmotionStyled.d.ts +2 -0
  19. package/lib/globalsReplacements/fakeEmotionStyled.d.ts.map +1 -0
  20. package/lib/globalsReplacements/fakeEmotionStyled.js +7 -0
  21. package/lib/globalsReplacements/fakeEmotionStyled.js.map +1 -0
  22. package/lib/globalsReplacements/fakeLegacyExports.d.ts +3 -0
  23. package/lib/globalsReplacements/fakeLegacyExports.d.ts.map +1 -0
  24. package/lib/globalsReplacements/fakeLegacyExports.js +20 -0
  25. package/lib/globalsReplacements/fakeLegacyExports.js.map +1 -0
  26. package/lib/globalsReplacements/fakeReact.d.ts +10 -0
  27. package/lib/globalsReplacements/fakeReact.d.ts.map +1 -0
  28. package/lib/globalsReplacements/fakeReact.js +14 -0
  29. package/lib/globalsReplacements/fakeReact.js.map +1 -0
  30. package/lib/globalsReplacements/fakeReactDOM.d.ts +2 -0
  31. package/lib/globalsReplacements/fakeReactDOM.d.ts.map +1 -0
  32. package/lib/globalsReplacements/fakeReactDOM.js +8 -0
  33. package/lib/globalsReplacements/fakeReactDOM.js.map +1 -0
  34. package/lib/index.d.ts +3 -0
  35. package/lib/index.d.ts.map +1 -0
  36. package/lib/index.js +8 -0
  37. package/lib/index.js.map +1 -0
  38. package/lib/init.d.ts +7 -0
  39. package/lib/init.d.ts.map +1 -0
  40. package/lib/init.js +67 -0
  41. package/lib/init.js.map +1 -0
  42. package/lib/initializeFlipperLibImplementation.d.ts +4 -0
  43. package/lib/initializeFlipperLibImplementation.d.ts.map +1 -0
  44. package/lib/initializeFlipperLibImplementation.js +20 -0
  45. package/lib/initializeFlipperLibImplementation.js.map +1 -0
  46. package/lib/initializeRenderHost.d.ts +3 -0
  47. package/lib/initializeRenderHost.d.ts.map +1 -0
  48. package/lib/initializeRenderHost.js +63 -0
  49. package/lib/initializeRenderHost.js.map +1 -0
  50. package/package.json +31 -3
package/README.md CHANGED
@@ -1,5 +1,3 @@
1
- # Security holding package
1
+ # flipper-server-companion (TBD)
2
2
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
4
-
5
- Please refer to www.npmjs.com/advisories?search=flipper-server-companion for more information.
3
+ Flipper Server Companion runs Flipper plugins in Flipper Server context.
@@ -0,0 +1,11 @@
1
+ import { ClientQuery, FlipperServer, Logger } from 'flipper-common';
2
+ import { AbstractClient, ClientConnection, BaseDevice } from 'flipper-frontend-core';
3
+ import { _SandyPluginDefinition } from 'flipper-plugin-core';
4
+ export declare class HeadlessClient extends AbstractClient {
5
+ private loadablePlugins;
6
+ constructor(id: string, query: ClientQuery, conn: ClientConnection | null | undefined, logger: Logger, plugins: Set<string> | null | undefined, device: BaseDevice, flipperServer: FlipperServer, loadablePlugins: Map<string, _SandyPluginDefinition>);
7
+ isBackgroundPlugin(_pluginId: string): boolean;
8
+ shouldConnectAsBackgroundPlugin(): boolean;
9
+ getPlugin(pluginId: string): Promise<_SandyPluginDefinition | undefined>;
10
+ }
11
+ //# sourceMappingURL=HeadlessClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessClient.d.ts","sourceRoot":"","sources":["../src/HeadlessClient.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,cAAe,SAAQ,cAAc;IAS9C,OAAO,CAAC,eAAe;gBAPvB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACvC,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,aAAa,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAK9D,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAMpC,+BAA+B;IAIzB,SAAS,CAAC,QAAQ,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeadlessClient = void 0;
4
+ const flipper_frontend_core_1 = require("flipper-frontend-core");
5
+ class HeadlessClient extends flipper_frontend_core_1.AbstractClient {
6
+ constructor(id, query, conn, logger, plugins, device, flipperServer, loadablePlugins) {
7
+ super(id, query, conn, logger, plugins, device, flipperServer);
8
+ this.loadablePlugins = loadablePlugins;
9
+ }
10
+ isBackgroundPlugin(_pluginId) {
11
+ return false;
12
+ }
13
+ shouldConnectAsBackgroundPlugin() {
14
+ return false;
15
+ }
16
+ async getPlugin(pluginId) {
17
+ return this.loadablePlugins.get(pluginId);
18
+ }
19
+ }
20
+ exports.HeadlessClient = HeadlessClient;
21
+ //# sourceMappingURL=HeadlessClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessClient.js","sourceRoot":"","sources":["../src/HeadlessClient.tsx"],"names":[],"mappings":";;;AAUA,iEAI+B;AAG/B,MAAa,cAAe,SAAQ,sCAAc;IAChD,YACE,EAAU,EACV,KAAkB,EAClB,IAAyC,EACzC,MAAc,EACd,OAAuC,EACvC,MAAkB,EAClB,aAA4B,EACpB,eAAoD;QAE5D,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAFvD,oBAAe,GAAf,eAAe,CAAqC;IAG9D,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAElC,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,+BAA+B;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACF;AA3BD,wCA2BC"}
@@ -0,0 +1,10 @@
1
+ import { ActivatablePluginDetails, InstalledPluginDetails } from 'flipper-common';
2
+ import { AbstractPluginInitializer } from 'flipper-frontend-core';
3
+ import { _SandyPluginDefinition } from 'flipper-plugin-core';
4
+ export declare class HeadlessPluginInitializer extends AbstractPluginInitializer {
5
+ protected getFlipperVersion(): Promise<string>;
6
+ protected requirePluginImpl(pluginDetails: ActivatablePluginDetails): Promise<_SandyPluginDefinition>;
7
+ protected filterAllLocalVersions(allLocalVersions: InstalledPluginDetails[]): Promise<ActivatablePluginDetails[]>;
8
+ installPlugin(plugin: InstalledPluginDetails): Promise<_SandyPluginDefinition | undefined>;
9
+ }
10
+ //# sourceMappingURL=HeadlessPluginInitializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessPluginInitializer.d.ts","sourceRoot":"","sources":["../src/HeadlessPluginInitializer.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EACL,yBAAyB,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,yBAA0B,SAAQ,yBAAyB;cACtD,iBAAiB;cAOjB,iBAAiB,CAC/B,aAAa,EAAE,wBAAwB,GACtC,OAAO,CAAC,sBAAsB,CAAC;cAYlB,sBAAsB,CACpC,gBAAgB,EAAE,sBAAsB,EAAE,GACzC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAOhC,aAAa,CACjB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;CAQ/C"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeadlessPluginInitializer = void 0;
4
+ const flipper_frontend_core_1 = require("flipper-frontend-core");
5
+ const flipper_plugin_core_1 = require("flipper-plugin-core");
6
+ class HeadlessPluginInitializer extends flipper_frontend_core_1.AbstractPluginInitializer {
7
+ async getFlipperVersion() {
8
+ const config = await (0, flipper_frontend_core_1.getRenderHostInstance)().flipperServer.exec('get-config');
9
+ return config.environmentInfo.appVersion;
10
+ }
11
+ async requirePluginImpl(pluginDetails) {
12
+ const plugin = await (0, flipper_frontend_core_1.getRenderHostInstance)().requirePlugin(pluginDetails.entry);
13
+ if (!plugin) {
14
+ throw new Error(`Failed to obtain plugin source for: ${pluginDetails.name}`);
15
+ }
16
+ return new flipper_plugin_core_1._SandyPluginDefinition(pluginDetails, plugin);
17
+ }
18
+ async filterAllLocalVersions(allLocalVersions) {
19
+ const pluginsToLoad = await super.filterAllLocalVersions(allLocalVersions);
20
+ return pluginsToLoad
21
+ .filter(flipper_frontend_core_1.isSandyPlugin)
22
+ .filter((plugin) => plugin.headless);
23
+ }
24
+ async installPlugin(plugin) {
25
+ const loaded = await this.loadPlugins([plugin]);
26
+ this._initialPlugins.push(...loaded);
27
+ if (loaded.length > 0) {
28
+ return loaded.at(0);
29
+ }
30
+ }
31
+ }
32
+ exports.HeadlessPluginInitializer = HeadlessPluginInitializer;
33
+ //# sourceMappingURL=HeadlessPluginInitializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessPluginInitializer.js","sourceRoot":"","sources":["../src/HeadlessPluginInitializer.tsx"],"names":[],"mappings":";;;AAUA,iEAI+B;AAC/B,6DAA2D;AAE3D,MAAa,yBAA0B,SAAQ,iDAAyB;IAC5D,KAAK,CAAC,iBAAiB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,6CAAqB,GAAE,CAAC,aAAa,CAAC,IAAI,CAC7D,YAAY,CACb,CAAC;QACF,OAAO,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;IAC3C,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,aAAuC;QAEvC,MAAM,MAAM,GAAG,MAAM,IAAA,6CAAqB,GAAE,CAAC,aAAa,CACxD,aAAa,CAAC,KAAK,CACpB,CAAC;QACF,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,uCAAuC,aAAa,CAAC,IAAI,EAAE,CAC5D,CAAC;SACH;QACD,OAAO,IAAI,4CAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAES,KAAK,CAAC,sBAAsB,CACpC,gBAA0C;QAE1C,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAC3E,OAAO,aAAa;aACjB,MAAM,CAAC,qCAAa,CAAC;aACrB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAA8B;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;CACF;AAzCD,8DAyCC"}
@@ -0,0 +1,28 @@
1
+ import { FlipperServer, Logger, FlipperCompanionCommands, FlipperCompanionEvents } from 'flipper-common';
2
+ import { BaseDevice } from 'flipper-frontend-core';
3
+ import { HeadlessClient } from './HeadlessClient';
4
+ import { FlipperServerCompanionEnv } from './init';
5
+ export declare class FlipperServerCompanion {
6
+ private readonly flipperServer;
7
+ private readonly logger;
8
+ private readonly env;
9
+ private readonly clients;
10
+ private readonly devices;
11
+ private readonly loadablePlugins;
12
+ private readonly eventBus;
13
+ constructor(flipperServer: FlipperServer, logger: Logger, env: FlipperServerCompanionEnv);
14
+ canHandleCommand(command: string): boolean;
15
+ getClient(clientId: string): HeadlessClient | undefined;
16
+ destroyClient(clientId: string): void;
17
+ getDevice(deviceSerial: string): BaseDevice | undefined;
18
+ destroyDevice(deviceSerial: string): void;
19
+ destroyAll(): void;
20
+ private createHeadlessClientIfNeeded;
21
+ private createHeadlessDeviceIfNeeded;
22
+ private loadPluginIfNeeded;
23
+ private emit;
24
+ onAny(cb: <T extends keyof FlipperCompanionEvents>(event: T, data: FlipperCompanionEvents[T]) => void): void;
25
+ exec<Event extends keyof FlipperCompanionCommands>(event: Event, ...args: Parameters<FlipperCompanionCommands[Event]>): ReturnType<FlipperCompanionCommands[Event]>;
26
+ private commandHandler;
27
+ }
28
+ //# sourceMappingURL=companion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion.d.ts","sourceRoot":"","sources":["../src/companion.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,aAAa,EACb,MAAM,EAGN,wBAAwB,EACxB,sBAAsB,EAEvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,yBAAyB,EAAC,MAAM,QAAQ,CAAC;AAOjD,qBAAa,sBAAsB;IAmB/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAG5B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,yBAAyB;IAWjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI1C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAI1B,aAAa,CAAC,QAAQ,EAAE,MAAM;IAY9B,SAAS,CAAC,YAAY,EAAE,MAAM;IAI9B,aAAa,CAAC,YAAY,EAAE,MAAM;IAYlC,UAAU;YAOI,4BAA4B;YAiD5B,4BAA4B;YA0B5B,kBAAkB;IAwBhC,OAAO,CAAC,IAAI;IAOZ,KAAK,CACH,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACzC,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAC5B,IAAI;IAOX,IAAI,CAAC,KAAK,SAAS,MAAM,wBAAwB,EAC/C,KAAK,EAAE,KAAK,EACZ,GAAG,IAAI,EAAE,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,GACnD,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAwB9C,OAAO,CAAC,cAAc,CAoapB;CACH"}
@@ -0,0 +1,342 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FlipperServerCompanion = void 0;
7
+ const events_1 = __importDefault(require("events"));
8
+ const flipper_common_1 = require("flipper-common");
9
+ const flipper_frontend_core_1 = require("flipper-frontend-core");
10
+ const flipper_plugin_core_1 = require("flipper-plugin-core");
11
+ const HeadlessClient_1 = require("./HeadlessClient");
12
+ const companionEvents = [
13
+ 'companion-plugin-state-update',
14
+ 'companion-device-plugin-state-update',
15
+ ];
16
+ class FlipperServerCompanion {
17
+ constructor(flipperServer, logger, env) {
18
+ this.flipperServer = flipperServer;
19
+ this.logger = logger;
20
+ this.env = env;
21
+ this.clients = new Map();
22
+ this.devices = new Map();
23
+ this.loadablePlugins = new Map();
24
+ this.eventBus = new events_1.default();
25
+ this.commandHandler = {
26
+ 'companion-plugin-list': async (clientId) => {
27
+ const client = await this.createHeadlessClientIfNeeded(clientId);
28
+ return [...client.plugins].map((pluginId) => {
29
+ const pluginInstance = client.sandyPluginStates.get(pluginId);
30
+ let state = 'unavailable';
31
+ if (pluginInstance) {
32
+ state = 'ready';
33
+ if (pluginInstance.activated) {
34
+ state = 'active';
35
+ }
36
+ }
37
+ return {
38
+ pluginId,
39
+ state,
40
+ };
41
+ });
42
+ },
43
+ 'companion-plugin-start': async (clientId, pluginId) => {
44
+ await this.loadPluginIfNeeded(pluginId);
45
+ const client = await this.createHeadlessClientIfNeeded(clientId);
46
+ const pluginInstance = client.sandyPluginStates.get(pluginId);
47
+ if (!pluginInstance) {
48
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-start -> plugin not found', clientId, pluginId);
49
+ }
50
+ if (!client.connected.get()) {
51
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-start -> client not connected', clientId, pluginId);
52
+ }
53
+ pluginInstance.activate();
54
+ },
55
+ 'companion-plugin-stop': async (clientId, pluginId) => {
56
+ const client = this.clients.get(clientId);
57
+ if (!client) {
58
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-stop -> client not found', clientId, pluginId);
59
+ }
60
+ const pluginInstance = client.sandyPluginStates.get(pluginId);
61
+ if (!pluginInstance) {
62
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-stop -> plugin not found', clientId, pluginId);
63
+ }
64
+ if (!client.connected.get()) {
65
+ throw new Error('FlipperServerCompanion.companion-plugin-stop -> client not connected');
66
+ }
67
+ if (!pluginInstance.activated) {
68
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-plugin-stop -> plugin not activated', clientId, pluginId);
69
+ }
70
+ client.stopPluginIfNeeded(pluginId);
71
+ },
72
+ 'companion-plugin-exec': async (clientId, pluginId, api, params) => {
73
+ const client = this.clients.get(clientId);
74
+ if (!client) {
75
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> client not found', clientId, pluginId, api, params);
76
+ }
77
+ const pluginInstance = client.sandyPluginStates.get(pluginId);
78
+ if (!pluginInstance) {
79
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> plugin not found', clientId, pluginId, api, params);
80
+ }
81
+ if (!client.connected.get()) {
82
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> client not connected', clientId, pluginId, api, params);
83
+ }
84
+ if (!pluginInstance.companionApi) {
85
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> plugin does not expose API', clientId, pluginId, api, params);
86
+ }
87
+ if (typeof pluginInstance.companionApi[api] !== 'function') {
88
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-plugin-exec -> plugin does not expose requested API method or it is not callable', clientId, pluginId, api, params);
89
+ }
90
+ return new Promise(async (resolve, reject) => {
91
+ const closeHandle = () => {
92
+ reject(new Error('Client disconnected whilst executing request'));
93
+ };
94
+ client.once('close', closeHandle);
95
+ try {
96
+ const response = await pluginInstance.companionApi[api](...(params !== null && params !== void 0 ? params : []));
97
+ resolve(response);
98
+ }
99
+ catch (error) {
100
+ reject(error);
101
+ }
102
+ finally {
103
+ client.off('close', closeHandle);
104
+ }
105
+ });
106
+ },
107
+ 'companion-plugin-subscribe': async (clientId, pluginId, api) => {
108
+ const client = this.clients.get(clientId);
109
+ if (!client) {
110
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-subscribe -> client not found', clientId, pluginId, api);
111
+ }
112
+ const pluginInstance = client.sandyPluginStates.get(pluginId);
113
+ if (!pluginInstance) {
114
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-subscribe -> plugin not found', clientId, pluginId, api);
115
+ }
116
+ if (!client.connected.get()) {
117
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-subscribe -> client not connected', clientId, pluginId, api);
118
+ }
119
+ if (!pluginInstance.companionApi) {
120
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-subscribe -> plugin does not expose API', clientId, pluginId, api);
121
+ }
122
+ const stateAtom = pluginInstance.companionApi[api];
123
+ if (!(0, flipper_plugin_core_1.isAtom)(stateAtom)) {
124
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-plugin-subscribe -> plugin does not expose requested state or it is not an Atom (created with `createState`)', clientId, pluginId, api);
125
+ }
126
+ stateAtom.subscribe((data) => this.emit('companion-plugin-state-update', {
127
+ clientId,
128
+ pluginId,
129
+ api,
130
+ data,
131
+ }));
132
+ return stateAtom.get();
133
+ },
134
+ 'companion-device-plugin-list': async (deviceSerial) => {
135
+ const device = await this.createHeadlessDeviceIfNeeded(deviceSerial);
136
+ const supportedDevicePlugins = [...this.loadablePlugins.values()].filter((plugin) => device.supportsPlugin(plugin));
137
+ return supportedDevicePlugins.map((plugin) => {
138
+ const pluginInstance = device.sandyPluginStates.get(plugin.id);
139
+ let state = 'ready';
140
+ if (pluginInstance) {
141
+ state = 'active';
142
+ }
143
+ return {
144
+ pluginId: plugin.id,
145
+ state,
146
+ };
147
+ });
148
+ },
149
+ 'companion-device-plugin-start': async (deviceSerial, pluginId) => {
150
+ const device = await this.createHeadlessDeviceIfNeeded(deviceSerial);
151
+ const pluginDefinition = this.loadablePlugins.get(pluginId);
152
+ if (!pluginDefinition) {
153
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-start -> plugin definition not found', deviceSerial, pluginId);
154
+ }
155
+ if (!device.connected.get()) {
156
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-start -> device not connected', deviceSerial, pluginId);
157
+ }
158
+ if (!device.supportsPlugin(pluginDefinition)) {
159
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-start -> device does not support plugin', deviceSerial, pluginId);
160
+ }
161
+ device.loadDevicePlugin(pluginDefinition);
162
+ device.sandyPluginStates.get(pluginId).activate();
163
+ },
164
+ 'companion-device-plugin-stop': async (deviceSerial, pluginId) => {
165
+ const device = this.devices.get(deviceSerial);
166
+ if (!device) {
167
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-stop -> client not found', deviceSerial, pluginId);
168
+ }
169
+ const pluginInstance = device.sandyPluginStates.get(pluginId);
170
+ if (!pluginInstance) {
171
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-stop -> plugin not found', deviceSerial, pluginId);
172
+ }
173
+ if (!device.connected.get()) {
174
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-stop -> device not connected', deviceSerial, pluginId);
175
+ }
176
+ if (!pluginInstance.activated) {
177
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-device-plugin-stop -> plugin not activated', deviceSerial, pluginId);
178
+ }
179
+ device.unloadDevicePlugin(pluginId);
180
+ },
181
+ 'companion-device-plugin-exec': async (deviceSerial, pluginId, api, params) => {
182
+ const device = this.devices.get(deviceSerial);
183
+ if (!device) {
184
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-exec -> device not found', deviceSerial, pluginId, api, params);
185
+ }
186
+ const pluginInstance = device.sandyPluginStates.get(pluginId);
187
+ if (!pluginInstance) {
188
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-exec -> plugin not found', deviceSerial, pluginId, api, params);
189
+ }
190
+ if (!device.connected.get()) {
191
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> client not connected', deviceSerial, pluginId, api, params);
192
+ }
193
+ if (!pluginInstance.companionApi) {
194
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-plugin-exec -> plugin does not expose API', deviceSerial, pluginId, api, params);
195
+ }
196
+ if (typeof pluginInstance.companionApi[api] !== 'function') {
197
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-plugin-exec -> plugin does not expose requested API method or it is not callable', deviceSerial, pluginId, api, params);
198
+ }
199
+ return pluginInstance.companionApi[api](...(params !== null && params !== void 0 ? params : []));
200
+ },
201
+ 'companion-device-plugin-subscribe': async (deviceSerial, pluginId, api) => {
202
+ const device = this.devices.get(deviceSerial);
203
+ if (!device) {
204
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-subscribe -> device not found', deviceSerial, pluginId, api);
205
+ }
206
+ const pluginInstance = device.sandyPluginStates.get(pluginId);
207
+ if (!pluginInstance) {
208
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-subscribe -> plugin not found', deviceSerial, pluginId, api);
209
+ }
210
+ if (!device.connected.get()) {
211
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-subscribe -> client not connected', deviceSerial, pluginId, api);
212
+ }
213
+ if (!pluginInstance.companionApi) {
214
+ throw new flipper_common_1.UserError('FlipperServerCompanion.companion-device-plugin-subscribe -> plugin does not expose API', deviceSerial, pluginId, api);
215
+ }
216
+ const stateAtom = pluginInstance.companionApi[api];
217
+ if (!(0, flipper_plugin_core_1.isAtom)(stateAtom)) {
218
+ throw new flipper_common_1.SystemError('FlipperServerCompanion.companion-device-plugin-subscribe -> plugin does not expose requested state or it is not an Atom (created with `createState`)', deviceSerial, pluginId, api);
219
+ }
220
+ stateAtom.subscribe((data) => this.emit('companion-device-plugin-state-update', {
221
+ deviceSerial,
222
+ pluginId,
223
+ api,
224
+ data,
225
+ }));
226
+ return stateAtom.get();
227
+ },
228
+ };
229
+ const loadablePluginsArr = env.pluginInitializer.initialPlugins;
230
+ for (const loadablePlugin of loadablePluginsArr) {
231
+ this.loadablePlugins.set(loadablePlugin.id, loadablePlugin);
232
+ }
233
+ console.debug(`[FlipperServerCompanion] constructor -> loadable plugins`, [
234
+ ...this.loadablePlugins.keys(),
235
+ ]);
236
+ }
237
+ canHandleCommand(command) {
238
+ return !!this.commandHandler[command];
239
+ }
240
+ getClient(clientId) {
241
+ return this.clients.get(clientId);
242
+ }
243
+ destroyClient(clientId) {
244
+ const client = this.clients.get(clientId);
245
+ if (!client) {
246
+ throw new flipper_common_1.UserError('FlipperServerCompanion.destroyClient -> client not found', client);
247
+ }
248
+ client.destroy();
249
+ this.clients.delete(clientId);
250
+ }
251
+ getDevice(deviceSerial) {
252
+ return this.devices.get(deviceSerial);
253
+ }
254
+ destroyDevice(deviceSerial) {
255
+ const device = this.devices.get(deviceSerial);
256
+ if (!device) {
257
+ throw new flipper_common_1.UserError('FlipperServerCompanion.destroyDevice -> device not found', deviceSerial);
258
+ }
259
+ device.destroy();
260
+ this.devices.delete(deviceSerial);
261
+ }
262
+ destroyAll() {
263
+ this.clients.forEach((client) => client.destroy());
264
+ this.clients.clear();
265
+ this.devices.forEach((device) => device.destroy());
266
+ this.devices.clear();
267
+ }
268
+ async createHeadlessClientIfNeeded(clientId) {
269
+ const existingClient = this.clients.get(clientId);
270
+ if (existingClient) {
271
+ return existingClient;
272
+ }
273
+ const clientInfo = await this.flipperServer.exec('client-find', clientId);
274
+ if (!clientInfo) {
275
+ throw new flipper_common_1.UserError('FlipperServerCompanion.createHeadlessClientIfNeeded -> client not found', clientId);
276
+ }
277
+ const device = await this.createHeadlessDeviceIfNeeded(clientInfo.query.device_id);
278
+ const newClient = new HeadlessClient_1.HeadlessClient(clientInfo.id, clientInfo.query, {
279
+ send: (data) => {
280
+ this.flipperServer.exec('client-request', clientInfo.id, data);
281
+ },
282
+ sendExpectResponse: (data) => this.flipperServer.exec('client-request-response', clientInfo.id, data),
283
+ }, this.logger, undefined, device, this.flipperServer, this.loadablePlugins);
284
+ await newClient.init();
285
+ console.debug(`[FlipperServerCompanion] createHeadlessClientIfNeeded -> new client created with plugins`, [...newClient.sandyPluginStates.keys()]);
286
+ this.clients.set(clientInfo.id, newClient);
287
+ return newClient;
288
+ }
289
+ async createHeadlessDeviceIfNeeded(deviceSerial) {
290
+ const existingDevice = this.devices.get(deviceSerial);
291
+ if (existingDevice) {
292
+ return existingDevice;
293
+ }
294
+ const deviceInfo = await this.flipperServer.exec('device-find', deviceSerial);
295
+ if (!deviceInfo) {
296
+ throw new flipper_common_1.UserError('FlipperServerCompanion.createHeadlessDeviceIfNeeded -> device not found', deviceSerial);
297
+ }
298
+ const newDevice = new flipper_frontend_core_1.BaseDevice(this.flipperServer, deviceInfo);
299
+ console.debug(`[FlipperServerCompanion] createHeadlessClientIfNeeded -> new device created with plugins`, [...this.loadablePlugins.keys()]);
300
+ this.devices.set(newDevice.serial, newDevice);
301
+ return newDevice;
302
+ }
303
+ async loadPluginIfNeeded(pluginId) {
304
+ if (!this.loadablePlugins.has(pluginId)) {
305
+ console.info('FlipperServerCompanion.loadPluginIfNeeded -> plugin not found, attempt to install from marketplace');
306
+ const plugin = await this.flipperServer.exec('plugins-install-from-marketplace', pluginId);
307
+ if (plugin) {
308
+ const sandyPlugin = await this.env.pluginInitializer.installPlugin(plugin);
309
+ if (sandyPlugin) {
310
+ console.info('FlipperServerCompanion.loadPluginIfNeeded -> plugin successfully installed');
311
+ this.loadablePlugins.set(pluginId, sandyPlugin);
312
+ }
313
+ }
314
+ }
315
+ }
316
+ emit(event, data) {
317
+ this.eventBus.emit(event, data);
318
+ }
319
+ onAny(cb) {
320
+ for (const eventName of companionEvents) {
321
+ this.eventBus.on(eventName, (data) => cb(eventName, data));
322
+ }
323
+ }
324
+ async exec(event, ...args) {
325
+ try {
326
+ console.debug(`[FlipperServerCompanion] command '${event}'`, ...args);
327
+ const handler = this.commandHandler[event];
328
+ if (!handler) {
329
+ throw new flipper_common_1.UserError(`Unimplemented FlipperServerCompanion command`, event);
330
+ }
331
+ const result = await handler(...args);
332
+ console.debug(`[FlipperServerCompanion] command '${event}' - OK`, result);
333
+ return result;
334
+ }
335
+ catch (e) {
336
+ console.debug(`[FlipperServerCompanion] command '${event}' - ERROR`, e);
337
+ throw e;
338
+ }
339
+ }
340
+ }
341
+ exports.FlipperServerCompanion = FlipperServerCompanion;
342
+ //# sourceMappingURL=companion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion.js","sourceRoot":"","sources":["../src/companion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const css: () => () => {};
2
+ //# sourceMappingURL=fakeEmotionCss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeEmotionCss.d.ts","sourceRoot":"","sources":["../../src/globalsReplacements/fakeEmotionCss.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,GAAG,gBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.css = void 0;
4
+ const css = () => () => ({});
5
+ exports.css = css;
6
+ //# sourceMappingURL=fakeEmotionCss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeEmotionCss.js","sourceRoot":"","sources":["../../src/globalsReplacements/fakeEmotionCss.tsx"],"names":[],"mappings":";;;AASO,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAAvB,QAAA,GAAG,OAAoB"}
@@ -0,0 +1,2 @@
1
+ export declare const styled: () => () => {};
2
+ //# sourceMappingURL=fakeEmotionStyled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeEmotionStyled.d.ts","sourceRoot":"","sources":["../../src/globalsReplacements/fakeEmotionStyled.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,gBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.styled = void 0;
4
+ const styled = () => () => ({});
5
+ exports.styled = styled;
6
+ exports.styled.img = () => { };
7
+ //# sourceMappingURL=fakeEmotionStyled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeEmotionStyled.js","sourceRoot":"","sources":["../../src/globalsReplacements/fakeEmotionStyled.tsx"],"names":[],"mappings":";;;AASO,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAA1B,QAAA,MAAM,UAAoB;AACtC,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './fakeEmotionStyled';
2
+ export declare const Layout: {};
3
+ //# sourceMappingURL=fakeLegacyExports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeLegacyExports.d.ts","sourceRoot":"","sources":["../../src/globalsReplacements/fakeLegacyExports.tsx"],"names":[],"mappings":"AASA,cAAc,qBAAqB,CAAC;AACpC,eAAO,MAAM,MAAM,IAAK,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Layout = void 0;
18
+ __exportStar(require("./fakeEmotionStyled"), exports);
19
+ exports.Layout = {};
20
+ //# sourceMappingURL=fakeLegacyExports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeLegacyExports.js","sourceRoot":"","sources":["../../src/globalsReplacements/fakeLegacyExports.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,sDAAoC;AACvB,QAAA,MAAM,GAAG,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare class PureComponent {
2
+ }
3
+ export declare class Component {
4
+ }
5
+ declare const _default: {
6
+ PureComponent: typeof PureComponent;
7
+ Component: typeof Component;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=fakeReact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeReact.d.ts","sourceRoot":"","sources":["../../src/globalsReplacements/fakeReact.tsx"],"names":[],"mappings":"AASA,qBAAa,aAAa;CAAG;AAC7B,qBAAa,SAAS;CAAG;;;;;AAEzB,wBAGE"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Component = exports.PureComponent = void 0;
4
+ class PureComponent {
5
+ }
6
+ exports.PureComponent = PureComponent;
7
+ class Component {
8
+ }
9
+ exports.Component = Component;
10
+ exports.default = {
11
+ PureComponent,
12
+ Component,
13
+ };
14
+ //# sourceMappingURL=fakeReact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeReact.js","sourceRoot":"","sources":["../../src/globalsReplacements/fakeReact.tsx"],"names":[],"mappings":";;;AASA,MAAa,aAAa;CAAG;AAA7B,sCAA6B;AAC7B,MAAa,SAAS;CAAG;AAAzB,8BAAyB;AAEzB,kBAAe;IACb,aAAa;IACb,SAAS;CACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const unstable_batchedUpdates: (cb: () => void) => void;
2
+ //# sourceMappingURL=fakeReactDOM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeReactDOM.d.ts","sourceRoot":"","sources":["../../src/globalsReplacements/fakeReactDOM.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,uBAAuB,OAAQ,MAAM,IAAI,SAErD,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unstable_batchedUpdates = void 0;
4
+ const unstable_batchedUpdates = (cb) => {
5
+ return cb();
6
+ };
7
+ exports.unstable_batchedUpdates = unstable_batchedUpdates;
8
+ //# sourceMappingURL=fakeReactDOM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakeReactDOM.js","sourceRoot":"","sources":["../../src/globalsReplacements/fakeReactDOM.tsx"],"names":[],"mappings":";;;AASO,MAAM,uBAAuB,GAAG,CAAC,EAAc,EAAE,EAAE;IACxD,OAAO,EAAE,EAAE,CAAC;AACd,CAAC,CAAC;AAFW,QAAA,uBAAuB,2BAElC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { FlipperServerCompanion } from './companion';
2
+ export { initCompanionEnv, FlipperServerCompanionEnv } from './init';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,MAAM,QAAQ,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initCompanionEnv = exports.FlipperServerCompanion = void 0;
4
+ var companion_1 = require("./companion");
5
+ Object.defineProperty(exports, "FlipperServerCompanion", { enumerable: true, get: function () { return companion_1.FlipperServerCompanion; } });
6
+ var init_1 = require("./init");
7
+ Object.defineProperty(exports, "initCompanionEnv", { enumerable: true, get: function () { return init_1.initCompanionEnv; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AASA,yCAAmD;AAA3C,mHAAA,sBAAsB,OAAA;AAC9B,+BAAmE;AAA3D,wGAAA,gBAAgB,OAAA"}
package/lib/init.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { FlipperServer } from 'flipper-common';
2
+ import { HeadlessPluginInitializer } from './HeadlessPluginInitializer';
3
+ export interface FlipperServerCompanionEnv {
4
+ pluginInitializer: HeadlessPluginInitializer;
5
+ }
6
+ export declare const initCompanionEnv: (flipperServer: FlipperServer) => Promise<FlipperServerCompanionEnv>;
7
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,aAAa,EAAyB,MAAM,gBAAgB,CAAC;AAIrE,OAAO,EAAC,yBAAyB,EAAC,MAAM,6BAA6B,CAAC;AAUtE,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,yBAAyB,CAAC;CAC9C;AAED,eAAO,MAAM,gBAAgB,kBACZ,aAAa,KAC3B,QAAQ,yBAAyB,CA0BnC,CAAC"}
package/lib/init.js ADDED
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.initCompanionEnv = void 0;
30
+ const flipper_common_1 = require("flipper-common");
31
+ const flipper_frontend_core_1 = require("flipper-frontend-core");
32
+ const FlipperPluginSDK = __importStar(require("flipper-plugin-core"));
33
+ const Immer = __importStar(require("immer"));
34
+ const HeadlessPluginInitializer_1 = require("./HeadlessPluginInitializer");
35
+ const initializeFlipperLibImplementation_1 = require("./initializeFlipperLibImplementation");
36
+ const initializeRenderHost_1 = require("./initializeRenderHost");
37
+ const React = __importStar(require("./globalsReplacements/fakeReact"));
38
+ const ReactDOM = __importStar(require("./globalsReplacements/fakeReactDOM"));
39
+ const fakeEmotionStyled_1 = require("./globalsReplacements/fakeEmotionStyled");
40
+ const emotionCss = __importStar(require("./globalsReplacements/fakeEmotionCss"));
41
+ const legacyExports = __importStar(require("./globalsReplacements/fakeLegacyExports"));
42
+ const module_1 = __importDefault(require("module"));
43
+ const initCompanionEnv = async (flipperServer) => {
44
+ (0, flipper_frontend_core_1.setGlobalObject)({
45
+ React: React,
46
+ ReactDOM: ReactDOM,
47
+ ReactDOMClient: {},
48
+ ReactIs: {},
49
+ Flipper: legacyExports,
50
+ FlipperPlugin: FlipperPluginSDK,
51
+ Immer,
52
+ antd: {},
53
+ emotion_styled: { default: fakeEmotionStyled_1.styled },
54
+ emotion_css: emotionCss,
55
+ antdesign_icons: {},
56
+ ReactJsxRuntime: {},
57
+ });
58
+ module_1.default.prototype.require = (0, flipper_common_1.wrapRequire)(module_1.default.prototype.require);
59
+ const flipperServerConfig = await flipperServer.exec('get-config');
60
+ (0, initializeRenderHost_1.initializeRenderHost)(flipperServer, flipperServerConfig);
61
+ (0, initializeFlipperLibImplementation_1.initializeFlipperLibImplementation)((0, flipper_frontend_core_1.getRenderHostInstance)(), (0, flipper_common_1.getLogger)());
62
+ const pluginInitializer = new HeadlessPluginInitializer_1.HeadlessPluginInitializer();
63
+ await pluginInitializer.init();
64
+ return { pluginInitializer };
65
+ };
66
+ exports.initCompanionEnv = initCompanionEnv;
67
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,mDAAqE;AACrE,iEAA6E;AAC7E,sEAAwD;AACxD,6CAA+B;AAC/B,2EAAsE;AACtE,6FAAwF;AACxF,iEAA4D;AAC5D,uEAAyD;AACzD,6EAA+D;AAC/D,+EAA+D;AAC/D,iFAAmE;AACnE,uFAAyE;AACzE,oDAA4B;AAMrB,MAAM,gBAAgB,GAAG,KAAK,EACnC,aAA4B,EACQ,EAAE;IAEtC,IAAA,uCAAe,EAAC;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,aAAa;QACtB,aAAa,EAAE,gBAAgB;QAC/B,KAAK;QACL,IAAI,EAAE,EAAE;QACR,cAAc,EAAE,EAAC,OAAO,EAAE,0BAAM,EAAC;QACjC,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;KACpB,CAAC,CAAC;IACH,gBAAM,CAAC,SAAS,CAAC,OAAO,GAAG,IAAA,4BAAW,EAAC,gBAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,mBAAmB,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnE,IAAA,2CAAoB,EAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACzD,IAAA,uEAAkC,EAAC,IAAA,6CAAqB,GAAE,EAAE,IAAA,0BAAS,GAAE,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IAC1D,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAE/B,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAC7B,CAAC,CAAC;AA5BW,QAAA,gBAAgB,oBA4B3B"}
@@ -0,0 +1,4 @@
1
+ import { Logger } from 'flipper-plugin-core';
2
+ import { RenderHost } from 'flipper-frontend-core';
3
+ export declare function initializeFlipperLibImplementation(renderHost: RenderHost, logger: Logger): void;
4
+ //# sourceMappingURL=initializeFlipperLibImplementation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeFlipperLibImplementation.d.ts","sourceRoot":"","sources":["../src/initializeFlipperLibImplementation.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,MAAM,EAA+B,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAA+B,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAE/E,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,QAef"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeFlipperLibImplementation = void 0;
4
+ const flipper_plugin_core_1 = require("flipper-plugin-core");
5
+ const flipper_frontend_core_1 = require("flipper-frontend-core");
6
+ function initializeFlipperLibImplementation(renderHost, logger) {
7
+ (0, flipper_plugin_core_1._setFlipperLibImplementation)({
8
+ ...(0, flipper_frontend_core_1.baseFlipperLibImplementation)(renderHost, logger),
9
+ enableMenuEntries() { },
10
+ createPaste() {
11
+ throw new Error('Not implemented');
12
+ },
13
+ selectPlugin() { },
14
+ showNotification() {
15
+ throw new Error('Not supported in headless context');
16
+ },
17
+ });
18
+ }
19
+ exports.initializeFlipperLibImplementation = initializeFlipperLibImplementation;
20
+ //# sourceMappingURL=initializeFlipperLibImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeFlipperLibImplementation.js","sourceRoot":"","sources":["../src/initializeFlipperLibImplementation.tsx"],"names":[],"mappings":";;;AASA,6DAAyE;AACzE,iEAA+E;AAE/E,SAAgB,kCAAkC,CAChD,UAAsB,EACtB,MAAc;IAEd,IAAA,kDAA4B,EAAC;QAC3B,GAAG,IAAA,oDAA4B,EAAC,UAAU,EAAE,MAAM,CAAC;QACnD,iBAAiB,KAAI,CAAC;QACtB,WAAW;YAET,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,YAAY,KAAI,CAAC;QACjB,gBAAgB;YAEd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAjBD,gFAiBC"}
@@ -0,0 +1,3 @@
1
+ import { FlipperServer, FlipperServerConfig } from 'flipper-common';
2
+ export declare function initializeRenderHost(flipperServer: FlipperServer, flipperServerConfig: FlipperServerConfig): void;
3
+ //# sourceMappingURL=initializeRenderHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeRenderHost.d.ts","sourceRoot":"","sources":["../src/initializeRenderHost.tsx"],"names":[],"mappings":"AASA,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAe,MAAM,gBAAgB,CAAC;AAGhF,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,QAsEzC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeRenderHost = void 0;
4
+ const flipper_common_1 = require("flipper-common");
5
+ function initializeRenderHost(flipperServer, flipperServerConfig) {
6
+ globalThis.FlipperRenderHostInstance = {
7
+ readTextFromClipboard() {
8
+ return undefined;
9
+ },
10
+ writeTextToClipboard(_text) {
11
+ },
12
+ async importFile() {
13
+ throw new Error('Not implemented');
14
+ },
15
+ async exportFile() {
16
+ throw new Error('Not implemented');
17
+ },
18
+ async exportFileBinary() {
19
+ throw new Error('Not implemented');
20
+ },
21
+ openLink(url) {
22
+ throw new Error('Not implemented');
23
+ },
24
+ hasFocus() {
25
+ return true;
26
+ },
27
+ onIpcEvent(_event) {
28
+ },
29
+ sendIpcEvent(_event, ..._args) {
30
+ },
31
+ shouldUseDarkColors() {
32
+ return false;
33
+ },
34
+ restartFlipper() {
35
+ },
36
+ serverConfig: flipperServerConfig,
37
+ GK(gatekeeper) {
38
+ var _a;
39
+ return (_a = flipperServerConfig.gatekeepers[gatekeeper]) !== null && _a !== void 0 ? _a : false;
40
+ },
41
+ flipperServer,
42
+ async requirePlugin(path) {
43
+ let source = await flipperServer.exec('plugin-source', path);
44
+ source += `\n//# sourceURL=file://${path}`;
45
+ source += `\n//# sourceMappingURL=file://${path.replace(/.js$/, '.map')}`;
46
+ const cjsLoader = eval('(module) => {' + source + '\n}');
47
+ const theModule = { exports: {} };
48
+ cjsLoader(theModule);
49
+ return theModule.exports;
50
+ },
51
+ getStaticResourceUrl(path) {
52
+ return '/' + path;
53
+ },
54
+ getLocalIconUrl(icon, url) {
55
+ if ((0, flipper_common_1.isProduction)()) {
56
+ return `icons/${icon.name}-${icon.variant}-${icon.size}@${icon.density}x.png`;
57
+ }
58
+ return url;
59
+ },
60
+ };
61
+ }
62
+ exports.initializeRenderHost = initializeRenderHost;
63
+ //# sourceMappingURL=initializeRenderHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeRenderHost.js","sourceRoot":"","sources":["../src/initializeRenderHost.tsx"],"names":[],"mappings":";;;AASA,mDAAgF;AAGhF,SAAgB,oBAAoB,CAClC,aAA4B,EAC5B,mBAAwC;IAExC,UAAU,CAAC,yBAAyB,GAAG;QACrC,qBAAqB;YAEnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,oBAAoB,CAAC,KAAa;QAElC,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,gBAAgB;YACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ,CAAC,GAAW;YAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ;YACN,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,CAAC,MAAM;QAEjB,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,GAAG,KAAY;QAEpC,CAAC;QACD,mBAAmB;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,cAAc;QAEd,CAAC;QACD,YAAY,EAAE,mBAAmB;QACjC,EAAE,CAAC,UAAU;;YACX,OAAO,MAAA,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,mCAAI,KAAK,CAAC;QAC9D,CAAC;QACD,aAAa;QACb,KAAK,CAAC,aAAa,CAAC,IAAI;YACtB,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAE7D,MAAM,IAAI,0BAA0B,IAAI,EAAE,CAAC;YAE3C,MAAM,IAAI,iCAAiC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YAO1E,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,EAAE,EAAC,CAAC;YAChC,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC,OAAO,CAAC;QAC3B,CAAC;QACD,oBAAoB,CAAC,IAAI;YAEvB,OAAO,GAAG,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,eAAe,CAAC,IAAI,EAAE,GAAG;YACvB,IAAI,IAAA,6BAAY,GAAE,EAAE;gBAClB,OAAO,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,OAAO,CAAC;aAC/E;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACY,CAAC;AAClB,CAAC;AAxED,oDAwEC"}
package/package.json CHANGED
@@ -1,6 +1,34 @@
1
1
  {
2
2
  "name": "flipper-server-companion",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
3
+ "version": "0.171.0",
4
+ "description": "Runs Flipper plugins on Flipper Server",
5
+ "repository": "facebook/flipper",
6
+ "main": "lib/index.js",
7
+ "flipperBundlerEntry": "src",
8
+ "types": "lib/index.d.ts",
9
+ "license": "MIT",
10
+ "bugs": "https://github.com/facebook/flipper/issues",
11
+ "dependencies": {
12
+ "flipper-common": "0.171.0",
13
+ "flipper-frontend-core": "0.171.0",
14
+ "flipper-plugin-core": "0.171.0",
15
+ "immer": "^9.0.12"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^17.0.29"
19
+ },
20
+ "peerDependencies": {},
21
+ "scripts": {
22
+ "reset": "rimraf lib *.tsbuildinfo",
23
+ "build": "tsc -b",
24
+ "prepack": "yarn reset && yarn build"
25
+ },
26
+ "files": [
27
+ "lib/**/*"
28
+ ],
29
+ "homepage": "https://github.com/facebook/flipper",
30
+ "keywords": [
31
+ "Flipper"
32
+ ],
33
+ "author": "Facebook, Inc"
6
34
  }